编程小练习
2016-05-26 13:25
218 查看
#include<iostream>
using namespace std;
//基类
class CSolid
{
public :
virtual double area() const=0;//面积
virtual double tiji() const=0;//体积
};
///正方体
class CCube:public CSolid
{
private:
double chang,kuan,gao;
public :
CCube(double cha,double kua,double ga):chang(cha),kuan(kua),gao(ga){}
double area() const;
double tiji() const;
};
/******/
double CCube::area() const
{
return chang*kuan*2+chang*gao*2+kuan*gao*2;
}
double CCube::tiji() const
{
return chang*kuan*gao;
}
///球体
class CBall:public CSolid
{
private:
double banjing;
public:
CBall(double ban):banjing(ban){}
double area() const;
double tiji() const;
};
/*******/
double CBall::area() const
{
return 4*3.14159*banjing*banjing;
}
double CBall::tiji() const
{
return 4*3.14159*banjing*banjing/3;
}
///圆柱体
class CCylinder:public CSolid
{
private:
double banjing,gao;
public:
CCylinder(double ban,double ga):banjing(ban),gao(ga){}
double area() const ;
double tiji() const ;
};
double CCylinder::area() const
{
return 3.14159*banjing*banjing*2+2*3.14159*banjing*gao;
}
double CCylinder::tiji() const
{
return 3.14159*banjing*banjing*gao;
}
int main()
{
CCube c1(2.1,2.1,2.1);
CBall b1(2.5);
CCylinder r1(2.5,3.0);
CSolid *pt[3]= {&c1,&b1,&r1}; //定义基类指针数组pt,使它每一个元素指向一个派生类对象
cout<<"长方体表面积:"<<pt[0]->area()<<" 长方体体积:"<<pt[0]->tiji()<<endl;
cout<<"球体的表面积:"<<pt[1]->area()<<" 球体的体积:"<<pt[1]->tiji()<<endl;
cout<<"圆柱的表面积:"<<pt[2]->area()<<" 圆柱的体积:"<<pt[2]->tiji()<<endl;
return 0;
}
#include<iostream>
using namespace std;
//基类
class CSolid
{
public :
virtual double area() const=0;//面积
virtual double tiji() const=0;//体积
};
///正方体
class CCube:public CSolid
{
private:
double chang,kuan,gao;
public :
CCube(double cha,double kua,double ga):chang(cha),kuan(kua),gao(ga){}
double area() const;
double tiji() const;
};
/******/
double CCube::area() const
{
return chang*kuan*2+chang*gao*2+kuan*gao*2;
}
double CCube::tiji() const
{
return chang*kuan*gao;
}
///球体
class CBall:public CSolid
{
private:
double banjing;
public:
CBall(double ban):banjing(ban){}
double area() const;
double tiji() const;
};
/*******/
double CBall::area() const
{
return 4*3.14159*banjing*banjing;
}
double CBall::tiji() const
{
return 4*3.14159*banjing*banjing/3;
}
///圆柱体
class CCylinder:public CSolid
{
private:
double banjing,gao;
public:
CCylinder(double ban,double ga):banjing(ban),gao(ga){}
double area() const ;
double tiji() const ;
};
double CCylinder::area() const
{
return 3.14159*banjing*banjing*2+2*3.14159*banjing*gao;
}
double CCylinder::tiji() const
{
return 3.14159*banjing*banjing*gao;
}
int main()
{
CCube c1(2.1,2.1,2.1);
CBall b1(2.5);
CCylinder r1(2.5,3.0);
CSolid *pt[3]= {&c1,&b1,&r1}; //定义基类指针数组pt,使它每一个元素指向一个派生类对象
cout<<"长方体表面积:"<<pt[0]->area()<<" 长方体体积:"<<pt[0]->tiji()<<endl;
cout<<"球体的表面积:"<<pt[1]->area()<<" 球体的体积:"<<pt[1]->tiji()<<endl;
cout<<"圆柱的表面积:"<<pt[2]->area()<<" 圆柱的体积:"<<pt[2]->tiji()<<endl;
return 0;
}
相关文章推荐
- javax.el.PropertyNotFoundException: Property 'emailaddress' not found on type ja
- 编程小练习
- 如何更改java应用程序标题栏默认图标
- 栏目跳转 用iframe加载页面 ajax加载页面在div中
- 编程小练习
- Java—JNI的使用
- xcode自定义编写插件----改变c++/c注释风格
- myeclipse中svn插件存放目录
- JAVA 学习视频
- Java线程并发中常见的锁--自旋锁 偏向锁
- JAVA学习笔记五之(1)数组
- qt在Windows下调用动态库
- c++作业—6
- Spring Boot 性能优化
- 第二章 C语言基础程序设计
- C#中Dictionary、ArrayList、Hashtable和Array的区别
- Java JNI 调用 so 动态链接库
- 70. Climbing Stairs [easy] (Python)
- C语言
- c++的强制类型转换