[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;
}
}
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!!!");
}
}
}
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);
}
}
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);
}
}
/**
* @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
Đăng nhận xét