C++面向对象程序设计50道编程题(第23题)

C++面向对象程序设计50道编程题(第23题)

摘要:C++程序设计实习是为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析问题和解决问题的能力,提高学生运用所学知识解决实际问题的能力。
  本专辑为编程入门者、高校计算机软件专业学习或复习提供C++程序设计题库。
  读者请先独立思考哦,再与参考程序进行比对检查。

一、问题描述

在这里插入图片描述

二、考察内容

  基本面向对象概念,如何创建类、对象,对类私有数据成员和公有成员函数的理解,对虚函数以及派生类的理解,简单的数学运算。

三、难度等级

难度等级:★★★☆☆

四、参考程序

#include <iostream.h>
#include <math.h>
class TR1{
	double x,y,z;
public:
	TR1(double x1,double y1,double z1)
	{ 		x=x1;y=y1;z=z1; 	}
	virtual double area()
	{
		double s=(x+y+z)/2;
		s=sqrt(s*(s-x)*(s-y)*(s-z));		
		return s;
	}
	double print()
	{
		double s=x+y+z;
		return s;
	}
};
class COL:public TR1{
	double height;
public:
	COL(double x1,double y1,double z1,double h):TR1(x1,y1,z1)
	{  		height=h; 	}
	double volume()
	{
		double vol=TR1::area();
		vol=vol*height;
		return vol;
	}
	double area()
	{
		double are=TR1::area();
		double pri=TR1::print();
		are=2*are+pri*height;
		return are;
	}
};
void main()
{
	TR1 *tr;
	double a,b,c,h;
	cout<<"请输入三角形的底面边长和高:";
	cin>>a>>b>>c>>h;
	if(a+b>c&&a+c>b&&b+c>a)
	{
		COL co(a,b,c,h);	
		tr=&co;
		cout<<"三角柱体的体积为:";
		cout<<co.volume()<<'\n';
		cout<<"三角柱体的表面积为:";
		cout<<tr->area()<<'\n';
	}else
		cout<<"所输入的三条边不能构成三角形!\n";
}

五、心得感受

可以在评论处写下思考和编程此题的感受

猜你喜欢

转载自blog.csdn.net/qq_36426650/article/details/84873569