大学毕设论文—c++课程设计计算器课程设计.docx
- 文档编号:149420
- 上传时间:2022-10-04
- 格式:DOCX
- 页数:22
- 大小:983.13KB
大学毕设论文—c++课程设计计算器课程设计.docx
《大学毕设论文—c++课程设计计算器课程设计.docx》由会员分享,可在线阅读,更多相关《大学毕设论文—c++课程设计计算器课程设计.docx(22页珍藏版)》请在冰豆网上搜索。
课 程 设 计 报 告
课程名称:
面向对象程序设计C++设计题目:
计算器课程设计专业:
计算机科学与技术2013级姓名:
学号:
指导教师:
李晓虹
2015 年 1 月 10 日
目 录
1背景与目的 3
2需求分析 3
3总体设计思路 3
4详细设计 6
4.1设计步骤 6
4.2界面设计 7
4.3功能实现 12
5计算器的测试结果 13
5.1测试一 13
5.2测试二 14
5.3测试三 14
5.3测试四 14
6结果分析 15
7总结 15
7附源代码 15
1背景与目的
计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求倒数等简单运算的工具。
要实现计算功能,可以用VC++的知识编写程序来解决此问题。
该计算器大大的降低了数字计算的难度及提高了计算的准确度和精确度。
该计算器使用非常简单和方便,对广大中小学生的学习有巨大帮助作用,也对在职人员的工作有点帮助作用。
简单计算器包括双目运算和单目运算功能。
双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦,阶乘,对数,开方,倒数等运算。
可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算。
出现错误会给出相应提示,同时包含清除,退格,退出功能以及有与所有按钮相对应的菜单项。
在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。
在程序设计中,可以用两种方法解决问题:
一是传统的结构化程序设计方法,二是更先进的面向对象程序设计方法。
由于多个函数均需要访问某些数据,这些数据常被设计为全局变量。
而在面向对象程序设计中关键是如何将问题域中的实体(即日常所见的概念)抽取出来,作为C++程序中的类,而属性与行为作为类的两类要素通常是必不可少的,甚至还应考虑类必须满足的约束
2需求分析
本软件主要用于计算机windows2000/XP以上版本的用户的使用,这次课程设计一般是实现简单计算器的功能。
要程序能实现:
加,减,乘,除,开方,倒数等运算功能;还要实现数据的输入,输出,计算,显示及程序退出等功能。
另外还可以实现多种科学计算的功能,如:
三角函数的计算,弧度与角度间的转换,对数指数的计算等等。
3总体设计思路
整个计算器的流程图,打开计算器程序,输入数据,调用输入数据子程序。
子程序开始时m_num为零。
按下数字按钮后,判断m_num的正负号,对其进行相关处理,然后在判断是否有小数点,处理后输出结果。
回到总流程图中,输完第一个操作数后,若按下双目运算符,则把m_num
编辑框关联变量m_num=0
m_num=10*m
存入num2,按下输入第二个操作数并算出结果。
若按下的是单目运算符,则直接对其处理得出结果。
若按下清零,则m_num等于0.在运算中还要判断运算是否合法,以及结果是否超出显示范围,以做出相关提示,按下清零。
算出后把结果保存至num2。
若需用算出的结果继续运算则回到输入完第一个操作数后,若不需要则判断试否需要开始新一轮的运算,不需要则结束。
是否
m_nu
N
是否
还原
将小数将键入
次10m_
继续
键入一个数
为正数
N
Y
m=10*mum+i
Num+i
Y
为小数
m_num
Y
点后位数的数除以n累加到num
键入数字
N
用
UpdateData(false)
刷新数据
图3-1输入数据子函数流程图
图3-2简单计算器总流程图
4详细设计
4.1设计步骤
打开MicrosoftVisualC++6.0,在文件中点击新建,在弹出框内选择MFCAppWizard[exe]工程,输入工程名jisuanqi及其所在位置,点击确定,如图4-1所示:
图4-1新建MFCAppWizard[exe]工程
将弹出MFC AppWizard-step1对话框,选择基本对话框,点击完成,如图4-2所示。
图4-2基本对话框
这样,MFCAppWizard就建立了一个基于对话窗口的程序框架,如图4-3
所示。
图4-3新建的对话框
4.2界面设计
1、创建控件
在图4-3所示的ResoureView选项卡中打开Dialog资源组,双击IDD_ZHOUTONG_DIALOG,在右边的窗口中显示出待编辑的对话框。
开始摆放控件,包括编辑框和按钮的创建。
按钮的创建以“1”为例进行介绍,其他按钮的创建可参照此进行操作。
1)在图4-3中Controls的“编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框。
在编辑框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出Edit属性对话框,如图4-4所示,在该对话框中输入ID属性。
图4-4Edit属性对话框
2)在图3中Controls的“Button”按钮上单击鼠标左键,在对话框上的合适的位置上按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。
在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时也弹出
PushButton属性对话框,如图4-5所示,在该对话框中输入控件的ID值和标题属性。
图4-5PushButton属性
再按照上面的操作过程编辑其他按钮和编辑框等对象的属性。
表4-1各按钮和编辑框等对象的属性
对象
ID
标题或说明
编辑框
IDC_xianshi
结果显示
按钮
IDC_BUTTON0
0
按钮
IDC_BUTTON1
1
按钮
IDC_BUTTON2
2
按钮
IDC_BUTTON3
3
按钮
IDC_BUTTON4
4
按钮
IDC_BUTTON5
5
按钮
IDC_BUTTON6
6
按钮
IDC_BUTTON7
7
按钮
IDC_BUTTON8
8
按钮
IDC_BUTTON9
9
按钮
IDC_change
+/-
按钮
IDC_point
.
按钮
IDC_add
+
按钮
IDC_difference
-
按钮
IDC_multiply
*
按钮
IDC_devide
/
按钮
IDC_sqrt
sqrt
按钮
IDC_daoshu
1/x
按钮
IDC_jiecheng
n!
按钮
IDC_ln
ln
按钮
IDC_sin
sin
按钮
IDC_cos
cos
按钮
IDC_pow
x^y
按钮
IDC_Onequal
=
按钮
IDC_backspace
Backspace
按钮
IDC_Onclear
Clear
完成后界面如图4-6所示:
2、连接变量和代码
图4-6计算器界面
1)给编辑框连接变量。
在编辑框上单击鼠标右键,在弹出菜单中选择
ClassWizard菜单项,弹出MFCClassWizard对话框,选择MemberVariables
选项卡,如图4-7所示。
图4-7MFCClassWizard对话框中的MenberVariable选项卡
在ControlIDs列表框中选择IDC_xianshi,单击AddVariables按钮,
在弹出的对话框中连接变量m_num。
变量类型设定为doubel型。
如图4-8所示。
图4-8m_num属性设置
2)给“1”按钮连接代码。
在“1”按钮上单击鼠标右键,选择
ClassWizard菜单项,在弹出的对话框中选择MessagesMaps选项卡,然后在ObjectIDs列表框中选择IDC_ADD_BUTTON,在Messages列表框中选择
BN_CLICKED项,即选择单击按钮事件,如图4-9所示。
3、菜单的设计
图4-9“1”按钮链接代码对话框
选择“插入/资源”命令,将显示插入资源对话框。
如图4-10所示。
选择
Menu,点击新建即可。
图4-10插入资源对话框
ResoureView选项卡中打开Menu资源组,双击IDR_MENU1,然后给菜单添加相应的标题,并把每个菜单对应的ID值与相应的按钮的一致。
如图4-11所示。
图4-11菜单属性对话框
在对话框的任何一个空白域单击鼠标右键,然后在弹出的快捷菜单中选择
Properties命令,弹出DialogProperties对话框,如图4-12。
在对话框中的菜单组合框中选择IDR_MENU1。
图4-12对话属性对话框最终的得到的界面如图4-13。
图4-13计算器完整界面
4.3功能实现
1、操作数的输入
编辑框所关联的变量为m_num,程序开始时为零。
每按下一个数字键按钮,就把它累加到m_num里并刷新显示。
BOOL型变量ele来判断是否有小数点和一个整型数dint来表示小数点后的数据的位数。
当ele=TRUE时,表示有小数点,否则表示无小数点。
按下小数点按钮后执行ele=TRUE。
当按下一个数字键时,首先根据ele判断是否按下小数点,若有则把小数点后数的位数加1,dint则为此次键入的数所处的位数,将键入的数除以dint个10然后累加到编辑框所关联的变量m_num上,若没有则把m_num乘以10,然后累加到编辑框所关联的变量m_num上。
2、单目运算符功能的实现
由于单目运算符中必须有执行运算的函数,因而头文件中要加入math.h,如m_num=sqrt(m_num).按下按钮即可实现其功能。
为实现连续运算,程序有所改动。
3、双目运算符功能的实现
双目运算符需要两个操作数才能运算,所以在执行双目运算符按钮的函数代码中,要把m_num中的值保存到变量num2中,然后把m_num清零。
这样即可保存第一个操作数。
另外先定义了一个整形变量addt,在不同的双目运算符中给addt赋不同的值,然后在等号中用switch语句来匹配addt值来判断需要执行何种双目运算。
为实现连续运算,程序有所改动。
4、退格键功能的实现
当按下一次退格按钮时,若m_num为整数,只需对其中数据除以10再取整
即可,若按下一次退格按钮为小数,则根据小数点后数据的位数dint进行操作,先对m_num执行(dint-1)次乘以10运算,然后取整,接着执行(dint-1)次除以10的运算即可。
完成后需要把dint将减小1。
5、正负号功能的实现
在头文件中定义一个BOOL型变量ele2来判断m_num的正负。
ele2=TRUE时表示为正。
在键入操作数时需要用到ele2。
在正负号按
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 论文 c+ 课程设计 计算器