《基于vc++mfc的科学计算器程序实验报告_2.docx》由会员分享,可在线阅读,更多相关《基于vc++mfc的科学计算器程序实验报告_2.docx(16页珍藏版)》请在第一文库网上搜索。
1、博/7寸火挈实验报告课程名称:WindOWS软件开发实习实验项目:科学计算器专业班级:软件1006班姓名:蔡钟绪学号:101201621实验室号:410实验组号:实验时间:批阅时间:指导教师:马广焜成绩:沈阳工业大学实验报告(适用计算机程序设计类)专业班级:软件1006学号:101201621姓名:娘钟绪实验名称:1.实验目的:在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对我们对编程语句及语义分析和理解,并实现对命令语句的灵活应用。这次实验目的就是实现简单计算器的功能。要程序能实现:力口、减、乘、除、开方、倒数等运算功能;还要实现数据的输入、输出、计算、显示及程序退出等功能,另
2、外还可以实现多种科学计算的功能。实验内容:设计一个简单的计算器。要求能实现整数、小数算数运算。程序带清零按钮。3 .实验方案(程序设计说明)见附件4 .实验步骤或程序(经调试后正确的源程序)(填写主要步骤与程序代码等。见附件A)5 .出现的问题及解决方法(-)实验内容:用VC+的知识编写程序来实现计算功能。(二)实验目的:在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对我们对编程语句及语义分析和理解,并实现对命令语句的灵活应用。这次实验目的就是实现简单计算器的功能。要程序能实现:力口、减、乘、除、开方、倒数等运算功能;还要实现数据的输入、输出、计算、显示及程序退出等功能,另外还可
3、以实现多种科学计算的功能。(三)实验步骤:1、首先利用MFCAppWinzard生成计算器应用程序框架具体步骤如下:(1)执行VC程序,选择FiIeNew命令,弹出NeW对话框.单击Projects标签,转到Projects选项卡,选择MFCAPPWiZard(exe)选项,然后在Projectname文本框中输入CyyJSQ。1aCatiOn文本框是指项目的本地路径。(2)单击OK按钮,弹出MFCAPPWinZarC1SteP1(应用程序向导一步骤1)对话框。选中单选按钮,如图所示。(3)单击NeXt按钮,弹出MFCAPPWinzard_Step2of4对话框,如图所示。(4)单击Next按
4、钮,弹出MFCAppWinzard_Step3of4对话框,如图所示。(5)单击NeXt按钮,弹出MFCAPPWinZard_Step4of4对话框,如图所示。单击FiniSh按钮,创建框架。工程名称网:IcyyJSQ-文件工程I工作区I其它文档mD1vfbMicrosoftVisa1Stdio&AT1COMAPPWiZardHC1usterResourceTypeWizardT1CustomAppWizardDatabaseProjectDevStudioAdd-inWizardExtendedStoredProcWizardG创建新的工作空间(B)添加到当前工作空间四从属于但):IcyyJ
5、SQ-01SAP1ExtensionWizardMakefi1e统MFCActiveXControIWizard厨MFCAppWizard(d11)MFCAPPWiVardexeHTtUtiIityProjectWin32App1ication二IWin32Conso1eApp1icationWin32Dynamic-1ink1ibrary至JWin32Static1ibrary2、其次编辑资源(D编辑对话框及控件资源首先利用ViSUaIC+提供的资源编辑器对对话框资源进行编辑。删除对话框中默认的OK和Cance1按钮。添加两个Edit控件,其控件ID为IDC_EDIT1和IDC.EDIT2o
6、添加若干按钮控件,其ID如表所示。按钮控件资源清单按钮名称按钮ID用途0IDC_ZERO按键01IDC.1按键12IDC_2按键23IDC_3按键34IDC_4按键45IDC_5按键56IDC_6按键67IDC_7按键78IDC_8按键89IDC_9按键9IDC_DOT小数点=IDC_Equa1等于+IDC_ADD加号-IDC_SUB减号*IDC_MU1乘号/IDC_DIV除号CEIDC_CE清屏SqrtIDC_Sqrt开方1/xIDC_Daoshu倒数-/+IDC_ZHengfu正负MCIDC_Mc清除内存记录数据MRIDC_Mr内存中保存的数据MSIDC_Ms数据存入存储器中,将原有的数据
7、冲走M+IDC_Madd当前记录数据与内存数据相加%IDC_Per百分号CIDC_C清零(清除全部)CEIDC_CE清除上一步数据BackspaceIDC_Backspace从后向前删除(2)由以上按钮控件组成简单的计算机如下图所示:(3)编辑菜单资源1、在ViSUaIC+中左侧的工具栏中,选中CAboUtD1G选项一右键一添加一成员变量m_f1ag、temp、tempi。步骤如图所示:点击“确定”按钮则会有如下图所示:T藤IcyyJSQc1assesH*CAboutD1g,CAboutDIgQ9DoDataEchange(CIQddd9. mf1agtemp9tempiS七CCyyJSQDI
8、gB日G1oba1s2、同样再用上面的方法-*选中一CCyyJSQDIgf右键一添加成员变量m_momerym_s、m_h1con等。如下图所示:(四)实验代码:响应按钮0voidCCyyJSQDIg:OnZero()(UpdateData(true);m_s=m_s+M0M;UPda1eData(fa1se);响应按钮1voidCCyyJSQD1g:On1()(UpdateData(Irue);m.s=m.s+,;UPdateData(fake);响应按钮2voidCCyyJSQDIg:On2()(UpdateData(true);m.s=m-s+,*2,;UPdateData(fa1se)
9、;响应按钮3voidCCyyJSQDIg:On3()(UPdateData(true);m_s=m_s+“3”;UpdateData(fa1se);响应按钮4voidCCyyJSQDIg:On4()(UpdateData(true);m_s=m_s+n4M;UPda1eData(fa1se);响应按钮5,voidCCyyJSQD1g:On5()(UPdatCData(true);m_s=m_s+5;UpdatCDauI(fa1se);UPdateDag(true);m_s=m_6+6”;UpdateDa皿fa1se);)响应按钮trVoidCCyyJSQDIg:On7()(UPdateDa匕(
10、true);In_s=m_6+”7”;UpdateDaMfaIse);)响应按钮*8*voidCCyyJSQDIg:On8()(UPdateDaUI(true);m_s=m_s+M8M;UPdateData(fa1se);响应按钮9,voidCCyyJSQDIg:On9()(UpdateData(tre);m-s=m-s+,9,;UPdateData(fa1se);响应按钮加+voidCCyyJSQD1g:OnAdd()(m.f1ag=1;UPdateData(true);temp=atof(m_s);ms=,n;UpdateDataCfaIse);响应退格按钮fBackspace,VOidC
11、CyyJSQDIg:OnBackspace()intI;UPdateData(true);1=m_s.Gct1cngth();m_s.De1ete(1-1,1);UPdateData(fa1se);)UpdateData(true);temp=atof(m_s);m-s.Format(%I,temp*atof(m-s)100);UPdateData(fa1se);响应按钮清零CvoidCCyyJSQDIg:OnC()m_s=Mh;temp=0;m_f1ag=0;ag=0;UPdateData(fa1se);响应等号按钮=voidCCyyJSQD1g:OIIEqUa1Oif(m_f1ag=1)(
12、temp=temp+atof(m_s);m-s.Format(%I,temp);Check();UPdateData(fa1se);if(m_f1ag=2)(temp=temp-atof(m_s);m-s.Format(%I,temp);Check();UPdateData(fa1se);UPdatCData(fa1se);if(m_f1ag=3)(temp=temp*atof(m_s);m-s.Format(%I,temp);Check();UPdateData(fa1se);if(m_f1ag=4)(tcmp=tcmpatof(m-s);m-s.Format(%1,temp);Check(
13、);UpdateData(Fa1se);响应按钮清零CEvoidCCyyJSQDIg:OnCe()m-s=;UPdateData(fa1se);响应按钮乘voidCCyyJSQDIg:OnMu1()m_f1ag=3;UpdateData(true);temp=atof(m_s);m_s=M,;UpdateData(fa1se);响应按钮除voidCCyyJSQDIg:OnDiv()m_f1ag=4;UpdateData(true);temp=atof(m_s);m_s=M,;UPdateData(fa1se);响应按钮倒数1xvoidCCyyJSQD1g:OnDaoshu()UPdaIeData(true);temp=atof(m_s);temp=1tcmp;m-s.Format(%,temp);UpdateData(fa1se);响应按钮小数点.voidCCyyJSQDIg:OnDot()(UPdateData(true);if(m.s.Find(.,0)=-1)UPdatCData(fa1se);响应按钮减号一voidCCyyJSQDIg:tOnSub()m_f1ag=2;UpdateData(true);temp=atof(m_s);m_s=M,;UpdateData(FaIse);响应