package cslg;
public class Student {
private int id;
private String name;
private int age;
private String place;
public Student(int id, String name, int age, String place) {
super();
this.id = id;
this.name = name;
this.age = age;
this.place = place;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPlace() {
return place;
}
public void setPlace(String place) {
this.place = place;
}
}
package cslg;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentManager {
private static final File students = new File("students.txt");
public static void main(String[] args) {
ArrayList<Student> arrayList = new ArrayList<>();
try{
if(!students.exists()) {
students.createNewFile();
}
readFile(students, arrayList);
}catch (IOException e) {
e.printStackTrace();
}
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 scanner = new Scanner(System.in);
String choice = scanner.nextLine();
switch (choice) {
case "1":
findAllStudent(arrayList);
break;
case "2":
addStudent(arrayList,scanner);
break;
case "3":
deleteStudent(arrayList,scanner);
break;
case "4":
updateStudent(arrayList,scanner);
break;
case "5":
System.out.println("谢谢您的使用");
System.exit(0);
default:
System.out.println("请重新选择");
break;
}
}
}
public static void findAllStudent(ArrayList<Student> arrayList) {
if(arrayList.isEmpty())
System.out.println("未找到任何学生,请重新选择");
else {
System.out.println("学号\t姓名\t年龄\t居住地");
for(Student student:arrayList) {
System.out.println(student.getId()+"\t"+student.getName()+"\t"+student.getAge()+"\t"+student.getPlace());
}
}
System.out.println();
}
public static void addStudent(ArrayList<Student> arrayList,Scanner scanner) {
System.out.println("请输入学生学号:");
int id = scanner.nextInt();
System.out.println("请输入学生姓名:");
String name = scanner.next();
System.out.println("请输入学生年龄:");
int age = scanner.nextInt();
System.out.println("请输入学生居住地:");
String place = scanner.next();
Student student = new Student(id, name, age, place);
arrayList.add(student);
writeFile(students, arrayList);
System.out.println("添加成功");
}
public static void deleteStudent(ArrayList<Student> arrayList,Scanner scanner) {
System.out.println("请输入要删除的学生学号:");
int index = -1;
int id = scanner.nextInt();
for(int i=0;i<arrayList.size();i++) {
if(arrayList.get(i).getId() == id) {
index = i;
}
}
if(index == -1)
System.out.println("未找到学生,请重新选择");
else {
arrayList.remove(index);
writeFile(students, arrayList);
System.out.println("删除成功");
}
}
public static void updateStudent(ArrayList<Student> arrayList,Scanner scanner) {
System.out.println("请输入要修改的学生学号:");
int flag = 0;
int id = scanner.nextInt();
for(Student student:arrayList) {
if(student.getId() == id) {
System.out.println("请输入新的姓名:");
String newName = scanner.next();
System.out.println("请输入新的年龄:");
int newAge = scanner.nextInt();
System.out.println("请输入新的居住地:");
String newPlace = scanner.next();
student.setName(newName);
student.setAge(newAge);
student.setPlace(newPlace);
flag = 1;
}
}
if(flag == 0)
System.out.println("未找到学生,请重新选择");
else {
writeFile(students, arrayList);
System.out.println("修改成功");
}
}
public static void readFile(File file,ArrayList<Student> arrayList) {
try{
BufferedReader br = new BufferedReader(new FileReader(file));
String student = br.readLine();
while(student!=null) {
String[] infors = student.split(",");
Student newStudent = new Student(Integer.parseInt(infors[0]), infors[1], Integer.parseInt(infors[2]), infors[3]);
arrayList.add(newStudent);
student = br.readLine();
}
br.close();
}catch (Exception e) {
e.printStackTrace();
}
}
public static void writeFile(File file,ArrayList<Student> arrayList) {
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
for(Student student : arrayList) {
bw.write(student.getId()+","+student.getName()+","+student.getAge()+","+student.getPlace());
bw.newLine();
bw.flush();
}
bw.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}