北邮小学期计算机实习报告.doc_第1页
北邮小学期计算机实习报告.doc_第2页
北邮小学期计算机实习报告.doc_第3页
北邮小学期计算机实习报告.doc_第4页
北邮小学期计算机实习报告.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2012年计算机实习报告 计算机实习报告 姓名: 大学霸班级: xxxxxxxxx学号: xxxxxxxxx小班序号:xx指导老师:苗建松题目:基于mfc的科学计算器邮箱:题目mfc科学计算器实验报告一功能说明1.1总体功能说明科学计算器包括双目运算和单目运算功能。双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦,反正余弦,对数,开方,百分数,整数的进制转换等运算。可对输入任意操作数或直接点击常数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算。出现错误会给出相应提示,同时包含清除,退格,退出功能以及有与所有按钮相对应的菜单项。1.2用户界面界面功能:此计算器与现实中的科学计算器类似,每个键都有负责的功能,分为数字键(0,1,),运算键(+,-,),功能键(sin,cos,),进制转换按钮(二进制,)及界面顶部的编辑框。数字键负责输入操作数,功能键负责执行不同的功能,进制转换按钮可以把结果转换至不同的进制并显示出来,点击等号键输出结果。点击左上方红叉可退出此计算器程序1.3使用方法操作数输入:第一种方法,通过单击数字键,正负号,小数点,百分号或常数输入所需的操作数输入结果会在编辑框中显示;第二种方法,单击编辑框,当编辑框中出现I型光标时,直接使用键盘输入所需的操作数。四则运算及幂:在进行四则运算及幂此类双目运算时,先输入第一个操作数,然后单击所需的双目操作符,接着输入第二个操作数,运算完成。接下来要是点击等号“=”则输出运算结果;输入数字就进行新的运算;再单击双目操作符就是进行连算,将结果第一个操作数进行新的运算。三角函数,乘方开方,对数运算:此类属于单目运算,输入操作数,单击操作符,进行单目类运算,运算结果会直接显示在编辑框内。特色之处在于当操作数不在运算符运算函数的定义域内时,程序会弹出消息框报错并清楚错误数据。进制转换按钮:使用方法与单目操作符类似,先输入要转换的十进制数,点击其他进制,屏幕上就会显示转换后的结果。此功能仅限于整数的转换。退格及清除数据按钮(CE,C):如果数据输入有误,点击CE会将编辑框中的数据的最后一位消去,点击C会清除当前存储的数据,重新进行计算。二程序设计说明2.1 总体设计框架结束jieY开始输入数据子函数编辑框关联的量保存至m_nTemp1输入数据子函数进行运算运算是否合法把结果保存到m_strResult所有数据清零弹出对话框显示ERRORNY是否用保存的结果继续进行运算N双目运算符单目运算符是否开始新一轮的计算YN计算器总流程图2.2 关键算法描述2.2.1数字键的程序:void CTestDlg:OnBnClickedBtn0()/ TODO: 在此添加控件通知处理程序代码ClickNum(0);void CTestDlg:OnBnClickedBtn1()/ TODO: 在此添加控件通知处理程序代码ClickNum(1);void CTestDlg:OnBnClickedBtn2()/ TODO: 在此添加控件通知处理程序代码ClickNum(2);void CTestDlg:OnBnClickedBtn3()/ TODO: 在此添加控件通知处理程序代码ClickNum(3);void CTestDlg:OnBnClickedBtn6()/ TODO: 在此添加控件通知处理程序代码ClickNum(6);void CTestDlg:OnBnClickedBtn4()/ TODO: 在此添加控件通知处理程序代码ClickNum(4);void CTestDlg:OnBnClickedBtn5()/ TODO: 在此添加控件通知处理程序代码ClickNum(5);void CTestDlg:OnBnClickedBtn7()/ TODO: 在此添加控件通知处理程序代码ClickNum(7);void CTestDlg:OnBnClickedBtn8()/ TODO: 在此添加控件通知处理程序代码ClickNum(8);void CTestDlg:OnBnClickedBtn9()/ TODO: 在此添加控件通知处理程序代码ClickNum(9);2.2.2 ClickNum函数void CTestDlg:ClickNum(const char* strNum)UpdateData(TRUE);if (m_IsFirstNum)m_strResult = ; m_IsFirstNum = FALSE; /若是数值的第一个数字,则清空编辑框,显示第一个数字m_strResult = m_strResult+strNum; /若是后续数字,则直接添加到原有数字后面UpdateData(FALSE);2.2.3四则运算及幂的程序void CTestDlg:OnBnClickedBtnAdd() /加号函数控件/ TODO: 在此添加控件通知处理程序代码Compute(m_chOper); m_chOper = +;void CTestDlg:OnBnClickedBtnResult() /等号函数控件/ TODO: 在此添加控件通知处理程序代码Compute(m_chOper);m_chOper = =;void CTestDlg:OnBnClickedBtnMult() /乘号函数控件/ TODO: 在此添加控件通知处理程序代码Compute(m_chOper);m_chOper = *;void CTestDlg:OnBnClickedBtnSub() /减号函数控件/ TODO: 在此添加控件通知处理程序代码Compute(m_chOper);m_chOper = -;void CTestDlg:OnBnClickedBtnDiv() /除号函数控件/ TODO: 在此添加控件通知处理程序代码Compute(m_chOper);m_chOper = /;void CTestDlg:OnBnClickedBtnPow() /幂函数控件/ TODO: 在此添加控件通知处理程序代码Compute(m_chOper);m_chOper = P;2.2.4 compute函数void CTestDlg:Compute(char chOper) /操作符函数 UpdateData(TRUE);m_nTemp2 = atof(m_strResult); /将CString类型化为浮点型switch(chOper)case +:m_nTemp2 = m_nTemp1 + m_nTemp2;break;case -:m_nTemp2 = m_nTemp1 - m_nTemp2;break;case *:m_nTemp2 = m_nTemp1 * m_nTemp2;break; case /:if(m_nTemp2) /判断被除数是否为零 m_nTemp2 = m_nTemp1 / m_nTemp2;elseMessageBox(ERROR:被除数不能为0);OnBnClickedBtnC();break; case P:if(m_nTemp1=(-1)&(atof(m_strResult)=(-1)&(atof(m_strResult)=1) /定义域判断m_nTemp2=acos(atof(m_strResult)/pi*180; /角度转换 m_strResult.Format(%g,m_nTemp2); m_nTemp2=0;elseMessageBox(ERROR:定义域-1,1);OnBnClickedBtnC();m_IsFirstNum=TRUE;UpdateData(FALSE);void CTestDlg:OnBnClickedBtnArctan() /反正切函数控件/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);m_nTemp2=atan(atof(m_strResult)/pi*180; /角度转换m_strResult.Format(%g,m_nTemp2); m_nTemp2=0;m_IsFirstNum=TRUE;UpdateData(FALSE);2.2.10平方的程序void CTestDlg:OnBnClickedBtnSquare() /平方函数控件/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE); m_nTemp2=pow(atof(m_strResult),2);m_strResult.Format(%g,m_nTemp2); m_nTemp2=0;m_IsFirstNum=TRUE;UpdateData(FALSE);2.2.11开方的程序void CTestDlg:OnBnClickedBtnSqrt() /开方函数控件/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);if(atof(m_strResult)0) /定义域判断MessageBox(ERROR:操作数应不小于0);OnBnClickedBtnC(); elsem_nTemp2=sqrt(atof(m_strResult); m_strResult.Format(%g,m_nTemp2); m_nTemp2=0;m_IsFirstNum=TRUE;UpdateData(FALSE);2.2.12对数的程序void CTestDlg:OnBnClickedBtnLn() /自然对数控件/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);if(atof(m_strResult)=0) /定义域判断MessageBox(ERROR:操作数应大于0);OnBnClickedBtnC();elsem_nTemp2=log(atof(m_strResult); m_strResult.Format(%g,m_nTemp2); m_nTemp2=0;m_IsFirstNum=TRUE;UpdateData(FALSE);2.2.13常数的程序void CTestDlg:OnBnClickedBtnExp() /超越数控件/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);m_strResult.Format(%g,e);m_IsFirstNum=TRUE;UpdateData(FALSE);void CTestDlg:OnBnClickedBtnPi() /圆周率常数控件/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);m_strResult.Format(%g,pi);m_IsFirstNum=TRUE;UpdateData(FALSE);2.2.14进制转换的程序 voidCTestDlg:OnBnClickedRadioBin() /二进制转换控件/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE); int m_nTemp2=atof(m_strResult),i;m_strResult=;while(m_nTemp2!=0)i=m_nTemp2%2;m_strResult=char(0+i)+m_strResult;m_nTemp2/=2;m_IsFirstNum=TRUE;UpdateData(FALSE);void CTestDlg:OnBnClickedRadioOct() /八进制转换控件/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE); int m_nTemp2=atof(m_strResult);m_strResult.Format(%o,m_nTemp2); m_nTemp2=0;m_IsFirstNum=TRUE;UpdateData(FALSE);void CTestDlg:OnBnClickedRadioHex() /十六进制转换控件/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE); int m_nTemp2=atof(m_strResult);m_strResult.Format(%X,m_nTemp2); m_nTemp2=0;m_IsFirstNum=TRUE;UpdateData(FALSE);2.2.15 CE&C的程序void CTestDlg:OnBnClickedBtnCe() /退格函数控件/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);m_strResult = m_strResult.Left(m_strResult.GetLength()-1);UpdateData(FALSE);void CTestDlg:OnBnClickedBtnC() /清除所有数据函数控件/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);m_nTemp1 = 0;m_nTemp2 = 0;m_chOper = ;m_strResult = 0;m_IsFirstNum = TRUE;m_point=FALSE;UpdateData(FALSE);2.3 程序设计的难点和关键点单目操作符和双目操作符的运算顺序及逻辑不同某些函数有特定的定义域,操作数是否在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论