Bài toán về quản lý sinh viên trong java năm 2024

Xây dựng chương trình để quản lý sinh viên với các chức năng:

  • Khởi tạo danh sách sinh viên
  • Thêm / chỉnh sửa sinh viên
  • Tìm kiếm sinh viên
  • Sắp xếp danh sách sinh viên
  • Xuất danh sách sinh viên ra màn hình Chương trình sẽ bao gồm 4 Class:
  • Class SinhVien để lưu thông tin cho sinh viên.
  • Class QuanLy chứa các thuộc tính để quản lý sinh viên như thêm, sửa, sắp xếp,...
  • Class xuLyTen để sắp xếp danh sách sinh viên theo tên.
  • Class QuanLySinhVien chứa hàm main.

Class SinhVien:

public class SinhVien {

private int maSv; private String hoTen; private String gioiTinh; private String namSinh; private String diaChi; private float gpa;

public SinhVien() {

}

public SinhVien(int maSv, String hoTen, String gioiTinh, String namSinh, String diaChi, Float gpa) { this.maSv = maSv; this.hoTen = hoTen; this.gioiTinh = gioiTinh; this.namSinh = namSinh; this.diaChi = diaChi; this.gpa = gpa; }

public int getMaSv() { return maSv; }

public void setMaSv(int maSv) { this.maSv = maSv; }

public void setHoTen(String hoTen) { this.hoTen = hoTen; }

public String getHoTen() { return hoTen; }

public void setGioiTinh(String gioiTinh) { this.gioiTinh = gioiTinh; }

public String getGioiTinh() { return gioiTinh; }

public void setNamSinh(String namSinh) { this.namSinh = namSinh; }

public String getNamSinh() { return namSinh; }

public void setDiaChi(String diaChi) { this.diaChi = diaChi; }

public String getDiaChi() { return diaChi; }

public void setGpa(float gpa) { this.gpa = gpa; }

public float getGpa() { return gpa; } }

Class QuanLy:

