Tìm kiếm học viên theo khoảng điểm nhập từ bàn phím.

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.

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]; } }

Yêu cầu của bài tập này chúng ta sẽ dùng mảng để quản lý sinh viên gồm có: nhập vào thông tin sinh viên[mã sinh viên, tên sinh viên, lớp], điểm các môn học [toán, văn, anh và điểm trung bình 3 môn], tìm kiếm sinh viên theo mã sinh viên và hiển thị thông tin của sinh viên đó ra màn hình.

Để thực hiện được bài tập này ta cần những kiến thức từ ngôn ngữ lập trình C như: cách nhập xuất cơ bản, cách sử dụng mảng một chiều, cách sử dụng cấu trúc struct, cách sử dụng các thật toán tìm kiếm và cách sử dụng hàm trong ngôn ngữ lập trình C.

2. Lời giải

Đầu tiên để thực hiện bài toán này chúng ta cần có kiến thức cơ bản về ngôn ngữ lập trình C, các cách nhập xuất cơ bản trong C, mảng một chiều trong C, cách sử dụng các thuật toán tìm kiếm trong C , cách sử dụng hàm và cách sử dụng cấu trúc struct trong ngôn ngữ lập trình C.

Các bước thực hiện yêu cầu của bài tập tìm kiếm sinh viên theo mã sinh viên bằng ngôn ngữ lập trình C như sau:

Bước 1: Ta khai báo một cấu trúc struct SinhVien gồm có: int MaSV[mã sinh viên]; char TenSV[50][tên sinh viên]; char Lop[50][lớp]; float Dtoan[điểm toán]; float Dvan[điểm văn]; float Danh[điểm anh];

Bước 2: Trong hàm main ta khai báo mảng SinhVien sv[100] và biến int n là số sinh viên có trong mảng rồi nhập dữ liệu cho n.

Bước 3: Ta khỏi tạo hàm void Nhap[SinhVien sv[], int n] dùng để nhập dữ liệu từ bàn phím cho mảng. Trong hàm ta sử dụng vòng for bắt đầu từ int i =0 và kết thúc khi i

Chủ Đề