***实现一个背英语单词程序,在控制台输入1,按回车出现一个单词,输入0退出程序,
- 所有单词都背完了也退出程序。假设程序中存储有500个单词,这些单词随机出现,每次仅出现一个,出现过的单词不再重复出现。请编写代码实现。25分
要求:
1) 输入500个1,这500个单词就背完。输入1后,按回车后,每个单词出现的时间差不多(按回车到单词出现之间的时间差类似)。
2) 程序中每个单词仅允许被选择1次(即使是尝试选择也只能1次),不允许重复选择。如:有3个单词,abc、bcd、efg,第一次出现efg,
第二次选择的时候不允许再去尝试选择efg(只能当没有出现过efg一样),即只能从abc和bcd中选择;若选了abc,类似的也不能再去尝试选择abc,只能当其没出现过,只能从bcd中选择。
3)单词从{a,b,c,d,e,f….,z}中随机产生,每个单词长度固定为5;单词不重复,不考虑单词的正确性,只要5个上述字母就可以;单词的构成要随机,不能特殊化***
import java.util.Vector; //向量类
import java.util.Random; //任意类
import java.util.Scanner;
class get2
{
Vector<String> ve=new Vector<>();
public void set()
{
Random R=new Random();
while(ve.size()!=500)
{
String s="";
for(int i=0;i<5;i++)
{
s+=(char)(R.nextInt(26)+97);
}
if(!(ve.contains(s))) //判断是否是在里面
ve.add(s);
}
}
}
public class Test9 {
public static void main(String[] args)
{
System.out.println("程序已经准备好,输入1,进行背单词,输入0退出程序");
get2 a=new get2();
a.set();
Scanner reader=new Scanner(System.in);
int b=reader.nextInt();
int count=0;
while(b!=0&&count<a.ve.size())
{
if(b==1&&count<a.ve.size())
{
System.out.println(a.ve.get(count));
count++;
}
else if(b!=1&&count<a.ve.size())
{
System.out.println("请输入正确的选择!!!");
}
b=reader.nextInt();
}
System.out.println("Bye");
}
}