MFC课程设计报告—模拟计算器_第1页
MFC课程设计报告—模拟计算器_第2页
MFC课程设计报告—模拟计算器_第3页
MFC课程设计报告—模拟计算器_第4页
MFC课程设计报告—模拟计算器_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计计 算算 机机 MFC 课课 程程 设设 计计 报报 告告 模模 拟拟 计计 算算 器器 姓姓名名 学学号号 02011227 联联系系电电话话 指指导导教教师师 东东南南大大学学机机械械工工程程学学院院 2012 年年 10 月月 14 日日 模拟计算器 摘要 摘要内容 以课本简单计算器为基础 首先实现了加 减 乘 除 求倒数和 平方根的混合运算 并能进行清屏及倒退操作 然后自行完善了书中未能实现 的乘 除运算的连续操作 最后自行设计并完成了lg ln sin cos pi e 八个按钮控件的消息映射及程序代码的添加和修 改 从中学会了制作简单的基于对话框的小工具 掌握了常用控件的使用 明 白了消息映射及消息处理 提高了 VC 编程水平 关键词 四则运算 小数点 计算器 Analog calculator Abstract Content of abstract Simple calculator in textbooks as the foundation first realized the addition subtraction multiplication division and reciprocal and square root of the mixed operation and can clear screen and reverse operation and then to improve the book failed to realize the multiplication division operation of continuous operation and finally to be designed and completed the eight button control news mapping and program code to add and modify Learnt how to make simple dialog based small tools mastered the use of commonly used controls see news mapping and information processing improve the level of programming Key word arithmetic Decimal point Calculator 本计算器是基于 VC 的 MFC 编程 可完成大多数简单操作 其运行后 界面如下图 以课本简单计算器为基础 首先实现了加 减 乘 除 求倒数和平方根的混 合运算 并能进行清屏及倒退操作 然后自行完善了书中未能实现的乘 除运 算的连续操作 最后自行设计并完成了 lg ln sin cos pi e 八个按 钮控件的消息映射及程序代码的添加和修改 完整的操作步骤 1 创建 MFC 应用程序框架 使用 MFC AppWizard exe 向导生成一个基于 对话框的应用程序 Calculator 2 编辑对话框 按图添加前 21 个控件 其中 1 个为编辑框 20 个为按钮 控 件 ID 及 Caption 设置如下 IDC EDIT PUTOUT IDC NUMBER1 1 IDC NUMBER2 2 IDC NUMBER3 3 IDC NUMBER4 4 IDC NUMBER5 5 IDC NUMBER6 6 IDC NUMBER7 7 IDC NUMBER8 8 IDC NUMBER9 9 IDC NUMBER0 0 IDC ADD IDC SUBTRACT IDC MULTIPLY IDC DIVIDE IDC RESULT IDC MINUS IDC BACK Back IDC CLEAR Clear IDC SQRT Sqrt IDC RECIPROCAL 1 x IDC LG lg IDC LN ln IDC SIN sin IDC COS cos IDC CHENGFANG IDC POINT IDC PI pi IDC CHAOYUESHU e 3 添加成员变量 为编辑框在 CCalculatorDlg 对话框类中添加 double 型成 员变量 m result 再为 CCalculatorDlg 类添加 int m OperationCount 存放加 减乘除等运算符的顺序号 int m NumberCount 存放操作数的顺序号 double m number 15 存放操作数 double m Operation 15 存放操作符 bool flag 判断整数和小数 double p 小数退位 4 添加消息映射及成员函数 1 在 CalculatorDlg h 头文件中声明消息映射函数 afx msg void OnNumberKey UINT nID 响应数字按钮的单击操作 afx msg void OnOperationKey UINT nID 响应操作符按钮的单击操作 2 在 CalculatorDlg cpp 实现文件消息映射表中加入 ON COMMAND RANGE 命令消息 ON COMMAND RANGE IDC NUMBER1 IDC NUMBER0 OnNumberKey ON COMMAND RANGE IDC ADD IDC CHAOYUESHU OnOperationKey 有新增功能时命令消息中参数记得修改 3 在 CalculatorDlg cpp 实现文件中加入消息处理函数 void CCaculatorDlg OnNumberKey UINT nID int n 0 switch nID case IDC NUMBER1 n 1 break case IDC NUMBER2 n 2 break case IDC NUMBER3 n 3 break case IDC NUMBER4 n 4 break case IDC NUMBER5 n 5 break case IDC NUMBER6 n 6 break case IDC NUMBER7 n 7 break case IDC NUMBER8 n 8 break case IDC NUMBER9 n 9 break case IDC NUMBER0 n 0 break if flag true 判断是否为小数 p 0 1 m number m NumberCount m number m NumberCount n p else m number m NumberCount m number m NumberCount 10 n flag false m result m number m NumberCount UpdateData false 功能加强 不仅可输入整数 还可输入小数 使运算 范围大大扩增 void CCaculatorDlg OnOperationKey UINT nID int i switch nID case IDC ADD m Operation m OperationCount 1 break case IDC SUBTRACT m Operation m OperationCount 2 break case IDC MULTIPLY m Operation m OperationCount 3 break case IDC DIVIDE m Operation m OperationCount 4 break case IDC RESULT cal break case IDC MINUS m number m NumberCount m number m NumberCount break case IDC BACK if flag false m number m NumberCount int m number m NumberCount 10 m result m number m NumberCount else m number m NumberCount m number m NumberCount p m number m NumberCount int m number m NumberCount 10 m number m NumberCount m number m NumberCount 10 p m result m number m NumberCount 增加小数之后 Back 操作有所改变 UpdateData false break case IDC CLEAR for i 1 i 11 i m number i 0 m Operation i 999 m NumberCount 1 m OperationCount 1 flag false p 1 增加小数之后 Clear 操作有所改变 m result 0 UpdateData false break case IDC SQRT m number m NumberCount sqrt m number m NumberCount break case IDC RECIPROCAL m number m NumberCount double 1 m number m NumberCount break case IDC LG m number m NumberCount log10 m number m NumberCount break case IDC LN m number m NumberCount log m number m NumberCount break case IDC SIN m number m NumberCount sin m number m NumberCount break case IDC COS m number m NumberCount cos m number m NumberCount break case IDC CHENGFANG m Operation m OperationCount 5 break case IDC POINT flag true break case IDC PI m result m number m NumberCount acos 1 UpdateData false break case IDC CHAOYUESHU m result m number m NumberCount exp 1 UpdateData false break 新增功能 使运算更完善 if m Operation m OperationCount 6 m NumberCount m OperationCount flag false p 1 呼应小数点和乘方的功能 4 在 CalculatorDlg 对话框中添加 void 型成员函数 cal 并在 CalculatorDlg cpp 实现文件前加上包含语句 include void CCaculatorDlg cal m result m number 1 for int i 1 iLoadIcon IDR MAINFRAME m NumberCount 1 m OperationCount 1 flag false p 1 为自己新添的成员变量初始化 for int i 0 i 15 i m number i 0 m Operation i 999 结论 看起来虽然简单 不过自己做起来还是挺难的 首先一定要细心 例如 在 CCalculator cpp 消息映射表中的命令消息 ON COMMAND RANGE IDC ADD IDC CHAOYUESHU OnOperationKey 前 2 个参数的 ID 号不可出错 其中最难的新增功能实现是小数点 为实现小数点功能 增加了 2 个成员变量 flag 和 p 然后在初始化时不要忘记新增变量的初始化 以及 OnNumberKey UINT nID 函数和 Back

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论