JAVA编程(随机点名程序),高手来篇1
按照你第2点描述,你仅仅是想实现随即顺序点名而已,并不是随即点名。
我给你个解决方案:在每次点中一名学生后,将java0803_students.txt文件中做个标示,表示该学生已经在本轮点名中被点过。直到所有学生都点到后情况这个表示,准备下一轮点名做标记。
下面我给你一段伪代码,包含了random的使用方法:publicclassCallStudents(){privatestaticRandomrandom=newRandom();publicvoidcall(){//重新设置学生被点名的标示(根据点名情况)reset();longvalue=-1;while(true){value=random.nextInt(maxValue+1);//maxValue是你当前有学生的最大数目//在这里读取当前随即号对应的学生记录Stringstudent=getStudentByID(value);//判断该学生是否被点过名if(!checkCalled(student)){//设置已经点过名setCalled(student);//在控制台上显示被点名的学生信息system.out.println(student);//结束循环break;}}}privateStringgetStudentByID(longid){//这个是读取文件,需要你自己实现的//返回java0803_students.txt文件中对应的学生记录}privatebooleancheckCalled(Stringstudent){//至于是什么样的规则,有你自己定义//我这里给你举个例子//如果这条学生记录中包含一个字符为called的话,表明这名学生被点过名if(student.indexOf("called")!=-1){retrntrue;}returnfalse;}privatevoidsetCalled(Stringstudent){//至于是什么样的规则,有你自己定义//我这里给你举个例子//设置学生已被点名student+="_called";//将这个值重新写回到你的java0803_students.txt文件中,覆盖愿信息!}privatevoidreset(){//判断是否所有学生都被点过名,如果点过名,清空所有学生被点名的标记//这个实现有你自己定义,//这里我给你举个例子//读取文件,判断每一个学生信息是否都标有called//如果都有,执行删除所有called的操作,并保存文件。//如果只有部分没有,则表明本轮点名没有结束,不做任何操作。
}publicstaticvoidmain(String[]args){Stringcon=//接受控制台信息if(con.equals("y")){CallStudentscall=newCallStudents();call.call();}if(con.equals("n")){//结束程序}}}。
java的数组做一个点名系统,求代码篇2
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.util.ArrayList;
importjava.util.Arrays;
importjava.util.List;
importjava.util.Scanner;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JTextField;
publicclasstest{
staticString[]arr;
staticbooleanflag=true;
staticLista;
staticJTextFieldjtf;
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
JFrameframe=newJFrame();
frame.setLayout(newGridLayout(1,2));
JButtonbutton=newJButton("抽奖");
jtf=newJTextField();
frame.add(jtf);
frame.add(button);
a=newArrayList();
arr=newString[]{"张三","李四","王五"};
button.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
inti=0;
fond:
while(true){
Stringstr=arr[(int)(Math.random()*arr.length)];
for(Stringb:a){
if(b.equals(str)){
if(i>=arr.length){
jtf.setText("没有人了");
breakfond;
}
continuefond;
}
i++;
}
a.add(str);
jtf.setText(str);
break;
}
}
});
frame.setSize(500,500);
frame.setLocation(500,500);
frame.setVisible(true);
}
}
java随机点名系统篇3
给楼主改了一下
importjava.awt.*;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.WindowAdapter;
publicclassRandomClassguiextendsWindowAdapterimplementsActionListener{
Framef=newFrame("点名系统");
ButtonstartB;
publicvoiddisplay(){
f.setSize(300,200);
f.setLocation(200,140);
f.setBackground(Color.lightGray);
startB=newButton("开始点名");
startB.addActionListener(this);
f.addWindowListener(this);
f.add(startB);
f.setVisible(true);
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==startB);
String[]namelist={"小明","小白","小黑","小黄","小兰","小草","小丽","兔子","巫妖","船长","剑圣","冰女"};
intrandomNum=(int)(Math.random()*namelist.length);
System.out.println(namelist[randomNum]);
}
publicstaticvoidmain(Stringargs[]){
newRandomClassgui().display();
}
}
其实没有改太多的地方
只是加了一句
f.add(startB);
随机点名系统java篇4
importjava.awt.Font;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.util.ArrayList;importjava.util.List;importjava.util.Random;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;publicclasstest_randomextendsJFrameimplementsActionListener{publicstaticvoidmain(String[]args){test_randomt=newtest_random();t.init();}publicvoidinit(){initListDate();but=newJButton("开始点名");but.setBounds(100,150,100,40);but.addActionListener(this);label=newJLabel("随机点名");label.setBounds(60,20,300,40);label.setFont(newFont("楷体",Font.BOLD,40));show=newJLabel("");show.setBounds(110,80,200,30);show.setFont(newFont("楷体",Font.BOLD,30));reset=newJButton("重新点名");reset.setBounds(203,246,90,25);reset.addActionListener(this);add(but);add(label);add(show);add(reset);setLayout(null);setVisible(true);setResizable(false);setBounds(100,100,300,300);setTitle("点名");(JFrame.EXIT_ON_CLOSE);}publicvoidinitListDate(){//在这个地方添加姓名就可以了list.add("刘天廷");list.add("孔老二");list.add("张三");list.add("李四");list.add("王五");list.add("麻六");list.add("冯七");list.add("京八");list.add("茅台九");}publicvoidactionPerformed(ActionEvente){/*确保每人选一次*/Objectobj=e.getSource();if(obj==but){if(list.size()==0){JOptionPane.showMessageDialog(null,"没有人了!");return;}else{Randomran=newRandom();intnum=ran.nextInt(list.size());show.setText(list.get(num));list.remove(num);}}if(obj==reset){show.setText("");initListDate();}}privateJButtonbut;privateJLabellabel;privateJLabelshow;privateJButtonreset;privateListlist=newArrayList();}。
java随机点名系统篇5
给楼主改了一下importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.WindowAdapter;publicclassRandomClassguiextendsWindowAdapterimplementsActionListener{Framef=newFrame("点名系统");ButtonstartB;publicvoiddisplay(){f.setSize(300,200);f.setLocation(200,140);f.setBackground(Color.lightGray);startB=newButton("开始点名");startB.addActionListener(this);f.addWindowListener(this);f.add(startB);f.setVisible(true);}publicvoidactionPerformed(ActionEvente){if(e.getSource()==startB);String[]namelist={"小明","小白","小黑","小黄","小兰","小草","小丽","兔子","巫妖","船长","剑圣","冰女"};intrandomNum=(int)(Math.random()*namelist.length);System.out.println(namelist[randomNum]);}publicstaticvoidmain(Stringargs[]){newRandomClassgui().display();}}其实没有改太多的地方只是加了一句f.add(startB);。
Java怎么用循环做一个点名机篇6
publicclassCheckName(){
privateString[]name=newString[50];//里面写上你们班的人数,比如说50
publicstaticvoidmain(Stringargs[]){
Scannerin=newScanner(System.out);
for(inti=1;i<=50;i++){
System.out.println("输入第"+i+"个人名");
String[i-1]=in.nextline();//输入信息
}
for(inti=1;i<=50;i++){
System.out.println(String[i-1]);
}
}
JAVA编程(随机点名程序),高手来篇7
代码如下,需要建立两个txt,一个为a.txt,用来保存原有名单,另外一个为b.txt用来保存点名后的名单,在运行时可选,是否继续上次点名还是开始新的点名,程序完整,放入两个txt文件后即可运行,请检测importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.OutputStreamWriter;importjava.util.ArrayList;importjava.util.List;importjava.util.Scanner;publicclassStudent{ListstuList=newArrayList();/***点名*@throwsIOException*/publicvoidcalling()throwsIOException{while(true){System.out.println("点名请按【Y】,退出请按【N】:");BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));Stringinput=br.readLine();if(input.toLowerCase().equals("y")){intnoNum=(int)(Math.random()*this.stuList.size());Stringname=(String)this.stuList.get(noNum);this.stuList.remove(noNum);System.out.println("当前点名用户为:"+name);}elseif(input.toLowerCase().equals("n")){Strings;Filef=newFile("b.txt");FileOutputStreamfos=newFileOutputStream(f);BufferedWriterbw=newBufferedWriter(newOutputStreamWriter(fos));while(stuList.size()!=0){Stringname=(String)stuList.get(0);System.out.println("存入name="+name);bw.write(name);bw.newLine();stuList.remove(0);}bw.flush();bw.close();break;}}}/***读入学生信息*@paramfileName*@return*@throwsException*/publicvoidreadStudent(StringfileName)throwsException{Scannersc=newScanner(newFile(fileName)).useDelimiter("\n");intcount=0;while(sc.hasNext()){count++;Stringname=sc.next();System.out.println(count+"="+name);this.stuList.add(newString(name));}}/***存入学生信息*@paramargs*@throwsIOException*/publicstaticvoidmain(String[]args)throwsException{Studentstu=newStudent();System.out.println("开始新的点名【1】,继续上次点名【2】:");BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));Stringinput=br.readLine();StringnewFileName="a.txt";StringoldFileName="b.txt";if(input.toLowerCase().equals("1")){stu.readStudent(newFileName);}elseif(input.toLowerCase().equals("2")){stu.readStudent(oldFileName);}stu.calling();}}。