import java.util.HashSet;
import java.util.Iterator;
import java.util.Random;
import java.util.Set;
public class CaiPu{
/**
* 题目:写一个随机菜谱
菜谱内容:川菜,粤菜,湘菜(内容这三项只是建议,自己可以增加,自己发挥)
评分细节:
1:实现功能:2分 2:代码规范:1分 3:异常处理:1分 4:用户体验度:5分 5:内容:3分
提醒:切记用户体验度哦,想拿高分,必须注意用户体验度,这里我只提醒大家一点,一个菜有名字,但不知道其中的内容,顾客是不会喜欢的,要想吸引顾客必须有内容来吸引。
*/
public static void main(String[] args){
try{
//定义字符串数组,该数组中装了菜谱中所有的菜
String cai[]={"北京菜","上海菜","广州菜","沈阳菜","河北菜","河南菜","四川菜","山东菜"};//长度为8
String cai_describe[]={"北京菜美味可口","上海菜清淡","广州菜神韵","沈阳菜火爆",
"河北菜万古长青","河南菜源远流长","四川菜香辣","山东菜朴实"};//定义菜对应的描述
System.out.println("所有菜的数量:"+cai.length);
String order[]=new String[3];//定义每个菜谱中有三个菜
String order_describe[]=new String[3];//定义每个菜谱中有三个菜对应的菜的描述
int random_cai[]=getThree(cai.length);
for (int i = 0; i < 3; i++) {//循环获取随机数三次,组成一个菜谱
order[i]=cai[random_cai[i]];//随即获取菜谱中的菜并赋值给要生成的菜谱
order_describe[i]=cai_describe[random_cai[i]];//随即获取菜谱中的菜并赋值给要生成的菜谱的对应菜的描述
}
for (int i = 0; i < order.length; i++) {
System.out.println("随机生成的菜谱中的菜其第"+(1+i)+"到菜为:"+order[i]+",此"+order_describe[i]);
}
}catch(Exception e){
e.printStackTrace();
}
}
/*
* 此方法是获取不重复的三个菜
*/
public static int[] getThree(int length){
try{
Random r=new Random();
Set set=new HashSet();
for (int i = 0; i < 100; i++) {//此循环是为了防止取重复的值,如果是重复的值可再取
if(set.add(r.nextInt(length))){//set的用法,如果不重复就add,重复的话再取
if(set.size()==3){//此处的3为每个随机菜谱中有三个菜
break;
}
}else{
continue;
}
}
Iterator iter=set.iterator();
int num[]=new int[3];
int num_add=0;//定义自增变量
while(iter.hasNext()){
num[num_add]=(Integer)iter.next();
num_add++;
}
//该循环用于测试
// for (int i = 0; i < num.length; i++) {
// System.out.println("接收到的值为:"+num[i]);
// }
return num;
}catch(Exception e){
e.printStackTrace();
}
return null;
}
}