学生管理系统IO版

(不完善,大体逻辑出来了代码健壮性还不好,将继续完善)

//学生类

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("【失败】删除失败");
                }
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值