java案例之制作系统

案例

需求

  • 定义一个方法,可以接收中奖号码的数组,用户选号的数组;
  • 根据命中红球数和篮球数判断最终的结果并输出。

分析

  • 系统需要三部份
  • 第一部分是:生成随机产生的7位数双色球数字,其中前6位是红球,第7位是蓝球,红球范围是1–33,蓝球范围是1–16,产生随机数的方法Random.,注意这里我们需要返回数组,红球与蓝球应该分别随机生成赋值,其中的小技巧为参照数flage。
    局部代码
// 随机生成一组号码public static int[] lucknum(){Random r = new Random();Scanner sc = new Scanner(System.in);int[] arr1 = new int[7];// 先遍历前6个红球;for (int i = 0; i < arr1.length-1; i++) {while (true){int num = r.nextInt(33)+1; // 1--33,(0--32)+1boolean flage = true;for (int j = 0; j < i; j++) {if(arr1[j] == num){flage = false;break;}}if(flage){arr1[i] = num;break;}}}arr1[arr1.length-1] = r.nextInt(16)+1; // 蓝球是 1-16return arr1;}

再定义了方法后,我们写一个数组遍历输出方法去输出数组,看一下数组的情况。

  • 输出数组的程序方法如下:
public static void printArray(int[] arr){System.out.print("(");for (int i = 0; i < arr.length; i++) {if(i == arr.length - 1){System.out.print(arr[i]+")");}else {System.out.print(arr[i]+";");}}}
  • 下面我们要写一个可以手动输入7位获奖位数的方法,类型和方法1有点类似,也是以数组的格式输出
public static int[] uernum(){Scanner sc = new Scanner(System.in);int[] num = new int[7];for (int i = 0; i < 6; i++) {System.out.print("请输入1--33之间不重复的红球号码:");int uernum = sc.nextInt();num[i] = uernum;}System.out.print("请输入1--16之间的蓝球号码:");num[num.length-1] = sc.nextInt();System.out.print("您输入的双色球号码是:");printArray(num);return num;}
  • 再生成随机生成的7位中奖号码与手动输入的7位猜测号码,后面我们需要遍历两个数组去判断猜中了多少红球与蓝球,以便于去判断中奖情况。
   public static void judge(int[] arr1,int[] arr2){int red = 0;int blue = 0;for (int i = 0; i < arr2.length-1; i++) {for (int j = 0; j < arr1.length-1; j++) {if(arr2[i]==arr1[j]){red += 1;break;}}}blue = arr1[arr1.length-1] == arr2[arr2.length-1] ? 1:0;System.out.println();System.out.print("您猜中的红球个数是:"+red);System.out.println();System.out.print("您是否猜中篮球:"+(blue==1));System.out.println();if (red ==1 && blue==1 || red ==2 && blue==1 || red==0 && blue==1){System.out.println("恭喜您中5元。");}else if(red==3 && blue==1 || red==4&&blue==0){System.out.println("恭喜您中10元。");}else if (red==4 && blue==1 ||red==5&& blue==0){System.out.println("恭喜您中200元。");}else if(red==5 && blue==1){System.out.println("恭喜您中3000元。");}else if(red ==6 && blue==0){System.out.println("恭喜您中500万。");}else if(red == 6 && blue==1){System.out.println("恭喜您中1000万。");}else {System.out.println("#############");}}

完整代码:

package 编程思维训练;
import java.util.Scanner;
import java.util.Random;
public class ten {public static void main(String[] args) {int[] lucknum = lucknum();System.out.println("luck num:");printArray(lucknum);System.out.println();int[] uernum = uernum();judge(lucknum,uernum);}// 随机生成一组中奖号码public static int[] lucknum(){Random r = new Random();Scanner sc = new Scanner(System.in);int[] arr1 = new int[7];// 先遍历前6个红球;for (int i = 0; i < arr1.length-1; i++) {while (true){int num = r.nextInt(33)+1; // 1--33,(0--32)+1boolean flage = true;for (int j = 0; j < i; j++) {if(arr1[j] == num){flage = false;break;}}if(flage){arr1[i] = num;break;}}}arr1[arr1.length-1] = r.nextInt(16)+1; // 蓝球是 1-16return arr1;}public static void printArray(int[] arr){System.out.print("(");for (int i = 0; i < arr.length; i++) {if(i == arr.length - 1){System.out.print(arr[i]+")");}else {System.out.print(arr[i]+";");}}}public static int[] uernum(){Scanner sc = new Scanner(System.in);int[] num = new int[7];for (int i = 0; i < 6; i++) {System.out.print("请输入1--33之间不重复的红球号码:");int uernum = sc.nextInt();num[i] = uernum;}System.out.print("请输入1--16之间的蓝球号码:");num[num.length-1] = sc.nextInt();System.out.print("您输入的号码是:");printArray(num);return num;}public static void judge(int[] arr1,int[] arr2){int red = 0;int blue = 0;for (int i = 0; i < arr2.length-1; i++) {for (int j = 0; j < arr1.length-1; j++) {if(arr2[i]==arr1[j]){red += 1;break;}}}blue = arr1[arr1.length-1] == arr2[arr2.length-1] ? 1:0;System.out.println();System.out.print("您猜中的红球个数是:"+red);System.out.println();System.out.print("您是否猜中篮球:"+(blue==1));System.out.println();if (red ==1 && blue==1 || red ==2 && blue==1 || red==0 && blue==1){System.out.println("恭喜您中5元。");}else if(red==3 && blue==1 || red==4&&blue==0){System.out.println("恭喜您中10元。");}else if (red==4 && blue==1 ||red==5&& blue==0){System.out.println("恭喜您中200元。");}else if(red==5 && blue==1){System.out.println("恭喜您中3000元。");}else if(red ==6 && blue==0){System.out.println("恭喜您中500万。");}else if(red == 6 && blue==1){System.out.println("恭喜您中1000万。");}else {System.out.println("############");}}}

实验结果


参考

黑马程序员

java案例之制作系统相关推荐

