1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đề 6 bài toán quản lý học tập của học sinh phổ thông

83 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài Toán Quản Lý Học Tập Của Học Sinh Phổ Thông
Tác giả Nguyễn Huy Hải, Nguyễn Quốc Hiếu, Đặng Quang Huy, Hoàng Trọng Mạnh
Người hướng dẫn Ths Trịnh Thị Xuân
Trường học Trường Đại Học Mở Hà Nội
Chuyên ngành Cấu Trúc Dữ Liệu Và Giải Thuật
Thể loại báo cáo bài tập lớn
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 83
Dung lượng 1,97 MB

Nội dung

TRƯỜNG ĐẠI HỌC MỞ HÀ NỘIKHOA CÔNG NGHỆ THÔNG TINĐề 6 Bài Toán Quản Lý Học Tập Của Học Sinh Phổ Thông:Giảng viên hướng dẫn : Ths Trịnh Thị XuânSinh viên thực hiện: Nguyễn Huy Hải -2010A01

Trang 1

TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

Đề 6 Bài Toán Quản Lý Học Tập Của Học Sinh Phổ Thông:

Giảng viên hướng dẫn : Ths Trịnh Thị Xuân Sinh viên thực hiện: Nguyễn Huy Hải -2010A01

Nguyễn Quốc Hiếu -2010A04 Đặng Quang Huy -2010A04 Hoàng Trọng Mạnh -2010A03

BÁO CÁO BÀI TẬP LỚN

MÔN:CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT

Nhóm 6

Trang 2

Mục lục:

I.Xác định bài toán……….trang 3II.Tìm cấu trúc dữ liệu biểu diễn bài toán……… trang 3III Thuật toán……… trang 3Các chức năng cần đạt được của bài toán là:……… trang 4IV.Lập trình –cài đặt……… trang 6Liên kết đơn……….trang 6Liên kết đôi……… trang 30Ngăn xếp Stack……… trang 54V.Lập bộ test……….trang 79

1

Trang 3

PHÂN CÔNG VÀ KẾ HOẠCH THỰC HIỆN

HỌ VÀ TÊN CÔNG VIỆC THỜI GIAN

THỰC HIỆN

GHI CHÚ

Trang 4

I Xác định bài toán.

Quản lý điểm học sinh trung học là công việc quản lý thông tin điểm của tất cả các môn học của một học sinh Công tác quản lý điểm phục vụ cho học sinh là chủ yếu Từ đó, học sinh có thể biết được kết quả mình đạt đưuọc sau mỗi kì học Ngoài ra, quản lý điểm học sinh còn giúp nhà trường theo dõi được tình hình học tập của từng học sinh trong trường.

Từ đó, có thể đưa ra hình thức khen thưởng hay cảnh cáo đối với từng học sinh.

II Xác định CSDL biểu diễn bài toán.

Đối tượng được quản lý bài toán bao gồm: Học sinh,Môn

học, Bảng điểm

- HỌC SINH : Mã học sinh, tên học sinh, giới tính, ngày

sinh, địa chỉ

- MÔN HỌC: Mã môn, tên môn, số buổi, số tiết.

- BẢNG ĐIỂM : Mã điểm, mã học sinh, mã môn học, điểm

miệng, điểm 15 phút, điểm 1 tiết, điểm trung bình.

III.Thuật toán

Chương trình khi chạy ban đầu xuất xuất hiện danh

sách lựa chọn chức năng:

1 Quản lý danh sách học sinh

2 Quản lý danh sách môn học

3

Trang 5

3 Quản lý danh sách bảng điểm

Mời bạn chọn:

Nếu chọn số 1, gồm các chức năng sau:

1.1 Nhập danh sách học sinh từ bàn phím

1.2 In danh sách học sinh lên màn hình

1.3 Lưu danh sách học sinh vào file

1.4 Đọc danh sách học sinh từ file

1.5 Tìm kiếm học sinh theo mã học sinh

1.6 Tìm kiếm học sinh theo lớp

1.7 Sắp xếp danh sách học sinh tăng dần theo mã họcsinh

1.8 Thêm một học sinh mới

2.3 In tên môn học có số tiết > x

2.4 Sắp xếp danh sách theo thứ tự giảm dần số buổihọc

Trang 6

2.5 Đếm số môn học.

2.6 Hiện những môn có số buổi >10

2.7 Tính tổng số buổi trong danh sách

3.1 Nhập danh sách điểm và ghi dữ liệu

3.2 Hiện danh sách điểm lên màn hình

