[Tự học lập trình C/C++] Nạp chồng hàm tính diện tích hình tròn, tam giác vuông, hình chữ nhật.

Share:

Bài tập

Viết chương trình C++ để tính diện tích hình tròn, hình tam giác, hình chữ nhật bởi sử dụng khái niệm nạp chồng hàm trong C++ tùy theo lựa chọn của người dùng.
hình chữ nhật - tinhoccoban.net

Lời giải

Dưới đây là chương trình C++ để giải bài tập trên. Người dùng lựa chọn theo kịch bản sau:
Khai báo lớp fn với các thành viên dữ liệu và hàm thành viên của nó.
Đọc các lựa chọn từ người dùng.

  • Lựa chọn = 1, thì hàm dientich() sẽ tính diện tích của hình tròn với một tham số nguyên.
  • Lựa chọn = 2, thì hàm này sẽ tính diện tích của hình chữ nhật với hai tham số nguyên.
  • Lựa chọn = 3, thì hàm này sẽ tính diện tích của hình tam giác với ba tham số (hai tham số nguyên, một tham số thực).
  • Lựa chọn = 4, thì kết thúc chương trình.
#include<iostream>
#include<stdlib.h>
#include<conio.h>
#define pi 3.14
using namespace std;
class fn
{
      public:
        void dientich(int);  //hinh tron
        void dientich(int,int);  //hinh chu nhat
        void dientich(float ,int,int);  //hinh tam giac
};
 
void fn::dientich(int a)
{
      cout<<"Dien tich hinh tron la: "<<pi*a*a;
}
void fn::dientich(int a,int b)
{
      cout<<"Dien tich hinh chu nhat la: "<<a*b;
}
void fn::dientich(float t,int a,int b)
{
      cout<<"Dien tich hinh tam giac la: "<<t*a*b;
}
 
int main()
{
     int ch;
     int a,b,r;
     
     fn obj;
     cout<<"\n\t\tNap chong ham";
     cout<<"\n1. Dien tich hinh tron" "\n2. Dien tich hinh chu nhat" "\n3. Dien tich hinh tam giac" "\n4. Thoat";
     cout<<"\nNhap lua chon cua ban: ";
     cin>>ch;
 
     switch(ch)
     {
              case 1:
                cout<<"Nhap ban kinh duong tron: ";
                cin>>r;
                obj.dientich(r);
                break;
              case 2:
                cout<<"Nhap hai canh cua hinh chu nhat: ";
                cin>>a>>b;
                obj.dientich(a,b);
                break;
              case 3:
                cout<<"Nhap cac canh cua hinh tam giac: ";
                cin>>a>>b;
                obj.dientich(0.5,a,b);
                break;
              case 4:
                exit(0);
     }
return 0;
}