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ố");
}
}