1、中南大学本科生课程设计(实践)任务书、设计汇报(C+程序设计)题 目简单计算器 学生姓名李珍勤指导老师李大扬学 院资源加工和生物工程学院专业班级无机非金属材料1302班学生学号计算机基础教学试验中心06 月26 日简单计算器制作摘要:MFC,calculator,加减乘除关键词:计算器1 计算器开发设计思想(1) 试验目标:模拟日常生活中所用计算器,自行设计一个简单体系设计:(2) 程序是一个简单计算器,能正确输入数据,能实现加、减、乘、除等算术运算,能进行简单三角运算,运算结果能正确显示,能够清楚数据等。(3) 设计思绪:(4) 先在Visual C+ 6.0中建立一个MFC工程文件,名为c
2、alculator.(5) 在对话框中添加合适编辑框、按钮、静态文件、复选框和单选框(6) 设计按钮,并修改其对应ID和Caption.(7) 选择和设置各控件单击鼠标事件。(8) 为编辑框添加double类型关联变量m_edit1.(9) 在calculatorDlg.h中添加math.h头文件,然后添加public组员。(10) 打开calculatorDlg.cpp文件,在结构函数中,进行组员初始化和完善各控件响应函数代码。(11) 计算器程序,实现简单计算功效。2 计算器源代码及系统设计介绍添加public组员:double tempvalue; /存放中间变量double resul
3、t; /存放显示结果值int sort; /判定后面是何种运算:1.加法 2.减法 3.乘法 4.除法int append; /判定后面是否添加数字l组员初始化: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 Win
4、32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);tempvalue=0;result=0;sort=0;append=0;l各控件响应函数代码:void CCalculatorDlg:OnButton1() /按钮“1”/ TODO: Add your control notification handler code hereif(append=1)result=0;result=result*10+1; m_edit1=result;append=0;UpdateData(FALSE);void CCalculatorDlg:OnButton
5、2() /按钮“2”/ TODO: Add your control notification handler code hereif(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 hereif(append=1)result=0;result=result*10+3;m_edit1=result;appen
6、d=0;UpdateData(FALSE);void CCalculatorDlg:OnButton4() /按钮“4”/ TODO: Add your control notification handler code hereif(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 hereif(append=
7、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 hereif(append=1)result=0;result=result*10+6;m_edit1=result;append=0;UpdateData(FALSE);void CCalculatorDlg:OnButton7() /按钮“7”/ TODO: Add you
8、r control notification handler code hereif(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 hereif(append=1)result=0;result=result*10+8;m_edit1=result;append=0;UpdateData(FALSE);voi
9、d 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 hereif(append=1)result=0;result=resu
10、lt*10+0;m_edit1=result;append=0;UpdateData(FALSE);void CCalculatorDlg:OnBUTTONequal() /按钮“=”/ TODO: Add your control notification handler code hereswitch(sort)case 1:result=result+tempvalue;break;case 2:result=tempvalue-result;break;case 3:result=result*tempvalue;break;case 4:result=tempvalue/result
11、;break;m_edit1=result;sort=0;append=1;UpdateData(FALSE);void CCalculatorDlg:OnBUTTONclean() /按钮“C”/ TODO: Add your control notification handler code heretempvalue=0;result=0;m_edit1=0.0;UpdateData(FALSE);void CCalculatorDlg:OnBUTTONplus() /按钮“+”/ TODO: Add your control notification handler code here
12、sort=1;tempvalue=result;m_edit1=0;append=1;void CCalculatorDlg:OnBUTTONminus() /按钮“-”/ TODO: Add your control notification handler code heresort=2;tempvalue=result;m_edit1=0;append=1;void CCalculatorDlg:OnBUTTONmulti() /按钮“*”/ TODO: Add your control notification handler code heresort=3;tempvalue=res
13、ult;m_edit1=0;append=1;void CCalculatorDlg:OnBUTTONdiv() /按钮“/”/ TODO: Add your control notification handler code heresort=4;tempvalue=result;m_edit1=0;append=1;void CCalculatorDlg:OnRadio1() /按钮“Sin”/ TODO: Add your control notification handler code herem_edit1=sin(result);UpdateData(FALSE);void CC
14、alculatorDlg:OnRadio2() /按钮“Cos”/ TODO: Add your control notification handler code herem_edit1=cos(result);UpdateData(FALSE);void CCalculatorDlg:OnRadio3() /按钮“Tan”/ TODO: Add your control notification handler code herem_edit1=tan(result);UpdateData(FALSE);void CCalculatorDlg:OnRadio4() /按钮“Log10”/
15、TODO: Add your control notification handler code herem_edit1=log10(result);UpdateData(FALSE);简单计算器:运行测试:3 计算器开发体会A.在做上面那个简单计算器时候,碰到问题极少,而且差不多全部是些很小问题,很轻易就处理了B.刚开始不知道怎样设置响应事件,怎样把这些小程序连接形成一个系统。 C.在运行调试时候,发觉计算器减法和除法功效犯错,原来是减数和被减数、除数和被除数位置交换了;还有,连续点击“=”时显示结果会不停变动,处理方法是:加“sort=0;”语句;另外,在点击“=”后,再点击数字键时,会发
16、觉点击对应数字会显示在原显示结果后面,处理方法是:加“append=1;”语句D.以后,在做后面测试和思索时,碰到问题就很多了。其中最棘手就是Backspace键和连续四则运算实现,其次就是SQRT,tan,tanh,AC等了解和响应代码编写,再者就是正负号和小数点处理,其工程量很大。E.不过还有很多细节问题处理不了,比如小数后面零因为是double型而不是字符型,所以显示不出来,还有连续四则运算实现不了,不过连续单一运算还是能够运行。F.经过此次试验,我首次认识了MFC,了解到其功效强大,及其实用性之强,只不过我还只是接触到其冰山一角而已,要想真正地掌握MFC还有很长路要走,还要投入更多精力。
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100