3.3 Tìm kiếm bảng điểm theo mã học sinh

3.4 Hiện bảng điểm có điểm trung bình cao nhất.3.5 Xóa thông tin bảng điểm ở đầu

3.6 Sắp xếp danh sách bảng điểm theo thứ tự tăng dầncủa điểm trung bình

3.7 Hiện thông tin bảng điểm có điểm trung bình lớnhơn x

3.8 Sửa thông tin bảng điểm theo mã học sinh.3.9 Đọc dữ liệu từ file

………

………

Mời bạn chọn:

5

Trang 8

struct NodeHocSinh *next;

Trang 10

cout<<"Nhap ma hoc sinh: ";cin>>x.maHs; cout<<"Nhap ten hoc sinh: ";

cin.ignore();

getline(cin,x.hoTen);

cout<<"Nhap gioi tinh: ";cin>>x.gioiTinh; cout<<"Nhap ngay sinh: ";cin>>x.ngaySinh; cout<<"Nhap dia chi: ";cin>>x.diaChi;}

Trang 11

cout<<" =====Danh sach hoc sinh====== "<<endl;

cout<<setw(7)<<" Ma "<<setw(12)<<" Ho ten "<<setw(12)<<" Gioi tinh

"<<setw(12)<<" Ngay sinh "<<setw(12)<<" Dia chi "<<endl;

Trang 12

//DANH SACH LIEN KET DON MON HOCstruct Monhoc

Trang 15

cout<<setw(7)<<" Ma mon hoc "<<setw(10)<<" Ten mon hoc "<<setw(10)<<"

So tiet "<<setw(8)<<" So buoi "<<endl;

Trang 16

float diemMieng,diem15p,diem1tiet,diemTB; Monhoc dsmh[20];

Trang 18

}

}

void nhapBang(BangDiem &x)

