Java 61. Bài tập quản lý danh sách sinh viên trong Java sử dụng ArrayList



    Bản quyền thuộc về TITV.vn, 
    vui lòng không đăng tải lại nội dung từ trang này.

    Video giải thích chi tiết

    Xây dựng chương trình Quản lý Danh sách sinh viên

    Thông tin Sinh viên gồm có:
    - Mã sinh viên
    - Họ và tên
    - Năm sinh
    - Điểm trung bình

    Yêu cầu:
    - Sử dụng ArrayList
    - Cho phép người dùng chọn lựa và thực hiện:
    1. Thêm sinh viên vào danh sách.
    2. In danh sách sinh viên ra màn hình.
    3. Kiểm tra danh sách có rỗng hay không.
    4. Lấy ra số lượng sinh viên trong danh sách.
    5. Làm rỗng danh sách sinh viên.
    6. Kiểm tra sinh viên có tồn tại trong danh sách hay không, dựa trên mã sinh viên.
    7. Xóa một sinh viên ra khỏi danh sách dựa trên mã sinh viên.
    8. Tìm kiếm tất cả sinh viên dựa trên Tên được nhập từ bàn phím.
    9. Xuất ra danh sách sinh viên có điểm từ cao đến thấp.

     Code chi tiết 
    
    package main;
    
    import java.util.Objects;
    
    public class SinhVien implements Comparable<SinhVien>{
    	private String maSinhVien;
    	private String hoVaTen;
    	private int namSinh;
    	private float diemTrungBinh;
    	
    	
    	public SinhVien(String maSinhVien) {
    		this.maSinhVien = maSinhVien;
    	}
    
    	public SinhVien(String maSinhVien, String hoVaTen, int namSinh, float diemTrungBinh) {
    		this.maSinhVien = maSinhVien;
    		this.hoVaTen = hoVaTen;
    		this.namSinh = namSinh;
    		this.diemTrungBinh = diemTrungBinh;
    	}
    
    	public String getMaSinhVien() {
    		return maSinhVien;
    	}
    
    	public void setMaSinhVien(String maSinhVien) {
    		this.maSinhVien = maSinhVien;
    	}
    
    	public String getHoVaTen() {
    		return hoVaTen;
    	}
    
    	public void setHoVaTen(String hoVaTen) {
    		this.hoVaTen = hoVaTen;
    	}
    
    	public int getNamSinh() {
    		return namSinh;
    	}
    
    	public void setNamSinh(int namSinh) {
    		this.namSinh = namSinh;
    	}
    
    	public float getDiemTrungBinh() {
    		return diemTrungBinh;
    	}
    
    	public void setDiemTrungBinh(float diemTrungBinh) {
    		this.diemTrungBinh = diemTrungBinh;
    	}
    
    	
    	
    	@Override
    	public String toString() {
    		return "SinhVien [maSinhVien=" + maSinhVien + ", hoVaTen=" + hoVaTen + ", namSinh=" + namSinh
    				+ ", diemTrungBinh=" + diemTrungBinh + "]";
    	}
    
    	@Override
    	public int compareTo(SinhVien o) {
    		return this.maSinhVien.compareTo(o.maSinhVien);
    	}
    
    	@Override
    	public int hashCode() {
    		return Objects.hash(diemTrungBinh, hoVaTen, maSinhVien, namSinh);
    	}
    
    	@Override
    	public boolean equals(Object obj) {
    		if (this == obj)
    			return true;
    		if (obj == null)
    			return false;
    		if (getClass() != obj.getClass())
    			return false;
    		SinhVien other = (SinhVien) obj;
    		return Objects.equals(maSinhVien, other.maSinhVien);
    	}
    	
    	
    	
    }
    

    
    package main;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    
    public class DanhSachSinhVien {
    		private ArrayList<SinhVien> danhSach;
    		
    		public DanhSachSinhVien() {
    			this.danhSach = new ArrayList<SinhVien>();
    		}
    		
    		public DanhSachSinhVien(ArrayList<SinhVien> danhSach) {
    			this.danhSach = danhSach;
    		}
    		
    		// 1.	Thêm sinh viên vào danh sách.
    		public void themSinhVien(SinhVien sv) {
    			this.danhSach.add(sv);
    		}
    		
    //		2.	In danh sách sinh viên ra màn hình.
    		public void inDanhSachSinhVien() {
    			for (SinhVien sinhVien : danhSach) {
    				System.out.println(sinhVien);
    			}
    		}
    		
    //		3.	Kiểm tra danh sách có rỗng hay không.
    		public boolean kiemTraDanhSachRong() {
    			return this.danhSach.isEmpty();
    		}
    		
    //		4.	Lấy ra số lượng sinh viên trong danh sách.
    		public int laySoLuongSinhVien() {
    			return this.danhSach.size();
    		}
    		
    //		5.	Làm rỗng danh sách sinh viên.
    		public void lamRongDanhSach() {
    			this.danhSach.removeAll(danhSach);
    		}
    		
    //		6.	Kiểm tra sinh viên có tồn tại trong danh sách hay không, dựa trên mã sinh viên.
    		public boolean kiemTraTonTai(SinhVien sv) {
    			return this.danhSach.contains(sv);
    		}
    		
    //		7.	Xóa một sinh viên ra khỏi danh sách dựa trên mã sinh viên.
    		public boolean xoaSinhVien(SinhVien sv) {
    			return this.danhSach.remove(sv);
    		}
    		
    //		8.	Tìm kiếm tất cả sinh viên dựa trên Tên được nhập từ bàn phím.
    		public void timSinhVien(String ten) {
    			for (SinhVien sinhVien : danhSach) {
    				if(sinhVien.getHoVaTen().indexOf(ten)>=0) {
    					System.out.println(sinhVien);
    				}
    			}
    		}
    //		9.	Xuất ra danh sách sinh viên có điểm từ cao đến thấp.
    		public void sapXepSinhVienGiamDanTheoDiem() {
    			Collections.sort(this.danhSach, new Comparator<SinhVien>() {
    				@Override
    				public int compare(SinhVien sv1, SinhVien sv2) {
    					if(sv1.getDiemTrungBinh()<sv2.getDiemTrungBinh()) {
    						return 1;
    					}else if(sv1.getDiemTrungBinh()>sv2.getDiemTrungBinh()) {
    						return -1;
    					}else {
    						return 0;
    					}
    				}	
    			});
    		}
    }
    

    
    package test;
    
    import java.util.Scanner;
    
    import main.DanhSachSinhVien;
    import main.SinhVien;
    
    public class Test {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		
    		DanhSachSinhVien dssv = new DanhSachSinhVien();
    		int luaChon = 0;
    		do {
    			System.out.println("MENU ---------- ");
    			System.out.println("Vui lòng chọn chức năng: ");
    			System.out.println(
    			  "1.	Thêm sinh viên vào danh sách.\n"
    			+ "2.	In danh sách sinh viên ra màn hình.\n"
    			+ "3.	Kiểm tra danh sách có rỗng hay không.\n"
    			+ "4.	Lấy ra số lượng sinh viên trong danh sách.\n"
    			+ "5.	Làm rỗng danh sách sinh viên.\n"
    			+ "6.	Kiểm tra sinh viên có tồn tại trong danh sách hay không, dựa trên mã sinh viên.\n"
    			+ "7.	Xóa một sinh viên ra khỏi danh sách dựa trên mã sinh viên.\n"
    			+ "8.	Tìm kiếm tất cả sinh viên dựa trên Tên được nhập từ bàn phím.\n"
    			+ "9.	Xuất ra danh sách sinh viên có điểm từ cao đến thấp.\n"
    			+ "0.   Thoát khỏi chương trình");
    			luaChon = sc.nextInt();
    			sc.nextLine();
    			
    			if(luaChon==1) {
    //				1.	Thêm sinh viên vào danh sách.
    				System.out.println("Nhập mã sinh viên: "); String maSinhVien = sc.nextLine();
    				System.out.println("Nhập họ và tên: "); String hoVaTen = sc.nextLine();
    				System.out.println("Nhập năm sinh: "); int namSinh = sc.nextInt();
    				System.out.println("Nhập điểm trung bình: "); float diemTrungBinh = sc.nextFloat();
    				SinhVien sv = new SinhVien(maSinhVien, hoVaTen, namSinh, diemTrungBinh);
    				dssv.themSinhVien(sv);
    				
    			}else if(luaChon==2) {
    //				2.	In danh sách sinh viên ra màn hình.
    				dssv.inDanhSachSinhVien();
    				
    			}else if(luaChon==3) {
    //				3.	Kiểm tra danh sách có rỗng hay không.
    				System.out.println("Danh sách rỗng: "+ dssv.kiemTraDanhSachRong());
    			}else if(luaChon==4) {
    //				4.	Lấy ra số lượng sinh viên trong danh sách.
    				System.out.println("Số lượng hiện tại: "+ dssv.laySoLuongSinhVien());
    			}else if(luaChon==5) {
    //				5.	Làm rỗng danh sách sinh viên.
    				dssv.lamRongDanhSach();
    			}else if(luaChon==6) {
    //				6.	Kiểm tra sinh viên có tồn tại trong danh sách hay không, dựa trên mã sinh viên.
    				System.out.println("Nhập mã sinh viên: "); String maSinhVien = sc.nextLine();
    				SinhVien sv = new SinhVien(maSinhVien);
    				System.out.println("Kiếm tra sinh viên có trong danh sách: "+dssv.kiemTraTonTai(sv));
    			}else if(luaChon==7) {
    //				7.	Xóa một sinh viên ra khỏi danh sách dựa trên mã sinh viên.
    				System.out.println("Nhập mã sinh viên: "); String maSinhVien = sc.nextLine();
    				SinhVien sv = new SinhVien(maSinhVien);
    				System.out.println("Xóa sinh viên trong danh sách: "+dssv.xoaSinhVien(sv));
    			}else if(luaChon==8) {
    //				8.	Tìm kiếm tất cả sinh viên dựa trên Tên được nhập từ bàn phím.
    				System.out.println("Nhập họ và tên: "); String hoVaTen = sc.nextLine();
    				System.out.println("Kết quả tìm kiếm: ");
    				dssv.timSinhVien(hoVaTen);
    				
    			}else if(luaChon==9) {
    //				9.	Xuất ra danh sách sinh viên có điểm từ cao đến thấp.
    				dssv.sapXepSinhVienGiamDanTheoDiem();
    				dssv.inDanhSachSinhVien();
    			}
    		}while(luaChon!=0);
    	}
    }
    

    Bạn có thể thích những bài đăng này:

    3 nhận xét: