欢迎来到天天文库
浏览记录
ID:47036862
大小:501.12 KB
页数:36页
时间:2019-07-03
《MFC简单计算器设计正文》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、武汉理工大学《面向对象程序设计》课程设计说明书实用计算器程序1.基本功能描述计算器是人们日常生活中非常实用的计算工具。预期设计目标与实际计算器为标准,Windows10系统提供的计算器为范例进行设计。实用计算器要实现单目运算和双目运算。单目运算主要包括阶乘、正弦、余弦;双目运算主要包括加、减、乘、除、乘幂等。计算器要能够对输入的各种数据进行处理,包括小数、整数、负数等数据进行操作。实际过程中要能够对不同的数据灵活判断执行。同时要能够对不满足运算符的操作数,提示出错信息以方便用户进行处理。用户的修改包括清屏和退格。程序设计
2、的重点和难点在于:第一,能够对于不同的操作数和操作符进行连续运算,运算过程中要有优先级的判断,根据优先级执行不同的运算顺序;第二,能够用一个编辑框实现运算表达式的显示和结果的输出。编程环境采用VisualStudio2017提供的MFC建立对话框应用程序,设计界面要简单大方,并提供程序所有功能的接口。2.设计思路表1操作符优先级设计优先级操作符1阶乘、正弦、余弦2乘幂3乘、除4加、减对对话框编辑框关联一个变量从中读取数据,按下数字键时对数据数组num[]进行更新,其中num[0]表示的是当前已经存储变量的个数。由于算法设
3、计为四层优先级,且单目运算的优先级最高。当按下相应单目运算符,首先将当前数据数组的最后一个存储(防止按下Backspace退格发生错误),并将此位数据执行运算后重新赋值。但按下双目运算符相应按键后,将计数num[0]++,同时将运算符的类型和位置记录。当按下等于之前,这样就将一个单目双目混合的运算表达式转化为双目运算。如果没有按下等号键,则继续执行循环。在按下等号按钮之后,按照先乘幂、再乘除、后加减的运算顺序执行运算,将最后结36武汉理工大学《面向对象程序设计》课程设计说明书果保存并显示。(在实际的计算器中,执行完运算之
4、后,按下运算符的操作键,最终结果将按照左操作数的形式出现,故需要保存变量。)如果用户没有结束程序,在运行初始化程序,进行下一次运算,否则直接退出。图1程序流程图36武汉理工大学《面向对象程序设计》课程设计说明书3.软件设计3.1设计步骤1)创建基于对话框的程序利用AppWizard建立应用程序框架,创建一个基于对话框的MFC工程,命名为“fengwanjincalculator”,如图2所示。在图3显示的应用程序类型中选择基于对话框。创建成功后,系统自动生成相应程序文件。图2创建MFC工程图图3应用程序类型选择图2)定义
5、成员变量36武汉理工大学《面向对象程序设计》课程设计说明书添加相应变量和标志位,以方便程序的编写,主要变量如表2所示:表2成员变量表变量名变量类型变量作用mystrCString编辑框关联变量m_editFontCFont设置编辑框字体numfloat存储操作数flagdianbool点号标志位flagdengyubool等号标志位flagerrorbool错误标志位Jiajianint存储加减运算符的位置4)添加事件处理程序MFC应用程序是通过消息响应来进行各项操作的,必须在对话类中加入消息处理函数来处理这些事件。当点
6、击相应控件,在进入WinMain函数之前,每个可以响应消息的MFC类都生成了一个消息映射表,程序运行时通过查询该表判断是否需要响应某条消息。在相应控件单击右键,弹出图4,选择添加事件处理程序,在图5的事件处理程序向导中选择fengwanjincalculatorDlg类,消息类型选择为BN_CLICKED,即左键单击。图4添加事件处理程序36武汉理工大学《面向对象程序设计》课程设计说明书图5选择添加事件处理程序类型在完成上述操作后MFC使用ClassWizard帮助实现消息映射,它在源码中添加一些消息映射的内容,并声明和
7、实现消息处理函数。首先,在类的定义(头文件)里,它增加了消息处理函数声明,并添加一行声明消息映射的宏DECLARE_MESSAGE_MAP。在类的实现(实现文件)里,实现消息处理函数,并使用IMPLEMENT_MESSAGE_MAP宏实现消息映射。BEGIN_MESSAGE_MAP******END_MESSAGE_MAP3.2界面设计图5向对话框添加控件36武汉理工大学《面向对象程序设计》课程设计说明书在项目的资源视图中找到位于Dialog下的对话框,如图4所示。添加相应控件,完成用户界面设计。图6用户界面设计其中编辑
8、框行为下Multiline属性设置为True,作为多行编辑框。第一行显示算式,第二行结果。整体上将控件分为四组,数值控件区NUM,加减乘除一般运算控件区NORMAL,阶乘、乘幂、正余弦科学运算控件区SCIENCE以及清零退格控件。设计完成后的界面如图7所示。图7用户界面36武汉理工大学《面向对象程序设计》课程设计说明
此文档下载收益归作者所有