要求:1、添加学生 2、删除指定学号的学生 3、修改指定学号的成绩
4、查找指定学号的信息 5、打印所有学生的信息 6、退出
步骤:1、定义一个学生类,类中包含学号、姓名、成绩
package studentManage;
public class Student {
private String no;
private String name;
private String score;
public Student() {
super();
}
public Student(String no, String name, String score) {
super();
this.no = no;
this.name = name;
this.score = score;
}
@Override
public String toString() {
return "学号:" + no + ", 姓名:" + name + ", 成绩:" + score;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getScore() {
return score;
}
public void setScore(String score) {
this.score = score;
}
}
2、生成一个文件,用来存放学生信息(假入现有三个同学,方便后续操作)
学号:001, 姓名:张, 成绩:90
学号:002, 姓名:李, 成绩:89
学号:003, 姓名:王, 成绩:88
3、设计主程序
package studentManage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
public class StudentManage {
//定义列表,列表元素为Student类成员
static ArrayList<Student> list = new ArrayList<Student>();
public static void main(String[] arg) throws FileNotFoundException {
readFile();//程序开始时读取系统文件
//选择功能的实现
Scanner scanner = new Scanner(System.in);
System.out.println("欢迎使用学生管理系统!");
do {
System.out
.println("1、添加学生 2、删除指定学号的学生 3、修改指定学号的成绩 4、查找指定学号的信息 5、打印所有的学生信息 6、退出");
System.out.println("请选择您所需的功能:");
int i = scanner.nextInt();
switch (i) {
case 1:
addStudent();
break;
case 2:
deleteStudent();
break;
case 3:
editStudent();
break;
case 4:
seekStudent();
break;
case 5:
printStudent();
break;
case 6:
saveStudent();
System.exit(0);
break;
default:
System.out.println("输入错误,请重新输入!");
break;
}
} while (true);
}
//读取文件
private static void readFile() throws FileNotFoundException {
Scanner scanner =new Scanner(new File("student.txt"));
while(scanner.hasNextLine()){
String s=scanner.nextLine();
String[] ss=s.split("[, ]");//文件中的每一行内容由空格分割为字符串数组
Student student=new Student(ss[0], ss[1],ss[2] );//将字符串数组赋值给student
list.add(student);//把student添加到列表中
}
}
//存取学生信息到文件
private static void saveStudent() throws FileNotFoundException {
PrintStream psOld =System.out;//存取输出路径
System.setOut(new PrintStream(new File("student.txt")));//设置新的输出路径到文件
Iterator it=list.iterator();//迭代列表
while(it.hasNext()){
Object object=it.next();
System.out.println(object);
}
System.setOut(psOld);//恢复原来的输出路径
}
//查找指定学号的学生
private static void seekStudent() {
String n = null;
System.out.println("请输入指定的学号:");
n = new Scanner(System.in).nextLine();
Iterator<Student> it = list.iterator();
while (it.hasNext()) {
Student student = it.next();
if (n.equals(student.getNo())) {
System.out.println(student.toString());
}
}
}
//输出所有的学生信息(使用foreach循环)
private static void printStudent() {
for (Student student : list) {
System.out.println(student.toString());
}
}
//修改指定学号学生的信息
private static void editStudent() {
String n = null;
String s = null;
System.out.println("请输入指定的学号:");
n = new Scanner(System.in).nextLine();
Iterator<Student> it = list.iterator();
while (it.hasNext()) {
Student student = it.next();
if (n.equals(student.getNo())) {
System.out.println("请输入修改后的成绩:");
s = new Scanner(System.in).nextLine();
student.setScore(s);
}
}
}
//删除指定学号的学生
private static void deleteStudent() {
String n = null;
System.out.println("请输入指定的学号:");
n = new Scanner(System.in).nextLine();
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getNo().equals(n)) {
list.remove(i);
break;
}
}
}
//添加学生
public static void addStudent() {
System.out.println("请依次输入新同学的学号、姓名、成绩:");
String s = new Scanner(System.in).nextLine();
String[] ss = s.split("[, ]");
Student student = new Student(ss[0], ss[1], ss[2]);
list.add(student);
}
}