[Bài tập java căn bản] Chương trình quản lý sinh viên

Chương trình quản lý sinh viên

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

Nhận xét

Bài đăng phổ biến