面向对象程序设计课设报告

面向对象程序设计课设报告

ID:43583843

大小:119.73 KB

页数:8页

时间:2019-10-11

面向对象程序设计课设报告_第1页
面向对象程序设计课设报告_第2页
面向对象程序设计课设报告_第3页
面向对象程序设计课设报告_第4页
面向对象程序设计课设报告_第5页
资源描述:

《面向对象程序设计课设报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、C++课程设计报告一.设计任务应用VC++软件设计一个计算器的程序,应用对话框功能,基本要求能实现简单的加、减、乘、除运算,在完成基本功能的基础上,鼓励同学进行其他的创新设计,如增加计算器的小数运算、参数运算、存储运算等功能,类似于Windows下附件中的计算器。二、目的与要求:1、目的:(1)要求学生达到熟练掌握VC++语言的基本知识和VC++调试技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基木知识和技能,解决简单的面向对象程序设计问题。2、基本要求:(1)求利用面向对象的方法以及VC++的编程思想来完成系统的设计;(

2、2)要求在设计的过程中,对Windows环境下的编程有一个基本的认识;(3)掌握Framework的编程思想。三.具体设计1.设计思想:利用VC++软件中的WindowsMFC编程功能,创建一个对话框程序,利用控件菜单在对话框中创建若干按钮控件,作为计算器的十个数字按钮和加、减、乘、除运算符按钮,以及其他功能的按钮,如正负运算符、清除符和Backspace等。再添加一个编辑框,作为计算器的显示模块。调整控件的位置和布局,尽量使计算器界面美观实用。利用类向导功能为和应的控件创建成员变量及成员函数,在相应的函数位置添加函数功能实现代码,然后进行编译调试,

3、修改程序,进一步完善计算器功能。通过设置一些标志变量,根据具体的变量值,来判断应该进行的操作,然后将计算的结果传递给编辑框的变量,通过更新消息显示输入结果或计算结果。2•设计表示:在对话框类中创建各个按钮的变量,数字按钮的标识符形如IDC_NUM0,运算符的标识符为IDC_ADD,IDC_SL'B,IDC_ML'L,IDC_DIV;其他的变量标识符也类似定义。下面为数字南1的部分代码:if(Flag2)iCount++;if(Flagl){0pl=0pl*10+l;m_Edit=0pl/(pow(10,iCount));}else{0p2=0p2*1

4、0+l;m_Edit=0p2/(pow(10,iCount));}ielseif(Flagl){0pl=0pl*10+l;m_Edit=0pl;}else{0p2二0p2*10+l;m_Edit=0p2;}i其屮,Opl,0p2为两个操作数变量,定义时定义为全局变量,表示是否按下小数点键,是则为1,否则为0,iCount表示按下小数点后输入数据的位数,先将数据以全部整数形式记录下来,m_Edit是编辑框的成员变量,显示时m_Edit的值是Op值除以10的iCount次幕来得到原来的输入数据,Flagl表示是否按下了运算符按钮,是则Flagl为],否则

5、Flagl为0.Opl二0pl*10+l是记录输入数据的算法,每输入一位数据,Opl都扩大十倍再加上所按的数字键的值,0p2的原理类似。对于运算符的实现即设置相应的标志变量FlagA,FlagS,FlagM,FlagD表示是否按下运算符键,而在等于运算时通过检测这四个变量的值来进行相应的运算。在voidCEx_CalDlg::OnClear()函数中将程序中设置的运算变量和标志变量全部恢复到初宿。通过MFC系统函数UpdateData(FALSE)将编辑框成员变量中的值及时更新显示。在voidCExCalDlg::0nPoint()函数中修改Flag

6、2的值来判断是否按下小数点。在进行除法运算时先判断0p2是否为0,再通过消息函数MessageBox(〃除数不能为零!,z,,,Error,/)来告诉使用者。3•实现注释:通过以上思路而写的的代码可以实现基本的整数加、减、乘、除运算,可以通过“清除”键实现数据的清零。除实现这些基本功能外,还可以实现小数的加、减、乘、除运算,增加了负数的运算键和退格键功能,述可以实现运算的连续操作,在按下多个运算符键时以最后输入的运算符为准,可以避免输入的错误而引起的麻烦。4•详细设计表示:为了实现负数的运算,增加了标志变量Flag3,Flag3的值为1或-1,每按下

7、一次负号键就将输入的值乘以-1,可以实现输入数据的正负号的变换。为了实现退格键,定义了一个数组temp:]和计数器nCt,用于记录每次输入的数据和输入数据的位数,在按下退格键时用以下代码实现退格:iCount——;if(Flagl){Opl=(Opl-temp[nCt-1])/IO;m_Edit=Opl/(pow(10,iCount));}else{0p2=(0p2-temp[nCt-l])/10;m_Edit=Op2/(pow(10,iCount));}nCt--;用Opl减去上次输入的数据,再除以十倍,就可以实现退格了,再将计数器减1,以便实现多

8、位数据的退格。三.调试及测试在开始调试吋,由于程序代码较少,变量也较少,也较简单,可以实现一些基本的加、减、

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。