定义一个三角形类(TRI)及其派生类三角柱体类(COL)。其中三角形类可以计算三角形的面积和周长;三角柱体类可以计算柱体的体积和表面积。其具体要求如下: (1)TRI的成员如下:  私有数据成员 

题目要求:

定义一个三角形类(TRI)及其派生类三角柱体类(COL)。其中三角形类可以计算三角形的面积和周长;三角柱体类可以计算柱体的体积和表面积。其具体要求如下:

(1)TRI的成员如下:

私有数据成员
double x,y,z; 分别表示三角形三条边的长度
公有成员函数
TRI(double x1,double y1,double z1); 构造函数,用x1,y1,z1分别初始化三角形的三条边。在初始化 之前,必须先判断x1,y1,z1能否构成三角形,如果不能构成三角形,则给出提示并推出程序。
virtual double area();虚函数,计算三角形的面积。
double peri(); 计算三角形的周长。

(2)类COL为类TRI的公有派生类,其成员如下:

私有数据成员
double height; 表示三角柱体的高度。
公有成员函数
COL(double x1,double y2,double z1,double h);构造函数,用h初始化height,用x1、y2、z1分别初始化基类的成员x,y,z。
double volume();计算三角柱体的体积。
double area();计算三角柱体的表面积。

(3)Main函数实现如下:

在主函数中,创建一个COL对象co和一个TRI指针*tr,并将tr指向co。通过co调用volume()计算并输出三角柱体的体积;通过tr调用area()计算并输出三角柱体的表面积

代码描述:

1.创建TRI类

创建TRI.h文件,用于声明TRI类

#pragma once
#include<iostream>
#include<cmath>
using namespace std;
//定义TRI(三角形)类
class TRI
{
private:
	double x, y, z;	//三条边
public:
	TRI(double x1, double y1, double z1);	//构造函数
	virtual double area();					//虚函数,计算三角形的面积
	double peri();							//计算三角形的周长
};

2.实现TRI类

创建TRI.cpp文件,用于实现TRI类

//导入TRI类的声明文件
#include "TRI.h"
//构造函数,初始化三条边,判断能否构成三角形,不能则输出提示信息
TRI::TRI(double x1, double y1, double z1)
{
	if (x1 + y1 <= z1 || x1 + z1 <= y1 || z1 + y1 <= x1) {
		cout << "这三条边不能构成三角形!" << endl;
	}
	x = x1;
	y = y1;
	z = z1;
}
//计算三角形的面积
double TRI::area()
{
	double p = (x + y + z) / 2.0;
	return sqrt(p * (p - x) * (p - y) * (p - z));
}
//计算三角形的周长
double TRI::peri()
{
	return x+y+z;
}

3.创建COL类

创建COL.h文件,用于声明COL类

#pragma once
//导入TRL(三角形)类的声明文件
#include"TRI.h"
//定义COL(三角柱体)类 使用公有的方式继承TRI(三角形)类
class COL:public TRI
{
private:
	double height;		//三角柱的高
public:
	//构造函数,用h初始化height,用x1、y2、z1分别初始化基类的成员x,y,z。
	COL(double x1, double y1, double z1, double h);
	double volume(); //计算三角柱体的体积。
	double area(); //计算三角柱体的表面积。
};

4.实现COL类

创建COL.cpp文件,用于实现COL类

//导入COL(三角柱体)的声明文件
#include "COL.h"
//构造函数,初始化三条边和高
COL::COL(double x1, double y1, double z1, double h):TRI(x1,y1,z1)
{
	this->height = h;
}
//计算三角柱的体积
double COL::volume()
{
	//v= s*h; 体积
	return TRI::area() * this->height;
}
//计算三角柱的表面积
double COL::area()
{
	return TRI::area() * 2 + TRI::peri() * this->height;
}

5.Main函数的实现

创建main.cpp实现各个类的功能

//导入三角柱体类
#include"COL.h"

int main() {
	//定义三角柱体的三条边和高度
	double x, y, z, h;
	cout << "输入三角柱体的三条边和高的长度:"<<endl;
	//输入三角柱体的三条边和高度
	cin >> x >> y >> z >> h;
	//初始化COL对象
	COL co = COL(x,y,z,h);
	TRI* tr = &co;
	cout<<"三角柱体的体积:" << co.volume() << endl;
	cout <<"三角柱体的表面积:" << tr->area() << endl;
	return 0;
}

样例输出:

样例1:在这里插入图片描述
样例2:
在这里插入图片描述

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孑然R

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值