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