首页 C 语言计算器的实验报告

C 语言计算器的实验报告

举报
开通vip

C 语言计算器的实验报告1. 题目:简单计算器 2. 实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。 3. 实验主要硬件软件环境:Window 7Visual C++ 6.0 4. 实验内容: (1) 体系设计: 程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,能进行简单三角运算,运算结果能正确显示,可以清楚数据等。 (2) 设计思路: 1) 先在Visual C++ 6.0中建立一个MFC工程文件,名为calculator. 2) 在对话框中添加适当的编辑框、按钮、静态...

C  语言计算器的实验报告
1. 题目:简单计算器 2. 实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。 3. 实验主要硬件软件环境:Window 7Visual C++ 6.0 4. 实验内容: (1) 体系设计: 程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,能进行简单三角运算,运算结果能正确显示,可以清楚数据等。 (2) 设计思路: 1) 先在Visual C++ 6.0中建立一个MFC工程文件,名为calculator. 2) 在对话框中添加适当的编辑框、按钮、静态文件、复选框和单选框 3) 设计按钮,并修改其相应的ID与Caption. 4) 选择和设置各控件的单击鼠标事件。 5) 为编辑框添加double类型的关联变量m_edit1. 6) 在calculatorDlg.h中添加math.h头文件,然后添加public成员。 7) 打开calculatorDlg.cpp文件,在构造函数中,进行成员初始化和完善各控件的响应函数代码。 (3) 程序清单: ● 添加的public成员: double tempvalue;  //存储中间变量 double result;      //存储显示结果的值 int sort;          //判断后面是何种运算:1.加法 2.减法 3.乘法 4.除法 int append;        //判断后面是否添加数字 ● 成员初始化: CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/) : CDialog(CCalculatorDlg::IDD, pParent) { //{{AFX_DATA_INIT(CCalculatorDlg) m_edit1 = 0.0; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); tempvalue=0; result=0; sort=0; append=0; } ● 各控件响应函数代码: void CCalculatorDlg::OnButton1() //按钮“1” { // TODO: Add your control notification handler code here if(append==1)result=0; result=result*10+1; m_edit1=result; append=0; UpdateData(FALSE);    } void CCalculatorDlg::OnButton2()  //按钮“2” { // TODO: Add your control notification handler code here if(append==1)result=0; result=result*10+2; m_edit1=result; append=0; UpdateData(FALSE); } void CCalculatorDlg::OnButton3()  //按钮“3” { // TODO: Add your control notification handler code here if(append==1)result=0; result=result*10+3; m_edit1=result; append=0; UpdateData(FALSE); } void CCalculatorDlg::OnButton4()   //按钮“4” { // TODO: Add your control notification handler code here if(append==1)result=0; result=result*10+4; m_edit1=result; append=0; UpdateData(FALSE); } void CCalculatorDlg::OnButton5()   //按钮“5” { // TODO: Add your control notification handler code here if(append==1)result=0; result=result*10+5; m_edit1=result; append=0; UpdateData(FALSE); } void CCalculatorDlg::OnButton6()   //按钮“6” { // TODO: Add your control notification handler code here if(append==1)result=0; result=result*10+6; m_edit1=result; append=0; UpdateData(FALSE); } void CCalculatorDlg::OnButton7()   //按钮“7” { // TODO: Add your control notification handler code here if(append==1)result=0; result=result*10+7; m_edit1=result; append=0; UpdateData(FALSE); } void CCalculatorDlg::OnButton8()   //按钮“8” { // TODO: Add your control notification handler code here if(append==1)result=0; result=result*10+8; m_edit1=result; append=0; UpdateData(FALSE); } void CCalculatorDlg::OnButton9()   //按钮“9” { // TODO: Add your control notification handler code here if(append==1)result=0; result=result*10+9; m_edit1=result; append=0; UpdateData(FALSE); } void CCalculatorDlg::OnBUTTONzero()   //按钮“0” { // TODO: Add your control notification handler code here if(append==1)result=0; result=result*10+0; m_edit1=result; append=0; UpdateData(FALSE); } void CCalculatorDlg::OnBUTTONequal()  //按钮“=” { // TODO: Add your control notification handler code here switch(sort) { case 1:result=result+tempvalue;break; case 2:result=tempvalue-result;break; case 3:result=result*tempvalue;break; case 4:result=tempvalue/result;break; } m_edit1=result; sort=0; append=1; UpdateData(FALSE); } void CCalculatorDlg::OnBUTTONclean() //按钮“C” { // TODO: Add your control notification handler code here tempvalue=0; result=0; m_edit1=0.0; UpdateData(FALSE); } void CCalculatorDlg::OnBUTTONplus()   //按钮“+” { // TODO: Add your control notification handler code here sort=1; tempvalue=result; m_edit1=0; append=1; } void CCalculatorDlg::OnBUTTONminus() //按钮“-” { // TODO: Add your control notification handler code here sort=2; tempvalue=result; m_edit1=0; append=1; } void CCalculatorDlg::OnBUTTONmulti()  //按钮“*” { // TODO: Add your control notification handler code here sort=3; tempvalue=result; m_edit1=0; append=1; } void CCalculatorDlg::OnBUTTONdiv()   //按钮“/” { // TODO: Add your control notification handler code here sort=4; tempvalue=result; m_edit1=0; append=1; } void CCalculatorDlg::OnRadio1()   //按钮“Sin” { // TODO: Add your control notification handler code here m_edit1=sin(result); UpdateData(FALSE); } void CCalculatorDlg::OnRadio2()   //按钮“Cos” { // TODO: Add your control notification handler code here m_edit1=cos(result); UpdateData(FALSE); } void CCalculatorDlg::OnRadio3()   //按钮“Tan” { // TODO: Add your control notification handler code here m_edit1=tan(result); UpdateData(FALSE); } void CCalculatorDlg::OnRadio4()   //按钮“Log10” { // TODO: Add your control notification handler code here m_edit1=log10(result); UpdateData(FALSE); } (4) 程序调试: 简单计算器: 测试与思考: 5. 小结: A. 在做上面那个简单计算器的时候,遇到的问题很少,而且差不多都是些很小的问题,很容易就解决了 B. 刚开始,在老师没讲课之前,不知道如何设置响应事件,经老师讲解后,很快就解决了 C. 在运行的调试的时候,发现计算器的减法与除法的功能出错,原来是减数与被减数、除数与被除数的位置互换了;还有,连续点击“=”时显示结果会不停变动,解决方法是:加“sort=0;”语句;另外,在点击“=”后,再点击数字键时,会发现点击的相应数字会显示在原显示结果的后面,解决方法是:加“append=1;”语句 D. 后来,在做后面的测试与思考时,遇到的问题就很多了。其中最棘手的就是Backspace键和连续四则运算的实现,其次就是M系列按键(MS:保存;MC:清除;MR:读数;M+:数加)的理解和响应代码的编写,再者就是正负号和小数点的处理,其工程量非常大。 E. 但是还有很多细节问题解决不了,例如小数后面的零因为是double型的而不是字符型,所以显示不出来,还有连续的四则运算实现不了,不过连续的单一运算还是可以运行的。 F. 通过此次试验,我初次认识了MFC,了解到其功能的强大,及其实用性之强,只不过我还只是接触到其冰山一角而已,要想真正地掌握MFC还有很长的路要走,还要投入更多精力。
本文档为【C 语言计算器的实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_721103
暂无简介~
格式:doc
大小:33KB
软件:Word
页数:0
分类:理学
上传时间:2019-08-26
浏览量:25