

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1页设计题目 MFC 多功能计算器一系统实现(开发工具)Visual C+6.0 是 Microsoft 公司在 1998 年推出的基于 Windows 9X 和Win dowsNT 的优秀集成开发环境。该环境为用户提供了良好的可视化编程环境,程序员可以里利用该开发环境轻松地访问C+源代码编辑器,资源编辑器和使用内部调试器,并且可以创建项目文件。 Visual C+6.0 不仅包括编译器,而且它还包括许多有用组件,通过这些组件的协同工作,可以在Visual C+6.0 集成环境中轻松地完成创建源文件,编辑资源,以及对程序的编译,连接和调试等各项 工作。VC+6.0 是 Windows 95/
2、98、XP 或 Windows NT 下的一个应用程序,本身对 软硬件没有特殊要求。就是说它对环境的要求与Windows 95/98、Windows NT要求是一致的。硬件要求:一般在 586 以上的处理器、16MB 以上内存、100MB 以上的硬盘。软件要求: Windows 95/98 或 Windows NT3.51 以上版本。VC+6.0 系统可以在一张 CD 盘上,也可以在“ Visual Studio( Visual C+Visual Foxpro) ”等产品的第一张 CD 盘上。一般都有一个 VC 的自动安装程序, 也可以执行 VC6 目录下的 setup.exe,在安装包的提示
3、下进行,对初学者可采用 “典型安装”方式。在安装好 VC 6.0 系统后,有时根据需要添加或删除某些部件,可插入 CD 盘重新执行 setup.exe 安装程序,安装程序会检测当前系统安装 VC6 的足件,用 户单击“添加/删除”按钮后,在“安装维护”对话框中选定要添加的部件或撤 消选定要删除的部件。二.基本功能描述简单计算器包括双目运算和单目运算功能。 双目运算符包含基本的四则运算 及乘幕功能,单目运算符包含正余弦,阶乘,对数,开方,进制转换等运算。可 对输入任意操作数,包括 小数和整数及正数和负数进行以上的所有运算并能连续运算。出现错误会给出相应提示,同时包含清除,退格,退出功能以及有与所
4、 有按第2页钮相对应的菜单项。2.1 设计思路如图是整个计算器的流程图,打开计算器程序,输入数据,调用输入数据子 程序。子程序开始时 m_nun 为零。按下数字按钮后,判断 m_nunt勺正负号,对其 进行相关处理,然后在判断是否有小数点,处理后输出结果。回到总流程图中,输完第一个操作数后,若按下双目运算符,则把m_num存入 num2 按下输入第二个操作数并算出结果。若按下的是单目运算符,则直 接对其处理得出结果。若按下清零,则m_num 等于 0.在运算中还要判断运算是否合法,以及结果是否超出显示范围,以做出相关提示,按下清零。算出后把结 果保存至 num2 若需用算出的结果继续运算则回到
5、输入完第一个操作数后,若 不需要则判断试否需要开始新一轮的运算,不需要则结束第3页输入数据子函数图 1 输入数据子函数流程图第4页H进行运算把结果保存到num2弹出对话框显T示ERROR第5页图 2 简单计算器总流程图2.2 软件设计(1)设计步骤打开 Microsoft Visual C+ 6.0,在文件中点击新建,在弹出框内选择MFCAppWizardexe工程,输入工程名 zhoutong 及其所在位置,点击确定,如图 3 所示。图 3 新建 MFC AppWizardexe工程将弹出 MFC AppWizard-step 1 对话框,选择基本对话框,点击完成,如图4所示。第6页莹文档関
6、厂多重文档跖萬禾对话框皿您的资源使用的悟言杲: 冲艾审畐fjAPPWZCH工B LL1上一涉 下一播完咸瞬图 4 基本对话框这样,MFC AppWizard 就建立了一个基于对话窗口的程序框架, 如图 5 所示 idfKHiWngl - HkroMril Vburi C* - - Lfhintmal.n:U_2H(XfTClKil_DM.0G! (Owkm;)口固宜噜 HCZltiauloingl DigT|(Alh chass nimbe r|* CZiiouilufigi1 DigT 玄”凸!3文杵( 猶心兰五毎ffiACU 141(E)垣屢闻布简閥工目口啊flWcC-_;J|)t|沐绢喪
7、.厂谨武厂至龙厢中宜扶I在我件舛宜fVH需帚麵IIIW躺口就绪勺 札n ifj aDx?NI图 5 新建的对话框(2)界面设计1、创建控件在图 5 所示的 Resoure View 选项卡中打开 Dialog 资源组,双击IDD_ZHOUTONG_DIALOG, 在右边的窗口中显示出待编辑的对话框。 开始摆 放控件,包括编辑框和按钮的创建。按钮的创建以“ 1”例进行介绍,其他按钮MFC应用程序育号-歩*1您聂仓Q建的应用程序类型是;-_J zhdiutDngi ourccB-_J OlBlog23 IDD.ABOUTBOX2 IDD_ZHOUTOhlG1_OI/* J Icon+ Siring
8、 Table+ _ Verskn;Cl阴RUSIIQI“ 莖FildVi0-血EJB咨忌HA 第7页的创建可参照此进行操作。1)在图 5 中 Controls 的编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框。在编辑框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出Edit 属性对话框,如图 6 所示,在该对话框中输入 ID 属性。图 6 Edit 属性对话框2)在图 3 中 Controls 的“ Button 按钮上单击鼠标左键,在对话框上的合适的位置上按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。在按钮上单击鼠标右键,
9、在弹出的快捷菜单中选择属性选项,此时也弹出Push Button 属性对话框,如图 7 所示,在该对话框中输入控件的 ID 值和标题属性。图 7 Push Button 属性按照上面的操作过程编辑其他按钮和编辑框等对象的属性。第8页表 1 各按钮和编辑框等对象的属性对象ID标题或说明编辑框IDC xia nshi结果显示按钮IDC BUTTONO0按钮IDC BUTT0N11按钮IDC BUTT0N212按钮IDC BUTT0N33按钮IDC BUTT0N44按钮IDC BUTT0N55按钮IDC BUTT0N66按钮IDC BUTT0N77按钮IDC BUTT0N88按钮IDC BUTT0N
10、99按钮IDC cha nge+/-按钮IDC poi nt按钮IDC add+按钮IDC differe nee-按钮IDC multiply*按钮IDC devide/按钮IDC sqrtsqrt按钮IDCnln按钮IDC sinsin按钮IDC coscos按钮IDC powxAy按钮IDC 0 nequal=按钮IDC backspace退格按钮IDC 0nclear清零完成后界面如图 8 所示第9页(3)连接变量和代码1)给编辑框连接变量。在编辑框上单击鼠标右键,在弹出菜单中选择ClassWizard 菜单项,弹出 MFC ClassWizard 对话框,选择 Member Vari
11、ables 选项卡,如图 9 所示。在 Control IDs 列表框中选择 IDC_xianshi,单击 Add Variables 按钮,在弹出的对话框中连接变量 m_num。变量类型设定为 doubel 型。如图 10 所示。左科学计算器2图 8 计算器界面Open/Off第10页Add Member VariaMeMember variable name:im numl一1Category:ValueVarjable type:二doubleDes匚liption:double with range validation图 10 m_num 属性设置2)给“ 1 按钮连接代码。在“ 1
12、 按钮上单击鼠标右键,选择 Classwizard 菜单项,在弹出的对话框中选择 Messages Maps 选项卡,然后在 Object IDs 列表框中 选择 IDC_ADD_BUTTON,在 Messages 列表框中选择 BN_CLICKED 项,即选 择单击按钮事件,如图 11 所示。图 11“ 1”按钮链接代码对话框(4) 菜单的设计选择 插入/资源命令,将显示插入资源对话框。如图12 所示。选择 Menu,OKCancel第11页图 12 插入资源对话框Resoure View 选项卡中打开 Menu 资源组,双击 IDR_MENU1,然后给菜单添加相应的标题,并把每个菜单对应的
13、 ID 值与相应的按钮的一致。如图 13 所示。图 13 菜单属性对话框在对话框的任何一个空白域单击鼠标右键,然后在弹出的快捷菜单中选择Properties 命令,弹出 Dialog Properties 对话框,如图 14。在对话框中的菜单组合 框中选择 IDR MENU1o点击新建即可资源类型山:AcceleratorBitmapCursorDialogHTMLIcon m BiMmBiiau ipMenuString TableToolbarVersion新建自定义0.取消12d- z hDulong re source5-Fj!Dialog习IDD_BOUTBOXH IDO ZHIOU
14、TONG+/jJcon-也也Meou倉IDA MENU! J Siring Table+ _| VersionIALOC文件噪f帘飾中目运算符t i皱目运宜幷*+樂乎撐钮卜dear第12页对话麗性占豐常规 样式|更多样式|扩展样式|更多扩展样式|图 14 对话属性对话框 最终的得到的界面如图 15。2.3 关键功能的实现 1)操作数的输入编辑框所关联的变量为 m_num,程序开始时为零。每按下一个数字键按钮, 就把它累加到 m_num 里并刷新显示。BOOL 型变量 ele 来判断是否有小数点和 一个整型数 dint 来表示小数点后的数据的位数。当 ele=TRUE 时,表示有小数点,否则则表
15、示无小数点。按下小数点按钮后执行 ele=TRUE。当按下一个数字键时,首先根据 ele判断是否按下小数点,若有则把小数点后数的位数加1, di nt 则为此次键入的数所处的位数,将键入的数除以di nt 个 10 然后累加到编辑框所关联的变量 m_num 上,若没有则把 m_num 乘以 10,然后累加到编辑框所关联的变 量m_num 上。2) 单目运算符功能的实现由于单目运算符中必须有执行运算的函数,因而头文件中要加入math.h,如ID:I _字体名称: 字体大小:字体CQ)IDD-ZHOUTONG DIALOG J标题|):I简单计算器宋体菜单囲:位置岂0位置丫oIDR MENU1图
16、15 计算器完整界面第13页m_num=sqrt(m_num)按下按钮即可实现其功能。为实现连续运算,程序有所改动,参见(6)。3) 双目运算符功能的实现双目运算符需要两个操作数才能运算,所以在执行双目运算符按钮的函数代 码中,要把 m_num 中的值保存到变量 num2 中,然后把 m_num 清零。这样即可 保存第一个操作数。另外先定义了一个整形变量 addt,在不同的双目运算符中给 addt 赋不同的值,然后在等号中用 switch 语句来匹配 addt 值来判断需要执行何 种双目运算。为实现连续运算,程序有所改动。4) 退格键功能的实现当按下一次退格按钮时,若 m_num 为整数,只需
17、对其中数据除以 10 再取整 即可,若按下一次退格按钮为小数,则根据小数点后数据的位数 dint 进行操作, 先对m_num 执行(dint-1)次乘以 10 运算,然后取整,接着执行(dint-1)次除 以 10 的运算即可。完成后需要把 dint 将减小 1。5) 连续运算功能的实现要连续运算必须将每次运算的结果保存下来。对于双目运算符:首先在等号按钮的消息处理函数中在 m_num 清零之前将m_num 的值赋给 num2.不过这样的话如果再按双目运算符则 num2 的值将会被覆 盖,于是在双目运算符按钮的消息处理函数中将“n um2=m_num;改为“ if(m_num!=O)num2=
18、m_num;这样若已经保存了结果则不进行覆盖。 然后在每个数字按钮前加上“if(addt=0)num2=0;,这样如果进行完一次运算之后按下任一 数字键表示不需要连续运算,则将保存的结果删除,若按下的是双目运算符按钮 则可以继续运算。对于单目运算符:每次运算完之后都会对 m_num 清零,因此其结果也要赋 给num2,下次运算是则会用到 num2, 于是第一次运算时直接将 m_num 的值赋 给 num2,对其进行运算。以开根号为例,在消息处理函数代码中将“ m_num=sqrt(m_num)改为 “ num2=m_num;m_num=sqrt(num2);num2=m_num;” 但是第一次
19、运算执行完成之后 m_num 被清零,所以之后将 m_num的值不能赋 给 num2, 代码改为 “if(m_num=0)m_num=sqrt(num2);num2=m_num” 其他单 目运算符同理。第14页为实现连续运算是不需要按下等号即可实现,又在所有的运算符按钮的消息 处理函数代码前加上了 “if(addt!=0)Onequal();。既若之前有按下双目运算符和两 个操作数则连续运算再按下任一运算符时会自动调用等号的处理函数将上次的 运算完成并保存结果方便下一次的运算。第15页三.结论与心得体会经过多番测试,得出结论为设计的计算器能够完成功能描述内容中的全部功 能。经过 2 个星期的 VC+课程设计,我在老师和同学的共同帮助下,顺利完成 该课程设计,收获很大。正所谓“纸上谈兵终觉浅,觉知此事要躬行。”所以在本学期课程设计是很及时、很必要的。这样不仅能加深我们对程序设计的掌握, 而且还及时、真正的做到了学以致用。主要是以下几点。基本功要过硬。不能马虎经常犯犯小错误。提高自己找错纠错能力,通常错 误总是那几种,多练习就熟练了。要善于查找资料提高自己的资料查询能力, 要善于利用网络来获得知识,获 得帮助。开始着手程序设计时,有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 11《葡萄沟》教学设计-2024-2025学年统编版二年级语文上册
- 《自救技能get》主题班会教学设计
- 2024新教材高中地理 第一章 人口与地理环境 第一节 人口分布教学设计 湘教版必修第二册
- 13 猫 教学设计-2024-2025学年语文四年级下册统编版
- 2024-2025学年高中物理 第2章 3 匀变速直线运动的位移与时间的关系教学设计 新人教版必修1
- 13《人物描写一组》 教学设计-2023-2024学年语文五年级下册统编版
- 肥胖患者的气道管理
- Unit 1 My school Part B Read and write Part C Story time(教学设计)-2024-2025学年人教PEP版英语四年级下册
- 2023六年级数学下册 一 欢乐农家游-百分数(二)信息窗2 青岛假日游-百分数实际问题第1课时教学设计 青岛版六三制
- Unit 4 Plants around us 单元整体(教学设计)-2024-2025学年人教PEP版(2024)英语三年级上册
- 电力安全生产管理试题及答案
- 专题02 概括文章中心思想(讲义)(原卷+答案解释)2024-2025学年小升初语文讲练测 统编版
- 门诊口腔科消防演习方案及剧本2024.3.20
- (二模)温州市2025届高三第二次适应性考试政治试卷(含答案)
- 2024年中国冶金地质总局总部招聘笔试真题
- 飞利浦超声基础培训
- 电梯安全管理人员测试习题和答案
- 2024年陕煤集团榆林化学有限责任公司招聘考试真题
- (高清版)DB11∕T780-2024大型群众性活动安全检查规范
- 大学生创新创业演讲稿
- 欧盟电池和废电池法规(EU) 2023-1542 (中文翻译版)
评论
0/150
提交评论