练习题目

3. 写一个彩票程序:30选7。随机(1~30之间)生成7个随机数,注意不能重复。然后从键盘输入7个数,对比7个数是否与随机数有相同的。最后显示“中了几个号”。同时,如果中了7个号,显示一等奖;如果中了6个号,显示二等奖;如果中了5个号,显示三等奖。要求:首先写出程序的实现思想,特别是程序所使用的数据结构,然后写出Java实现代码。【说明:键盘输入可以使用Scanner类】

View Code
 1 import java.util.Scanner;
2 import java.util.Random;
3 import java.util.Arrays;
4 public class LotteryTest
5 {
6 public static void main(String[] args)
7 {
8 Scanner sc=null;
9 int[] intArr=new int[7];
10 int index=0;
11 int n=0;
12 for(int i=0;i<7;i++)
13 {
14 sc=new Scanner(System.in);
15 System.out.println("请输入1~30之间的整数,按回车提交!");
16 if(sc.hasNextInt())
17 {
18 int t=sc.nextInt();
19 if(t>0&&t<=30)
20 {
21 intArr[index++]=t;
22 }
23 else
24 {
25 System.out.println("输入错误,请重新输入!");
26 i--;
27 }
28 }
29 else
30 {
31 System.out.println("输入错误,请重新输入!");
32 i--;
33 }
34 }
35 int[] destArr=getRandom();
36 System.out.println(Arrays.toString(destArr));
37 for(int i=0;i<destArr.length;i++)
38 {
39 for(int j=0;j<intArr.length;j++)
40 {
41 if(destArr[i]==intArr[j])
42 {
43 n++;
44 }
45 }
46 }
47 switch(n)
48 {
49 case 7:
50 System.out.println("恭喜您中了一等奖!");
51 break;
52 case 6:
53 System.out.println("恭喜您中了二等奖!");
54 break;
55 case 5:
56 System.out.println("恭喜您中了三等奖!");
57 break;
58 default:
59 System.out.println("您没有中奖");
60 break;
61 }
62
63 }
64 public static int[] getRandom()
65 {
66 Random rd=new Random();
67 int[] temp=new int[7];
68 int randInt=0;
69 boolean flag=false;
70 int count=0;
71 while(count<7)
72 {
73 randInt=rd.nextInt(31);
74 for(int i=0;i<count;i++)
75 {
76 if(temp[i]==randInt)
77 {
78 flag=true;
79 break;
80 }
81 else
82 {
83 flag=false;
84 }
85 }
86 if(!flag&&randInt!=0)
87 {
88 temp[count++]=randInt;
89 }
90 }
91 return temp;
92 }
93 }



posted on 2011-11-29 10:10  茫然若失  阅读(346)  评论(0编辑  收藏  举报

导航