- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C实验实训报告
实 验 实 训 报 告
《C/C++程序设计》
姓名:李晨 学号:14116060120 班级:14 信息工程一班 成绩:
定义由点到圆再到圆柱体的派生类层次,具体实现计算圆的面积、圆柱体的表面积和体积。
实 验
内容
1. 请先定义下Point 类并完成测试后再增加派生类Circle 类的定义,完成Circle 类的测试后,再定义派生
类Cylinder类,并完成最终的测试。
任务 2. 要求分别抓取Circle 类的测试结果和Cylinder类的测试结果。
分析
与
算 法
设计
测试
数据
及
运 行
结果
实 验 1. 在编写过程中要注意构造函数的初始化,注意函数的声明和定义,类内声明,类外定义。
体会 2. 注意基类和派生类之间的值传递。
(出 3. 注意某些函数库的声明。
现 问
题 及
解 决
方
法)
附源程序:
#include iostream
#include iomanip
using namespace std;
class Point
{
public:
Point( int 0, int 0 ) ;
void setPoint( int, int ) ;
int getX() const {return x ; }
int getY() const {return y ; }
protected:
int x, y;
};
class Circle : public Point
{
public:
Circle(double r 0.0, int x 0, int y 0);
void setRadius(double);
double getRadius() const;
double area() const;
protected:
double radius;
};
class Cylinder:public Circle
{
public:
Cylinder(double h 0.0, double r 0.0, int x 0, int y 0);
void setHeight(double);
double getHeight() const;
double area() const;
double volume() const;
protected:
double height;
};
Point::Point ( int a, int b )
{ setPoint (a , b ) ; }
void Point :: setPoint ( int a, int b )
{x a ; y b ; }
Circle::Circle( double r, int a, int b ): Point(a, b )
{ setRadius (r ); }
void Circle::setRadius ( double r )
{radius (r 0 ? r : 0 ); }
double Circle::getRadius() const
{return radius; }
double Circle::area() const
{return 3.11159 * radius * radius ; }
Cylinder::Cylinder(double h, double r, int x, int y):Circle(r,x,y)
{ setHeight(h); }
void Cylinder::setHeight(double h)
{height (h 0 ? h : 0 ); }
double Cylinder::getHeight() const {return height; }
double Cylinder::area() const
{return 2*Circle::area()+2*3.11159*radius*height; }
double Cylinder::volume() const
{return Circle::area()*h
文档评论(0)