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

下载本文档

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

文档简介

C+课程设计C+课程设计报告( 2013 2014 年度第 1 学期)计算器程序设计专 业计算机科学与技术学生姓名班 级学 号指导教师完成日期2014年1月16日2C+课程设计目 录摘 要11、引 言11.1 课题意义及目的11.2 课程设计内容及要求12、开发工具的介绍23、设计内容33.1 功能说明33.2 流程图:34、系统的实现44.1 文件创建44.2 界面设计64.3 数值计算功能的实现105、程序结果的演示25.1 测试的研究与选择25.2 测试环境35.3 实例测试结果3心得与体会5参考文献6附录1:RUN函数程序7附录2:计算器程序8II摘 要随着当今社会的发展,越来越多的人开始使用电子商品,新的高考制度也允许使用计算器,而作为一名计算机专业的学生,在使用工具的同时也应该学会制作这类工具。本课程设计是利用VC+编程,实现一个简单计算器。此计算器类似于Windows附件中自带的计算器,它利用不仅实现了简单的四则运算功能,还实现了少部分科学函数计算功能,例如sin,cos,tan等而且具有简洁的外观,好看的背景。用户可以使用任何合法的四则运算,并且显示运算结果。计算器的设计是基于MFC下进行,通过各种控件的使用,实现要求中的功能。该报告介绍了该课题的意义,设计内容及要求, vc+开发工具的简单使用方式。且着重阐述了计算器的设计思路和功能,并对代码进行了详细的解释。关键词 VC+ , 计算器 , MFC , 控件C+课程设计计算器程序设计1、引 言现代计算器一般是指“电子计算器”,所以,可以认为是“电子计算器”的简称。能进行数学运算的手持机器,拥有集成电路芯片,但结构简单,比现代的电脑结构简单的多,但是比较廉价,可以说是现代办公必备用品之一。本课程设计主要在运算过程中,如果通过计算器来完成,就会减少计算量,该程序即可以在简单计算器键面下进行简单运算,也可以在科学计算器键面下进行高级的科学计算。并且可以分别计算弧度、角度的三角函数的计算等较为复杂的运算。1.1 课题意义及目的现实学习生活中,常会遇到一些数目较大数据繁杂的数值运算,徒手运算起来很困难,这时候我们就必须用到计算器,所以便着手开发了这个计算器程序,以便用于自己的学习工作。人们对计算的要求不断提高,普通的功能简单的仅能进行四则运算的计算工具已经不能满足需要,需要一种能进行多种计算。现在已经有一些功能较为强大、涵盖面较广的计算软件,而且各种平台的小工具仍不断出现。这些大大方便了我们的生活给我们更多的选择和实现方式。这个程序可以直接输入数学表达式,不需要任何转换,就可以直接输出数学四则运算的结果。并且操作简单、界面清晰、灵活、实用、方便等要求出发,它所能完成的主要计算功能有以下几个方面:加法,减法,乘法,除法,求平方根,求Sin,求Cos,求Tan,求Log10。计算器的设计使我们所学到的c语言知识在现实中得到检验!信息时代是科技和经济发展的产物,软件产业是信息时代的产物,它在我们的生活工作中发挥着越来越大的作用,计算器的设计对我们知识的掌握有很大的作用,更能方便他人,可行性很强!1.2 课程设计内容及要求1设计内容设计一个简单的计算器。要求能实现整数、小数算术运算。程序带清零按钮。2设计要求用VC进行编写MFC程序,工程名为自己的姓名首字母和学号连接而成。注重编码质量,代码要有适当的注释;提交设计报告一份(课程设计任务书、目录、设计的基本思路、设计的步骤及主要代码、心得体会、参考文献)。程序运行如下图1所示:图1 计算器运行界面2、开发工具的介绍本课程设计使用的是Visual C+6.0。Visual C+6.0 是Microsoft公司在1998年推出的基于Windows 9X和Windows NT的优秀集成开发环境。该环境为用户提供了良好的可视化编程环境,程序员可以里利用该开发环境轻松地访问C+源代码编辑器,资源编辑器和使用内部调试器,并且可以创建项目文件。Visual C+6.0不仅包括编译器,而且它还包括许多有用组件,通过这些组件的协同工作,可以在Visual C+6.0集成环境中轻松地完成创建源文件,编辑资源,以及对程序的编译,连接和调试等各项工作。VC+6.0是Windows 95/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,在安装包的提示下进行,对初学者可采用“典型安装”方式。在安装好VC 6.0系统后,有时根据需要添加或删除某些部件,可插入CD盘重新执行setup.exe安装程序,安装程序会检测当前系统安装VC6的足件,用户单击“添加删除”按钮后,在“安装维护”对话框中选定要添加的部件或撤消选定要删除的部件。与一般的应用软件一样,有以下两种启动方式:(1)通过“开始”按钮,选择“程序”菜单,然后打开“Microsoft Visual studio 6.0中文版”子菜单中的“Microsoft Visual C+ 6.0 中文版”程序。(2)用户也可以使用命令行启动VC。单击“开始”按钮后选择“运行”命令,在“运行”对话框中输入c:Program FilesMicrosoft Visual StudioVC98VC6.exe(按默认盘符和路径安装)即可。3、设计内容3.1 功能说明它的设计按软件工程的方法进行,系统具有良好的界面;必要的交互信息;简约美观的效果。使用人员能快捷简单地进行操作。即可单机按钮进行操作,也可直接通过键盘直接输入。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。功能:(1)包含的功能有:加、减、乘、除运算,开方,平方等功能。(2)计算器上数字09为一个控件数组,加、减、乘、除等为一个控件组。(3)给对话框添加菜单。(4)制定高级按钮控件,使按钮改变默认的颜色。(5)制定高级编辑控件,该编辑控件可以指定文本文字的字体和颜色。(6)输入的原始数据、运算中间数据和结果都显示在窗口顶部的同一个标签中。(7)计算功能基本上是用系统内部函数。(8)程序可以能自动判断输入数据的正确性,保证不出现多于一个小数点、以0开头等不正常现象。(10)“CE”按钮可以清除所有已输入的数据从头计算功能模块的实现:(1)首先,添加高级按钮控件类,在这个类中实现高级的按钮控件。在此类中对于所有的对于按钮的绘制工作都是在DrawItem函数中完成的,实现按钮对鼠标不同的位置和动作改变不同的颜色,并且按钮的客户区域变成一个椭圆。(2)其次,添加一个高级编辑控件类,在此类的基础上实现高级编辑控件。在OnDisplay函数中设置编辑框的显示文本,再调用OnDraw函数将其显示出来,并用指定的画刷填充客户区,并且用指定的颜色绘制显示文本。(3)最后,实现主对话框界面功能,主要是加载菜单资源和对话框扩展功能的实现。在CCalculatorDlg:OnCreate函数中设定对话框的初始大小与位置,可以在这个对话框中进行窗口风格修改,位置设置等操作,然后添加菜单项ID_EXTEND的响应函数OnExtend。3.2 流程图:开始输入第一个数输入第二个数+、-、*、/等x2、log、tan、cos、sin、等显示结果按“CE”清零结束4、系统的实现4.1 文件创建利用MFC AppWinzard生成计算器应用程序框架具体步骤如下:(1)执行VC程序,选择File|New命令,弹出New对话框.单击Projects标签,转到Projects选项卡,选择MFC AppWizard(exe)选项,然后在Project name文本框中输入ZZ 。Lacation文本框是指项目的本地路径。如图所示。(2)单击OK按钮,弹出MFC AppWinzard_Step1对话框。选中基本对话框,如图所示。(3)单击Next按钮,弹出MFC AppWinzard_Step2 of4对话框,如图所示。(4)单击Next按钮,弹出MFC AppWinzard_Step3 of4对话框,如图所示。(5)单击Next按钮,弹出MFC AppWinzard_Step4 of4对话框,如图所示。单击Finish按钮,创建框架。4.2 界面设计(1)编辑对话框及控件资源 利用Visual C+提供的资源编辑器对对话框资源进行编辑。删除对话框中默认的OK和Cancel按钮。添加一个Edit控件,其控件ID为IDC_EDIT1。接下来在对话框上的合适的位置上按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时也弹出Push Button属性对话框,如图所示,在该对话框中输入控件的ID值和标题属性。并通过复制添加若干按钮控件,其ID如表4-1所示。表1按钮控件资源清单:按钮名称按钮ID用途0B0按键01B1按键12B2按键23B3按键34B4按键45B5按键56B6按键67B7按键78B8按键89B9按键9.Bd小数点=Brun求值+Badd加号-Bsub减号*Bmult乘号/Bdiv除号CEce清屏Sqrtsqrt开方sinsin正弦coscos余弦tantan正切x2pf平方loglog对数所有按键都添加好后的效果如图2所示。图 2(2)连接按钮与变量除了建立上面所示的控件外,还要对每个按钮控件定义一个对象与之相关联,并为每个按钮控件建立一个成员函数来响应其BN_CLICKED消息。如图3所示:图3为按钮控件添加消息响应(3)关联控件与对象在CAboutDlg类的声明中,已经为编辑框、静态框及每一个按钮声明了相应类型的对象与之对应。但这些控件与对象的关联工作是在DoDataExchange函数中完成的。图4关联控件与对象(4)添加背景图为对话框添加背景图,以增加界面的美观性。首先为工程添加一幅位图资源,以作为对话框的背景。然后加入一个Static控件,将其Type属性设为Bitmap,并为Image属性选择位图资源,如图5所示。图5添加位图参数设置后对话框的外观如图6所示。图6运行结果图4.3 数值计算功能的实现具体功能的实现首先添加成员变量。该计算器中大部分的运算都是二元运算,即需要两个操作数和一个二元运算操作符。所以必须声明两个浮点数,分别用来表示初始操作数和结果操作数,同时,必须声明两个字符串类型的变量,分别用来显示初始操作数。还需要一个整形变量来记录当前运算符,以及一个整形变量来记录当前小数点按钮是否被单击过。定义如下:public:CZZDlg(CWnd* pParent = NULL);/ standard constructordouble m_input; /保存输入的数字bool m_done,opt; /布尔类型成员变量,判断一次计算结束,和操作符点击的凭据void Numin(double put); /成员函数,处理输入的数据double num_1,num_2; /两个操作数void operate();/输入运算符后要调用的函数int yun;/运算判断bool dian;/判断小数点是否被点击int n;/显示小数部分的输入位数double m;void OnMnuCut();void OnMnuCopy();void OnMnuPaste();void OnContextMenu(CWnd* pWnd, CPoint point);当小数点键被单击时,首先判断小数点键是否已经被单击过,以及当前初始操作数字符串是否为空。如果小数点键没有被单击过,而且当前初始操作数字符串不为空,则将小数点追加到初始操作数末尾,并且修改小数点标识dian为TRUE。实现代码如下:小数点的定义如下:void CZZDlg:OnBd() / .dian=true;n=1;程序判断代码实现如下:void CZZDlg:Numin(double put) if(m_done=true|opt=true) /如果一次计算结束或运算符已经选择 if(dian=false)/如果小数点还没有被按下 m_Result=m_input=0.0; UpdateData(false);m_input=m_input*10+put;m_Result=m_input;UpdateData(false);opt=false;m_done=false; else if(dian=true)/如果小数点已经被按下/ m_Result=m_input=0.0; UpdateData(false);int i; for(i=0;in;i+) put=put/10; m=put;m_input=m_input+m;m_Result=m_input;UpdateData(false);opt=false;m_done=false; else if(dian=false)/如果小数点还没有被按下 m_input=m_input*10+put;m_Result=m_input;UpdateData(false);opt=false;m_done=false; else if(dian=true)/如果小数点已经被按下/ int i; for(i=0;in;i+) put=put/10; m=put;m_input=m_input+m;m_Result=m_input;UpdateData(false);opt=false;m_done=false; n+;当数字键09被单击时,则将当前所按键加到初始操作数末尾,并将初始操作数显示出来。以数字键盘被单击为例,实现代码如下:15void CZZDlg:OnB0() / 0Numin(0.0);void CZZDlg:OnB1() / 1Numin(1.0);void CZZDlg:OnB2() / 2Numin(2.0);void CZZDlg:OnB3() / 3Numin(3.0);void CZZDlg:OnB4() / 4Numin(4.0);void CZZDlg:OnB5() / 5Numin(5.0);void CZZDlg:OnB6() / 6Numin(6.0);void CZZDlg:OnB7() / 7Numin(7.0);void CZZDlg:OnB8() / 8Numin(8.0);void CZZDlg:OnB9() / 9Numin(9.0);void CZZDlg:operate()num_1=m_Result;opt=true; dian=false;n=0;C+课程设计当清除键CE被单击时,则对所有的成员变量进行初始化。清除小数点标识,将保存初始操作数和结果操作数的字符串清空,将保存初始操作数和结果操作数的浮点数清0,将当前操作符清0。实现代码如下:void CZZDlg:OnBce() / CEm_input=0; m_Result=float(m_input);UpdateData(false);m_done=false;dian=false;opt=false;n=0;当任何一个运算符键被单击时,首先根据当前运算符计算运算结果,再修改记录当前运算符的变量的值。以加号键被按下为例,实现代码如下:加号函数:void CZZDlg:OnBadd() / + operate(); yun=1;void CZZDlg:operate()num_1=m_Result;opt=true; dian=false;n=0;加号运算的实现如下:if(yun=1)/判断执行何种运算 m_Result=num_1+num_2; UpdateData(false);计算机还有简单的函数功能,函数定义如下:void CZZDlg:Onlog() operate();yun=5;void CZZDlg:Onpf() operate();yun=6;void CZZDlg:Onsqrt() operate();yun=7;void CZZDlg:Onsin() operate();yun=8;void CZZDlg:Ontan() operate();yun=9;void CZZDlg:Oncos() operate();yun=10;函数运算实现如下:else if(yun=6)/平方 m_Result=num_1*num_1; UpdateData(false);else if(yun=7)/根号if(num_1=0)m_Result=0;UpdateData(false); m_Result=sqrt(num_1); UpdateData(false);else if(yun=8)/sin m_Result=sin(num_1*PI/180); UpdateData(false);else if(yun=9)/tan m_Result=tan(num_1*PI/180); UpdateData(false);else if(yun=10)/cos m_Result=cos(num_1*PI/180); UpdateData(false);34计算器的核心运算函数Run。在Run中,首先将记录当前操作数的字符串中保存的字符串转化为浮点数;其次根据当前操作符的类型,选择适当的运算操作;再将记录结果操作数的浮点变量中的值转化为字符串,并显示在结果编辑框中。Run函数实现代码见附录1。计算器的全部代码实现见附录2。5、程序结果的演示5.1 测试的研究与选择测试过程中要判断测试是否成功,首先要分析程序界面的变化是否正常、输入数据显示是否正常,然后是计算数据的结果是否正确,最后看各个功能键是否能正常使用。5.2 测试环境测试环境如下: 测试系统: Windows win7 *64位测试工具: Visual Studio C+ 6.0 5.3 实例测试结果首先,在运行界面测试简单运算是否能正常运算,输入“34+87=”见结果图5-1所示,观察计算结果是否正确。图5-1“34+78=”的运行结果其次,输入“2*4=”,见结果图5-2所示图5-2“2*4=”的运行结果再输入“9/3=”,见结果图5-3所示图5-3“9/3=”的运行结果最后出入25开根,见结果图5-4所示:图5-3“25开根=”的运行结果测试结构显示,“计算器”运行基本正常,没有发现明显的错误。心得与体会经过两个星期的努力,课程设计基本完成了。在课程设计的实践中,学到很多有用的知识,也积累了不少宝贵的经验。本次设计是以一个计算器的实现为基础,掌握一个基于对话框的应用程序的编程方法以及对话框常用控件的高级编程。在课程设计中我了解到到对话框应用程序的编程模式、对话框添加背景图片。课程设计是需要大量时间去动手练习才能体验到它的内涵的,同时还需要用心地投入,时间和情感花下去之后,的确感受到有所收获,增加了对编程的兴趣。通过这次课程设计,掌握了对话框的相关操作,也体会到书写代码一定要仔细,有时候一小点拼写错误会浪费很多调试程序的时间,再有一点就是要好好学习英语,对编程有很大帮助。经过设计的各个环节,从中学到了很多,锻炼了自己系统的设计的能力,从系统的需求到系统的功能,到系统的测试,到系统的发布,可以掌握到一个完全的过程,这样对我们以后在工作中或学习中得到很好的锻炼,为用VC+编辑软件奠定基础。这次课程设计让我学到了很多,不仅巩固了MFC程序设计知识,而且也培养了我的动手能力,令我的创造性思维得到拓展。期待今后有更多类似的锻炼机会。当然,本课程设计所采取的解决问题的方法并不是非常完善的,在今后的学习、工作中,我将继续认真学习,以求能做出更完善的程序。参考文献1 徐金梧TURBO C实用大全北京机械工业出版社1996. 52 江汉秀C语言实用程序荟萃西安西安电子科技大学出版社19933 谭浩强C语言程序设计北京清华大学出版社1999.124 杨开城C语言教程实验与练习北京人民邮电出版社2002.85 揣锦华.面向对象程序设计与VC+实践西安电子科技大学出版社.20056 张建宏、汤练兵、马德骏计算机程序设计基础-C语言程序设计科学出版社20067 陈清华Visual C+课程设计案例精选与编程指导东南大学出版社2004附录1:RUN函数程序void CZZDlg:OnBrun() / TODO: Add your control notification handler code here/=num_2=m_Result;if(yun=1)/加 m_Result=num_1+num_2; UpdateData(false);else if(yun=2)/减 m_Result=num_1-num_2; UpdateData(false);else if(yun=3)/乘 m_Result=num_1*num_2; UpdateData(false);else if(yun=4)/除 m_Result=num_1/num_2; UpdateData(false);else if(yun=5)/logif(num_1=0)m_Result=0;UpdateData(false); m_Result=log10(num_1); UpdateData(false);else if(yun=6)/平方 m_Result=num_1*num_1; UpdateData(false);else if(yun=7)/根号if(num_1 1000#pragma once#endif / _MSC_VER 1000/ CZZDlg dialogclass CZZDlg : public CDialog/ Constructionpublic:CZZDlg(CWnd* pParent = NULL);/ standard constructordouble m_input; /保存输入的数字bool m_done,opt; /布尔类型成员变量,判断一次计算结束,和操作符点击的凭据void Numin(double put); /成员函数,处理输入的数据double num_1,num_2; /两个操作数 void operate();/输入运算符后要调用的函数int yun;bool dian;/判断小数点是否被点击int n;/显示小数部分的输入位数double m;void OnMnuCut(); void OnMnuCopy(); void OnMnuPaste();void OnContextMenu(CWnd* pWnd, CPoint point); / Dialog Data/AFX_DATA(CZZDlg)enum IDD = IDD_ZZ_DIALOG ;doublem_Result;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CZZDlg)protected:virtual void DoDataExchange(CDataExchange* pDX);/ DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:HICON m_hIcon;/ Generated message map functions/AFX_MSG(CZZDlg)virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void OnB0();afx_msg void OnB1();afx_msg void OnB2();afx_msg void OnB3();afx_msg void OnB4();afx_msg void OnB5();afx_msg void OnB6();afx_msg void OnB7();afx_msg void OnB8();afx_msg void OnB9();afx_msg void OnBadd();afx_msg void OnBce();afx_msg void OnBd();afx_msg void OnBdiv();afx_msg void OnBmult();afx_msg void OnBrun();afx_msg void OnBsub();afx_msg void OnChangeEdit1();afx_msg void Onpf();afx_msg void Onsin();afx_msg void Onsqrt();afx_msg void Ontan();afx_msg void Oncos();afx_msg void Onlog();/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_ZZDLG_H_70D9D5A9_C97C_488F_8F36_08F210B07A01_INCLUDED_)/ ZZDlg.cpp : implementation file/#include stdafx.h#include ZZ.h#include ZZDlg.h#include string.h#include #include malloc.h#include #ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILE#define PI 3.1415926535897932384626433static char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic: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/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CZZDlg dialogCZZDlg:CZZDlg(CWnd* pParent /*=NULL*/): CDialog(CZZDlg:IDD, pParent)/AFX_DATA_INIT(CZZDlg)m_Result = 0.0;/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CZZDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CZZDlg)DDX_Text(pDX, IDC_EDIT1, m_Result);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CZZDlg, CDialog)/AFX_MSG_MAP(CZZDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_B0, OnB0)ON_BN_CLICKED(IDC_B1, OnB1)ON_BN_CLICKED(IDC_B2, OnB2)ON_BN_CLICKED(IDC_B3, OnB3)ON_BN_CLICKED(IDC_B4, OnB4)ON_BN_CLICKED(IDC_B5, OnB5)ON_BN_CLICKED(IDC_B6, OnB6)ON_BN_CLICKED(IDC_B7, OnB7)ON_BN_CLICKED(IDC_B8, OnB8)ON_BN_CLICKED(IDC_B9, OnB9)ON_BN_CLICKED(IDC_Badd, OnBadd)ON_BN_CLICKED(IDC_Bce, OnBce)ON_BN_CLICKED(IDC_Bd, OnBd)ON_BN_CLICKED(IDC_Bdiv, OnBdiv)ON_BN_CLICKED(IDC_Bmult, OnBmult)ON_BN_CLICKED(IDC_Brun, OnBrun)ON_BN_CLICKED(IDC_Bsub, OnBsub)ON_EN_CHANGE(IDC_EDIT1, OnChangeEdit1)ON_BN_CLICKED(IDC_pf, Onpf)ON_BN_CLICKED(IDC_sin, Onsin)ON_BN_CLICKED(IDC_sqrt, Onsqrt)ON_BN_CLICKED(IDC_tan, Ontan)ON_BN_CLICKED(IDC_cos, Oncos)ON_WM_RBUTTONDOWN()ON_BN_CLICKED(IDC_log, Onlog)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CZZDlg message handlersBOOL CZZDlg:OnInitDialog()CDialog:OnInitDialog();m_input=0.0;opt=false,m_done=false;dian=false;/ Add About. menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization herereturn TRUE; / return TRUE unless you set the focus to a controlvoid CZZDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog: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 CZZDlg:OnPaint() if (IsIconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CX

温馨提示

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

评论

0/150

提交评论