HinhTru

#include<iostream>
#include<fstream>
#include<cmath>

using namespace std;

// Định nghĩa lớp HinhTron
class HinhTron
{
    private:
        float r;  // Bán kính
        
    public:
        void thietLapR(float r);  // Thiết lập bán kính
        float tinhCV();  // Tính chu vi
        float tinhDT();  // Tính diện tích
};

// Định nghĩa lớp HinhTru (kế thừa từ HinhTron)
class HinhTru:public HinhTron
{
    private:
        float h;  // Chiều cao
        
    public:
        HinhTru();  // Hàm khởi tạo
        void thietLapCC(float h);  // Thiết lập chiều cao
        float tinhDT();  // Tính diện tích toàn phần
};

// Chương trình chính
int main()
{
    // Đọc từ tệp
    ifstream fin("hinhtru.txt");
    
    // Khai báo biến
    int n;
    float r, h, tongDT = 0;
    
    cout << "Chương trình tính tổng diện tích toàn phần của các hình trụ:\n";
    
    // Đọc số lượng hình trụ từ tệp
    fin >> n;
    
    // Tạo mảng động chứa các hình trụ
    HinhTru *ht = new HinhTru[n];
    
    // Đọc danh sách n hình trụ từ tệp
    for(int i = 0; i < n; i++)
    {
        // Đọc bán kính và chiều cao của hình trụ thứ i
        fin >> r >> h;
        
        // Thiết lập bán kính và chiều cao của hình trụ thứ i
        ht[i].thietLapR(r);
        ht[i].thietLapCC(h);
    }
    
    // Hiển thị kết quả
    for(int i = 0; i < n; i++)
    {
        float dt = ht[i].tinhDT();
        printf("\nDiện tích hình trụ thứ %d là: %.1f", i + 1, dt);   
        
        // Cộng vào tổng diện tích
        tongDT += dt;
    }
    printf("\nTổng diện tích của %d hình trụ là: %.1f", n, tongDT);
    
    cout << endl;
    
    // Giải phóng bộ nhớ động
    
    return 0;
}

// Định nghĩa các hàm thành viên
void HinhTron::thietLapR(float r)
{
    this->r = r;    
}

float HinhTron::tinhCV()
{
    return 2 * 3.14 * r;
}

float HinhTron::tinhDT()
{
    return 3.14 * r * r;
}

void HinhTru::thietLapCC(float h)
{
    this->h = h;
}

HinhTru::HinhTru() : h(0)
{
    // Hàm khởi tạo
}

float HinhTru::tinhDT()
{
    // Tính diện tích toàn phần của hình trụ
    return 2 * HinhTron::tinhDT() + h * HinhTron::tinhCV();
}

Last updated