Tải bản đầy đủ (.pdf) (43 trang)

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 của học sinh phổ thông

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (710.22 KB, 43 trang )

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 của 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 Q
Ngơ Minh Đức
Nguyễn Huy Tiến

Lớp hành chí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 bài toán.........................................................................................2
1


II.

Xác định các lớp của bài toán...................................................................4

 Lớp NGUOI.................................................................................................4
 Lớp HOCSINH (extends NGUOI)..............................................................4
 Lớp DSHOCSINH.......................................................................................4
 Lớp MONHOC............................................................................................4
 Lớp DSMONHOC.......................................................................................5
 Lớp DIEM....................................................................................................5
 Lớp DSDIEM...............................................................................................5
 Lớp HANHKIEM........................................................................................5
 Lớp DSHANHKIEM...................................................................................6
III. MÔ TẢ THUẬT TOÁN, THAO TÁC.....................................................6
IV, CÀI ĐẶT BÀI TOÁN...................................................................................7
1, Class NGUOI................................................................................................7
2, Class HOCSINH...........................................................................................8
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

2


I.

Phát biểu bài toán
Đề tài “Quản lý học tập của học sinh trung học phổ thơng”
Trong q trình phát triển của 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 một chương trình quản lý học tập của
các học sinh là điều cần thiết. Các thông tin cần quản lý là thông tin cá nhân học
sinh, điểm học sinh, các môn học và xếp loại học tập,…
Chương trình được tạo ra dựa trên nhu cầu và cần đáp ứng được các 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 và đầy đủ chức năng.
Các đối tượng cần quản lý:
 HỌC SINH: Để quản lý các học sinh, chúng ta sẽ có các thơng tin chi tiết
như họ tên, giới tính, địa chỉ, họ tên bố, họ tên mẹ,…
 MƠN HỌC : Học sinh sẽ có nhiều môn học, các môn học sẽ gồm tên
môn, mã môn và các thông tin chi tiết về môn học
 ĐIỂM: Học sinh sẽ có nhiều mơn học, ở mỗi mơn học sẽ có các điểm
gồm điểm miệng, điểm giữa kỳ và điểm cuối kỳ. Từ đó tính điểm trung
bình các môn học
 HẠNH KIỂM: Để đánh giá xếp loại học sinh từ yếu đến giỏi, chúng ta có
thang điểm đánh giá quy về hệ số từ A-> D theo các mức yếu, trung bình,
khá, giỏi


3


4


II.

Xác định các lớp của bài 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() các 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() các 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 ( )
5


-xuatMH ( )
- set( ), get() các 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() các 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 :
6


-nhapHK ( )
-xuatHK ( )
- set( ), get() các 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
7


 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;
8


}
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
9



import java.util.Scanner;
public class HOCSINH extends NGUOI{
private String maHocSinh, lop, danToc, hoTenBo, hoTenMe;
HOCSINH() {
super();
maHocSinh = lop = danToc = hoTenBo = hoTenMe = "";
}
HOCSINH(String ht, String ns, String gt, String dc, String mhs, String l, String
dt, String htb, String htm) {
super(ht, ns, gt, dc);
maHocSinh = mhs;
lop = l;
danToc = dt;
hoTenBo = htb;
hoTenMe = htm;
}
public String getMaHocSinh() {
return maHocSinh;
}
public void setMaHocSinh(String maHocSinh) {
this.maHocSinh = maHocSinh;
}
public String getLop() {
return lop;
}
public void setLop(String lop) {
this.lop = lop;
}

public String getDanToc() {
return danToc;
}
public void setDanToc(String danToc) {
this.danToc = danToc;
}
public String getHoTenBo() {
return hoTenBo;
}
10


public void setHoTenBo(String hoTenBo) {
this.hoTenBo = hoTenBo;
}
public String getHoTenMe() {
return hoTenMe;
}
public void setHoTenMe(String hoTenMe) {
this.hoTenMe = hoTenMe;
}
@Override
public String toString() {
return "HOCSINH{" +
"maHocSinh='" + maHocSinh + '\'' +
", lop='" + lop + '\'' +
", danToc='" + danToc + '\'' +
", hoTenBo='" + hoTenBo + '\'' +
", hoTenMe='" + hoTenMe + '\'' +
'}';

}
public void nhap() {
Scanner sc = new Scanner(System.in);
super.nhapN();
System.out.print("Nhập mã học sinh: ");
maHocSinh = sc.nextLine();
System.out.print("Nhập lớp: ");
lop = sc.nextLine();
System.out.print("Nhập họ tên bố: ");
hoTenBo = sc.nextLine();
System.out.print("Nhập họ tên mẹ: ");
hoTenMe = sc.nextLine();
}
public void xuatHS() {
super.xuatN();
System.out.printf("%10s|%10s|%15s|%15s|%n", maHocSinh, lop, hoTenBo,
hoTenMe);
11


}
}