public class QuanLy {

Scanner sc = new Scanner(System.in); LinkedList<SinhVien> sinhVien_list = new LinkedList<>();

public void Init() { sinhVien_list.clear(); }

private String nhapTen() { System.out.print("Nhap ten sinh vien: "); return sc.nextLine(); }

private String nhapGioiTinh() { System.out.print("Nhap gioi tinh: "); return sc.nextLine(); }

private String nhapNamSinh() { System.out.print("Nhap nam sinh: "); return sc.nextLine(); }

private String nhapDiaChi() { System.out.print("Nhap dia chi: "); return sc.nextLine(); }

private float nhapGpa() { System.out.print("Nhap diem GPA: "); return sc.nextFloat(); }

private void swap(int i, int j) { String name = sinhVien_list.get(i).getHoTen(); sinhVien_list.get(i).setHoTen(sinhVien_list.get(j).getHoTen()); sinhVien_list.get(j).setHoTen(name); String gt = sinhVien_list.get(i).getGioiTinh(); sinhVien_list.get(i).setGioiTinh(sinhVien_list.get(j).getGioiTinh()); sinhVien_list.get(j).setGioiTinh(gt); String ns = sinhVien_list.get(i).getNamSinh(); sinhVien_list.get(i).setNamSinh(sinhVien_list.get(j).getNamSinh()); sinhVien_list.get(j).setNamSinh(ns); String dc = sinhVien_list.get(i).getDiaChi(); sinhVien_list.get(i).setDiaChi(sinhVien_list.get(j).getDiaChi()); sinhVien_list.get(j).setDiaChi(dc); Float ga = sinhVien_list.get(i).getGpa(); sinhVien_list.get(i).setGpa(sinhVien_list.get(j).getGpa()); sinhVien_list.get(j).setGpa(ga); }

public void themSinhVien() { System.out.print("Nhap so sinh vien can them vao sanh sach: "); int soSv = sc.nextInt(); for (int i = 0; i < soSv; i++) { int maSv = (sinhVien_list.size() > 0) ? (sinhVien_list.size() + 1) : 1; sc.nextLine(); System.out.println("--Sinh_Viên_" + maSv + "----"); String hoTen = nhapTen(); String gioiTinh = nhapGioiTinh(); String namSinh = nhapNamSinh(); String diaChi = nhapDiaChi(); Float gpa = nhapGpa(); SinhVien sv = new SinhVien(maSv, hoTen, gioiTinh, namSinh, diaChi, gpa); sinhVien_list.add(sv); } }

public void inDanhSach() { System.out.println("-DANH SÁCH SINH VIÊN---"); for (int i = 0; i < sinhVien_list.size(); i++) { SinhVien sv = new SinhVien(); sv = sinhVien_list.get(i); System.out.println(sv.getMaSv() + " Ho&ten: " + sv.getHoTen() + " Gioi tinh: " + sv.getGioiTinh() + " Nam sinh: " + sv.getNamSinh() + " Dia chi: " + sv.getDiaChi() + " GPA: " + sv.getGpa()); } }

public void chinhSua() { System.out.println("Nhap ma sinh vien can chinh sua: "); int maSv = sc.nextInt(); sc.nextLine(); boolean check = false; for (int i = 0; i < sinhVien_list.size(); i++) { if (maSv == sinhVien_list.get(i).getMaSv()) { check = true; System.out.println("Nhap thong tin sinh vien can chinh sua: "); sinhVien_list.get(i).setHoTen(nhapTen()); sinhVien_list.get(i).setGioiTinh(nhapGioiTinh()); sinhVien_list.get(i).setNamSinh(nhapNamSinh()); sinhVien_list.get(i).setDiaChi(nhapDiaChi()); sinhVien_list.get(i).setGpa(nhapGpa()); break; } } if (!check) { System.out.println("Ma sv khong hop le!"); } }

public void sapXepGpa() { for (int i = 0; i < sinhVien_list.size() - 1; i++) { for (int j = i + 1; j < sinhVien_list.size(); j++) { if (sinhVien_list.get(i).getGpa() > sinhVien_list.get(j).getGpa()) { swap(i, j); } } } }

public void sapXepTen() { xuLyTen t = new xuLyTen(); for (int i = 0; i < sinhVien_list.size() - 1; i++) { for (int j = i + 1; j < sinhVien_list.size(); j++) { if (t.sapXep(sinhVien_list.get(i).getHoTen(), sinhVien_list.get(j).getHoTen()) > 0) { swap(i, j); } } } }

public void timKiem() { boolean check = false; System.out.print("Nhap ten sinh vien can tim kiem: "); sc.nextLine(); String name = sc.nextLine(); for (int i = 0; i < sinhVien_list.size(); i++) { if (sinhVien_list.get(i).getHoTen().equals(name)) { System.out.println("-KET QUA TIM KIEM--"); System.out.println(sinhVien_list.get(i).getMaSv() + " Ho&ten: " + sinhVien_list.get(i).getHoTen() + " Gioi tinh: " + sinhVien_list.get(i).getGioiTinh() + " Nam sinh: " + sinhVien_list.get(i).getNamSinh() + " Dia chi: " + sinhVien_list.get(i).getDiaChi() + " GPA: " + sinhVien_list.get(i).getGpa()); check = true; } } if(!check) { System.out.println("Khong tim thay sinh vien!!!"); } } }

Class XuLyTen:

public class xuLyTen {

public String chuanHoa(String name) { name = name.trim(); while (-1 != name.indexOf(" ")) { name = name.replaceAll(" ", " "); } return name; }

private String tachHoTen(String name) { if(!name.contains(" ")) { return name; } int pos = name.lastIndexOf(" "); String firstName = name.substring(pos + 1); String familyName = name.substring(0, pos); name = firstName.concat(" ").concat(familyName); return name; }

public int sapXep(String name1, String name2) { String n1 = tachHoTen(name1); String n2 = tachHoTen(name2); return n1.compareTo(n2); } }

Class Main:

public class QuanLySinhVien2 {

/** * @param args the command line arguments */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); QuanLy ql = new QuanLy(); int menu; do { System.out.println("|---MENU----|"); System.out.println("|1.Khoi tao danh sach |"); System.out.println("|2.Them sinh vien vao danh sach |"); System.out.println("|3.Chinh sua thong tin sinh vien |"); System.out.println("|4.In ra danh sach sinh vien |"); System.out.println("|5.Sap xep theo GPA |"); System.out.println("|6.Sap xep theo ten |"); System.out.println("|7.Tim kiem |"); System.out.println("|0.Thoat |"); System.out.println("|-------|"); System.out.print("Nhap lua chon: "); menu = sc.nextInt(); switch(menu) { case 1: ql.Init(); break; case 2: ql.themSinhVien(); break; case 3: ql.chinhSua(); break; case 4: ql.inDanhSach(); break; case 5: ql.sapXepGpa(); break; case 6: ql.sapXepTen(); break; case 7: ql.timKiem(); break; } } while (menu != 0); } }

Dowload Source

Chủ đề