  1. java案例——字符串反转

    java案例--字符串反转 1.需求: 定义一个方法,实现字符串反转.键盘录入一个字符串,调用该方法后,在控制台输出结果 例如,键盘录入abc,输出结果cba 2.思路: 1.键盘录入一个字符串,用S ...

  2. Java案例——字符串拼接

    Java案例--字符串拼接案例 1.案例需求 定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果 例如,数字为int[] arr = {1,2,3}; ...

  3. java闰年的年份,Java案例-判断给定年份是闰年

    专注学子高考志愿填报,分享你所不知道信息. Java案例-判断给定年份是闰年 案例描述 编写程序,判断给定的某个年份是否是闰年. 闰年的判断规则如下: (1)若某个年份能被4整除但不能被100整除,则 ...

  4. Java案例:利用JDBC连接Oracle数据库

    Java案例:利用JDBC连接Oracle数据库 一.准备工作 1.启动SQL Developer,设置java.exe路径 2.在Oracle SQL Developer里,新建数据库连接 连接名: ...

  5. Java案例:利用JDBC访问SQL Server数据库

    Java案例:利用JDBC访问SQL Server数据库 1.以sa为登录名连接数据库服务器 2.附加选课数据库Xk,如下图所示: 3.启动Eclipse,创建Java项目TestDB

  6. Java案例:连接SQL Server数据库,显示学生表记录

    Java案例:连接SQL Server数据库,显示学生表记录 演示利用JDBC连接SQL Server数据库,在Java GUI窗口里显示表记录. 一.运行效果 二.实现步骤 1.项目结构图

  7. Java案例:集合的Stream方法

    Java案例:集合的Stream方法 ArrayList实现了Collection接口,Collection接口有个缺省方法Stream(),因此ArrayList对象可以直接调用该方法获得集合对象的 ...

  8. Java案例:简易记事本

    Java案例:简易记事本 一.案例演示 二.涉及知识点 1.窗口(JFrame) 2.标签(JLabel) 3.文本区(JTextArea) 4.菜单 5.文件读写 6.事件处理 7.工具栏   三. ...

  9. Java案例:汉诺塔问题

    Java案例:汉诺塔问题 游戏规则: (1)一次只能移动一个环 (2)小环必须在大环之上 (3)所有环从A柱移到C柱

最新文章

  1. E201700525-hm
  2. uvalive4836(枚举)
  3. 7-4 jmu-Java-03面向对象基础-04-形状-继承 (15 分)
  4. 随机排列_“按字母顺序排列”其实是种随机顺序
  5. P2766 最长不下降子序列问题(网络流)
  6. h5 一镜到底_这些一镜到底的H5还能怎么玩?
  7. 【CodeForces - 334B】Eight Point Sets(水题模拟,有坑)
  8. Activity 模版样式简介
  9. Linux进程列表巧用,Linux下的进程分析–PS
  10. js正则匹配闭合标签_正则表达式匹配封闭html标签
  11. 【转载】使用缓存的9个误区(上)
  12. JSK-22 排序后的数组删除重复数字【入门】
  13. 信号检测与估计理论_又又又送书啦!视觉SLAM十四讲:从理论到实践(第2版)...
  14. css 固定宽度超出部分换行,css怎么超出宽度换行
  15. matlab 病态方程组,超定方程组与欠定方程组(病态方程组)
  16. 职场英语:英语邮件常用英语
  17. PUN ☀️九、玩家网络实例化与昵称显示
  18. 穆利堂推荐机会来了你做好准备了吗?怎么让机会找到你?
  19. 银行卡号码校验算法(Luhn算法,又叫模10算法)
  20. 艾司博讯:拼多多发货地址在哪里看

热门文章

  1. 高性价比美国WordPress主机WebHostingPad
  2. python 常微分方程 画向量场_用scipy-odein在python中求解向量常微分方程
  3. [行路难]——开始漫漫编程路
  4. 计算机毕业论文选题申请表,毕业设计论文课题申请表.DOC
  5. 服务器开机只显示logo,Ubuntu 20.04 开机画面显示 OEM 厂商 Logo
  6. linux上远程文件传输工具 scp sz rz
  7. 英文SEO分析竞争对手推广策略实操
  8. 游戏王血计算机,游戏王消血
  9. 队友代码神注释,ORZ 留下两行泪
  10. leetcode刷题之 树(14)-递归:找出二叉树中第二小的节点