基于虚函数的图形面积的计算与显示.docx
- 文档编号:11169711
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:13
- 大小:375.88KB
基于虚函数的图形面积的计算与显示.docx
《基于虚函数的图形面积的计算与显示.docx》由会员分享,可在线阅读,更多相关《基于虚函数的图形面积的计算与显示.docx(13页珍藏版)》请在冰点文库上搜索。
基于虚函数的图形面积的计算与显示
任务书
学生姓名:
熊佳新专业班级:
信息工程1101班
指导教师:
阮幼林工作单位:
信息工程学院
题目:
基于虚函数的图形面积的计算与显示
初始条件:
1.计算机及WINDOWS操作系统
2.开发语言:
C++
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
定义抽象基类Shape,由它派生出5个派生类:
Circle(圆形),Square(正方形),Rectangle(矩形),Trapezoid(梯形)和Triangle(三角形)。
通过重载运算符实现5种图形参数的输入,用虚函数分别计算这几种图形的面积,把不同图形的数据和面积保存在磁盘文件中,并可以修改,修改后存回原有位置。
要求用VC++设计图形界面,需要考虑异常处理。
要求:
1.按《武汉理工大学课程设计工作规范》要求撰写课程设计说明书
2.根据设计任务,能够讲解及显示自己的设计
3.最终完成内容包括设计说明书和交程序备份
时间安排:
2014年6月7号——8号选题及调研
2014年6月9号——13号软件设计及编程调试
2014年6月14号——15号撰写设计说明书
2014年6月16号答辩
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
目录
1绪论·············································································1
2原理分析·······························································1
2.1对话框3
2.2虚函数4
2.3运算符重载5
2.4文件存取······································································5
3软件设计·······························································5
3.1程序流程图················…······································5
3.2类定义····························································6
3.3软件关键代····························································6
3.4测试与调试·····························································6
4心得体会······························································13
参考文献································································13
基于虚函数的图形面积的计算与显示
1绪论
自1973年施乐公司首次推出了使用图形用户界面的计算机Alto以来,拥有图形界面的系统和电脑大行其道。
图形界面对于用户来说在视觉上更美观更易于接受,当今绝大部分软件都拥有图形界面,所以学会编写拥有图形界面的软件很重要。
本文设计了一个基于虚函数的图形面积计算软件。
首先详细的分析和阐述对话框、虚函数、运算符重载、文件存取等技术的原理及使用方法,根据系统性能要求设计了软件的整体框图,然后对软件的关键代码进行分析,最后写了对软件的调试以及心得体会。
通过对软件的测试与调试,结果表明该软件工作稳定,各项功能都达到了设计要求。
2原理分析
2.1对话框
在图形用户界面中,对话框是一种特殊的视窗,用来在用户界面中向用户显示信息,或者在需要的时候获得用户的响应。
对话框使计算机和用户之间构成了一个对话——或者是通知用户一些信息,或者是请求用户的输入,或者两者皆有。
对话框分为模态对话框和非模态对话框。
模态对话框在其显示时会暂停执行程序,知道关闭这个模态对话框之后,才能继续执行程序中的其它任务。
非模态对话框显示时,允许转而执行程序中其他任务,而不用关闭此对话框。
对话框中可以包含许多种控件,本软件中用到了静态文本框、编辑框、按钮和组合框等控件。
2.2虚函数
虚函数是面向对象程序设计中的一个重要的概念。
当从父类中继承的时候,虚函数和被继承的函数具有相同的签名。
但是在运行过程中,运行系统将根据对象的类型,自动地选择适当的具体实现运行。
虚函数是面向对象编程实现多态的基本手段。
纯虚函数是一个需要被非抽象派生类执行的虚函数。
包含纯虚函数的类被称作抽象类;抽象类不能被直接调用,一个抽象基类的子类只有在所有的纯虚函数在该类(或其父类)内给出实现时,才能直接调用。
纯虚函数通常只有声明而没有定义。
2.3运算符重载
运算符重载就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型,是实现多态的一种基本手段。
运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就会自动调用该函数,以实现相应的运算。
2.4文件存取
本软件用两种方式来实现对文件的操作,即使用MFC中提供的支持文件操作的基类,和C++提供的文件流对象。
MFC提供的基类CFile,具有没有缓存的二进制格式的磁盘文件的输入输出功能,通过其派生类能够间接地支持文本文件和内存文件。
文件流是以外存文件为输入输出对象的数据流,通过文件流对象可以将数据从内存输出到磁盘文件,或者从磁盘文件将数据输入到内存。
3软件设计
3.1程序流程图
图1系统流程图
3.2类定义与派生关系
抽象基类Shape
virtualdoublearea()=0
virtualdoublearea()=0
Triangle
Trapezoid
Rectangle1
Square
Cirle
doubleside
doublelength,width
doubleside1,side2,side3
doublelength1,length2,height
doubleradius
virtualdoublearea()
friendistream&operator>>(istream&,Square&);
virtualdoublearea()
friendistream&operator>>(istream&,Triangle&);
virtualdoublearea()
friendistream&operator>>(istream&,Trapezoid&);
virtualdoublearea()
friendistream&operator>>(istream&,Rectangle1&);
virtualdoublearea()
friendistream&operator>>(istream&,Cirle&);
图2类的派生关系
1、 首先定义一个抽象类作为基类(virtual void area()=0;//纯虚函数),以下均
用此类作为接口。
2、 分别定义Circle、Square、Rectangle1、Trapezoid、Triangle类且均为公有继承,当使用虚函数时一定要将继承方式定为公有继承。
3、 分别定义虚函数的函数体否则派生类还是抽象类。
即分别定义每个类求面积的函数area()。
4、 分别给每个类重载流提取运算符>>,用于实现5种图形参数的输入。
3.3软件关键代码
(1)Shape1.h
建立抽象基类Shape,以及其公有继承类Circle、Square、Rectangle1、Trapezoid、Triangle,用于图形数据的保存与读取,以及不同图形面积的计算。
代码见附录。
(2)Shape1.cpp
定义对各种图形对象流提取运算符的重载,用于通过重载运算符实现5种图形参数的输入。
代码见附录
(3)test0Dlg.h
建立CTest0Dlg类,即主对话框的类,并声明对话框中各空间相关的变量或函数。
(4)test0Dlg.cpp
定义主对话框的消息映射,以及点击按钮后的操作及响应。
输入数据后,点击“计算”按钮,运行函数CTest0Dlg:
:
OnCalculate(),先将各编辑框中的数据保存到相应变量中,再调用save1函数计算面积,此函数先判断输入数据是否小于0,若小于0则弹出警告对话框,再打开一个临时文件并保存图形数据到此文件中,然后判断图形形状,若未输入形状则弹出警告对话框,否则建立图形相应的对象,并从临时文件中读取数据到对象中,然后用对象中相关函数计算面积并返回面积值,最后根据各变量的值更新相应的控件。
点击“保存”按钮后,运行函数CTest0Dlg:
:
OnSave(),先配置另存为对话框的各种属性,再打开另存为对话框,保存一个文件,再存图形数据到此文件中,最后关闭文件。
点击“打开”按钮后,运行函数CTest0Dlg:
:
OnOpen(),先配置打开对话框的各种属性,再显示打开对话框,打开一个文件,再从文件中读取图形数据到编辑框变量中,然后关闭文件,最后根据各变量的值更新相应的控件。
各函数代码见附录。
3.4测试与调试
(1)计算功能
图3计算功能演示图
(2)保存功能
图4保存功能演示图
(3)打开功能
图5打开文件对话框
图6打开文件后对话框显示图
(5)错误提示
图7未输入形状错误提示图
图8输入边长为负错误提示图
图9三角形边长错误提示图
4设计体会
通过本次实验,我对VC++有了一定的了解,通过编写具有图形界面软件的实践,我了解了VC++编程相关的一些知识,更深刻地理解了C++语言的应用,了解了对话框、虚函数、运算符重载、文件存取等技术的原理及使用方法。
我实现了一些简单的功能。
限于自己的能力,对VC++编程理解还不够透彻全面,还有待进步的学习实践以达到对编程更深一层的理解与掌握。
如有不足之处望老师指点。
参考文献
[1]孙鑫,余安萍编著.《VC++深入详解》(修订版),电子工业出版社,2012
[2]余祖龙,孙开琼著.《面向对象程序设计与VC程序设计入门》(第2版),北京航空航天大学出版社,2014
[3]谭浩强著.《C++面向对象程序设计》,清华大学出版社,2009
[4]白乔,左飞编著.《把脉VC++》,电子工业出版社,2009
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 函数 图形 面积 计算 显示