Untitled

mail@pastecode.io avatarunknown
plain_text
a month ago
4.8 kB
0
Indexable
Never
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;

class Student implements Serializable {
    private String maSV;
    private String hoten;
    private int nhom;

    public Student(String maSV, String hoten, int nhom) {
        this.maSV = maSV;
        this.hoten = hoten;
        this.nhom = nhom;
    }

    // Getter and setter methods...

    public String getMaSV() {
        return maSV;
    }

    public void setMaSV(String maSV) {
        this.maSV = maSV;
    }

    public String getHoten() {
        return hoten;
    }

    public void setHoten(String hoten) {
        this.hoten = hoten;
    }

    public int getNhom() {
        return nhom;
    }

    public void setNhom(int nhom) {
        this.nhom = nhom;
    }

    @Override
    public String toString() {
        return "Mã SV: " + maSV + ", Họ tên: " + hoten + ", Nhóm: " + nhom;
    }
}

public class StudentManagementApp {
    private static final String FILE_NAME = "students.dat";

    public static void main(String[] args) {
        ArrayList<Student> studentList = loadStudentData();

        Scanner scanner = new Scanner(System.in);
        int choice;

        do {
            System.out.println("1. Thêm sinh viên");
            System.out.println("2. Cập nhật sinh viên");
            System.out.println("3. Hiển thị danh sách sinh viên");
            System.out.println("4. Lưu và thoát");
            System.out.print("Chọn: ");
            choice = scanner.nextInt();
            scanner.nextLine(); // Consume the newline character

            switch (choice) {
                case 1:
                    addStudent(studentList, scanner);
                    break;
                case 2:
                    updateStudent(studentList, scanner);
                    break;
                case 3:
                    displayStudentList(studentList);
                    break;
                case 4:
                    saveStudentData(studentList);
                    break;
                default:
                    System.out.println("Lựa chọn không hợp lệ.");
            }
        } while (choice != 4);
    }

    private static ArrayList<Student> loadStudentData() {
        ArrayList<Student> studentList = new ArrayList<>();

        try (FileInputStream fis = new FileInputStream(FILE_NAME);
             ObjectInputStream ois = new ObjectInputStream(fis)) {
            studentList = (ArrayList<Student>) ois.readObject();
        } catch (IOException | ClassNotFoundException e) {
            // Ignore if the file doesn't exist or couldn't be loaded
        }

        return studentList;
    }

    private static void saveStudentData(ArrayList<Student> studentList) {
        try (FileOutputStream fos = new FileOutputStream(FILE_NAME);
             ObjectOutputStream oos = new ObjectOutputStream(fos)) {
            oos.writeObject(studentList);
            System.out.println("Dữ liệu đã được lưu.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static void addStudent(ArrayList<Student> studentList, Scanner scanner) {
        System.out.print("Nhập mã SV: ");
        String maSV = scanner.nextLine();
        System.out.print("Nhập họ tên: ");
        String hoten = scanner.nextLine();
        System.out.print("Nhập nhóm: ");
        int nhom = scanner.nextInt();
        scanner.nextLine(); // Consume the newline character

        Student newStudent = new Student(maSV, hoten, nhom);
        studentList.add(newStudent);
        System.out.println("Sinh viên đã được thêm.");
    }

    private static void updateStudent(ArrayList<Student> studentList, Scanner scanner) {
        System.out.print("Nhập mã SV của sinh viên cần cập nhật: ");
        String maSV = scanner.nextLine();

        boolean found = false;
        for (Student student : studentList) {
            if (student.getMaSV().equals(maSV)) {
                System.out.print("Nhập họ tên mới: ");
                String hoten = scanner.nextLine();
                System.out.print("Nhập nhóm mới: ");
                int nhom = scanner.nextInt();
                scanner.nextLine(); // Consume the newline character

                student.setHoten(hoten);
                student.setNhom(nhom);
                System.out.println("Sinh viên đã được cập nhật.");
                found = true;
                break;
            }
        }

        if (!found) {
            System.out.println("Không tìm thấy sinh viên có mã SV đã nhập.");
        }
    }

    private static void displayStudentList(ArrayList<Student> studentList) {
        for (Student student : studentList) {
            System.out.println(student);
        }
    }
}