一、要求:用Java语言编写一个班级点名的程序
二、时间:2015、3、26
三、实现代码:
package dianming;
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 dianming {
List stuList = new ArrayList();
// 点名
public void calling() throws IOException{
while(true){
System.out.println(" 随机点名现在开始!");
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;}
}
}
// 读入学生信息
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));
}
}
//存入学生信息
public static void main(String[] args) throws Exception {
dianming stu = new dianming();
System.out.println("开始新一轮的点名【1】,继续上一轮点名【2】:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
String newFileName = "信管3&4班名单.txt";
String oldFileName = "b.txt";
if(input.toLowerCase().equals("1")){
stu.readStudent(newFileName);
}else if(input.toLowerCase().equals("2")){
stu.readStudent(oldFileName);
}
stu.calling();
}
四、运行结果截图