Bài thực hành số 4:
Lập trình tổ chức Menu
A. Mục tiêu
Tổ chức chương trình menu cho phép chọn lựa chức năng thực
hiện.
Sử dụng thuần thục các câu lệnh điều khiển
Rèn luyện cách gọi hàm, truyền tham trị.
B. Ôn tập:
Hệ thống các hàm thường dùng trong Menu:
o Hàm Menu
o Hàm chọn menu
o Hàm xử lý menu
//Hàm xuất các chức năng chính của chương trình
// Chương trình có 4 chức năng chính, chức năng 5 dùng để thóat khỏi chương trình
void Menu()
{
cout<<"\n BANG MENU ";
cout<<"\n1. Chức năng 1";
cout<<"\n2. Chức năng 2";
cout<<"\n3. Chức năng 3";
cout<<"\n4. Thoat khoi CT!";
}
//Hàm điều khiển chọn menu
int ChonMenu()
{
int Chon;
for(;;)
{
Menu();
cout<<"\nNhap Chon tu 1 -> 4: ";
cin>>Chon;
if (1 <= Chon && Chon <= 4)
break;
}
return Chon;
}
//Hàm xử lý menu
void XL_Menu(KDL a, int Chon)
{
switch(Chon)
{
case 1:
//Thực hiện chức năng 1
break;
case 2:
//Thực hiện chức năng 1
break;
case 3:
//Thực hiện chức năng 1
break;
case 4:
cout<<"\n5. Thoat khoi CT!\n";
exit(1);
}
}
C. Luyện tập:
Ví dụ 1:
Viết chương trình thực hiện các thao tác trên số nguyên dương. Yêu cầu của
chương trình là :
- In ra màn hình menu có các chức năng sau :
1. Tính S
1
=
∑
=
n
i
i
1
1
;
2. Tính S
2
=
∑
=
+
n
i
i
i
1
2
1
;
3. Tính S
3
=
∑
=
+
−
n
i
i
i
i
1
1
)1(
- Muốn thực hiện thao tác nào thì chọn chức năng tương ứng của menu .
Thực hiện:
Bước 1: Tạo Project với tên “Lab4_Vd1”.
Bước 2: Tạo tập tin chương trình vd1.cpp
Bước 3: Trong tập tin vd1.cpp, soạn code theo cấu trúc:
// Chèn các tập tin thư viện cần thiết
//Chuong trinh tinh tong
#include <iostream>
using namespace std;
//Khai bao nguyen mau
//Cac ham to chuc menu
void Menu();
int ChonMenu();
void XL_Menu(int n, int Chon);
//Cac ham chuc nang
double Tong1(int n);
double Tong2(int n);
double Tong3(int n);
void main()
{
int Chon, n;
cout<<"\nNhap n = ";
cin>>n;
do
{
Chon = ChonMenu();
XL_Menu(n,Chon);
}
while(1);
}
void Menu()
{
cout<<"\n BANG MENU ";
cout<<"\n1. Tinh S1";
cout<<"\n2. Tinh S2";
cout<<"\n3. Tinh S3";
cout<<"\n4. Thoat khoi chuong trinh!!!";
}
int ChonMenu()
{
int Chon;
for(;;)
{
Menu();
cout<<"\nNhap Chon tu 1 -> 4: ";
cin>>Chon;
if (1 <= Chon && Chon <= 4)
break;
}
return Chon;
}
void XL_Menu(int n, int Chon)
{
switch(Chon)
{
case 1:
cout<<"\n1.Tong S1:\n";
cout<<"\nS1 = "<<Tong1(n);
cout<<'\n';
break;
case 2:
cout<<"\n1.Tong S2:\n";
cout<<"\nS2 = "<<Tong2(n);
cout<<'\n';
break;
case 3:
cout<<"\n1.Tong S3:\n";
cout<<"\nS3 = "<<Tong3(n);
cout<<'\n';
break;
case 4:
cout<<"\n4. Thoat khoi CT!\n";
exit(1);
}
}
double Tong1(int n)
{
double S = 0;
int i;
for(i = 1; i <= n; i++)
S += 1/(double)i;
return S;
}
double Tong2(int n)
{
double S = 0;
int i;
for(i = 1; i <= n; i++)
S += (double)(i+1)/(i*i);
return S;
}
double Tong3(int n)
{
double S = 0;
int i;
for(i = 1; i <= n; i++)
if(i%2==0)
S += (double)(i)/(i+1);
else
S -= (double)(i)/(i+1);
return S;
}
Bước 4: Kiểm tra lỗi, chạy và xem kết quả chương trình.
D. Bài tập:
Bài 1:
Viết chương trình thực hiện các thao tác trên số nguyên dương. Yêu cầu của
chương trình là :
- In ra màn hình menu có các chức năng sau :
1. Tính diện tích hình vuông khi biết cạnh
2. Tính diện tích hình chữ nhật khi biết 2 cạnh
3. Tính diện tích hình tam giác khi biết 3 cạnh
4. Tính diện tích hình tròn khi biết bán kính
5. Thoát khỏi chương trình
- Muốn thực hiện thao tác nào thì chọn chức năng tương ứng của menu .
Bài 2:
Viết chương trình thực hiện các thao tác trên số nguyên dương. Yêu cầu của
chương trình là :
- In ra màn hình menu có các chức năng sau :
1. Tìm và in ra n số nguyên tố đầu tiên.
2. Tìm và in ra các số nguyên tố không lớn n
3. Tính n!
4. Phân tích n thành tích các thừa số nguyên tố
5. Thoát khỏi chương trình
- Muốn thực hiện thao tác nào thì chọn chức năng tương ứng của menu .