计算器程序设计.C++_MFC_第1页
计算器程序设计.C++_MFC_第2页
计算器程序设计.C++_MFC_第3页
计算器程序设计.C++_MFC_第4页
计算器程序设计.C++_MFC_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

课程设计报告课程设计报告 课程名称 课程名称 VC 课程设计课程设计 设计题目 设计题目 计算器计算器 专业班级 专业班级 通信工程通信工程 1202 班班 姓姓 名 名 赵博赵博 学学 号 号 120404209 时时 间 间 2015 年年 7 月月 14 日日 指导教师 指导教师 赵柏山赵柏山 2 目目 录录 1 1 课程设计的要求课程设计的要求 3 3 2 2 功能描述功能描述 3 3 3 3 设计步骤设计步骤 3 3 4 4 运算流程图运算流程图 7 7 5 5 运行效果与不足运行效果与不足 8 8 6 6 总结总结 9 9 7 7 参考文献及开发环境参考文献及开发环境 9 9 附录 程序代码附录 程序代码 9 9 3 简易计算器简易计算器 MFC 1 1 课程设计的要求 课程设计的要求 多功能计算器 要求所编写的的计算器能够完成加 减 乘 除 基本函 数的运算 类似于 Windows 附件中的计算器 2 功能描述功能描述 1 包含的功能有 加 减 乘 除运算 开方 倒数 求余等功能 2 计算器上数字 0 9 为一个控件数组 加 减 乘 除为一个控件数 组 其余为单一的控件 3 输入的原始数据 运算中间数据和结果都显示在窗口顶部的同一个标 签中 4 计算功能基本上是用系统内部函数 5 0 不能做除数 6 Backspace 按钮可以清除上一次输入的数据 Clear 按钮可以 清除所有已输入的数据从头计算 3 3 设计步骤设计步骤 1 选择 FileNewlProject 命令 选择 MFC AppWizard exe 创建 Project 名 为 计算器 按确定 在弹出界面选择创建对话框 单击 完成 按钮 2 在生成的设计界面中加入控件 得到计算器应用界面 如图 4 3 为控件编辑框编辑 ID 如图 按钮名称ID用途 0IDC BUTTON 0按键 0 1IDC BUTTON 1按键 1 2IDC BUTTON 2按键 2 3IDC BUTTON 3按键 3 4IDC BUTTON 4按键 4 5IDC BUTTON 5按键 5 6IDC BUTTON 6按键 6 7IDC BUTTON 7按键 7 8IDC BUTTON 8按键 8 9IDC BUTTON 9按键 9 IDC BUTTONpt按键 5 IDC BUTTONor正负 IDC BUTTONjia加 IDC BUTTONjian减 IDC BUTTONcheng乘 IDC BUTTONchu除 ClearIDC BUTTONC清零 BackspaceIDC BUTTONbk退格 1 xIDC BUTTONdao倒数 sqrtIDC BUTTONfang开方 IDC BUTTONbai求余 IDC BUTTONdeng等于 编辑框IDC EDIT1显示数据输入输出 4 进入 ClassWizard 界面选择 Message Maps 为控件插入消息映射 插入 消息函数 实现控件命令功能 如图 6 5 进入 ClassWizard 界面 Message Varibles 为编辑框添加成员变量 m stredit 用以显示结果 如图 6 在 计算器 Dlg h 中加入在主要成员函数和成员变量的申明 在 计算器 Dlg cpp 中加入主要成员函数实现过程和成员变量的初始化 7 在头文件中 计算器 Dlg h 中 public 下添加 int sos 操作附鉴别符 int cal CString m str2 存放按下操作符之前 m stredit 的值 CString m str1 中间变量 当前 m stredit 的值 在 计算器 Dlg cpp 中要定义各种数学运算添加 include math h 4 4 运算流程图运算流程图 N Y Y N Y N 开始 输入数据于函数 单目运算符双目运算符 编辑框关联的变量 保存到 m str1 输入数据于函数 进行运算 运算是否合法 运算结果保存到 m str2 是否用保存的结 果继续进行运算 弹出对话框显示错误 是否开始新的计算 结束 m str 清零 8 5 5 运行效果和不足运行效果和不足 例如 例如 7 9 2 1 2 0 5 2 0 不能运算 等等 9 不足 不足 0 可以作为数字的开头 而且小数点可以打多个 希望可以通过以后的学习解决 这些缺点 6 6 总结总结 课程设计到此已告一段落 经过团队的努力 在三周的实践中课程设计基 本完成了 从中学到很多有用的知识 也积累了不少宝贵的经验 虽然在此次 课程设计我们只是针对性的去学习对对话框应用程序的编程模式 但也体会到 了 MFC 这类库的博大精深 想全部了解这样一个类库 今后还需多下功夫 本次课程设计我们完成了一个简易计算器应用软件 在此期间 遇上了不 少的技术难题 但是经过努力 通过查找资料 难题还是一个个被解决了 从中 学到了许多课堂上没学到的东西 这是很值得高兴的 经过设计的各个环节 从中学到了很多 锻炼了系统的设计的能力 培养了团队分工合作精神 这样 对我们以后在工作中或学习中得到很好的锻炼 为用 VC 编辑软件奠定基础 在本次实践期间对简易计算器的设计虽然大体实现各个控件的功能 但仍 存在许多的不足与漏洞 还待以后的不断学习进一步完善 7 7 参考文献及开发环境参考文献及开发环境 参考文献 参考文献 1 Visual 1 Visual C C 7 07 0 起步进阶起步进阶 国防工业出版社 国防工业出版社 武装武装 等编著等编著 2 Visual 2 Visual C C 基础教程基础教程 西安电子科技大学出版社 西安电子科技大学出版社 2006 62006 6 开发环境 开发环境 MicrosoftMicrosoft VisualVisual C C 6 06 0 附录附录 程序代码程序代码 计算器 Dlg cpp implementation file include stdafx h include stdlib h include 计算器 h include 计算器 Dlg h include math h ifdef DEBUG 10 define new DEBUG NEW undef THIS FILE static char THIS FILE FILE endif CAboutDlg dialog used for App About class CAboutDlg public CDialog public CAboutDlg Dialog Data AFX DATA CAboutDlg enum IDD IDD ABOUTBOX AFX DATA ClassWizard generated virtual function overrides AFX VIRTUAL CAboutDlg protected virtual void DoDataExchange CDataExchange pDX DDX DDV support AFX VIRTUAL Implementation protected AFX MSG CAboutDlg AFX MSG DECLARE MESSAGE MAP CAboutDlg CAboutDlg CDialog CAboutDlg IDD AFX DATA INIT CAboutDlg AFX DATA INIT void CAboutDlg DoDataExchange CDataExchange pDX CDialog DoDataExchange pDX AFX DATA MAP CAboutDlg AFX DATA MAP 11 BEGIN MESSAGE MAP CAboutDlg CDialog AFX MSG MAP CAboutDlg No message handlers AFX MSG MAP END MESSAGE MAP CMyDlg dialog CMyDlg CMyDlg CWnd pParent NULL CDialog CMyDlg IDD pParent AFX DATA INIT CMyDlg m stredit T AFX DATA INIT Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m hIcon AfxGetApp LoadIcon IDR MAINFRAME void CMyDlg DoDataExchange CDataExchange pDX CDialog DoDataExchange pDX AFX DATA MAP CMyDlg DDX Text pDX IDC EDIT1 m stredit DDV MaxChars pDX m stredit 15 AFX DATA MAP BEGIN MESSAGE MAP CMyDlg CDialog AFX MSG MAP CMyDlg ON WM SYSCOMMAND ON WM PAINT ON WM QUERYDRAGICON ON BN CLICKED IDC BUTTON9 OnButton9 ON BN CLICKED IDC BUTTON6 OnButton6 ON BN CLICKED IDC BUTTON0 OnButton0 ON BN CLICKED IDC BUTTON1 OnButton1 ON BN CLICKED IDC BUTTON2 OnButton2 ON BN CLICKED IDC BUTTON3 OnButton3 ON BN CLICKED IDC BUTTON4 OnButton4 12 ON BN CLICKED IDC BUTTON5 OnButton5 ON BN CLICKED IDC BUTTON7 OnButton7 ON BN CLICKED IDC BUTTON8 OnButton8 ON BN CLICKED IDC BUTTONbk OnBUTTONbk ON BN CLICKED IDC BUTTONbai OnBUTTONbai ON BN CLICKED IDC BUTTONfang OnBUTTONfang ON BN CLICKED IDC BUTTONdao OnBUTTONdao ON BN CLICKED IDC BUTTONpt OnBUTTONpt ON BN CLICKED IDC BUTTONjia OnBUTTONjia ON BN CLICKED IDC BUTTONjian OnBUTTONjian ON BN CLICKED IDC BUTTONcheng OnBUTTONcheng ON BN CLICKED IDC BUTTONchu OnBUTTONchu ON BN CLICKED IDC BUTTONor OnBUTTONor ON BN CLICKED IDC BUTTONC OnButtoncls ON BN CLICKED IDC BUTTONdeng OnBUTTONdeng AFX MSG MAP END MESSAGE MAP CMyDlg message handlers BOOL CMyDlg OnInitDialog CDialog OnInitDialog Add About menu item to system menu IDM ABOUTBOX must be in the system command range ASSERT IDM ABOUTBOX ASSERT IDM ABOUTBOX AppendMenu MF SEPARATOR pSysMenu AppendMenu MF STRING IDM ABOUTBOX strAboutMenu 13 Set the icon for this dialog The framework does this automatically when the application s main window is not a dialog SetIcon m hIcon TRUE Set big icon SetIcon m hIcon FALSE Set small icon TODO Add extra initialization here m stredit 0 对显示屏进行初始化 显示 0 UpdateData FALSE return TRUE return TRUE unless you set the focus to a control void CMyDlg OnSysCommand UINT nID LPARAM lParam if nID dlgAbout DoModal else CDialog OnSysCommand nID lParam If you add a minimize button to your dialog you will need the code below to draw the icon For MFC applications using the document view model this is automatically done for you by the framework void CMyDlg OnPaint if IsIconic CPaintDC dc this device context for painting SendMessage WM ICONERASEBKGND WPARAM dc GetSafeHdc 0 Center icon in client rectangle 14 int cxIcon GetSystemMetrics SM CXICON int cyIcon GetSystemMetrics SM CYICON CRect rect GetClientRect int x rect Width cxIcon 1 2 int y rect Height cyIcon 1 2 Draw the icon dc DrawIcon x y m hIcon else CDialog OnPaint The system calls this to obtain the cursor to display while the user drags the minimized window HCURSOR CMyDlg OnQueryDragIcon return HCURSOR m hIcon void CMyDlg OnButton0 TODO Add your control notification handler code here UpdateData TRUE if cal 1 else if m stredit 0 m stredit m stredit 0 UpdateData FALSE void CMyDlg OnButton1 TODO Add your control notification handler code here UpdateData TRUE if cal 1 else if m stredit 0 m stredit m stredit 1 UpdateData FALSE 15 void CMyDlg OnButton2 TODO Add your control notification handler code here UpdateData TRUE if cal 1 else if m stredit 0 m stredit m stredit 2 UpdateData FALSE void CMyDlg OnButton3 TODO Add your control notification handler code here UpdateData TRUE if cal 1 else if m stredit 0 m stredit m stredit 3 UpdateData FALSE void CMyDlg OnButton4 TODO Add your control notification handler code here UpdateData TRUE if cal 1 else if m stredit 0 m stredit m stredit 4 UpdateData FALSE void CMyDlg OnButton5 TODO Add your control notification handler code here UpdateData TRUE if cal 1 else if m stredit 0 16 m stredit m stredit 5 UpdateData FALSE void CMyDlg OnButton6 TODO Add your control notification handler code here UpdateData TRUE if cal 1 else if m stredit 0 m stredit m stredit 6 UpdateData FALSE void CMyDlg OnButton7 TODO Add your control notification handler code here UpdateData TRUE if cal 1 else if m stredit 0 m stredit m stredit 7 UpdateData FALSE void CMyDlg OnButton8 TODO Add your control notification handler code here UpdateData TRUE if cal 1 else if m stredit 0 m stredit m stredit 8 UpdateData FALSE void CMyDlg OnButton9 TODO Add your control notification handler code here UpdateData TRUE 17 if cal 1 else if m stredit 0 m stredit m stredit 9 UpdateData FALSE void CMyDlg OnBUTTONbk TODO Add your control notification handler code here UpdateData TRUE m stredit m stredit Left m stredit GetLength 1 UpdateData FALSE void CMyDlg OnBUTTONbai TODO Add your control notification handler code here UpdateData m str1 m stredit m stredit sos 6 UpdateData FALSE void CMyDlg OnBUTTONfang TODO Add your control notification handler code here UpdateData TRUE double f1 f3 m str1 m stredit f1 atof m str1 if f1 0 MessageBox 负数没有平方根 else f3 sqrt f1 m stredit Format f f3 UpdateData false void CMyDlg OnBUTTONdao 18 TODO Add your control notification handler code here UpdateData TRUE double f1 f3 m str1 m stredit f1 atof m str1 if f1 0 MessageBox 被除数不能为 0 else f3 1 f1 m stredit Format f f3 UpdateData FALSE void CMyDlg OnBUTTONpt TODO Add your control notification handler code here UpdateData m stredit cal 1 UpdateData FALSE void CMyDlg OnBUTTONjia TODO Add your control notification handler code here UpdateData TRUE m str1 m stredit m stredit sos 1 UpdateData FALSE void CMyDlg OnBUTTONjian TODO Add your control notification handler code here UpdateData TRUE m str1 m stredit 19 m stredit sos 2 UpdateData FALSE void CMyDlg OnBUTTONcheng TODO Add your control notification handler code here UpdateData TRUE m str1 m stredit m stredit sos 3 UpdateData FALSE void CMyDlg OnBUTTONchu TODO Add your control notification handler code here UpdateData m str1 m stredit m stredit sos 4 UpdateData FALSE void CMyDlg OnBUTTONor TODO Add your control notification handler code here UpdateData TRUE if m stredit Left 1 截取 m str1 左边的第一个字符 m st

温馨提示

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

评论

0/150

提交评论