欢迎来到天天文库
浏览记录
ID:41730644
大小:189.09 KB
页数:12页
时间:2019-08-30
《C++课程设计指导几何图形的简单计算》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、课程设计指导书课程名称:《C++程序设计课程设计》设计题目:几何图形的简单计算系别:信息工程系班级:网站门1一、课程设计目的针对所学知识进行综合性的实践,通过一个简单的类族设计,让大家领悟C++程序设计的思想和规律;通过用C/C++语言编写一个完整的应用程序,熟练掌握用C/C++语言编程的基本概念及程序设计的基本思想和方法,常握程序的运行、调试方法,通过查询资料了解最新的软件动态。实现理论知识与实践经验的有效结合。二、课程设计软硬件环境本课程设计原则上要求在系指定的实训室进行,实训室提供学生机和相应的软件,若有特殊情况,在指导教师的许可下,可在宿舍自行完成设计。本课程设计需要以
2、下软硬件开发环境:1.操作系统:WindowsXP2・开发环境:VC++6.0三、设计步骤:1.任务描述和需求分析(1)用C++设计一个业务处理系统,其业务就是进行简单的几何计算:•输入圆的半径,计算并输出圆的周长和面积;•输入圆柱的半径和高,计算并输岀圆柱的表面积和体积;•输入圆球的半径,计算并输出圆球的表面积和体积;•输入长方形的长和宽,计算并输岀长方形的周长和面积;•输入长方体的长、宽和高,计算并输岀长方体的表面积和体积。⑵系统启动时显不版本等倍息。设计要求:①必须应用类的继承和派生,尽力实现代码重用、减少重复;②必须设计一个抽象基类,在其中声明4个公共接口函数:计算周长
3、、面积和体积的函数为虚或纯虚函数,显示输出结果的函数为纯虚函数;③必须设计圆、圆柱、圆球、长方形、长方体等类,实现各类的构造、计算、输出等函数;④能反复计算,除非用户选择退出。⑤分組完成设计(或者不分組,每个人独立完成设计)。一个星期的时间很紧,希望大家赶紧行动起来。1.系统分析与设计通过分析,可以设计出完整的系统的总体框架和流程图如下图lo为了方便设计和调试,可以先单独实现各功能模块。我们的系统没有“用户管理”等功能要求,因此,系统的总体框架可简化为图2。fnDoWork()fnShowInfo()2.1分析与设计功能模块的总体框架和流程图单独实现“业务处理”的系统的总体框架
4、和流程图如图3。图3函数fnDoWork()的工作流程请同学们自己画出函数fnCircle(),fnCylinder(),fnSphere(),fnRectangle(),fnCuboid()的流程图。2.2分析与设计数据结构通过对任务⑴的分析,发现有5个对象:圆、圆柱、圆球、长方形和长方体。它们都可用相应的类来实现。圆和长方形的输出都是周长和面积,圆柱、圆球、长方体的输岀都是表面积和体积,即要计算输出的项是周长、面积和体积,对应于3个函数:circumO,area(),volume()□再加输出对象名称和对象属性的函数print(),可以构成一个包含公共接口的抽象类。总共6个
5、类。由于所有计算与对象的位置无关,因此,圆和圆球的属性只有半径,圆柱的属性只有半径和高,长方形的属性只有长和宽,长方体的属性只有长、宽和高。若公共接口的抽象类为Shape,则圆类Circle继承Shape,圆柱类Cylinder继承Circle,圆锥类Cone继承Cylinder;长方形类Rectangle继承Shape,长方体类Cuboid继承Rectangleo它们的层次结构图如下。SphereRectangleCuboid①②③④⑤Cone类族的设计步骤:设计基类Shape通过继承Shape,设计圆类Circle和长方形类Rectangle通过继承Circle,设计圆柱类
6、Cylinder和圆球类Sphere通过继承Rectangle,设计长方体类Cuboid通过继承Cylinder,设计圆锥类ConeC++程序设计的思想精髓就是这样顺其自然地重用已有的代码,在现有的基础上再加扩展,从而使程序设计和维护的代价大大减小,极大地提高了软件的生产率。每个类的属性和方法(成员函数)如下:Shape抽象基类+circum()const:virtualdouble+volume()const:virtualdouble+area()const:virtualdouble+print()const=0:virtualvoid基类Shape泛指所有图形类,根本不
7、知它是圆的还是方的,也不知它的大小,所以没有或没法确定它的数据成员。设计该类的目的是为整个类族提供一组公共的接口函数,并可利用虚函数这一多态机制实现统一的操作界面。Circle-radius:double+Circle(indouble=0.0)+setRadius(indouble):void+getRadius()const:double+circum()const:double+area()const:virtualdouble+print()const:virtualvoid圆类圆类
此文档下载收益归作者所有