版权声明:版权所有,尊重原创。转载请注明出处: https://blog.csdn.net/qq_36426650/article/details/84627201
C++面向对象程序设计50道编程题(第14题)
摘要:C++程序设计实习是为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析问题和解决问题的能力,提高学生运用所学知识解决实际问题的能力。
本专辑为编程入门者、高校计算机软件专业学习或复习提供C++程序设计题库。
读者请先独立思考哦,再与参考程序进行比对检查。
一、问题描述
二、考察内容
基本面向对象概念,理解虚函数的定义,并应用集成虚函数重写方法,简单的数学运算。
三、难度等级
难度等级:★★★☆☆
四、参考程序
#include <iostream.h>
class container{
protected:
double radius;
public:
container(double radius)
{
container::radius=radius;
}
virtual double surface_area()=0; //纯虚函数
virtual double volume()=0; //纯虚函数
};
class cube:public container //定义正方体类
{
public:
cube(double radius):container(radius){ };
double surface_area()
{
return radius*radius*6;
}
double volume()
{
return radius*radius*radius;
}
};
class sphere:public container //定义球体类
{
public:
sphere(double radius):container(radius){ };
double surface_area()
{
return 4*3.1416*radius*radius;
}
double volume()
{
return 3.1416*radius*radius*radius*4/3;
}
};
class cylinder:public container //定义圆柱体
{
double height;
public:
cylinder(double radius,double height):container(radius)
{
cylinder::height=height;
}
double surface_area()
{
return 2*3.1416*radius*(height+radius);
}
double volume()
{
return 3.1416*radius*radius*height;
}
};
void main()
{
container *p; //定义抽象类指针p
cube obj1(10); //创建正方体对象obj1
sphere obj2(6); //创建球体对象obj2
cylinder obj3(4,5); //创建圆柱体对象obj3
p=&obj1; //指针p指向正方体对象obj1
cout<<"输出结果:"<<endl;
cout<<" 正方体表面积:"<<p->surface_area()<<endl;
cout<<" 正方体体积: "<<p->volume()<<endl;
p=&obj2; //指针p指向球体对象obj2
cout<<" 球体的表面积:"<<p->surface_area()<<endl;
cout<<" 球体的体积: "<<p->volume()<<endl;
p=&obj3; //指针p指向圆柱体对象obj3
cout<<" 圆体的表面积:"<<p->surface_area()<<endl;
cout<<" 圆体的体积: "<<p->volume()<<endl;
}
五、心得感受
可以在评论处写下思考和编程此题的感受