public static void main(String[] args) throws IOException {
ArrayList<Student> array = new ArrayList<>();
String fileName = "ab.txt"; while (true) {
System.out.println("--------欢迎来到学生管理系统--------");
System.out.println("1.查看所有学生");
System.out.println("2.添加学生");
System.out.println("3.删除学生");
System.out.println("4.修改学生");
System.out.println("5.退出");
System.out.println("请输入你的选择");
Scanner sc = new Scanner(System.in);
String s = sc.nextLine(); switch (s) { case "1": findAllStudent(fileName); break; case "2": addStudent(fileName); break; case "3": removeStudent(fileName); break; case "4": changeStudent(fileName); break; case "5":
fault:
System.out.println("谢谢你的使用");
System.exit(0); break;
}
}
}
public static void changeStudent(String fileName) throws IOException {//修改学生方法 ArrayList<Student> one = new ArrayList<>(); readData(fileName, one);
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要修改的学生学号");
String num = sc.nextLine();
Student a = new Student(); boolean flag1 = false; for (int i = 0; i < one.size(); i++) {
a = one.get(i); if (num.equals(a.getId())) {
one.remove(a);
String id; while (true) {
System.out.println("请输入学号");
id = sc.nextLine(); boolean flag = false; for (int ii = 0; ii < one.size(); ii++) {
Student b = one.get(ii); if (b.getId().equals(id)) {
flag = true; break;
}
} if (flag) {
System.out.println("您输入的学号已被占用,请重试");
} else { break;
}
}
System.out.println("请输入姓名");
String s = sc.nextLine();
System.out.println("请输入居住地");
String s3 = sc.nextLine();
System.out.println("请输入年龄");
String s2 = sc.nextLine();
System.out.println("++++++++++++++++++++");
Student b = new Student();
b.setId(id);
b.setName(s);
b.setAge(s2);
b.setAddress(s3);
one.add(b); writeData(fileName, one);
System.out.println("修改学生成功");
flag1=true; break;
}
} if (!flag1){
System.out.println("查无此人");
}
}
public static void writeData(String fileName, ArrayList<Student> one) throws IOException {//此为将数据从集合中写入文本中 BufferedWriter bw = new BufferedWriter(new FileWriter(fileName)); for (int i = 0; i < one.size(); i++) {
Student a = one.get(i);
StringBuilder sb = new StringBuilder();
sb.append(a.getId()).append(",").append(a.getName()).append(",").append(a.getAge()).append(",").append(a.getAddress());
bw.write(sb.toString());
bw.newLine();
bw.flush();
}
bw.close();
}
public static void removeStudent(String fileName) throws IOException {//此为删除学生的方法 Scanner sc = new Scanner(System.in);
System.out.println("请输入你要删除学生的学号");
String num = sc.nextLine();
ArrayList<Student> one = new ArrayList<>(); readData(fileName, one);
Student a = new Student(); boolean flag = false; for (int i = 0; i < one.size(); i++) {
a = one.get(i); if (num.equals(a.getId())) {
one.remove(a);
System.out.println("删除学生成功");
flag=true; break;
}
} if (!flag){
System.out.println("查无此人");
} writeData(fileName, one);
}
public static void readData(String fileName, ArrayList<Student> one) throws IOException {//此方法为将文本中保存的数据读取到集合中 BufferedReader br = new BufferedReader(new FileReader(fileName));
String a; while ((a = br.readLine()) != null) {
String[] b = a.split(",");
Student c = new Student();
c.setId(b[0]);
c.setName(b[1]);
c.setAge(b[2]);
c.setAddress(b[3]);
one.add(c);
}
br.lines();
br.close();
}
public static void addStudent(String fileName) throws IOException {//此为添加学生的方法 ArrayList<Student> one = new ArrayList<>(); readData(fileName, one);
BufferedWriter bw = new BufferedWriter(new FileWriter(fileName, true));
Scanner sc = new Scanner(System.in);
String id; while (true) {
System.out.println("请输入学号");
id = sc.nextLine(); boolean flag = false; for (int i = 0; i < one.size(); i++) {
Student a = one.get(i); if (a.getId().equals(id)) {
flag = true; break;
}
} if (flag) {
System.out.println("您输入的学号已被占用,请重试");
} else { break;
}
}
System.out.println("请输入姓名");
String s = sc.nextLine();
System.out.println("请输入居住地");
String s3 = sc.nextLine();
System.out.println("请输入年龄");
String s2 = sc.nextLine();
System.out.println("++++++++++++++++++++");
Student a = new Student();
a.setId(id);
a.setName(s);
a.setAge(s2);
a.setAddress(s3);
one.add(a); writeData(fileName, one);
}
public static void findAllStudent(String fileName) throws IOException {//此为查看所有学生信息的方法 ArrayList<Student> one = new ArrayList<>(); readData(fileName, one); if (one.size() == 0) {
System.out.println("没有信息,请重新选择");
} else {
System.out.println("姓名" + "\t" + "学号" + "\t" + "年龄" + "\t" + "地址"); for (int i = 0; i < one.size(); i++) {
Student c = new Student();
c = one.get(i);
System.out.println(c.getName() + "\t" + c.getId() + "\t" + c.getAge() + "\t" + c.getAddress());
}
}
}
}