当前位置:文档之家› c计算器实验报告

c计算器实验报告

简单计算器姓名: 周吉祥实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。

实验内容:(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 Win32m_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 hereif(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() //按钮“退出”{// 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() //按钮“-”{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() //按钮“/”{sort=4;tempvalue=result;m_edit1=0;append=1;}(4)程序调试:简单计算器测试与思考:1.小结:A.在做上面那个简单计算器的时候,遇到的问题很少,而且差不多都是些很小的问题,很容易就解决了B.刚开始,在老师没讲课之前,不知道如何设置响应事件,经老师讲解后,很快就解决了C.在运行的调试的时候,发现计算器的减法与除法的功能出错,原来是减数与被减数、除数与被除数的位置互换了;还有,连续点击“=”时显示结果会不停变动,解决方法是:加“sort=0;”语句;另外,在点击“=”后,再点击数字键时,会发现点击的相应数字会显示在原显示结果的后面,解决方法是:加“append=1;”语句。

相关主题