Bài tập C++: Sử dụng Mảng trong C++ (bài 2)
Bài tập
Viết một chương trình C++ để hiển thị một menu cho phép người dùng lựa chọn hoặc quan sát tất cả bản ghi của sinh viên hoặc chỉ quan sát các bản ghi của một sinh viên cụ thể bởi lựa chọn id của sinh viên đó.
==========================================================
==========================================================
1. Quan sat tat ca ban ghi cua sinh vien
2. Quan sat mot ban ghi cua sinh vien boi ID
3. Hien thi diem thi cuoi ky cao nhat va thap nhat
Nhap lua chon cua ban (1-3): 1
|ID | Kiemtra1 | Kiemtra2 | Giuaky | Cuoiky
| ==================================================
|1232 | 10 | 23 | 45 | 56 |
|2343 | 45 | 43 | 24 | 78 |
|2343 | 34 | 45 | 45 | 45 |
|3423 | 67 | 6 | 65 | 56 |
Lời giải
Dưới đây là chương trình C++ để giải bài tập trên. Chúng ta sử dụng các mảng hai chiều để lưu trữ các bản ghi liên quan tới sinh viên.
#include <cstdlib> #include <iostream> using namespace std; void showheading(); int hivalue(int stu[4][5]); int lovalue(int stu[4][5]); void displaymenu(){ cout<<"========================================================"<<"\n"; cout<<" MENU "<<"\n"; cout<<"========================================================"<<"\n"; cout<<" 1. Quan sat tat ca ban ghi cua sinh vien"<<"\n"; cout<<" 2. Quan sat mot ban ghi cua sinh vien boi ID"<<"\n"; cout<<" 3. Hien thi diem thi cuoi ky cao nhat va thap nhat"<<"\n"; } void viewall(int stu[4][5]){ int i,j; //Hien thi tieu de showheading(); for(i=0;i<4;i++){ for(j=0;j<5;j++) cout<<stu[i][j]<<"\t\t"; cout<<"\n"; } } void viewbyid(int stu[4][5]){ int id,i,j; bool l=false; cout<<"Nhap ID cua sinh vien:"; cin>>id; for(i=0;i<4;i++){ if(stu[i][0]==id){ showheading();l=true; for(j=0;j<5;j++)cout<<stu[i][j]<<"\t\t";} cout<<"\n";} if(l==false) cout<<"Xin loi, khong tim thay!\n"; } void showhl(int stu[4][5]){ cout<<"Diem thi cao nhat la:"<<hivalue(stu); cout<<"\n"; cout<<"Diem thi thap nhat la:"<<lovalue(stu); cout<<"\n"; } void showheading(){ cout<<"========================================================\n"; cout<<"ID Kiemtra1 Kiemtra2 Giuaky Cuoiky\n"; cout<<"========================================================\n"; } int hivalue(int stu[4][5]){ int *max,i; max=&stu[0][4]; for(i=0;i<4;i++) if(*max<stu[i][4])*max=stu[i][4]; return(*max); } int lovalue(int stu[4][5]){ int *min,i; min=&stu[0][4]; for(i=0;i<4;i++) if(*min>stu[i][4])*min=stu[i][4]; return(*min); } int main(int argc, char *argv[]) { //xay dung mang hai chieu de luu tru ban ghi cua sinh vien int stu[4][5]={{6001,7,7,8,9},{6002,6,8,5,8},{6003,5,6,6,7},{6004,8,9,8,9}}; //Hien thi menu displaymenu(); int yourchoice; char confirm; do { cout<<"Nhap lua chon cua ban (1-3):"; cin>>yourchoice; switch(yourchoice){ case 1:viewall(stu);break; case 2:viewbyid(stu);break; case 3:showhl(stu);break; default:cout<<"Khong hop le"; } cout<<"Nhan y hoac Y de tiep tuc:"; cin>>confirm; }while(confirm=='y'||confirm=='Y'); return 0; }
Chạy chương trình C++ trên sẽ cho kết quả như hình sau:
Lựa chọn 1:
Lựa chọn 2 và 3:
Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.
Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.
Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack
Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.
Bài học Bài tập C++ phổ biến tại vietjack.com: