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

版权声明:版权所有,尊重原创。转载请注明出处: 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;
}

五、心得感受

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

猜你喜欢

转载自blog.csdn.net/qq_36426650/article/details/84627201
今日推荐