Hệ thống quản lý sinh viên với Java

Quản lý đăng nhập và người dùng

Lớp Người dùng

Thuộc tính: tên đăng nhập, mật khẩu, số CMND, số điện thoại

Giao diện chào mừng

public class HeThongQuanLy {
    public static void hienThiManHinhChao(ArrayList<NguoiDung> danhSach) {
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("Chào mừng đến hệ thống quản lý sinh viên");
            System.out.println("Lựa chọn: 1.Đăng nhập 2.Đăng ký 3.Quên mật khẩu");
            String luaChon = scanner.next();
            switch (luaChon) {
                case "1" -> dangNhap(danhSach);
                case "2" -> dangKy(danhSach);
                case "3" -> quenMatKhau(danhSach);
                default -> System.out.println("Vui lòng nhập số từ 1 đến 3");
            }
        }
    }
}

Chức năng đăng ký

Kiểm tra tên đăng nhập

public static boolean kiemTraTenDangNhap(String tenDangNhap) {
    int doDai = tenDangNhap.length();
    if (doDai < 3 || doDai > 15) return false;
    
    // Kiểm tra chỉ chứa chữ và số
    for (int i = 0; i < doDai; i++) {
        char kyTu = tenDangNhap.charAt(i);
        if (!Character.isLetterOrDigit(kyTu)) return false;
    }
    
    // Kiểm tra có ít nhất một chữ cái
    for (int i = 0; i < doDai; i++) {
        if (Character.isLetter(tenDangNhap.charAt(i))) return true;
    }
    return false;
}

Kiểm tra số CMND

public static boolean kiemTraCMND(String cmnd) {
    if (cmnd.length() != 18) return false;
    if (cmnd.charAt(0) == '0') return false;
    
    // Kiểm tra 17 ký tự đầu là số
    for (int i = 0; i < 17; i++) {
        if (!Character.isDigit(cmnd.charAt(i))) return false;
    }
    
    // Kiểm tra ký tự cuối
    char kyTuCuoi = cmnd.charAt(17);
    return Character.isDigit(kyTuCuoi) || kyTuCuoi == 'X' || kyTuCuoi == 'x';
}

Chức năng đăng nhập

public static void dangNhap(ArrayList<NguoiDung> danhSach) {
    Scanner scanner = new Scanner(System.in);
    for (int i = 0; i < 3; i++) {
        System.out.print("Tên đăng nhập: ");
        String tenDangNhap = scanner.next();
        System.out.print("Mật khẩu: ");
        String matKhau = scanner.next();
        
        String maXacThuc = taoMaXacThuc();
        System.out.println("Mã xác thực: " + maXacThuc);
        System.out.print("Nhập mã xác thực: ");
        String nhapMa = scanner.next();
        
        if (!maXacThuc.equalsIgnoreCase(nhapMa)) {
            System.out.println("Mã xác thực không đúng");
            continue;
        }
        
        if (xacThucNguoiDung(danhSach, tenDangNhap, matKhau)) {
            System.out.println("Đăng nhập thành công");
            break;
        } else {
            System.out.println("Sai tên đăng nhập hoặc mật khẩu");
        }
    }
}

Quản lý sinh viên

Lớp Sinh viên

Thuộc tính: mã số, họ tên, tuổi, địa chỉ

Menu chính

public static void hienThiMenuChinh(ArrayList<SinhVien> danhSach) {
    Scanner scanner = new Scanner(System.in);
    while (true) {
        System.out.println("--- HỆ THỐNG QUẢN LÝ SINH VIÊN ---");
        System.out.println("1. Thêm sinh viên");
        System.out.println("2. Xóa sinh viên");
        System.out.println("3. Sửa thông tin");
        System.out.println("4. Xem danh sách");
        System.out.println("5. Thoát");
        System.out.print("Lựa chọn: ");
        
        int luaChon = scanner.nextInt();
        switch (luaChon) {
            case 1 -> themSinhVien(danhSach);
            case 2 -> xoaSinhVien(danhSach);
            case 3 -> suaSinhVien(danhSach);
            case 4 -> hienThiDanhSach(danhSach);
            case 5 -> System.exit(0);
            default -> System.out.println("Lựa chọn không hợp lệ");
        }
    }
}

Thêm sinh viên

public static void themSinhVien(ArrayList<SinhVien> danhSach) {
    Scanner scanner = new Scanner(System.in);
    SinhVien sv = new SinhVien();
    
    System.out.print("Mã số: ");
    sv.setMaSo(scanner.next());
    System.out.print("Họ tên: ");
    sv.setHoTen(scanner.next());
    System.out.print("Tuổi: ");
    sv.setTuoi(scanner.nextInt());
    System.out.print("Địa chỉ: ");
    sv.setDiaChi(scanner.next());
    
    if (tonTaiMaSo(danhSach, sv.getMaSo())) {
        System.out.println("Mã số đã tồn tại");
    } else {
        danhSach.add(sv);
        System.out.println("Thêm thành công");
    }
}

Hiển thị danh sách

public static void hienThiDanhSach(ArrayList<SinhVien> danhSach) {
    if (danhSach.isEmpty()) {
        System.out.println("Danh sách trống");
        return;
    }
    
    System.out.println("Mã số\tHọ tên\tTuổi\tĐịa chỉ");
    for (SinhVien sv : danhSach) {
        System.out.println(sv.getMaSo() + "\t" + sv.getHoTen() + 
                         "\t" + sv.getTuoi() + "\t" + sv.getDiaChi());
    }
}

Xóa sinh viên

public static void xoaSinhVien(ArrayList<SinhVien> danhSach) {
    Scanner scanner = new Scanner(System.in);
    System.out.print("Nhập mã số cần xóa: ");
    String maSo = scanner.next();
    
    int viTri = timViTriTheoMa(danhSach, maSo);
    if (viTri != -1) {
        danhSach.remove(viTri);
        System.out.println("Xóa thành công");
    } else {
        System.out.println("Không tìm thấy mã số");
    }
}

Thẻ: Java ArrayList Scanner System.out.println string

Đăng vào ngày 25 tháng 9 lúc 11:48