Bài tập luyện code java đơn giản

Nội dung bài viết


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{
	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 danhSach;
		
		public DanhSachSinhVien() {
			this.danhSach = new ArrayList();
		}
		
		public DanhSachSinhVien(ArrayList 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() {
				@Override
				public int compare(SinhVien sv1, SinhVien sv2) {
					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);
	}
}