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