
基于vc++mfc的科学计算器程序实验报告5400字.docx
40页基于vc++mfc的科学计算器程序实验报告5400字 课程名称:实验项目:专业班级:姓 名:实验室号:实验时间:指导教师:实验报告? windows软件开发实习 科学计算器 软件1006班 蔡钟绪 学 号: 101201621 410 实验组号: 批阅时间: 马广焜 成 绩:沈阳工业大学实验报告(适用计算机程序设计类)专业班级: 软件1006 学号: 101201621 姓名: 蔡钟绪实验名称:(一)实验内容:用VC++的知识编写程序来实现计算功能二)实验目的:在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对我们对编程语句及语义分析和理解,并实现对命令语句的灵活应用这次实验目的就是实现简单计算器的功能要程序能实现:加、减、乘、除、开方、倒数等运算功能;还要实现数据的输入、输出、计算、显示及程序退出等功能,另外还可以实现多种科学计算的功能三)实验步骤:1、首先利用MFC AppWinzard生成计算器应用程序框架具体步骤如下:(1)执行VC程序,选择File|New命令,弹出New对话框.单击Projects标签,转到Projects选项卡,选择MFC AppWizard(exe)选项,然后在Project name文本框中输入cyyJSQ 。
Lacation文本框是指项目的本地路径2)单击OK按钮,弹出MFC AppWinzard_Step1(应用程序向导-步骤1)对话框选中单选按钮,如图所示3)单击Next按钮,弹出MFC AppWinzard_Step2 of4对话框,如图所示4)单击Next按钮,弹出MFC AppWinzard_Step3 of4对话框,如图所示5)单击Next按钮,弹出MFC AppWinzard_Step4 of4对话框,如图所示单击Finish按钮,创建框架2、其次编辑资源(1)编辑对话框及控件资源首先利用Visual C++提供的资源编辑器对对话框资源进行编辑删除对话框中默认的OK和Cancel按钮添加两个Edit控件,其控件ID为IDC_EDIT1和IDC_EDIT2添加若干按钮控件,其ID如表所示按钮控件资源清单(2)由以上按钮控件组成简单的计算机如下图所示:(3)编辑菜单资源1、在Visual C++中左侧的工具栏中,选中CAboutDLG选项→右键→添加→成员变量m_flag、temp、temp1步骤如图所示:点击“确定”按钮则会有如下图所示:2、同样再用上面的方法→选中→CCyyJSQDlg→右键→添加成员变量m_momery、m_s、m_hlcon等。
如下图所示:(四)实验代码: 响应按钮‘0’void CCyyJSQDlg::OnZero() {UpdateData(true);}响应按钮‘1’void CCyyJSQDlg::On1() {}响应按钮‘2’void CCyyJSQDlg::On2() {UpdateData(true);}响应按钮‘3’void CCyyJSQDlg::On3() {UpdateData(true);}响应按钮‘4’void CCyyJSQDlg::On4() {UpdateData(true);}响应按钮‘5’void CCyyJSQDlg::On5() {UpdateData(true);}响应按钮‘6’void CCyyJSQDlg::On6() m_s=m_s+"5"; UpdateData(false); m_s=m_s+"4"; UpdateData(false); m_s=m_s+"3"; UpdateData(false); m_s=m_s+"2"; UpdateData(false); UpdateData(true); m_s=m_s+"1"; m_s=m_s+"0"; UpdateData(false); UpdateData(false);{UpdateData(true);}响应按钮‘7’void CCyyJSQDlg::On7() {UpdateData(true);}响应按钮‘8’void CCyyJSQDlg::On8() {UpdateData(true);}响应按钮‘9’void CCyyJSQDlg::On9() {UpdateData(true);}响应按钮加‘+’void CCyyJSQDlg::OnAdd() {}响应退格按钮‘Backspace’void CCyyJSQDlg::OnBackspace() {int l;}响应百分号按钮‘%’void CCyyJSQDlg::OnPer() UpdateData(true); l=m_s.GetLength(); m_s.Delete(l-1,1); m_flag=1; UpdateData(true); temp=atof(m_s); m_s=" "; UpdateData(false); m_s=m_s+"9"; UpdateData(false); m_s=m_s+"8"; UpdateData(false); m_s=m_s+"7"; UpdateData(false); m_s=m_s+"6"; UpdateData(false); UpdateData(false);{UpdateData(true);}响应按钮清零‘C’void CCyyJSQDlg::OnC() {m_s=" ";}响应等号按钮‘=’void CCyyJSQDlg::OnEqual() {if(m_flag==1) { temp=temp+atof(m_s); m_s.Format("%lf",temp); Check(); UpdateData(false); } if(m_flag==2) { temp=temp-atof(m_s); m_s.Format("%lf",temp); UpdateData(false); UpdateData(false); } { temp=temp*atof(m_s); m_s.Format("%lf",temp); Check(); UpdateData(false); } if(m_flag==4) { temp=temp/atof(m_s); m_s.Format("%lf",temp); Check(); UpdateData(false); temp=0; m_flag=0; flag=0; UpdateData(false); temp=atof(m_s); m_s.Format("%lf",temp*atof(m_s)/100); UpdateData(false); Check(); if(m_flag==3)}响应按钮清零‘CE’void CCyyJSQDlg::OnCe() {}响应按钮乘‘*’void CCyyJSQDlg::OnMul() {}响应按钮除‘/’void CCyyJSQDlg::OnDiv() {}响应按钮倒数‘1/x’void CCyyJSQDlg::OnDaoshu() {UpdateData(true);}响应按钮小数点‘.’void CCyyJSQDlg::OnDot() {}响应按钮减号‘—’ UpdateData(true); if(m_s.Find(".",0)==-1) { m_s=m_s+"."; } temp=atof(m_s); temp=1/temp; m_s.Format("%f",temp); m_flag=4; UpdateData(true); temp=atof(m_s); m_s=" "; m_flag=3; UpdateData(true); temp=atof(m_s); m_s=" "; m_s=" "; UpdateData(false); } UpdateData(false); UpdateData(false); UpdateData(false); UpdateData(false);void CCyyJSQDlg::OnSub(){m_flag=2;}响应清除内存记录数据void CCyyJSQDlg::OnMc(){}响应当前记录数据与内存数据相加void CCyyJSQDlg::OnMadd(){}响应显示内存中保存的数据void CCyyJSQDlg::OnMr(){}响应将所显示的数据存入存储器中,将原有的数据取走 void CCyyJSQDlg::OnMs(){}响应按钮算术平方根void CCyyJSQDlg::OnSqrt(){double temp; UpdateData(true); temp1=atof(m_s); m_s.Format("%lf",temp1); Check(); m_memory="M"; UpdateData(true); m_s.Format("%lf",temp1); m_memory="M"; UpdateData(true); temp1=temp1+atof(m_s); m_s.Format("%lf",temp1); UpdateData(true); temp1=0; m_memory=" "; UpdateData(false); UpdateData(true); temp=atof(m_s); m_s=" "; UpdateData(false); UpdateData(false); UpdateData(false); UpdateData(false);}响应按钮取相反数void CCyyJSQDlg::OnZHengfu(){}void CCyyJSQDlg::Check(){while(m_s.Right(1)=="0")m_s.Delete(m_s.GetLength()-1,1);} UpdateData(true); temp=-atof(m_s); m_s.Format("%lf",temp); Check(); UpdateData(true); temp=atof(m_s); temp=sqrt(temp); m_s.Format("%lf",temp); Check(); UpdateData(false); UpdateData(false);5.3 测试结果:在运行界面测试简单运算是否能正常运算(1)输入“34+87”观察结果,如图(1):图(1)(2)输入“36”单击“Sqrt”观察结果,见图5.2所示:图(2)“36开平方”结果(3)输入“4”单击“1/x”观察结果,见图(3)所示:图(3)“1/4”的运行结果六、实验心得通过实验这次,更加了解计算器基本使用工程。
同时也清楚的自己在编程方面存在的一些不足,虽然实验完成的质量并不是特别的还,但是自己在这次实验中还是学到了很多的知识第二篇:基于MFC的科学计算器课程设计实验报告 11000字浙江工商大学《C++课程设计》报告课程设计实验报告题 目 学 院 专 业 班 级 课程名称 学 号 学生姓名 指导教师 成 绩二○一三年一月1浙江工商大学《C++课程设计》报告目 录1 概述1.。
