Untitled
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); } } }