1. 写一个彩票程序:30选7。随机(1~30之间)生成7个随机数,注意不能重复。然后从键盘输入7个数,对比7个数是否与随机数有相同的。最后显示“中了几个号”。同时,如果中了7个号,显示一等奖;如果中了6个号,显示二等奖;如果中了5个号,显示三等奖。要求:首先写出程序的实现思想,特别是程序所使用的数据结构,然后写出Java实现代码。【说明:键盘输入可以使用Scanner类】
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
public class Lottery {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("Please input the range of the random number:");
int n=sc.nextInt();//定义生成随机数的范围;
System.out.print("Please input the amount of the random number:");
int m=sc.nextInt();//定义生成随机数的个数;
HashMap map=new HashMap();
for(int i=0;i
{
int number=0;
do
{
number=(int)(Math.random()*n)+1;//
}while(map.containsKey(number));//如果出现过,继续循环;
map.put(number,1);//将number位置的value赋值为1;
}
System.out.print("Please input your "+m+" number(no repeat):");
int flag=0;
for(int i=0;i
{
int number=sc.nextInt();
if(map.containsKey(number))//如果number处的value不为空,则表示猜中;
flag++;
}
System.out.print("The random number is:");
Iterator> it=map.entrySet().iterator();
while(it.hasNext())//输出随机生成的值,可以没有、、、、、
{
Map.Entry entry=(Entry) it.next();
System.out.print(entry.getKey()+" ");
}
System.out.println("nYou guessed "+flag+"!");
if(flag==m)
System.out.println("Congratulations,you win the first prize!");
else if(flag==(m-1))
System.out.println("Congratulations,you win the second prize!");
else if(flag==(m-2))
System.out.println("Congratulations,you win the third prize!");
else
System.out.println("I`m sorry,you can`t win the prize!");
}
}