Bài tập quản lý sinh viên trong C++ (Phần 1)



Bài tập

Viết chương trình C++ để giữ các bản ghi và thực hiện các trình phân tích thống kê cho một lớp gồm 20 sinh viên. Thông tin của mỗi sinh viên gồm id, tên, tuổi, điểm kiểm tra (hai điểm kiểm tra mỗi kỳ), điểm chuyên cần, điểm thi giữa kỳ, điểm thi cuối kỳ, và tổng điểm.

Chương trình của bạn sẽ nhắc người dùng lựa chọn các hành động có thể thực hiện trên các bản ghi từ menu có dạng sau:

==========================================================

MENU

==========================================================

1. Them ban ghi sinh vien

2. Xoa ban ghi sinh vien

3. Cap nhat ban ghi sinh vien

4. Quan sat tat ca ban ghi sinh vien

5. Tinh diem trung binh cua mot sinh vien da chon

6. Hien thi sinh vien co tong diem cao nhat

7. Hien thi sinh vien co tong diem thap nhat

8. Tim sinh vien boi ID

9. Sap xep cac ban ghi boi tong diem thi cua sinh vien

Nhap lua chon cua ban: 1

Ghi chú: Tất cả các bản ghi được lưu trữ trong một mảng.

Lời giải

Dưới đây là chương trình C++ để giải bài tập trên. Đây là một bài tập lớn và phức tạp, do đó chúng tôi chia lời giải thành các phần nhỏ và giải thích chi tiết từng phần một để giúp bạn dễ dàng theo dõi và hiểu nhanh hơn. Bạn theo dõi các bước sau:

Bước 1: Khai báo một Structure

Khai báo một Structure gọi là sinhvien để lưu trữ các bản ghi. Structure này gồm 9 thành viên, đó là:

  • mssv(string) để lưu trữ id của sinh viên

  • tensv(mảng ký tự) để lưu trữ tên sinh viên

  • sex(char) để lưu trữ giới tính

  • diemkt1(float) để lưu trữ điểm kiểm tra đầu tiên

  • diemkt2(float) để lưu trữ điểm kiểm tra thứ hai

  • diemcc(float) để lưu trữ điểm chuyên cần

  • diemgk(float) để lưu trữ điểm thi giữa kỳ

  • diemck(float) để lưu trữ điểm thi cuối kỳ

  • tongdiem(float) để lưu trữ tổng điểm

Dưới đây là code cho bước 1:

typedef struct sinhvien
{string mssv;
char tensv[20];
char sex;
float diemkt1;
float diemkt2;
float diemcc;
float diemgk;
float diemck;
float tongdiem;};

Bước 2: Hiển thị menu

Định nghĩa phương thức displaymenu() để hiển thị menu. Menu đơn giản này cung cấp 9 lựa chọn từ 1 tới 9 để làm việc với các bản ghi.

Dưới đây là code cho bước 2:

//Xay dung menu
void displaymenu(){
cout<<"===========================================<<"\n";
cout<<" MENU "<<"\n";
cout<<"==========================================="<<"\n";
cout<<" 1. Them ban ghi sinh vien"<<"\n";
cout<<" 2. Xoa ban ghi sinh vien"<<"\n";
cout<<" 3. Cap nhat ban ghi sinh vien"<<"\n";
cout<<" 4. Quan sat tat ca ban ghi sinh vien"<<"\n";
cout<<" 5. Tinh diem trung binh cua mot sinh vien da chon"<<"\n";
cout<<" 6. Hien thi sinh vien co tong diem cao nhat"<<"\n";
cout<<" 7. Hien thi sinh vien co tong diem thap nhat"<<"\n"; 
cout<<" 8. Tim sinh vien boi ID"<<"\n"; 
cout<<" 9. Sap xep cac ban ghi boi tong diem thi cua sinh vien"<<"\n"; 
}

Bạn trở lại trang cha để tìm hiểu tiếp các bước.


bai_tap_struct_trong_cplusplus.jsp