ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:1.28MB ,
资源ID:24784982      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24784982.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于vc++mfc的科学计算器程序实验报告.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于vc++mfc的科学计算器程序实验报告.docx

1、基于vc+mfc的科学计算器程序实验报告.实验报告课程名称: windows软件开发实习实验项目: 科学计算器Word资料.工业大学实验报告(适用计算机程序设计类)专业班级: 软件1006 学号: 101201622 姓名:鑫可实验名称:1.实验目的:本程序设计实践是采用C+语言,在VC平台下设计。本课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。序设计实践主要是培养学生利用系统综合C+语言进行程序设计的能力。1.进一步巩固和复习C+程序设计的基础知识。2.培养学生结构化程序、模块

2、化程序设计的方法和能力。3.了解软件的编制过程及各环节的具体容。4.提高学生程序调试技巧、软件设计能力和代码规化等素质。5.提高学生分析问题、解决问题以及实际运用能力。2.实验容:设计一个简单的计算器。要求能实现整数、小数算数运算。程序带清零按钮。3.实验方案(程序设计说明)见附件4.实验步骤或程序(经调试后正确的源程序)(填写主要步骤与程序代码等。见附件A)5出现的问题及解决方法Word资料.附件A 工业大学实验报告(适用计算机程序设计类)专业班级: 软件1006 学号:101201622 姓名: 鑫可实验步骤或程序:一、关于VisualC+:VisualC+6.0由Microsoft开发,

3、它不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。VisualC+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。这些组件通过过一个名为 DeveloperStudio的组件集成为和谐的开发环境。Microsoft的主力软件产品。VisualC+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出VisualC+1.0后,随着其新版本的不断问世,VisualC+已成为专业程序员进行软件开发的首选工具。虽

4、然微软公司推出了VisualC+.NET(VisualC+7.0),但它的应用的很大的局限性,只适用于Windows2000,WindowsXP和WindowsNT4.0。所以实际中,更多的是以VisualC+6.0为6平台。VisualC+6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结(link)著称。这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。二、设计要点1、基本

5、要求:设计的系统界面要美观大方,操作合理,有必要的提示。2、创新要求:在基本要求达到后,进行创新设计。Word资料.3、对系统进行功能模块分析、控制流程分析正确。4、系统设计要实用,编程简练,可用,功能全面,并有一定的容错能力。5、说明书、流程图要清楚6、要求程序设计合理,用户界面良好,如采用菜单工作方式。三、实验步骤:1、首先利用MFCAppWinzard生成计算器应用程序框架具体步骤如下:执行VC程序,选择File|New命令,弹出New对话框.单击Projects标签,转到Projects选项卡,选择MFCAppWizard(exe)选项,然后在Projectname文本框中输入cyyJ

6、SQ。Lacation文本框是指项目的本地路径。2、界面设计在界面中添加按钮,编辑框等相应控件,并合理摆放,使用户能更加方便的使用。具体设计如下图所示:Word资料.3、绑定控件通过如下方式绑定控件。具体绑定如下表所示:按钮名称按钮控件资源清单按钮ID用途012345IDC_ZEROIDC_1IDC_2IDC_3IDC_4IDC_5按键0按键1按键2按键3按键4按键5Word资料6789.=+-*/CESqrt1/x-/+MCMRMS.IDC_6IDC_7IDC_8IDC_9IDC_DOTIDC_EqualIDC_ADDIDC_SUBIDC_MULIDC_DIVIDC_CEIDC_SqrtID

7、C_DaoshuIDC_ZHengfuIDC_McIDC_MrIDC_Ms按键6按键7按键8按键9小数点等于加号减号乘号除号清屏开方倒数正负清除存记录数据存中保存的数据数据存入存储器中,将原有的数据冲走M+ IDC_Madd 当前记录数据与存数据相加%CCEIDC_PerIDC_CIDC_CE百分号清零(清除全部)清除上一步数据Word资料.Backspace IDC_Backspace 从后向前删除4、逐步实现代码按钮1-9的实现文本编辑框的类型为string型,所以若按下数字1按钮时只需在数组尾部添加“1”即可其他代码如此类推,具体代码如下:voidCMyDlg:OnButton0()/数

