欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年2022年计算器程序设计.C++_MFC .pdf

    • 资源ID:39711795       资源大小:439.37KB        全文页数:21页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年2022年计算器程序设计.C++_MFC .pdf

    课程设计报告课程名称:VC+课程设计设计题目:计算器专业班级:通信工程 1202 班姓名:赵博学号:120404209 时间:2015年 7 月 14日指导教师:赵柏山名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 21 页 -2目录1.课程设计的要求,3 2.功能描述,3 3.设计步骤,3 4.运算流程图,7 5.运行效果与不足,8 6.总结,9 7.参考文献及开发环境,9 附录:程序代码,9名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 21 页 -3简易计算器(MFC)1课程设计的要求多功能计算器:要求所编写的的计算器能够完成加、减、乘、除、基本函数的运算,类似于Windows 附件中的计算器。2.功能描述(1)包含的功能有:加、减、乘、除运算,开方、倒数、求余等功能。(2)计算器上数字 09 为一个控件数组,加、减、乘、除为一个控件数组,其余为单一的控件。(3)输入的原始数据、运算中间数据和结果都显示在窗口顶部的同一个标签中。(4)计算功能基本上是用系统内部函数。(5)“0”不能做除数。(6)“Backspace”按钮可以清除上一次输入的数据,“Clear”按钮可以清除所有已输入的数据从头计算。3.设计步骤(1)选择 FileNewlProject 命令,选择 MFC AppWizard(exe)创建 Project 名为“计算器”,按确定。在弹出界面选择创建对话框,单击“完成”按钮。(2)在生成的设计界面中加入控件,得到计算器应用界面。如图:名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 21 页 -4(3)为控件编辑框编辑ID,如图:按钮名称ID 用途0 IDC_BUTTON_0 按键 0 1 IDC_ BUTTON_1 按键 1 2 IDC_ BUTTON_2 按键 2 3 IDC_ BUTTON_3 按键 3 4 IDC_ BUTTON_4 按键 4 5 IDC_ BUTTON_5 按键 5 6 IDC_ BUTTON_6 按键 6 7 IDC_ BUTTON_7 按键 7 8 IDC_ BUTTON_8 按键 8 9 IDC_ BUTTON_9 按键 9.IDC_ BUTTONpt 按键.名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 21 页 -5+/-IDC_ BUTTONor 正负+IDC_ BUTTONjia 加-IDC_ BUTTONjian 减*IDC_ BUTTONcheng 乘/IDC_ BUTTONchu 除Clear IDC_ BUTTONC 清零Backspace IDC_ BUTTONbk 退格1/x IDC_ BUTTONdao 倒数sqrt IDC_ BUTTONfang 开方%IDC_ BUTTONbai 求余=IDC_ BUTTONdeng 等于编辑框IDC_EDIT1 显示数据输入输出(4)进入 ClassWizard界面选择 Message Maps为控件插入消息映射,插入消息函数,实现控件命令功能。如图:名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 21 页 -6(5)进入ClassWizard 界面 Message Varibles 为编辑框添加成员变量m_stredit 用以显示结果。如图:(6)在“计算器 Dlg.h”中加入在主要成员函数和成员变量的申明,在“计算器 Dlg.cpp”中加入主要成员函数实现过程和成员变量的初始化。名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 21 页 -7在头文件中“计算器Dlg.h”中 public 下添加int sos;/操作附鉴别符int cal;CString m_str2;/存放按下操作符之前m_stredit 的值CString m_str1;/中间变量,当前 m_stredit的值在“计算器 Dlg.cpp”中要定义各种数学运算添加#include math.h 4.运算流程图N Y Y N Y N 开始输入数据于函数单目运算符双目运算符编辑框关联的变量保存到 m_str1 输入数据于函数进行运算运算是否合法运算结果保存到m_str2 是否用保存的结果继续进行运算弹出对话框显示错误是否开始新的计算结束m_str 清零名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 21 页 -85 运行效果和不足例如:-7+9=21/2=0.5 2/0 不能运算等等名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 21 页 -9不足:0 可以作为数字的开头,而且小数点可以打多个,希望可以通过以后的学习解决这些缺点。6 总结课程设计到此已告一段落,经过团队的努力,在三周的实践中课程设计基本完成了。从中学到很多有用的知识,也积累了不少宝贵的经验。虽然在此次课程设计我们只是针对性的去学习对对话框应用程序的编程模式,但也体会到了MFC 这类库的博大精深。想全部了解这样一个类库,今后还需多下功夫。本次课程设计我们完成了一个简易计算器应用软件,在此期间,遇上了不少的技术难题,但是经过努力,通过查找资料,难题还是一个个被解决了,从中学到了许多课堂上没学到的东西,这是很值得高兴的。经过设计的各个环节,从中学到了很多,锻炼了系统的设计的能力,培养了团队分工合作精神。这样对我们以后在工作中或学习中得到很好的锻炼,为用VC+编辑软件奠定基础。在本次实践期间对简易计算器的设计虽然大体实现各个控件的功能,但仍存在许多的不足与漏洞,还待以后的不断学习进一步完善。7 参考文献及开发环境参考文献:1 Visual C+7.0 起步进阶,国防工业出版社武装等编著2 Visual C+基础教程,西安电子科技大学出版社,2006.6 开发环境:Microsoft Visual C+6.0 附录.程序代码/计算器 Dlg.cpp:implementation file/#include stdafx.h/#include stdlib.h#include 计算器.h#include 计算器 Dlg.h#include math.h#ifdef _DEBUG#define new DEBUG_NEW 名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 21 页 -10#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 名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 21 页 -11BEGIN_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)ON_BN_CLICKED(IDC_BUTTON5,OnButton5)名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 21 页 -12ON_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&0 xFFF0)=IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 21 页 -13/Set the icon for this dialog.The framework does this automatically/when the applications 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&0 xFFF0)=IDM_ABOUTBOX)CAboutDlg dlgAbout;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 int cxIcon=GetSystemMetrics(SM_CXICON);int cyIcon=GetSystemMetrics(SM_CYICON);名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 21 页 -14CRect rect;GetClientRect(&rect);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);名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 21 页 -15void 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.)m_stredit=;m_stredit+=5;名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 21 页 -16UpdateData(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);if(cal=1)else if(m_stredit=0.)名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 21 页 -17m_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(f10)MessageBox(负数没有平方根!);else f3=sqrt(f1);m_stredit.Format(%f,f3);UpdateData(false);void CMyDlg:OnBUTTONdao()/TODO:Add your control notification handler code here 名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 21 页 -18UpdateData(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;m_stredit=;sos=2;名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 21 页 -19UpdateData(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_stredit=m_stredit.Right(m_stredit.GetLength()-1);else m_stredit=-+m_stredit;/sos=5;UpdateData(FALSE);void CMyDlg:OnButtoncls()/TODO:Add your control notification handler code here UpdateData(TRUE);m_stredit=;sos=0;UpdateData(FALSE);名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 21 页 -20 void CMyDlg:OnBUTTONdeng()/TODO:Add your control notification handler code here double f1,f2,f3;int f4,f5,f6;/%运算符操作数只能是整型switch(sos)case 1:UpdateData(TRUE);m_str2=m_stredit;f1=atof(m_str1);f2=atof(m_str2);f3=f1+f2;m_stredit.Format(%f,f3);UpdateData(FALSE);break;case 2:UpdateData(TRUE);m_str2=m_stredit;f1=atof(m_str1);f2=atof(m_str2);f3=f1-f2;m_stredit.Format(%f,f3);UpdateData(FALSE);break;case 3:UpdateData(TRUE);m_str2=m_stredit;f1=atof(m_str1);f2=atof(m_str2);f3=f1*f2;m_stredit.Format(%f,f3);UpdateData(FALSE);break;case 4:UpdateData(TRUE);m_str2=m_stredit;f1=atof(m_str1);f2=atof(m_str2);if(f2=0)MessageBox(被除数不能为零!);else 名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 21 页 -21 f3=f1/f2;m_stredit.Format(%f,f3);UpdateData(FALSE);break;case 6:UpdateData(TRUE);m_str2=m_stredit;f4=atoi(m_str1);/将字符型转化为整型,下面做相应修改f5=atoi(m_str2);f6=int(f4)%int(f5);m_stredit.Format(%d,f6);UpdateData(FALSE);break;名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 21 页 -

    注意事项

    本文(2022年2022年计算器程序设计.C++_MFC .pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开