课设内容分析和总结.docx

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

沈阳理工大学装用纸

沈阳理工大学装用纸

No1

1、题目及内容要求

、题目:几何体的表面积与体积

、内容要求:

定义一个抽象类形状(shape),包含输入基本图形的信息函数input()、显示基本图形信息函数disp()、计算表面积的函数area()、计算体积的函数volume(),它们均为纯虚函数。通过继承形状类派生出球体类、正方体类、长方体类、圆柱体类;

设计菜单实现功能选择;输入各种形状信息;显示各种形状信息;计算各种形状的表面积;计算各种形状的体积;

2、类的UML图及程序相关数据模型

、UML类图:

Shape

doublearea,V,r;

virtualvoidInput()=0;virtualvoidDisp()=0;virtualvoidArea()=0;

Ball

voidInput(){};voidDisp(){};voidArea(){};

Cube

voidInput(){};voidDisp(){};voidArea(){};

Cuboid

+doubleK,G;

voidInput(){};voidDisp(){};voidArea(){};

Cylinder

+doubleH;

voidInput(){};voidDisp(){};voidArea(){};

、相关数据模型:

No2

shape

Public派生为以下类

Ball

Cube

Cuboid

Cylinder

通过传指的方式将地址传给基类

基 类

Shape

3、功能模块图

3.1、功能模块图:

求各种体的表面积和体积系统

求各种体的表面积和体积系统

求球体的

面积及体积

求正方体

的面积及体积

求长方体

的面积及体积

求长方体

的面积及体积

No3

4、各功能模块所涉及算法流程图

4.1、各功能模块所涉及算法流程图

开始

开始

菜单栏

[1]球体

[2]正方体

退出系统

[3]长方体

[4]圆柱体

1

4

2

0

3

输出球体

的半径、面积、体积.

输出正方体

的边长、面积、体积.

输出长方体的

长、宽、高、面积、体积.

输出圆柱体的

半径、高、面积、体积

.

N||n

结束

No4

以下为具体算法:

Class shape //定义基类

{定义四个纯虚函数};

Class Ball:public shape//派生为球类

{重新定义四个纯虚函数};

Class cube: public shape//派生为正方体

{重新定义纯函数};

Class cuboid: public shape//派生为长方体

{增加两个私有成员:

double K,G; //K,G分别为长方体的宽和高重新定义四个纯虚函数};

Class cylinder: public shape//派生为圆柱体

{增加私有成员:

double H;

重新定义四个纯虚函数};

Void run(shape *p)//通过传指的方式调用派生类的成员函数

{

p-Input();//通过指针调用派生类的纯虚函数

No5

p-Area();

p-Volume();

p-Disp();

};//通过基类的指针调用派生类的成员函数Void menu()菜单函数

{

执行菜单的界面输出;switch(sign)

{

进行对哪个体的选择;//将派生类的地址传给基类的指针调用run函数;//通过传指的方式

}

和相关的运算;

};

说明:虚函数就是可以解决重名,本个实验就是由于派生类分别继承了基类的成员函数,此时就会因为名字重名反复调用。解决方法就是定义纯虚函数。本题还用了兼容性,派生类的地址可以传给基类的指针。

No6

5、各功能模块的程序代码

#includeiostreamconst double PI=3.1415;using namespace std;

class shape //shape基类

{

public:

virtual void Input()=0;virtual void Disp()=0;virtual void Area()=0;virtual void Volume()=0;

protected:

double area,V,r;

};

class Ball:public shape //派生为球类

{

public:

void Input()

No7

{

coutendlendl请输入所要求的球体的半径:;cinr;

}

void Area()

{

area=4*PI*r*r;

}

void Volume()

{

V=PI*4/3*r*r*r;

}

void Disp()

{

FILE *p;

p=fopen(f:\\球.

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档