3, Class DSHOCSINH
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
public class DSHOCSINH {

ArrayList<HOCSINH> listHS = new ArrayList();
/*nhập danh sách học sinh*/
public void nhapDSHS() {
int n;
Scanner sc = new Scanner(System.in);
System.out.print("Nhập số lượng học sinh: ");
n = sc.nextInt();
for(int i=0; iHOCSINH HS = new HOCSINH();
System.out.println("Nhập học sinh thứ " + (i+1));
HS.nhap();
listHS.add(HS);
}
}
/*Xuất danh sách học sinh*/
public void xuatDS() {
System.out.printf("%15s|%10s|%10s|%15s|%10s|%10s|%15s|%15s|%n",
"Họ tên", "Năm sinh", "Giới tính", "Địa chỉ", "Mã HS", "Lớp", "Bố",
"Mẹ");
for(int i=0; ilistHS.get(i).xuatHS();
}
}
/*Tìm kiếm học sinh theo tên*/
public void timKiemHS() {
String tencantim;
System.out.print("Nhập tên học sinh cần tìm: ");
Scanner sc = new Scanner(System.in);
tencantim = sc.nextLine();
System.out.println("Thơng tin học sinh được tìm thấy là: ");

12


System.out.printf("%15s|%10s|%10s|%15s|%10s|%10s|%15s|%15s|%n",
"Họ tên", "Năm sinh", "Giới tính", "Địa chỉ", "Mã HS", "Lớp", "Bố",
"Mẹ");
for(int i=0; iif(listHS.get(i).getHoTen().equalsIgnoreCase(tencantim)) {
listHS.get(i).xuatHS();
}
}
}
/*Xoá học sinh theo tên học sinh*/
public void xoaHS() {
String macanxoa;
System.out.print("Nhập mã học sinh cần xoá: ");
Scanner sc = new Scanner(System.in);
macanxoa = sc.nextLine();
System.out.println("Danh sách nhân viên vừa xoá xong là: ");
for(int i=0; iif(listHS.get(i).getMaHocSinh().equalsIgnoreCase(macanxoa) ) {
listHS.remove(i);
}
}
xuatDS();
}
/*Sắp xếp học sinh theo tên từ z-a*/
public void sapXepDSHS(){
Collections.sort(listHS, new Comparator<HOCSINH>() {
@Override

public int compare(HOCSINH o1, HOCSINH o2) {
return o1.getHoTen().compareTo(o2.getHoTen());
}
});
Collections.reverse(listHS);
System.out.println("Danh sách sau khi sắp xếp: ");
xuatDS();
}
/*Ghi file danh sách học sinh*/
public void ghiFile(String fileName) throws FileNotFoundException {
try {
FileOutputStream fout = new FileOutputStream(fileName);
ObjectOutputStream Oout = new ObjectOutputStream(fout);
Oout.writeObject(listHS);
13


fout.close();
Oout.close();
System.out.println("Ghi file thành công!");
} catch (IOException e) {
e.printStackTrace();
}
}
/*Đọc file danh sách học sinh*/
public void docFile(String fileName){
try {
FileInputStream fin = new FileInputStream(fileName);
ObjectInputStream Oin = new ObjectInputStream(fin);
listHS = (ArrayList<HOCSINH>)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();
}
}
}
4, Class MONHOC
import java.io.Serializable;
import java.util.Scanner;
public class MONHOC implements Serializable {
private String maMH, tenMH, soBuoiHoc;
MONHOC() {
maMH = tenMH = soBuoiHoc = "";
}
MONHOC(String mmh, String tmh, String sbh) {
maMH = mmh;
tenMH = tmh;
soBuoiHoc = sbh;
}
public String getMaMH() {
return maMH;
}
14



public void setMaMH(String maMH) {
this.maMH = maMH;
}
public String getTenMH() {
return tenMH;
}
public void setTenMH(String tenMH) {
this.tenMH = tenMH;
}
public String getSoBuoiHoc() {
return soBuoiHoc;
}
public void setSoBuoiHoc(String soBuoiHoc) {
this.soBuoiHoc = soBuoiHoc;
}
@Override
public String toString() {
return "MONHOC{" +
"maMH='" + maMH + '\'' +
", tenMH='" + tenMH + '\'' +
", soBuoiHoc='" + soBuoiHoc + '\'' +
'}';
}
/*nhâp môn học*/
public void nhap() {
Scanner sc = new Scanner(System.in);
System.out.print("Nhập mã môn học: ");
maMH = sc.nextLine();
System.out.print("Nhập tên môn học: ");

tenMH = sc.nextLine();
System.out.print("Nhập số buổi học: ");
soBuoiHoc = sc.nextLine();
}
public void xuat() {
System.out.printf("%15s|%15s|%15s|%n",
15


maMH, tenMH, soBuoiHoc);
}
}
5, Class DSMONHOC
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
public class DSMONHOC {
ArrayList<MONHOC> listMH = new ArrayList();
/*nhập danh sách môn học*/
public void nhapDSMH() {
int n;
Scanner sc = new Scanner(System.in);
System.out.println("Nhập mã học sinh muốn nhập điểm: ");
System.out.print("Nhập số lượng môn học: ");
n = sc.nextInt();
for(int i=0; iMONHOC MH = new MONHOC();
System.out.println("Nhập môn học thứ " + (i+1));

MH.nhap();
listMH.add(MH);
}
}
/*Xuất danh sách môn học*/
public void xuatDSMH() {
System.out.printf("%15s|%15s|%15s|%n",
"Mã MH", "Tên MH", "Số buổi");
for(int i=0; ilistMH.get(i).xuat();
}
}
/*Tìm kiếm mơn học theo tên*/
public void timKiemMH() {
String tencantim;
System.out.print("Nhập tên mơn học cần tìm: ");
Scanner sc = new Scanner(System.in);
tencantim = sc.nextLine();
16


System.out.println("Thơng tin mơn học được tìm thấy là: ");
System.out.printf("%15s|%15s|%15s|%n",
"Mã MH", "Tên MH", "Số buổi");
for(int i=0; iif(listMH.get(i).getTenMH().equalsIgnoreCase(tencantim)) {
listMH.get(i).xuat();
}
}
}

/*Xố mơn học theo mã môn học*/
public void xoaMH() {
String macanxoa;
System.out.print("Nhập mã mơn học cần xố: ");
Scanner sc = new Scanner(System.in);
macanxoa = sc.nextLine();
System.out.println("Danh sách mơn học sau xố xong là: ");
for(int i=0; iif(listMH.get(i).getMaMH().equalsIgnoreCase(macanxoa)) {
listMH.remove(i);
}
}
xuatDSMH();
}
/*Sắp xếp môn học theo tên từ z-a*/
public void sapXepDSMH(){
Collections.sort(listMH, new Comparator<MONHOC>() {
@Override
public int compare(MONHOC o1, MONHOC o2) {
return o1.getTenMH().compareTo(o2.getTenMH());
}
});
Collections.reverse(listMH);
System.out.println("Danh sách sau khi sắp xếp: ");
xuatDSMH();
}
/*Ghi file danh sách môn học*/
public void ghiFile(String fileName) throws FileNotFoundException {
try {
FileOutputStream fout = new FileOutputStream(fileName);

ObjectOutputStream Oout = new ObjectOutputStream(fout);
Oout.flush();
17


Oout.writeObject(listMH);
fout.close();
Oout.close();
System.out.println("Ghi file thành công!");
} catch (IOException e) {
e.printStackTrace();
}
}
/*Đọc file danh sách môn học*/
public void docFile(String fileName){
try {
FileInputStream fin = new FileInputStream(fileName);
ObjectInputStream Oin = new ObjectInputStream(fin);
listMH = (ArrayList<MONHOC>)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();
}
}

}
6, Class DIEM
import java.io.Serializable;
import java.util.Scanner;
public class DIEM implements Serializable {
private String maHS;
private double diemMieng,diemGK, diemCK, diemTB;
DIEM() {
maHS = "";
diemMieng = diemCK = diemGK = 0;
}
DIEM(String maHS, double diemMieng, double diemGK, double diemCK){
this.maHS = maHS;
this.diemMieng = diemMieng;
this.diemGK = diemGK;
this.diemCK = diemCK;
18


}
public String getMaHS() {
return maHS;
}
public void setMaHS(String maHS) {
this.maHS = maHS;
}
public double getDiemMieng() {
return diemMieng;
}
public void setDiemMieng(double diemMieng) {

this.diemMieng = diemMieng;
}
public double getDiemGK() {
return diemGK;
}
public void setDiemGK(double diemGK) {
this.diemGK = diemGK;
}
public double getDiemCK() {
return diemCK;
}
public void setDiemCK(double diemCK) {
this.diemCK = diemCK;
}
public double getDiemTB() {
return diemTB;
}
public void setDiemTB(double diemTB) {
this.diemTB = diemTB;
}
@Override
public String toString() {
return "DIEM{" +
19


"maHS='" + maHS + '\'' +
", diemMieng=" + diemMieng +
", diemGK=" + diemGK +
", diemCK=" + diemCK +

", diemTB=" + diemTB +
'}';
}
/*Nhập thông tin điểm học*/
public void nhap() {
Scanner sc = new Scanner(System.in);
System.out.print("Nhập điểm miệng: ");
diemMieng = sc.nextDouble();
System.out.print("Nhập điểm giữa kỳ: ");
diemGK = sc.nextDouble();
System.out.print("Nhập điểm cuối kỳ: ");
diemCK = sc.nextDouble();
diemTB = 0.1*diemMieng + 0.2*diemGK + 0.7*diemCK;
}
/*Xuất thông tin điểm học*/
public void xuat() {
System.out.printf("%10.1f|%10.1f|%10.1f|%10.1f|%n"
, diemMieng, diemGK, diemCK, diemTB);
}
}
7, Class DSDIEM
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
public class DSDIEM {
ArrayList<DIEM> listDiem = new ArrayList();
ArrayList<MONHOC> listMH = new ArrayList();
ArrayList<HOCSINH> listHS = new ArrayList();

/*Hiện danh sách học sinh*/
public void hienDSHS() {
docFileHS();
if (listHS.size() > 0) {
20


System.out.println("Danh sách học sinh đang có là: ");
System.out.printf("%15s|%10s|%10s|%15s|%10s|%10s|%15s|%15s|%n",
"Họ tên", "Năm sinh", "Giới tính", "Địa chỉ", "Mã HS", "Lớp", "Bố",
"Mẹ");
for (int i = 0; i < listHS.size(); i++) {
listHS.get(i).xuatHS();
}
} else {
System.out.println("Vui lịng nhập học sinh trước");
return;
}
}
/*Hiện danh sách mơn học*/
public void hienDSMH() {
docFileMH();
if (listMH.size() > 0) {
System.out.println("Danh sách môn học đang có là: ");
System.out.printf("%15s|%15s|%15s|%n",
"Mã MH", "Tên MH", "Số buổi");
for (int i = 0; i < listMH.size(); i++) {
listMH.get(i).xuat();
}
} else {

System.out.println("Vui lòng nhập môn học trước");
return;
}
}
/*nhập danh sách điểm môn học*/
public void nhapDSdiem() {
String maHS;
Scanner sc = new Scanner(System.in);
/*Hiện danh sách học sinh*/
hienDSHS();
/*Hiện danh sách môn học*/
hienDSMH();
System.out.print("Nhập mã học sinh muốn nhập điểm: ");
maHS = sc.nextLine();
/*Kiểm tra có tồn tại học sinh cần nhập điểm k*/
boolean checkHS = false;
for (int j = 0; j < listHS.size(); j++) {
21


if (listHS.get(j).getMaHocSinh().equalsIgnoreCase(maHS)) {
checkHS = true;
}
}
if (checkHS) {
System.out.println(" Vui lòng nhập điểm các môn của học sinh " + maHS);
for (int k = 0; k < listMH.size(); k++) {
System.out.println("-----------------------------");
System.out.println("Nhập điểm môn: " + (listMH.get(k).getTenMH()));
DIEM diem = new DIEM();

diem.setMaHS(maHS);
diem.nhap();
listDiem.add(diem);
}
}
else {
System.out.println("Khơng có mã học sinh bạn muốn tìm");
}
}
/*Xuất danh sách điểm mơn học*/
public void xuatDSdiem() {
for (int i = 0; i < listDiem.size(); i++) {
System.out.println("Điểm của học sinh " + listDiem.get(i).getMaHS() + "
là: ");
for(int j=i; jif(listDiem.get(j).getMaHS().equalsIgnoreCase(listDiem.get(i).getMaHS())){
System.out.printf("%10s|%10s|%10s|%10s|%n"
, "Điểm M", "Điểm GK", "Điểm CK", "Điểm TB");
listDiem.get(j).xuat();
i=j;
}
}
System.out.println("----------------------------");
}
}
/*Tìm kiếm điểm theo mã học sinh*/
public void timKiemdiem() {
String tencantim;
System.out.print("Nhập mã học sinh cần tìm điểm: ");
Scanner sc = new Scanner(System.in);

tencantim = sc.nextLine();
22


System.out.println("Thơng tin điểm học sinh được tìm thấy là: ");
System.out.printf("%10s|%10s|%10s|%10s|%n"
, "Điểm M", "Điểm GK", "Điểm CK", "Điểm TB");
for (int i = 0; i < listDiem.size(); i++) {
if (listDiem.get(i).getMaHS().equalsIgnoreCase(tencantim)) {
listDiem.get(i).xuat();
}
}
}
/*Xoá điểm môn học theo mã học sinh*/
public void xoadiem() {
String macanxoa;
System.out.print("Nhập mã học sinh cần xoá điểm: ");
Scanner sc = new Scanner(System.in);
macanxoa = sc.nextLine();
System.out.println("Danh sách học sinh có điểm sau xố là: ");
for (int i = 0; i < listDiem.size(); i++) {
if (listDiem.get(i).getMaHS().equalsIgnoreCase(macanxoa)) {
listDiem.remove(i);
}
}
xuatDSdiem();
}
/*Sắp xếp danh sách theo điểm trung bình*/
public void sapXepDSdiem() {
Collections.sort(listDiem, new Comparator<DIEM>() {

@Override
public int compare(DIEM c1, DIEM c2) {
return Double.compare(c1.getDiemTB(), c2.getDiemTB());
}
});
Collections.reverse(listDiem);
System.out.println("Danh sách sau khi sắp xếp: ");
xuatDSdiem();
}
/*Ghi file danh sách điểm môn học*/
public void ghiFile(String fileName) throws FileNotFoundException {
try {
FileOutputStream fout = new FileOutputStream(fileName);
ObjectOutputStream Oout = new ObjectOutputStream(fout);
Oout.flush();
Oout.writeObject(listDiem);
23


fout.close();
Oout.close();
System.out.println("Ghi file thành công!");
} catch (IOException e) {
e.printStackTrace();
}
}
/*Đọc file danh sách điểm môn học*/
public void docFile(String fileName) {
try {
FileInputStream fin = new FileInputStream(fileName);

ObjectInputStream Oin = new ObjectInputStream(fin);
listDiem = (ArrayList<DIEM>) 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();
}
}
/*Đọc file danh sách môn học*/
public void docFileMH() {
try {
FileInputStream fin = new FileInputStream("monhoc.txt");
ObjectInputStream Oin = new ObjectInputStream(fin);
listMH = (ArrayList<MONHOC>) 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();
}
}

/*Đọc file danh sách học sinh*/
public void docFileHS() {
24


×