课设内容Word格式.docx
- 文档编号:19257603
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:12
- 大小:153.29KB
课设内容Word格式.docx
《课设内容Word格式.docx》由会员分享,可在线阅读,更多相关《课设内容Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
ClassBall:
publicshape//派生为球类
{重新定义四个纯虚函数};
Classcube:
publicshape//派生为正方体
{重新定义纯函数};
Classcuboid:
publicshape//派生为长方体
{增加两个私有成员:
doubleK,G;
//K,G分别为长方体的宽和高
重新定义四个纯虚函数};
Classcylinder:
publicshape//派生为圆柱体
{增加私有成员:
doubleH;
Voidrun(shape*p)//通过传指的方式调用派生类的成员函数
{
p->
Input();
//通过指针调用派生类的纯虚函数
Area();
Volume();
Disp();
};
//通过基类的指针调用派生类的成员函数
Voidmenu()菜单函数
{
执行菜单的界面输出;
switch(sign)
进行对哪个体的选择;
//将派生类的地址传给基类的指针
调用run函数;
//通过传指的方式
}
和相关的运算;
说明:
虚函数就是可以解决重名,本个实验就是由于派生类分别继承了基类的成员函数,此时就会因为名字重名反复调用。
解决方法就是定义纯虚函数。
本题还用了兼容性,派生类的地址可以传给基类的指针。
5、各功能模块的程序代码
#include<
iostream>
constdoublePI=3.1415;
usingnamespacestd;
classshape//shape基类
public:
virtualvoidInput()=0;
virtualvoidDisp()=0;
virtualvoidArea()=0;
virtualvoidVolume()=0;
protected:
doublearea,V,r;
};
classBall:
publicshape//派生为球类
public:
voidInput()
{
cout<
<
endl<
"
请输入所要求的球体的半径:
;
cin>
>
r;
}
voidArea()
area=4*PI*r*r;
voidVolume()
V=PI*4/3*r*r*r;
voidDisp()
FILE*p;
p=fopen("
f:
\\球.txt"
"
w+"
);
if(!
p)cout<
打开文件失败!
endl;
else{fprintf(p,"
%lf,%lf,%lf"
r,area,V);
球体的半径:
r<
球体的表面积:
<
area<
球体的体积:
V<
classCube:
publicshape//派生为正方体类
public:
请输入所要求的正方体的边长:
area=6*r*r;
V=r*r*r;
\\正方体.txt"
cout<
正方体的边长:
正方体的表面积:
正方体的体积:
classCuboid:
publicshape//派生为长方体
private:
doubleK,G;
请分别输入所要求的长方体的长、宽、高:
r>
K>
G;
area=2*(r*K+r*G+K*G);
V=r*K*G;
\\长方体.txt"
%lf,%lf,%lf,%lf,%lf"
r,K,G,area,V);
长方体的长:
长方体的宽:
K<
endl
<
长方体的高:
G<
长方体的表面积:
长方体的体积:
classCylinder:
publicshape//派生为圆柱体
doubleH;
请分别输入所要求的圆柱体的底面半径和高:
H;
area=PI*r*r*2+2*PI*r*H;
V=PI*r*r*H;
FILE*p;
\\圆柱体.txt"
r,H,area,V);
圆柱体底面的半径:
圆柱体的高:
H<
圆柱体的表面积:
圆柱体的体积:
voidRun(shape*ptr)//传指针调用各派生类函数
ptr->
voidMenu()//菜单函数
intsign;
chartemp;
shape*p;
Ballball;
Cubecube;
Cuboidcuboid;
Cylindercylinder;
cout<
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
请选择要求的图形:
[1]球体"
<
[2]正方体"
[3]长方体"
[4]圆柱体"
[0]退出"
请输入要求的体的编号:
cin>
sign;
system("
cls"
//调用系统函数清除屏幕
switch(sign)//选择进行什么样的体形求解,用的是switch分支语句
{
case0:
{cout<
欢迎下次使用!
exit
(1);
case1:
{p=&
ball;
Run(p);
break;
case2:
cube;
case3:
cuboid;
case4:
cylinder;
}
是否继续?
[y/n]"
cin>
temp;
if(temp=='
y'
||temp=='
Y'
){system("
Menu();
else{cout<
谢谢使用,下次再见哟!
!
intmain()
Menu();
6、运行结果及分析
6.1、结果:
用球体演示
图6-1
图6-2
图6-3
图6-4
6.2、分析:
课程设计进行了一个多星期,在自己的努力下,我总算将此程序设计出来。
在设计的过程中,让我了解到要设计一个大型程序,查找资料是至关重要的,当然有借鉴他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序。
在设计这个程序时,我刚开始是根据老师给我提供的资料,用画图以及循环将框架设计出来,但是接下去便无从下手了,算法与方法是个关键和难点,我也查了相应的资料。
接下去就是对应扁程序代码的问题。
从这一个多星期的设计过程中,我看到了大家的拼搏与努力,也让我知道团队精神得难能可贵,尽管一年下来大家不怎么有多大接触,但是彼此之间的友谊已经在我们心里扎根生底,在遇到问题时,我们会共同进退,每个人都很慷慨不会因为是通过自己艰辛劳动设计出来的东西而不准他人剽窃了。
总之,这次课程设计让我受益良多,我会好好珍惜像这种难得的机会。
7、参考文献
[1]刘振安,刘燕君编著《C++程序设计课程设计》.北京:
机械工业出版社,2004
[2]李爱华,程磊编著《面向对象程序设计》.北京:
清华大学出版社2010
[3]张素琴主编.《C++程序设计语言》.北京:
清华大学出版社,1995
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 内容