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";
}
五、心得感受
可以在评论处写下思考和编程此题的感受