java随机点名系统 java点名系统怎么写
- 综合知识
- 关注:1.6W次
给楼主改了一下
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
public class RandomClassgui extends WindowAdapter implements ActionListener{
Frame f = new Frame("点名系统");
Button startB;
public void display() {
f.setSize(300,200);
f.setLocation(200,140);
f.setBackground(Color.lightGray);
startB = new Button("开始点名");
startB.addActionListener(this);
f.addWindowListener(this);
f.add(startB);
f.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==startB);
String[] namelist={"小明","小白","小黑","小黄","小兰","小草","小丽","兔子","巫妖","船长","剑圣","冰女"};
int randomNum=(int)(Math.random()*namelist.length);
System.out.println(namelist[randomNum]);
}
public static void main(String args[]){
new RandomClassgui().display();
}
}
其实没有改太多的地方
只是加了一句
f.add(startB);
2.java的数组做一个点名系统,求代码import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class test {
static String[] arr;
static boolean flag=true;
static Lista;
static JTextField jtf;
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame=new JFrame();
frame.setLayout(new GridLayout(1,2));
JButton button = new JButton("抽奖");
jtf = new JTextField();
frame.add(jtf);
frame.add(button);
a = new ArrayList();
arr = new String[]{"张三","李四","王五"};
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
int i=0;
fond:
while(true){
String str = arr[(int)(Math.random()*arr.length)];
for(String b:a){
if(b.equals(str)){
if(i>=arr.length){
jtf.setText("没有人了");
break fond;
}
continue fond;
}
i++;
}
a.add(str);
jtf.setText(str);
break;
}
}
});
frame.setSize(500, 500);
frame.setLocation(500, 500);
frame.setVisible(true);
}
}
3.随机点名系统 javaimport java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List; import java.util.Random; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; public class test_random extends JFrame implements ActionListener{ public static void main(String[] args) { test_random t = new test_random(); t.init(); } public void init(){ initListDate(); but = new JButton("开始点名"); but.setBounds(100,150,100,40); but.addActionListener(this); label = new JLabel("随机点名"); label.setBounds(60,20,300,40); label.setFont(new Font("楷体",Font.BOLD,40)); show = new JLabel(""); show.setBounds(110,80,200,30); show.setFont(new Font("楷体",Font.BOLD,30)); reset = new JButton("重新点名"); 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); } public void initListDate(){ //在这个地方添加姓名就可以了 list.add("刘天廷"); list.add("孔老二"); list.add("张三"); list.add("李四"); list.add("王五"); list.add("麻六"); list.add("冯七"); list.add("京八"); list.add("茅台九"); } public void actionPerformed(ActionEvent e) { /*确保每人选一次*/ Object obj = e.getSource(); if(obj == but){ if(list.size()==0){ JOptionPane.showMessageDialog(null,"没有人了!"); return ; }else{ Random ran = new Random(); int num = ran.nextInt(list.size()); show.setText(list.get(num)); list.remove(num); } } if(obj == reset){ show.setText(""); initListDate(); } } private JButton but ; private JLabel label; private JLabel show; private JButton reset; private List list = new ArrayList(); }。
4.java随机点名系统给楼主改了一下import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;public class RandomClassgui extends WindowAdapter implements ActionListener{ Frame f = new Frame("点名系统"); Button startB; public void display() { f.setSize(300,200); f.setLocation(200,140); f.setBackground(Color.lightGray); startB = new Button("开始点名"); startB.addActionListener(this); f.addWindowListener(this); f.add(startB); f.setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getSource()==startB); String[] namelist={"小明","小白","小黑","小黄","小兰","小草","小丽","兔子","巫妖","船长","剑圣","冰女"}; int randomNum=(int)(Math.random()*namelist.length); System.out.println(namelist[randomNum]); } public static void main(String args[]){ new RandomClassgui().display(); }} 其实没有改太多的地方只是加了一句f.add(startB);。
5.JAVA编程(随机点名程序),高手来代码如下,需要建立两个txt,一个为a.txt,用来保存原有名单,另外一个为b.txt用来保存点名后的名单,在运行时可选,是否继续上次点名还是开始新的点名, 程序完整,放入两个txt文件后即可运行,请检测import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Student { List stuList = new ArrayList(); /** * 点名 * @throws IOException */ public void calling() throws IOException{ while(true){ System.out.println("点名请按【Y】,退出请按【N】:"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String input = br.readLine(); if(input.toLowerCase().equals("y")){ int noNum = (int) (Math.random()*this.stuList.size()); String name = (String) this.stuList.get(noNum); this.stuList.remove(noNum); System.out.println("当前点名用户为:"+name); }else if(input.toLowerCase().equals("n")){ String s; File f=new File("b.txt"); FileOutputStream fos =new FileOutputStream(f); BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(fos)); while (stuList.size() != 0) { String name = (String)stuList.get(0); System.out.println("存入name="+name); bw.write(name); bw.newLine(); stuList.remove(0); } bw.flush(); bw.close(); break; } } } /** * 读入学生信息 * @param fileName * @return * @throws Exception */ public void readStudent(String fileName) throws Exception { Scanner sc = new Scanner(new File(fileName)).useDelimiter("n"); int count = 0; while(sc.hasNext()){ count++; String name = sc.next(); System.out.println(count+"="+name); this.stuList.add(new String(name)); } } /** * 存入学生信息 * @param args * @throws IOException */ public static void main(String[] args) throws Exception { Student stu = new Student(); System.out.println("开始新的点名【1】,继续上次点名【2】:"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String input = br.readLine(); String newFileName = "a.txt"; String oldFileName = "b.txt"; if(input.toLowerCase().equals("1")){ stu.readStudent(newFileName); }else if(input.toLowerCase().equals("2")){ stu.readStudent(oldFileName); } stu.calling(); }}。
6.JAVA编程(随机点名程序),高手来按照你第2点描述,你仅仅是想实现随即顺序点名而已,并不是随即点名。
我给你个解决方案:在每次点中一名学生后,将java0803_students.txt文件中做个标示,表示该学生已经在本轮点名中被点过。直到所有学生都点到后情况这个表示,准备下一轮点名做标记。
下面我给你一段伪代码,包含了 random 的使用方法:public class CallStudents(){ private static Random random = new Random(); public void call(){ // 重新设置学生被点名的标示(根据点名情况) reset(); long value = -1; while (true) { value = random.nextInt(maxValue + 1); // maxValue 是你当前有学生的最大数目//在这里读取当前随即号对应的学生记录 String student = getStudentByID(value); //判断该学生是否被点过名 if(!checkCalled(student)){ // 设置已经点过名 setCalled(student); // 在控制台上显示被点名的学生信息 system.out.println(student); // 结束循环 break; } } } private String getStudentByID(long id){ // 这个是读取文件,需要你自己实现的 // 返回 java0803_students.txt 文件中对应的学生记录 }private boolean checkCalled(String student){ // 至于是什么样的规则,有你自己定义 // 我这里给你举个例子 // 如果这条学生记录中包含 一个字符为 called 的话,表明这名学生被点过名 if(student.indexOf("called") != -1){ retrn true; } return false; }private void setCalled(String student){ // 至于是什么样的规则,有你自己定义 // 我这里给你举个例子 // 设置学生已被点名 student += "_called"; // 将这个值重新写回到你的java0803_students.txt 文件中,覆盖愿信息! }private void reset(){ // 判断是否所有学生都被点过名,如果点过名,清空所有学生被点名的标记 // 这个实现有你自己定义, // 这里我给你举个例子 // 读取文件,判断每一个学生信息是否都标有 called // 如果都有,执行删除所有 called 的操作,并保存文件。 // 如果只有部分没有,则表明本轮点名没有结束,不做任何操作。
}public static void main(String[] args){String con = // 接受控制台信息 if(con.equals("y")){ CallStudents call = new CallStudents(); call.call(); } if(con.equals("n")){ // 结束程序 }}}。
7.Java怎么用循环做一个点名机public class CheckName(){
private String[] name=new String[50];//里面写上你们班的人数,比如说50
public static void main(String args[]){
Scanner in=new Scanner(System.out);
for(int i=1;i<=50;i++){
System.out.println("输入第"+i+"个人名");
String[i-1]=in.nextline();//输入信息
}
for(int i=1;i<=50;i++){
System.out.println(String[i-1]);
}
}
- 文章版权属于文章作者所有,转载请注明 https://shqsg.com/zh-hans/zonghezhishi/4y3kng.html