基于虚函数的图形面积的计算与显示.docx

上传人:b****3 文档编号:11169711 上传时间:2023-05-29 格式:DOCX 页数:13 大小:375.88KB
下载 相关 举报
基于虚函数的图形面积的计算与显示.docx_第1页
第1页 / 共13页
基于虚函数的图形面积的计算与显示.docx_第2页
第2页 / 共13页
基于虚函数的图形面积的计算与显示.docx_第3页
第3页 / 共13页
基于虚函数的图形面积的计算与显示.docx_第4页
第4页 / 共13页
基于虚函数的图形面积的计算与显示.docx_第5页
第5页 / 共13页
基于虚函数的图形面积的计算与显示.docx_第6页
第6页 / 共13页
基于虚函数的图形面积的计算与显示.docx_第7页
第7页 / 共13页
基于虚函数的图形面积的计算与显示.docx_第8页
第8页 / 共13页
基于虚函数的图形面积的计算与显示.docx_第9页
第9页 / 共13页
基于虚函数的图形面积的计算与显示.docx_第10页
第10页 / 共13页
基于虚函数的图形面积的计算与显示.docx_第11页
第11页 / 共13页
基于虚函数的图形面积的计算与显示.docx_第12页
第12页 / 共13页
基于虚函数的图形面积的计算与显示.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于虚函数的图形面积的计算与显示.docx

《基于虚函数的图形面积的计算与显示.docx》由会员分享,可在线阅读,更多相关《基于虚函数的图形面积的计算与显示.docx(13页珍藏版)》请在冰点文库上搜索。

基于虚函数的图形面积的计算与显示.docx

基于虚函数的图形面积的计算与显示

任务书

 

学生姓名:

熊佳新专业班级:

信息工程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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2