BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC XÂY DỰNG HÀ NỘIKHOA CÔNG NGHỆ THÔNG TIN Nguyễn Gia Bảo - 0002768Nguyễn Tiến Đạt - 4000468Giảng viên: Nguyễn Trần Hải... BÁO CÁO BÀI TẬP LỚNBài tập: X
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC XÂY DỰNG HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN
***
BỘ MÔN NGÔN NGỮ LẬP TRÌNH C++
BÁO CÁO: Bài tập lớn Nhóm 12
Nhóm 12 – 68IT3
Thành viên : Tống Xuân Định - 0008268 Nguyễn Trung Dũng - 0004468 Nguyễn Gia Bảo - 0002768 Nguyễn Tiến Đạt - 4000468 Giảng viên: Nguyễn Trần Hải
Trang 2
BÁO CÁO BÀI TẬP LỚN
Bài tập: Xây dựng chương trình quản lý điểm của một lớp N sinh viên,
M môn học gồm những chức năng: Nhập, xem, tìm kiếm và thống kê Trong đó điểm của từng môn có hệ số tính theo số tín chỉ của môn đó.
Nhóm 12 thực hiện:
Họ và tên sinh viên 1: Tống Xuân Định
Họ và tên sinh viên 2: Nguyễn Trung Dũng
Họ và tên sinh viên 3: Nguyễn Gia Bảo
Họ và tên sinh viên 4: Nguyễn Tiến Đạt
Trường: Trường Đại học Xây Dựng Hà Nội (HUCE)
Giảng viên hướng dẫn: Nguyễn Trần Hải
I Giới thiệu:
Bài báo cáo này trình bày về chương trình quản lý điểm của một lớp N sinh viên,
M môn học gồm những chức năng: Nhập, xem, tìm kiếm và thống kê
II Mục tiêu:
Mục tiêu của dự án là xây dựng một ứng dụng di động đơn giản nhưng hiệu quả để quản lý thông tin sinh viên, bao gồm thông tin cá nhân, điểm số và thống kê
III Phân tích yêu cầu:
Nhóm đã thực hiện phân tích cẩn thận về các yêu cầu của ứng dụng, bao gồm:
Quản lý thông tin cá nhân của sinh viên
Hiển thị thông tin tất cả sinh viên
Hiển thị thông tin sinh viên qua viện tìm tên sinh viên
Tính điểm của từng sinh viên và xếp hạng
Sử dụng ngôn ngữ lập trinh C++ và kiến thức đã học
Trang 3IV Nhiệm vụ của mỗi người trong nhóm 12:
Tống Xuân Định:
Nguyễn Trung Dũng:
Nguyễn Gia Bảo:
Nguyễn Tiến Đạt:
V Miêu tả class, các chức năng:
- Sử dụng set, get để gán và lấy các dữ liệu thành phần
- Xây dựng các hàm thành phần phục vụ các chức năng trong phần main :
setMonhoc - Nhập tên các môn học, số tín chỉ
nhapthongtin - Nhập tên của các sinh viên, điểm của các môn học
xemthongtin - Đưa ra màn hình tên sinh viên, tên môn học, điểm từng môn
timkiem - Nhập tên sinh viên cần tìm Điểm đã nhập của sinh viên đó sẽ được đưa ra màn hình
thongke - Đưa ra màn hình điểm các môn của từng sinh viên
- Tính điểm trung bình của sinh viên theo thang điểm 10
- Đổi từ thang 10 sang 4 sau đó đưa ra kết quả bao gồm cả điểm chữ
VI Chạy thử chương trình:
Các chức năng
Trang 4Chức năng 1: Nhập thông tin môn học
Hàm setMonhoc:
void setMonhoc()
{
for(int i = 0;i<somon;i++)
{
cout<<"TEN MON HOC: ";
cin>>monhoc[i];
cout<<"SO TIN CHI CUA MON HOC DO : "; cin >>tinchi[i];
}
}
Kết quả:
Chức năng 2: Nhập thông tin sinh viên
Trang 5Hàm nhapthongtin:
void nhapthongtin()
{
cout<<"|
_|"<<endl; cout << "Nhap TEN SINH VIEN:\n";
for (int i = 0; i < sosv; i++)
{
cout << "TEN SINH VIEN: ";
cin >> sinhvien[i];
for (int j = 0; j < somon; j++)
{
cout << "NHAP DIEM CUA MON HOC " << monhoc[j] << " : "; cin >> diem[i][j];
}
}
cout<<"|
_|"<<endl; }
Kết quả:
Chức năng 3: Xem thông tin sinh viên
Trang 6Hàm xemthongtin:
void xemthongtin()
{
cout << "THONG TIN SINH VIEN:\n";
for (int i = 0; i < sosv; i++)
{
cout << "SINH VIEN " << sinhvien[i] << " ";
for (int j = 0; j < somon; j++)
{
cout << " MON :" << monhoc[j] << " DIEM: " << diem[i][j]; }
cout << endl;
}
}
Kết quả:
Chức năng 4: Tìm kiếm thông tin sinh viên
Hàm timkiem:
Trang 7void timkiem()
{
int tg;
string timkiemsv;
cout<<"Vui long nhap ten sinh vien can tim: ";
cin >> timkiemsv;
for (int i = 0; i<sosv; i++)
{
if (sinhvien[i] == timkiemsv)
{
tg = i;
}
}
if (sinhvien[tg] == timkiemsv)
{
cout << "SINH VIEN " << sinhvien[tg] << endl;
for (int j = 0; j < somon; j++)
{
cout << " MON :" << monhoc[j] << " DIEM: " << diem[tg][j]
<<endl;
}
}
else
{
cout<<"KHONG TIM THAY SINH VIEN"<<endl;
}
}
Kết quả:
- Nhập tên sinh viên có trong danh sách đã nhập thông tin trước đó:
Trang 8- Nhập tên sinh viên không có trong danh sách đã nhập thông tin trước đó:
Chức năng 5: Thống kê thông tin sinh viên
Hàm thongke:
Trang 9void thongke()
{
cout<<"|
|"<<endl; cout << "DIEM TIN CHI CUA TUNG SINH VIEN " << endl;
for (int i = 0; i < sosv; i++) {
double diemtb, diemtc1mon, diemtatca, tongtc ;
for (int j = 0; j < somon; j++)
{
diemtc1mon = diem[i][j] * tinchi[j];
tongtc += tinchi[j];
diemtatca += diemtc1mon;
cout<<"DIEM CUA MON " <<monhoc[j]<<" CUA SINH VIEN " << sinhvien[i]<<" : " <<diem[i][j]<<endl;
}
diemtb = diemtatca / tongtc;
double diembon = diemtb * 4 / 10;
if (diemtb >= 8.5)
cout<<"Sinh vien "<< sinhvien[i]<<endl<<"Thang diem 10: "<< diemtb
<<endl<< "Thang diem 4: " << diembon<<endl << "Diem chu: " << "A" << endl; else if (diemtb >= 7)
cout<<"Sinh vien "<< sinhvien[i]<<endl<<"Thang diem 10: "<< diemtb
<<endl<< "Thang diem 4: " << diembon<<endl << "Diem chu: " << "B" << endl; else if (diemtb >= 5.5)
cout<<"Sinh vien "<< sinhvien[i]<<endl<<"Thang diem 10: "<< diemtb
<<endl<< "Thang diem 4: " << diembon <<endl<< "Diem chu: " << "C" << endl; else if (diemtb >= 4.0)
cout<<"Sinh vien "<< sinhvien[i]<<endl<<"Thang diem 10: "<< diemtb
<<endl<< "Thang diem 4: " << diembon<<endl << "Diem chu: " << "D" << endl; else
cout<<"Sinh vien "<< sinhvien[i]<<endl<<"Thang diem 10: "<< diemtb
<<endl<< "Thang diem 4: " << diembon<<endl << "Diem chu: " << "F" << endl; }
Kết quả:
Trang 10VII Chương trình hoàn chỉnh:
#include <iostream>
#include <string>
using namespace std;
class student
{
private:
string *sinhvien;
string *monhoc;
int *tinchi;
int sosv;
int somon;
int **diem;
public:
student(string *monhoc, int sosv, int somon, int *tinchi) {
this->monhoc = monhoc;
Trang 11this->sosv = sosv;
this->somon = somon; this->tinchi = tinchi; sinhvien = new string[sosv]; diem = new int *[sosv]; for (int i = 0; i < sosv; i++) {
diem[i] = new int[somon]; }
}
void setMonhoc(string *mh) { monhoc = mh;
}
string* getMonhoc() { return monhoc;
}
void setSosv(int sv) { sosv = sv;
}
int getSosv() {
return sosv;
}
void setSomon(int sm) { somon = sm;
}
int getSomon() {
return somon;
}
void setTinchi(int *tc) { tinchi = tc;
}
int* getTinchi() {
return tinchi;
}
~student()
Trang 12{
delete[] monhoc;
delete[] tinchi;
delete[] sinhvien;
for (int i = 0; i < sosv; i++)
{
delete[] diem[i];
}
delete[] diem;
}
void setMonhoc() {
for(int i = 0;i<somon;i++)
{
cout<<"TEN MON HOC: ";
cin>>monhoc[i];
cout<<"SO TIN CHI CUA MON HOC DO : ";
cin >>tinchi[i];
}
}
void nhapthongtin()
{
cout<<"|
|"<<endl; cout << "Nhap TEN SINH VIEN:\n";
for (int i = 0; i < sosv; i++)
{
cout << "TEN SINH VIEN: ";
cin >> sinhvien[i];
for (int j = 0; j < somon; j++)
{
cout << "NHAP DIEM CUA MON HOC " << monhoc[j] << " : "; cin >> diem[i][j];
}
}
cout<<"|
|"<<endl; }
Trang 13void xemthongtin()
{
cout << "THONG TIN SINH VIEN:\n";
for (int i = 0; i < sosv; i++)
{
cout << "SINH VIEN " << sinhvien[i] << " ";
for (int j = 0; j < somon; j++)
{
cout << " MON :" << monhoc[j] << " DIEM: " << diem[i][j]; }
cout << endl;
}
}
void timkiem()
{
int tg;
string timkiemsv;
cout<<"Vui long nhap ten sinh vien can tim: ";
cin >> timkiemsv;
for (int i = 0; i<sosv; i++)
{
if (sinhvien[i] == timkiemsv)
{
tg = i;
}
}
if (sinhvien[tg] == timkiemsv)
{
cout << "SINH VIEN " << sinhvien[tg] << endl;
for (int j = 0; j < somon; j++)
{
cout << " MON :" << monhoc[j] << " DIEM: " << diem[tg] [j]<<endl;
}
}
else{
cout<<"KHONG TIM THAY SINH VIEN"<<endl;
}
Trang 14
}
void thongke(){
cout<<"|
|"<<endl; cout << "DIEM TIN CHI CUA TUNG SINH VIEN " << endl;
for (int i = 0; i < sosv; i++) {
double diemtb, diemtc1mon, diemtatca, tongtc ;
for (int j = 0; j < somon; j++)
{
diemtc1mon = diem[i][j] * tinchi[j];
tongtc += tinchi[j];
diemtatca += diemtc1mon;
cout<<"DIEM CUA MON " <<monhoc[j]<<" CUA SINH VIEN "
<<sinhvien[i]<<" : " <<diem[i][j]<<endl;
}
diemtb = diemtatca / tongtc;
double diembon = diemtb * 4 / 10;
if (diemtb >= 8.5)
cout<<"Sinh vien "<< sinhvien[i]<<endl<<"Thang diem 10: "<< diemtb
<<endl<< "Thang diem 4: " << diembon<<endl << "Diem chu: " << "A" << endl; else if (diemtb >= 7)
cout<<"Sinh vien "<< sinhvien[i]<<endl<<"Thang diem 10: "<< diemtb
<<endl<< "Thang diem 4: " << diembon<<endl << "Diem chu: " << "B" << endl; else if (diemtb >= 5.5)
cout<<"Sinh vien "<< sinhvien[i]<<endl<<"Thang diem 10: "<< diemtb
<<endl<< "Thang diem 4: " << diembon <<endl<< "Diem chu: " << "C" << endl; else if (diemtb >= 4.0)
cout<<"Sinh vien "<< sinhvien[i]<<endl<<"Thang diem 10: "<< diemtb
<<endl<< "Thang diem 4: " << diembon<<endl << "Diem chu: " << "D" << endl; else
cout<<"Sinh vien "<< sinhvien[i]<<endl<<"Thang diem 10: "<< diemtb
<<endl<< "Thang diem 4: " << diembon<<endl << "Diem chu: " << "F" << endl;} }
};
int main()
{
int sosv, somon;
Trang 15cout << "NHAP SO LUONG SINH VIEN: ";
cin >> sosv;
cout << "NHAP SO LUONG MON HOC: ";
cin >> somon;
string *monhoc = new string[somon];
int *tinchi = new int[somon];
student s(monhoc, sosv, somon, tinchi);
int luachon;
do
{
cout<<"| |"<<endl; cout <<"1.NHAP THONG TIN MON HOC"<<endl;
cout <<"2.NHAP THONG TIN SINH VIEN"<<endl;
cout <<"3.XEM THONG TIN SINH VIEN"<<endl;
cout <<"4.TIM KIEM THONG TIN SINH VIEN"<<endl;
cout <<"5.THONG KE THONG TIN SINH VIEN"<<endl;
cout <<"0.THOAT"<<endl;
cout <<"CHON CHUC NANG: "<<endl;
cout<<"|
|"<<endl; cin >> luachon;
bool daThucHien = false;
switch (luachon) {
case 0:
cout<<"CAM ON DA SU DUNG !"<<endl;
break;
case 1:
s.setMonhoc();
daThucHien = true;
break;
case 2:
s.nhapthongtin();
daThucHien = true;
break;
Trang 16case 3:
if (daThucHien) {
cout<<"CHON 1 VA 2 TRUOC !"<<endl; } else
{
s.xemthongtin();
}
break;
case 4:
if (daThucHien) {
cout<<"CHON 1 VA 2 TRUOC !"<<endl; } else
{
s.timkiem();
}
break;
case 5:
if (daThucHien) {
cout<<"CHON 1 VA 2 TRUOC !"<<endl; } else
{
s.thongke();
}
break;
default:
cout<<"LUA CHON SAI"<<endl;
break;
}
} while (luachon != 0);
return 0;
}
VIII Nhận xét:
Trang 17 Bài tập nằm trong phạm vi kiến thức đã được học
Nhóm đã tiến hành chạy code thử và thấy code chạy bình thường ở thời điểm hiện tại
Các lỗi và sự cố được ghi nhận và khắc phục kịp thời
Ý kiến của giảng viên bộ môn:
Thầy/cô có ý kiến hay nhận xét giúp nhóm em cải thiện hơn có thể liên hệ với nhóm em qua gmail dinh0008268@huce.edu.vn
Nhóm em rất mong nhận được nhận xét của thầy/cô!
Hà Nội, ngày…tháng…năm 2024 Phê duyệt