(不完善,大体逻辑出来了代码健壮性还不好,将继续完善)
//学生类
package com.ithiema.student;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author Mr.liu
* @date 2021年04月19日 22:02
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {
private int id;
private String name;
private Sex sex;
private int age;
}
//枚举性别类
package com.ithiema.student;
/**
* @author Mr.liu
* @date 2021年04月19日 22:11
*/
public enum Sex {
MAN("男"),WOMAN("女");
private String title;
private Sex(String title) {
this.title = title;
}
@Override
public String toString() {
return title;
}
}
//主程序
package com.ithiema.MainApp;
import com.ithiema.student.Sex;
import com.ithiema.student.Student;
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
/**
* @author Mr.liu
* @date 2021年04月20日 9:38
*/
public class MainApp {
//创建文件扫描器,用来接受数据`
static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
while (true) {
System.out.println("--------------------------------------------------------");
System.out.println("1.添加学生 2.查询学生 3.修改学生 4.删除学生 0.退出系统");
System.out.println("--------------------------------------------------------");
System.out.println("请输入您的指令:");
String user = scanner.next();
switch (user) {
case "1":
addStudent();
break;
case "2":
ArrayList<Student> students = readAll();
for (Student student : students) {
System.out.println(student);
}
break;
case "3":
updateStudent();
break;
case "4":
removeStudent();
break;
case "0":
System.out.println("感谢您的使用,再见!");
System.exit(0);
default:
System.out.println("您的输入有误,请重新输入!");
}
}
}
/**
* 添加学生信息
*
* @date 2021/4/20 9:40
*/
private static void addStudent() {
Student stu = new Student();
System.out.println("请输入学生姓名:");
String name = scanner.next();
System.out.println("请输入学生性别:");
String sex = scanner.next();
if ("男".equals(sex)) {
stu.setSex(Sex.MAN);
} else if ("女".equals(sex)) {
stu.setSex(Sex.WOMAN);
}
System.out.println("请输入学生年龄:");
int age = scanner.nextInt();
stu.setName(name);
stu.setAge(age);
ArrayList<Student> students = readAll();
int id = 0;
if (students.size() > 0) {
id = students.get(students.size() - 1).getId();
}
stu.setId(++id);
boolean add = students.add(stu);
if (add == true) {
System.out.println("添加成功");
} else {
System.out.println("添加失败");
}
Write(students);
}
public static void Write(ArrayList<Student> stuLIst) {
try (BufferedWriter bdf = new BufferedWriter(new FileWriter("student.txt"))) {
for (Student student : stuLIst) {
String str = student.getId() + "," + student.getName() + "," + student.getSex() + "," + student.getAge();
bdf.write(str);
bdf.newLine();
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static ArrayList<Student> readAll() {
ArrayList<Student> stuList = new ArrayList<>();
File file = new File("student.txt");
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
return stuList;
}
try (BufferedReader bufferedReader = new BufferedReader(new FileReader("student.txt"))) {
String stu = null;
while ((stu = bufferedReader.readLine()) != null) {
String[] s = stu.split(",");
Student student = new Student();
student.setId(Integer.valueOf(s[0]));
student.setName(s[1]);
if (s[2].equals("男")) {
student.setSex(Sex.MAN);
} else if (s[2].equals("女")) {
student.setSex(Sex.WOMAN);
}
student.setAge(Integer.valueOf(s[3]));
stuList.add(student);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return stuList;
}
private static void updateStudent() {
System.out.println("请输入您要修改的学生学号:");
int id = scanner.nextInt();
Student stu = new Student();
ArrayList<Student> stuList = readAll();
for (Student student : stuList) {
if (student.getId() == id) {
System.out.println("请输入新的学生姓名:");
String name = scanner.next();
System.out.println("请输入新的性别:");
String sex = scanner.next();
if ("男".equals(sex)) {
stu.setSex(Sex.MAN);
} else if ("女".equals(sex)) {
stu.setSex(Sex.WOMAN);
}
System.out.println("请输入新的年龄:");
int age = scanner.nextInt();
stu.setName(name);
stu.setAge(age);
stuList.remove(student);
stuList.add(stu);
Write(stuList);
}
}
}
private static void removeStudent() {
ArrayList<Student> stu = readAll();
System.out.println("请输入您要删除的学生学号:");
int i = scanner.nextInt();
for (Student student : stu) {
if (student.getId() == i) {
boolean remove = stu.remove(student);
//重新写入,将新数据覆盖旧数据
Write(stu);
if (remove == true) {
System.out.println("【成功】删除成功");
} else {
System.out.println("【失败】删除失败");
}
}
}
}
}