Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
710,22 KB
Nội dung
TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Đề tài: Quản lí học tập học sinh phổ thông Giảng viên hướng dẫn: ThS.Mai Thị Thúy Hà Sinh viên thực hiện: Nông Hải Quý – 2010A03 Ngô Minh Đức – 2010A03 Nguyễn Huy Tiến – 2010A04 Hà Nội – Năm 2021 Họ Tên Nông Hải Quý Ngô Minh Đức Nguyễn Huy Tiến Lớp hành 2010A03 2010A03 2010A04 Cả nhóm Cơng việc Làm lớp học sinh Làm lớp môn học Làm lớp hạnh kiểm Làm lớp điểm MỤC LỤC I Phát biểu toán .2 II Xác định lớp toán Lớp NGUOI .4 Lớp HOCSINH (extends NGUOI) Lớp DSHOCSINH .4 Lớp MONHOC Lớp DSMONHOC .5 Lớp DIEM Lớp DSDIEM .5 Lớp HANHKIEM Lớp DSHANHKIEM III MƠ TẢ THUẬT TỐN, THAO TÁC IV, CÀI ĐẶT BÀI TOÁN 1, Class NGUOI 2, Class HOCSINH 3, Class DSHOCSINH 11 4, Class MONHOC .13 5, Class DSMONHOC 15 6, Class DIEM .18 7, Class DSDIEM 20 8, Class HANHKIEM 25 9, Class DSHANHKIEM .27 10, Class main (Chạy code) 31 V, KIỂM THỬ VÀ ĐÁNH GIÁ CHƯƠNG TRÌNH 39 I Phát biểu toán Đề tài “Quản lý học tập học sinh trung học phổ thơng” Trong q trình phát triển trường trung học phổ thông, số lượng học sinh lớn dẫn đến việc quản lý khó khăn Việc cần chương trình quản lý học tập học sinh điều cần thiết Các thông tin cần quản lý thông tin cá nhân học sinh, điểm học sinh, môn học xếp loại học tập,… Chương trình tạo dựa nhu cầu cần đáp ứng yêu cầu liên quan đến kế thừa, tính trừu tượng, che dấu thơng tin,… qua hồn thiện chương tình bảo mật, dễ sử dụng đầy đủ chức Các đối tượng cần quản lý: HỌC SINH: Để quản lý học sinh, có thơng tin chi tiết họ tên, giới tính, địa chỉ, họ tên bố, họ tên mẹ,… MƠN HỌC : Học sinh có nhiều môn học, môn học gồm tên môn, mã môn thông tin chi tiết môn học ĐIỂM: Học sinh có nhiều mơn học, mơn học có điểm gồm điểm miệng, điểm kỳ điểm cuối kỳ Từ tính điểm trung bình mơn học HẠNH KIỂM: Để đánh giá xếp loại học sinh từ yếu đến giỏi, có thang điểm đánh giá quy hệ số từ A-> D theo mức yếu, trung bình, khá, giỏi II Xác định lớp tốn Lớp NGUOI Thuộc tính: -hoTen: int - namSinh: String - gioiTinh: String - diaChi: String Phương thức : -nhapN ( ) -xuatN ( ) - set( ), get() thuộc tính - toString() Lớp HOCSINH (extends NGUOI) Thuộc tính: -maHS: String - lop: String - danToc: String - hoTenBo: String - hoTenMe: String Phương thức : -nhapHS ( ) -xuatHS ( ) - set( ), get() thuộc tính - toString() Lớp DSHOCSINH Sử dụng ArrayList < HOCSINH > để quản lí danh sách Phương thức : - nhapDSHS ( ) - xuatDSHS ( ) - timKiemHS ( ) - sapXepDSHS ( ) - luuFileDSHS ( ) - docFileDSHS ( ) Lớp MONHOC Thuộc tính: -maMonHoc: String - tenMonHoc: String - soBuoiHoc: int Phương thức : -nhapMH ( ) -xuatMH ( ) - set( ), get() thuộc tính - toString() Lớp DSMONHOC Sử dụng ArrayList < MONHOC > để quản lí danh sách Phương thức : - nhapDSMH ( ) - xuatDSMH ( ) - timKiemMH ( ) - sapXepDSMH ( ) - luuFileDSMH ( ) - docFileDSMH ( ) Lớp DIEM Thuộc tính: - diemMieng: double - diemGK: double - diemCK: double - diemTB: double Phương thức : -nhapDiem ( ) -xuatDiem ( ) - set( ), get() thuộc tính - toString() Lớp DSDIEM Sử dụng ArrayList < DIEM > để quản lí danh sách Phương thức : - nhapDSDiem ( ) - xuatDSDiem ( ) - timKiemDiem ( ) - sapXepDSDiem ( ) - luuFileDSDiem ( ) - docFileDSDiem ( ) Lớp HANHKIEM Thuộc tính: - loaiHanhKiem: String - kyHieuHK: String Phương thức : -nhapHK ( ) -xuatHK ( ) - set( ), get() thuộc tính - toString() Lớp DSHANHKIEM Sử dụng ArrayList < HANHKIEM > để quản lí danh sách Phương thức : - nhapDSHKiem ( ) - xuatDSHKiem ( ) - timKiemHKiem ( ) - sapXepDSHKiem ( ) - luuFileDSHKiem ( ) - docFileDSHKiem ( ) III MƠ TẢ THUẬT TỐN, THAO TÁC Quản lý danh sách học sinh: - Nhập thông tin học sinh - Hiện danh sách học sinh - Tìm kiếm học sinh theo mã học sinh - Sắp xếp danh sách học sinh từ bé đến lớn - Ghi file danh sách học sinh - Đọc file danh sách học sinh Quản lí danh sách mơn học - Nhập thơng tin môn học - Hiện danh sách môn học - Tìm kiếm học sinh theo mã mơn học - Sắp xếp danh sách môn học từ bé đến lớn - Ghi file danh sách môn học - Đọc file danh sách môn học Quản lý danh sách điểm: - Nhập thông tin điểm - Hiện danh sách điểm - Tìm kiếm điểm theo mã học sinh - Sắp xếp danh sách điểm theo số điểm giảm dần - Ghi file danh sách điểm - Đọc file danh sách điểm Quản lý danh sách hạnh kiểm: - Nhập thông tin hạnh kiểm - Hiện danh sách hạnh kiểm - Tìm kiếm hạnh kiểm theo mã học sinh - Sắp xếp danh sách hạnh kiểm theo xếp loại - Ghi file danh sách hạnh kiểm - Đọc file danh sách hạnh kiểm IV, CÀI ĐẶT BÀI TOÁN 1, Class NGUOI import java.io.Serializable; import java.util.Scanner; public class NGUOI implements Serializable { private String hoTen, namSinh, gioiTinh, diaChi; NGUOI() { hoTen = namSinh = gioiTinh = diaChi = ""; } NGUOI(String ht, String ns, String gt, String dc) { hoTen = ht; namSinh = ns; gioiTinh = gt; diaChi = dc; } public String getHoTen() { return hoTen; } public void setHoTen(String hoTen) { this.hoTen = hoTen; } public String getNamSinh() { return namSinh; } public void setNamSinh(String namSinh) { this.namSinh = namSinh; } public String getGioiTinh() { return gioiTinh; } public void setGioiTinh(String gioiTinh) { this.gioiTinh = gioiTinh; } public String getDiaChi() { return diaChi; } public void setDiaChi(String diaChi) { this.diaChi = diaChi; } @Override public String toString() { return "NGUOI{" + "hoTen='" + hoTen + '\'' + ", namSinh='" + namSinh + '\'' + ", gioiTinh='" + gioiTinh + '\'' + ", diaChi='" + diaChi + '\'' + '}'; } public void nhapN() { Scanner sc = new Scanner(System.in); System.out.print("Nhập họ tên: "); hoTen = sc.nextLine(); System.out.print("Nhập năm sinh: "); namSinh = sc.nextLine(); System.out.print("Nhập giới tính: "); gioiTinh = sc.nextLine(); System.out.print("Nhập địa chỉ: "); diaChi = sc.nextLine(); } public void xuatN() { System.out.printf("%15s|%10s|%10s|%15s|", hoTen, namSinh, gioiTinh, diaChi); } } 2, Class HOCSINH HANHKIEM hk = new HANHKIEM(); if (checkHS) { hk.nhapHK(); hk.setMaHS(maHS); listHK.add(hk); } else { System.out.println("Khơng có mã học sinh bạn muốn tìm"); return; } } /*Xuất danh sách hạnh kiểm */ public void xuatDSHK() { for (int i = 0; i < listHK.size(); i++) { System.out.println("Hạnh kiểm học sinh " + listHK.get(i).getMaHS() + " là: "); System.out.printf("%10s|%10s|%n", "Ký hiệu", "loại HK"); listHK.get(i).xuatHK(); System.out.println(" "); } } /*Tìm kiếm hạnh kiểm theo mã học sinh*/ public void timKiemHK() { String tencantim; System.out.print("Nhập mã học sinh cần tìm hạnh kiểm: "); Scanner sc = new Scanner(System.in); tencantim = sc.nextLine(); System.out.println("Thông tin hạnh kiểm học sinh: " + tencantim); System.out.printf("%10s|%10s|%n", "Ký hiệu", "loại HK"); for (int i = 0; i < listHK.size(); i++) { if (listHK.get(i).getMaHS().equalsIgnoreCase(tencantim)) { listHK.get(i).xuatHK(); } } } /*Xoá hạnh kiểm theo mã học sinh*/ public void xoaHK() { String macanxoa; System.out.print("Nhập mã học sinh cần xoá hạnh kiểm: "); Scanner sc = new Scanner(System.in); macanxoa = sc.nextLine(); 28 System.out.println("Danh sách học sinh có hạnh kiểm sau xố là: "); for (int i = 0; i < listHK.size(); i++) { if (listHK.get(i).getMaHS().equalsIgnoreCase(macanxoa)) { listHK.remove(i); } } xuatDSHK(); } /*Sắp xếp danh sách theo loại hạnh kiểm*/ public void sapXepDSHK() { Collections.sort(listHK, new Comparator() { @Override public int compare(HANHKIEM c1, HANHKIEM c2) { return c1.getKyHieu().compareTo(c2.getKyHieu()); } }); Collections.reverse(listHK); System.out.println("Danh sách sau xếp: "); xuatDSHK(); } /*Ghi file danh sách hạnh kiểm */ public void ghiFile(String fileName) throws FileNotFoundException { try { FileOutputStream fout = new FileOutputStream(fileName); ObjectOutputStream Oout = new ObjectOutputStream(fout); Oout.flush(); Oout.writeObject(listHK); fout.close(); Oout.close(); System.out.println("Ghi file thành công!"); } catch (IOException e) { e.printStackTrace(); } } /*Đọc file danh sách hạnh kiểm */ public void docFile(String fileName) { try { FileInputStream fin = new FileInputStream(fileName); ObjectInputStream Oin = new ObjectInputStream(fin); listHK = (ArrayList) Oin.readObject(); fin.close(); Oin.close(); 29 System.out.println("Đọc file thành công!"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } /*Đọc file danh sách học sinh*/ public void docFileHS() { try { FileInputStream fin = new FileInputStream("hocsinh.txt"); ObjectInputStream Oin = new ObjectInputStream(fin); listHS = (ArrayList) Oin.readObject(); fin.close(); Oin.close(); System.out.println("Đọc file thành công!"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } } 10, Class main (Chạy code) import java.io.FileNotFoundException; import java.util.Scanner; public class main { public static void main(String[] args) throws FileNotFoundException { DSHOCSINH dsHS = new DSHOCSINH(); DSMONHOC dsMH = new DSMONHOC(); DSDIEM dsD = new DSDIEM(); DSHANHKIEM dsHK = new DSHANHKIEM(); while (true) { System.out.print("\n============================================= ==========\n"); System.out.print("==== CHƯƠNG TRÌNH QUẢN LÝ HỌC TẬP HỌC SINH CẤP =======\n"); System.out.print("1 Quản lý học sinh ||\n"); 30 System.out.print("2 Quản lý môn học System.out.print("3 Quản lý điểm System.out.print("4 Quản lý hạnh kiểm System.out.print("0 Thốt khỏi chương trình ||\n"); ||\n"); ||\n"); ||\n"); System.out.print("============================================== =========\n"); System.out.print("Nhập lựa chọn bạn: "); Scanner sc = new Scanner(System.in); int chon; chon = sc.nextInt(); switch (chon) { case 1: while (chon != -99) { System.out.print("\n=============================\n"); System.out.print("QUẢN LÝ HỌC SINH\n"); System.out.print("1 Thêm danh sách học sinh\n"); System.out.print("2 Xuất danh sách học sinh\n"); System.out.print("3 Tìm kiếm học sinh theo tên\n"); System.out.print("4 Xố học sinh theo mã HS\n"); System.out.print("5 Sắp xếp học sinh theo tên từ z-a\n"); System.out.print("6 Ghi File vào 'hocsinh.txt'\n"); System.out.print("7 Hiện DS HS từ file 'hocsinh.txt'\n"); System.out.print("8 Trở Menu Chính\n"); System.out.print("0 Thốt khỏi chương trình\n"); System.out.print("Nhập lựa chọn bạn: "); int i; i = sc.nextInt(); switch (i) { case 1: System.out.println(" "); dsHS.nhapDSHS(); break; case 2: System.out.println(" "); dsHS.xuatDS(); break; case 3: System.out.println(" "); dsHS.timKiemHS(); break; case 4: System.out.println(" "); dsHS.xoaHS(); 31 break; case 5: System.out.println(" "); dsHS.sapXepDSHS(); break; case 6: System.out.println(" "); dsHS.ghiFile("hocsinh.txt"); break; case 7: System.out.println(" "); dsHS.docFile("hocsinh.txt"); dsHS.xuatDS(); break; case 8: chon = -99; break; case 0: System.exit(0); break; } } break; case 2: while (chon != -99) { System.out.print("\n=============================\n"); System.out.print("QUẢN LÝ MƠN HỌC\n"); System.out.print("1 Thêm danh sách mơn học\n"); System.out.print("2 Xuất danh sách mơn học\n"); System.out.print("3 Tìm kiếm mơn học theo tên\n"); System.out.print("4 Xố mơn học theo mã mơn\n"); System.out.print("5 Sắp xếp môn học theo tên môn\n"); System.out.print("6 Ghi File vào 'monhoc.txt'\n"); System.out.print("7 Hiện DS VL từ file 'monhoc.txt'\n"); System.out.print("8 Trở Menu Chính\n"); System.out.print("0 Thốt khỏi chương trình\n"); System.out.print("Nhập lựa chọn bạn: "); int i; i = sc.nextInt(); switch (i) { case 1: System.out.println(" "); dsMH.nhapDSMH(); break; case 2: 32 System.out.println(" "); dsMH.xuatDSMH(); break; case 3: System.out.println(" "); dsMH.timKiemMH(); break; case 4: System.out.println(" "); dsMH.xoaMH(); break; case 5: System.out.println(" "); dsMH.sapXepDSMH(); break; case 6: System.out.println(" "); dsMH.ghiFile("monhoc.txt"); break; case 7: System.out.println(" "); dsMH.docFile("monhoc.txt"); dsMH.xuatDSMH(); break; case 8: chon = -99; break; case 0: System.exit(0); break; } } break; case 3: while (chon != -99) { System.out.print("\n=============================\n"); System.out.print("QUẢN LÝ ĐIỂM\n"); System.out.print("1 Thêm danh sách điểm\n"); System.out.print("2 Xuất danh sách điểm\n"); System.out.print("3 Tìm kiếm điểm theo tên HS\n"); System.out.print("4 Xoá điểm theo mã HS\n"); System.out.print("5 Sắp xếp điểm theo tên từ z-a\n"); System.out.print("6 Ghi File vào 'diem.txt'\n"); System.out.print("7 Hiện DS điểm từ file 'diem.txt'\n"); System.out.print("8 Trở Menu Chính\n"); System.out.print("0 Thốt khỏi chương trình\n"); 33 System.out.print("Nhập lựa chọn bạn: "); int i; i = sc.nextInt(); switch (i) { case 1: System.out.println(" "); dsD.nhapDSdiem(); break; case 2: System.out.println(" "); dsD.xuatDSdiem(); break; case 3: System.out.println(" "); dsD.timKiemdiem(); break; case 4: System.out.println(" "); dsD.xoadiem(); break; case 5: System.out.println(" "); dsD.sapXepDSdiem(); break; case 6: System.out.println(" "); dsD.ghiFile("diem.txt"); break; case 7: System.out.println(" "); dsD.docFile("diem.txt"); dsD.xuatDSdiem(); break; case 8: chon = -99; break; case 0: System.exit(0); break; } } break; case 4: while (chon != -99) { System.out.print("\n=============================\n"); 34 System.out.print("QUẢN LÝ HẠNH KIỂM\n"); System.out.print("1 Thêm danh sách hạnh kiểm\n"); System.out.print("2 Xuất danh sách hạnh kiểm\n"); System.out.print("3 Tìm kiếm hạnh kiểm theo tên HS\n"); System.out.print("4 Xố hạnh kiểm theo mã HS\n"); System.out.print("5 Sắp xếp điểm theo tên từ z-a\n"); System.out.print("6 Ghi File vào 'hanhkiem.txt'\n"); System.out.print("7 Hiện DS hạnh kiểm từ file 'hanhkiem.txt'\n"); System.out.print("8 Trở Menu Chính\n"); System.out.print("0 Thốt khỏi chương trình\n"); System.out.print("Nhập lựa chọn bạn: "); int i; i = sc.nextInt(); switch (i) { case 1: System.out.println(" "); dsHK.nhapDSHK(); break; case 2: System.out.println(" "); dsHK.xuatDSHK(); break; case 3: System.out.println(" "); dsHK.timKiemHK(); break; case 4: System.out.println(" "); dsHK.xoaHK(); break; case 5: System.out.println(" "); dsHK.sapXepDSHK(); break; case 6: System.out.println(" "); dsHK.ghiFile("hanhkiem.txt"); break; case 7: System.out.println(" "); dsHK.docFile("hanhkiem.txt"); dsHK.xuatDSHK(); break; case 8: chon = -99; 35 break; case 0: System.exit(0); break; } } break; case 0: System.exit(0); break; } }} } V, KIỂM THỬ VÀ ĐÁNH GIÁ CHƯƠNG TRÌNH 1, Menu 2, Quản lý học sinh 36 a, Thêm danh sách học sinh 37 b, In danh sách học sinh c, Tìm học sinh theo tên 38 d, Sắp xếp học sinh theo tên 3, Quản lý môn học a, Thêm danh sách môn học b, In danh sách môn học 39 c, Tìm mơn học theo tên mơn d, Sắp xếp môn học theo tên 4, Quản lý điểm 40 a, Thêm danh sách điểm b, In danh sách điểm c, Tìm điểm theo mã học sinh 41 d, Ghi file vào “diem.txt” e, Xuất điểm từ file “diem.txt” 42 ... danh sách học sinh: - Nhập thông tin học sinh - Hiện danh sách học sinh - Tìm kiếm học sinh theo mã học sinh - Sắp xếp danh sách học sinh từ bé đến lớn - Ghi file danh sách học sinh - Đọc file... setHoTen(String hoTen) { this.hoTen = hoTen; } public String getNamSinh() { return namSinh; } public void setNamSinh(String namSinh) { this.namSinh = namSinh; } public String getGioiTinh() { return gioiTinh;... hoTenBo = htb; hoTenMe = htm; } public String getMaHocSinh() { return maHocSinh; } public void setMaHocSinh(String maHocSinh) { this.maHocSinh = maHocSinh; } public String getLop() { return lop; } public