8、字0this-check();CStringtmp=num_buffer;/当为小数点后或其前面有不为零的数时允许输入零if(tmp.ReverseFind(.)!=-1|tmp.FindOneOf(123456789)!=-1)num_buffer+=0;elsenum_buffer=0;GetDlgItem(IDC_EDIT_SHOW)-SetWindowText(num_buffer);voidCMyDlg:OnButton1()/数字1this-check();num_buffer+=1;GetDlgItem(IDC_EDIT_SHOW)-SetWindowText(num_buffe

9、r);voidCMyDlg:OnButton2()/数字2this-check();num_buffer+=2;GetDlgItem(IDC_EDIT_SHOW)-SetWindowText(num_buffer);voidCMyDlg:OnButton3()/数字3this-check();num_buffer+=3;Word资料.GetDlgItem(IDC_EDIT_SHOW)-SetWindowText(num_buffer);voidCMyDlg:OnButton4()/数字4this-check();num_buffer+=4;GetDlgItem(IDC_EDIT_SHOW)-S

10、etWindowText(num_buffer);voidCMyDlg:OnButton5()/数字5this-check();num_buffer+=5;GetDlgItem(IDC_EDIT_SHOW)-SetWindowText(num_buffer);voidCMyDlg:OnButton6()/数字6this-check();num_buffer+=6;GetDlgItem(IDC_EDIT_SHOW)-SetWindowText(num_buffer);voidCMyDlg:OnButton7()/数字7this-check();num_buffer+=7;GetDlgItem(I

11、DC_EDIT_SHOW)-SetWindowText(num_buffer);voidCMyDlg:OnButton8()/数字8this-check();num_buffer+=8;GetDlgItem(IDC_EDIT_SHOW)-SetWindowText(num_buffer);voidCMyDlg:OnButton9()/数字9this-check();num_buffer+=9;GetDlgItem(IDC_EDIT_SHOW)-SetWindowText(num_buffer);Word资料.voidCMyDlg:OnButtonDot()/小数点if(num_buffer.I

12、sEmpty()num_buffer=0.;elseif(num_buffer.ReverseFind(.)=-1)num_buffer+=.;GetDlgItem(IDC_EDIT_SHOW)-SetWindowText(num_buffer);/求相反数voidCMyDlg:OnButtonNI()/正负处理m_num=-atof(num_buffer);/转化为字符串num_buffer.Format(_T(%lf),m_num);GetDlgItem(IDC_EDIT_SHOW)-SetWindowText(num_buffer);运行结果如下:Word资料.加减乘除代码的实现:通过控

13、件的绑定以及传值函数,以指针调用的方式进行赋值,并将结果保存在num_buffer中,与下一次输入的num2进行新的一元运算并给result赋值,通过Updatedata()函数反应到文本编辑框中,具体代码如下:/加voidCMyDlg:OnButtonAdd()this-num1=atof(num_buffer);this-num_buffer.Empty();this-operation_type=ADD;/减voidCMyDlg:OnButtonSub()this-num1=atof(num_buffer);this-num_buffer.Empty();this-operation_t

14、ype=SUB;/乘voidCMyDlg:OnButtonMul()this-num1=atof(num_buffer);this-num_buffer.Empty();this-operation_type=MUL;/除voidCMyDlg:OnButtonDiv()this-num1=atof(num_buffer);this-num_buffer.Empty();this-operation_type=DIV;voidCMyDlg:OnButtonRes()constdoubleEPSINON=0.00001;boolerror=false;this-num2=atof(num_buff

15、er);this-num_buffer.Empty();switch(this-operation_type)caseADD:this-m_num=num1+num2;break;caseSUB:Word资料.this-m_num=num1-num2;break;caseMUL:this-m_num=num1*num2;break;caseDIV:if(num2-EPSINON)&(num2m_num=num1/num2;break;default:this-m_num=this-num2;break;结果如下图所示科学性运算按钮的处理:只需根据数值分析等为按钮进行算法的合理设计,正确赋值即可

16、,具体代码如下:/自然底数evoidCScience:OnButtonEConst()this-check();num_buffer.Format(_T(%lf),M_E);fresh();Word资料./圆周率voidCScience:OnButtonPai()this-check();num_buffer.Format(_T(%lf),M_PI);fresh();voidCScience:OnButtonNi()/正负处理m_result=-atof(num_buffer);/转化为字符串num_buffer.Format(_T(%lf),m_result);fresh();voidCSc

17、ience:OnButtonMutInv()this-unary_operation=true;constdoubleEPSINON=0.00001;this-m_result=atof(num_buffer);if(this-m_result=-EPSINON)&(this-m_resultSetWindowText(0的倒数没有定义n);elsethis-m_result=1.0/m_result;num_buffer.Format(_T(%lf),m_result);fresh();this-unary_operation=false;voidCScience:OnButtonPerce

18、nt()this-unary_operation=true;CStringtmp=num_buffer;this-m_result=atof(num_buffer);tmp.Format(_T(%lf),this-m_result*100);tmp+=%;Word资料.fresh(tmp);this-unary_operation=false;voidCScience:OnButtonSqr()this-unary_operation=true;this-m_result=atof(num_buffer);this-m_result=sqrt(m_result);num_buffer.Form

19、at(_T(%lf),this-m_result);fresh();this-unary_operation=false;voidCScience:OnButtonSin()CStringtmp;this-unary_operation=true;this-m_result=atof(num_buffer);num_buffer.Format(_T(%lf),this-m_result);tmp=Sin(+num_buffer+)=;this-m_result=sin(m_result);num_buffer.Format(_T(%lf),this-m_result);tmp+=num_buf

20、fer;fresh(tmp);this-unary_operation=false;voidCScience:OnButtonCos()CStringtmp;this-unary_operation=true;this-m_result=atof(num_buffer);num_buffer.Format(_T(%lf),this-m_result);tmp=Cos(+num_buffer+)=;this-m_result=cos(m_result);num_buffer.Format(_T(%lf),this-m_result);tmp+=num_buffer;fresh(tmp);this

21、-unary_operation=false;voidCScience:OnButtonTan()Word资料.CStringtmp;constdoubleEPSINON=0.00001;this-unary_operation=true;this-m_result=atof(num_buffer);num_buffer.Format(_T(%lf),this-m_result);tmp=tan(+num_buffer+)=;if(cos(m_result)=-EPSINON)&(cos(m_result)m_result=tan(m_result);num_buffer.Format(_T(

22、%lf),this-m_result);tmp+=num_buffer;fresh(tmp);this-unary_operation=false;voidCScience:OnButtonCot()CStringtmp;constdoubleEPSINON=0.00001;this-unary_operation=true;this-m_result=atof(num_buffer);num_buffer.Format(_T(%lf),this-m_result);tmp=cot(+num_buffer+)=;if(sin(m_result)=-EPSINON)&(sin(m_result)

23、m_result=cos(m_result)/sin(m_result);num_buffer.Format(_T(%lf),this-m_result);tmp+=num_buffer;fresh(tmp);Word资料.this-unary_operation=false;voidCScience:OnButtonLn()CStringtmp;constdoubleEPSINON=0.00001;this-unary_operation=true;this-m_result=atof(num_buffer);num_buffer.Format(_T(%lf),this-m_result);tmp=ln(+num_buffer+)=;if(m_resultm_result=log(m_result);num_buffer.Format(_T(%lf),this-m_result);tmp+=num_buffer;fresh(tmp);this-unary_operation=false;运行结果如下:进制间的转换:Word资料.1.按钮A-F的实现与,进制运算时,按钮条件的设置。在进行16进制运算时,需定义A-F按键,而在10进制时,A-F按键设置为不可使用,以及8进制时8、9按钮禁止使用。具体代码如下:voidCScience:OnButtonA()/数字A(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1