- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
.
.
实用计算器程序
1.基本功能描述
计算器是人们日常生活中非常实用的计算工具。预期设计目标与实际计算器为标准,Windows 10系统提供的计算器为范例进行设计。
实用计算器 要实现单目运算和双目运算。单目运算主要包括阶乘、正弦、余弦;双目运算主要包括加、减、乘、除、乘幂等。计算器要能够对输入的各种数据进行处理,包括小数、整数、负数等数据进行操作。实际过程中要能够对不同的数据灵活判断执行。同时要能够对不满足运算符的操作数,提示出错信息以方便用户进行处理。用户的修改包括清屏和退格。程序设计的重点和难点在于:第一,能够对于不同的操作数和操作符进行连续运算,运算过程中要有优先级的判断,根据优先级执行不同的运算顺序;第二,能够用一个编辑框实现运算表达式的显示和结果的输出。
编程环境采用Visual Studio 2017提供的MFC建立对话框应用程序,设计界面要简单大方,并提供程序所有功能的接口。
2.设计思路
表1 操作符优先级设计
优先级
操作符
1
阶乘、正弦、余弦
2
乘幂
3
乘、除
4
加、减
对对话框编辑框关联一个变量从中读取数据,按下数字键时对数据数组num[]进行更新,其中num[0]表示的是当前已经存储变量的个数。由于算法设计为四层优先级,且单目运算的优先级最高。当按下相应单目运算符,首先将当前数据数组的最后一个存储(防止按下Backspace退格发生错误),并将此位数据执行运算后重新赋值。但按下双目运算符相应按键后,将计数num[0]++,同时将运算符的类型和位置记录。当按下等于之前,这样就将一个单目双目混合的运算表达式转化为双目运算。如果没有按下等号键,则继续执行循环。在按下等号按钮之后,按照先乘幂、再乘除、后加减的运算顺序执行运算,将最后结果保存并显示。(在实际的计算器中,执行完运算之后,按下运算符的操作键,最终结果将按照左操作数的形式出现,故需要保存变量。)如果用户没有结束程序,在运行初始化程序,进行下一次运算,否则直接退出。
图1 程序流程图
3.软件设计
3.1 设计步骤
1)创建基于对话框的程序
利用AppWizard建立应用程序框架,创建一个基于对话框的MFC工程,命名为“fengwanjincalculator”,如图2所示。在图3显示的应用程序类型中选择基于对话框。创建成功后,系统自动生成相应程序文件。
图2 创建MFC工程图
图3 应用程序类型选择图
2)定义成员变量
添加相应变量和标志位,以方便程序的编写,主要变量如表2所示:
表2 成员变量表
变量名
变量类型
变量作用
mystr
CString
编辑框关联变量
m_editFont
CFont
设置编辑框字体
num
float
存储操作数
flagdian
bool
点号标志位
flagdengyu
bool
等号标志位
flagerror
bool
错误标志位
Jiajian
int
存储加减运算符的位置
添加事件处理程序
MFC应用程序是通过消息响应来进行各项操作的,必须在对话类中加入消息处理函数来处理这些事件。当点击相应控件,在进入WinMain函数之前,每个可以响应消息的MFC类都生成了一个消息映射表,程序运行时通过查询该表判断是否需要响应某条消息。
在相应控件单击右键,弹出图4,选择添加事件处理程序,在图5的事件处理程序向导中选择fengwanjincalculatorDlg类,消息类型选择为BN_CLICKED,即左键单击。
图4 添加事件处理程序
图5 选择添加事件处理程序类型
在完成上述操作后 MFC使用ClassWizard帮助实现消息映射,它在源码中添加一些消息映射的内容,并声明和实现消息处理函数。首先,在类的定义(头文件)里,它增加了消息处理函数声明,并添加一行声明消息映射的宏DECLARE_MESSAGE_MAP。在类的实现(实现文件)里,实现消息处理函数,并使用IMPLEMENT_MESSAGE_MAP宏实现消息映射。
BEGIN_MESSAGE_MAP
******
END_MESSAGE_MAP
3.2 界面设计
图5 向对话框添加控件
在项目的资源视图中找到位于Dialog下的对话框,如图4所示。添加相应控件,完成用户界面设计。
图6 用户界面设计
其中编辑框行为下Multiline属性设置为True,作为多行编辑框。第一行显示算式,第二行结果。整体上将控件分为四组,数值控件区NUM,加减乘除一般运算控件区NORMAL,阶乘、乘幂、正余弦科学运算控件区SCIENCE以及清零退格控件。设计完成后的界面如图7所示。
图7 用户界面
设计的界面中只有编辑框关联Cstring类型变量mystr。其余控件关联相应的消息处理函数。
3.3 关键功能的实现
程序主要分为数值、单目运算、双目运算、清除等
您可能关注的文档
最近下载
- 机动车检验检测机构授权签字人考核试题及答案.pdf VIP
- 附件8 乳腺癌检查异常可疑病例随访登记表.doc
- 《核心素养导向下的小学英语阅读教学的实践与探究》开题报告[001].docx VIP
- 西南13J103挤塑聚苯板保温构造图集.pdf
- 毕业生就业推荐表(模板).docx VIP
- 新概念二课文默写本 (1).pdf
- (ppt)P.E.T (Parent Effectiveness Training)父母效能训练学员手册.ppt
- GB50204-2015 《混凝土结构工程施工质量验收规范》GB50204-2015 (1).docx
- 生鲜连锁超市项目可行性研究报告申请报告.doc
- 内部市场化总结.doc VIP
文档评论(0)