{

cout<<"Nhap ma bang diem: ";cin>>x.maDiem;

cout<<"Nhap ma hoc sinh: ";cin>>x.maHocSinh; cout<<"Nhap ma mon hoc: ";cin>>x.maMonHoc; cout<<"Nhap diem mieng: ";cin>>x.diemMieng; cout<<"Nhap diem 15p: ";cin>>x.diem15p;

cout<<"Nhap diem 1 tiet: ";cin>>x.diem1tiet;

x.diemTB=(x.diemMieng+x.diem15p*2+x.diem1tiet*3)/6;

Trang 22

void bangMax(ListDiem &b)

Trang 23

for(q=p->next;q!=NULL;q=q->next) {

if(p->info.diemTB>q->info.diemTB) {

tg=p->info;

p->info=q->info;

q->info=tg;

Trang 25

int masua;

cout<<"Nhap ma hoc sinh can sua:";cin>>masua;

bool check = false;

Trang 26

cout<<"\n 1.Nhap danh sach bang diem va ghi du lieu.";

cout<<"\n 2.Hien danh sach bang diem ";

cout<<"\n 3.Tim kiem bang diem theo ma hoc sinh.";

cout<<"\n 4.Hien bang diem co diem trung binh cao nhat."; cout<<"\n 5.Xoa thong tin bang diem o dau";

cout<<"\n 6.Sap xep danh sach theo thu tu tang dan cua diem TB"; cout<<"\n 7.Hien thong tin bang co diem TB >x";

cout<<"\n 8.Sua thong tin bang diem theo ma hoc sinh";

cout<<"\n 9.Doc du lieu tu file ";

cout<<"\n 0.Thoat!";

cout<<"\n Moi chon:";cin>>chon;

25

Trang 28

case 7: hienTT(b); break;

case 8: suaBangDiem(b); break;

Trang 32

NodeHocSinh *getNode(HOCSINH x){

Trang 33

void in1(HOCSINH x)

{

// ma ten gioi tinh ngaysinh diachi cout<<"\n"<<setw(7)<<x.maHs;

Trang 35

cout<<setw(7)<<" Ma "<<setw(10)<<" Ho ten "<<setw(15)<<" Gioi tinh

"<<setw(15)<<" Ngay sinh "<<setw(15)<<" Dia chi "<<endl;

struct NodeMonhoc *next;

struct NodeMonhoc *prev;

};

struct ListMonhoc

Trang 37

cout<<"Nhap ma mon hoc: ";cin>>v.maMh;

cout<<"Nhap ten mon hoc: ";

cin.ignore();

Trang 38

cout<<"Nhap so buoi hoc: ";cin>>v.soBuoi; cout<<"Nhap so tiet hoc: ";cin>>v.soTiet;}

}

}

void hienDsmh(ListMonhoc &m)

37

Trang 63

cout<<setw(7)<<" Ma mon hoc "<<setw(10)<<" Ten mon hoc "<<setw(15)<<"

So tiet "<<setw(8)<<" So buoi "<<endl;

for(q=m.top;q!=NULL;q=q->next)

{

hienmonhoc(q->info);

Trang 65

b.top=NULL;

}

StackNodeDiem *getNodeD(BangDiem x){

Trang 66

cout<<"Nhap ma bang diem: ";cin>>x.maDiem;

cout<<"Nhap ma hoc sinh: ";cin>>x.maHocSinh; cout<<"Nhap ma mon hoc: ";cin>>x.maMonHoc; cout<<"Nhap diem mieng: ";cin>>x.diemMieng; cout<<"Nhap diem 15p: ";cin>>x.diem15p;

cout<<"Nhap diem 1 tiet: ";cin>>x.diem1tiet;

x.diemTB=(x.diemMieng+x.diem15p*2+x.diem1tiet*3)/6;}

65

Trang 67

void hienBang(BangDiem x)

{

cout<<"\n"<<setw(7)<<x.maDiem; cout<<setw(15)<<x.maHocSinh; cout<<setw(15)<<x.maMonHoc; cout<<setw(12)<<x.diemMieng; cout<<setw(12)<<x.diem15p;

cout<<setw(12)<<x.diem1tiet; cout<<setw(12)<<x.diemTB;

Trang 68

void hienDsBang(StackDiem &b)

{

StackNodeDiem *p;

cout<<setw(7)<<"Ma diem"<<setw(15)<<"Ma hoc sinh"<<setw(15)<<"Ma monhoc"<<setw(12)<<"Diem mieng"<<setw(12)<<"Diem 15p"<<setw(12)<<"Diem1tiet"<<setw(12)<<"Diem TB";

Trang 70

if(max==p->info.diemTB)

{

69

Trang 71

hienBang(p->info);

}

}

}

//Xoa thong tin bang diem o dau

void PopDiem(StackDiem &b)

Trang 72

{

for(q=p->next;q!=NULL;q=q->next) {

if(p->info.diemTB>q->info.diemTB) {

if(p->info.diemTB>x)

71

Trang 74

cout<<"\n 1.Nhap danh sach bang diem va ghi du lieu.";

cout<<"\n 2.Hien danh sach bang diem ";

73

Trang 75

cout<<"\n 3.Tim kiem bang diem theo ma hoc sinh.";

cout<<"\n 4.Hien bang diem co diem trung binh cao nhat."; cout<<"\n 5.Xoa thong tin bang diem o dau";

cout<<"\n 6.Sap xep danh sach theo thu tu tang dan cua diem TB"; cout<<"\n 7.Hien thong tin bang co diem TB >x";

cout<<"\n 8.Sua thong tin bang diem theo ma hoc sinh";

cout<<"\n 9.Doc du lieu tu file ";

Trang 76

cout<<"Khong tim thay";

exit(1);

}

else cout<<"Tim thay"<<endl;

cout<<setw(7)<<"Ma diem"<<setw(15)<<"Ma hoc sinh"<<setw(15)<<"Ma monhoc"<<setw(12)<<"Diem mieng"<<setw(12)<<"Diem 15p"<<setw(12)<<"Diem1tiet"<<setw(12)<<"Diem TB";

case 7: hienTT(b); break;

case 8: suaBangDiem(b); break;

case 9:

docFile2(b);

//hienDsBang(b);

75

Trang 78

cout<<"\n 1.Nhap va hien danh sach hoc sinh"; cout<<"\n 2.Nhap va hien danh sach mon hoc"; cout<<"\n 3.Danh sach bang diem";

Trang 79

V-Kiểm thử -Bộ test:

Nhập và hiện danh sách học sinh:

Trang 80

Nhập và hiện danh sách môn học:

79

Trang 81

Menu bảng điểm:

Nhập danh sách bảng điểm và ghi dữ liệu:

Hiện danh sách bảng điểm :

Trang 82

Tìm kiếm bảng điểm theo mã học sinh:

Tìm bảng điểm có điểm trung bình cao nhất:

Xóa bảng điểm ở đầu danh sách:

Sắp xếp bảng điểm theo thứ tự tăng dần của bảng điểm:

81

Trang 83

Hiện thông tin bảng điểm có điểm trung bình > x:

Đọc file:

Ngày đăng: 08/04/2024, 12:49

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w