写一个彩票的模拟程序:30选7。随机(1~30之间)生成7个随机数,注意不能重复。然后从键盘输入7个数,对比7个数是否与随机数有相同的。最后显示“中了几个号”。同时,如果中了7个号,显示一等奖;如果中了6个号,显示二等奖;如果中了5个号,显示三等奖。要求:首先在注释中写出程序的实现思想,特别是程序所使用的数据结构,然后写出Java实现代码。【说明:键盘输入可以使用Scanner类】
package zuoye3;
import java.util.*;
//由题中说的随机数不能重复可知这符合集合的特性
//利用集合内元素不能重复的特点插入7个不同的数字,然后迭代遍历统计猜中数字
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Set<Integer> cp = new TreeSet<Integer>();
Random rand = new Random();
while(cp.size()<7)
{
cp.add(rand.nextInt(30)+1);//生成[1,31)区间的随机整数
}
Scanner scan = new Scanner(System.in);
int num = 0;
for(int i = 0;i < 7;i++)
{
int m = scan.nextInt();
Iterator<Integer> it = cp.iterator();
while(it.hasNext())
{
if(m == it.next())
num++;
}
}
if(num==7)
System.out.println("你中了一等奖!");
else if(num==6)
System.out.println("你中了二等奖!");
else if(num==5)
System.out.println("你中了三等奖!");
else
System.out.println("很遗憾,你并没有中奖!");
scan.close();
}
}