- 相关推荐
c++计算器实践报告
题 目
科学计算器应用程序系统
学生姓名
指导教师
学 院
专业班级 学生学号 吴金星 严晖 材料科学与工程学院 1206 0607120610
计算机基础教学实验中心
2013年 7 月 3 日
科学计算器管理信息系统
摘要:本设计是简单计算器,日常计算机使用中,常常涉及到一些有关计算的问题,一个小型的计算器软件变得非常有用,该校型计算器需要空间资源较少,对电脑其他程序的应用影响较小。它的设计按软件工程的方法进行,系统具有良好的界面、必要的交互信息和较好的健壮性;醒目美观的软件封面。使用人员能快捷简单地进行操作。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。
关键词:程序设计;计算器;MFC;按钮控件
1. 计算器系统开发设计思想
⑴实验目的
①通过实践加强对程序设计语言课程知识点的理解和掌握,培养对课程知识综合运用能力、实际分析问题能力及编程能力,养成良好的编程习惯。
②通过实践进一步领会程序设计的特点和应用,提高运用C++ 以及面向对象知识解决实际问题的能力。
③通过实践掌握用C++ 编写面向对象的实用程序的设计方法,对面向对象方法和思想增加感性的认识;学会利用C++程序设计语言编写出一些短小、可靠的Windows实用程序,切实提高面向对象的程序设计能力。为后续的相关课程的学习打下基础。
⑵实验要求
①二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模等简单计算
②科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行
③以角度、弧度两种方式实现上述部分函数
④具备历史计算的记忆功能
⑤对不正确的表达式能指出其错误原因
⑥整理上机步骤,完成实验报告、提交可运行的程序,给出实验数据和实验结果
2、计算器系统功能及系统设计介绍
⑴功能说明
它的设计按软件工程的方法进行,系统具有良好的界面;必要的交互信息;简约美观的效果。使用人员能快捷简单地进行操作。即可单机按钮进行操作,也可直接通过键盘直接输入。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。
①包含的功能有:加、减、乘、除运算,开方、求倒数等功能。②计算器上数字0—9为一个控件数组,加、减、乘、除为一个控件数组,其余为单一的控件。③给对话框添加菜单。④计算功能基本上是用系统内部函数。⑤程序可以能自动判断输入数据的正确性,保证不出现多于一个小数点、以0开头等不正常现象。⑥“C”按钮可以清除所有已输入的数据从头计算。
⑵设计思路
①算法基本流程,数值计算及功能:②主要部分为按键后的接受处理
③键入为数字则检查和增长操作数,有前算符则增长操作数1,否则增长操作数
2。计算器基本按:键入操作数1,键入运算符(若为单目算符即直接运算),键入操作数2,再键入算符即运算前算符,若为当前键入为单目算符即再运算,结果保留在操作数1中,并返回在界面显示。
④在每次运算前将操作数进行进制转为十进制,在运算结束后操作数还原进制。 ⑤其中键入特殊算符和功能键作特殊处理,如:退格,进制选键和”=”,”CE”,”C”等。显示键入的相关信息,如果键入不合法即提示错误。 ⑶算法流程图
⑷关键功能实现
①操作数的输入,编辑框所关联的变量为m_num,程序开始时为零。每按下一个数字键按钮,就把它累加到m_num里并刷新显示。BOOL型变量ele来判断是否有小数点和一个整型数dint来表示小数点后的数据的位数。当ele=TRUE时,表示有小数点,否则则表示无小数点。按下小数点按钮后执行ele=TRUE。当按下一个数字键时,首先根据ele判断是否按下小数点,若有则把小数点后数的位数加1,dint则为此次键入的数所处的位数,将键入的数除以dint个10然后累加到编辑框所关联的变量m_num上,若没有则把m_num乘以10,然后累加到编辑框所关联的变量m_num上。
②单目运算符功能的实现,由于单目运算符中必须有执行运算的函数,因而头文件中要加入math.h,如m_num=sqrt(m_num).按下按钮即可实现其功能。为实现连续运算,程序有所改动。
③双目运算符功能的实现,双目运算符需要两个操作数才能运算,所以在执行双目运算符按钮的函数代码中,要把m_num中的值保存到变量num2中,然后把m_num清零。这样即可保存第一个操作数。另外先定义了一个整形变量addt,在不同的双目运算符中给addt赋不同的值,然后在等号中用switch语句来匹配addt值来判断需要执行何种双目运算。为实现连续运算,程序有所改动。 ④退格键功能的实现,当按下一次退格按钮时,若m_num为整数,只需对其中数据除以10再取整即可,若按下一次退格按钮为小数,则根据小数点后数据的位数dint进行操作,先对m_num执行(dint-1)次乘以10运算,然后取整,接着执行(dint-1)次除以10的运算即可。完成后需要把dint将减小1。
⑤正负号功能的实现,在头文件中定义一个BOOL型变量ele2来判断m_num的正负。ele2=TRUE时表示为正。在键入操作数时需要用到ele2。在正负号按钮的消息响应函数内容为m_num=-m_num;ele2=!ele2。
3.计算器系统开发的体会
实践是获取知识的一个极其重要的途径,无论是过去还是现在抑或是将来,我都坚信这一点。在这个实验中,我坚持以实践为导向,虽然,我没有对CLR与.NET的系统的学习,理论理解并不多,但是在实际摸索应用的过程中,我还是学到很多东西,特别是理解了一个功能的使用方法之后,这种快乐的心情是无法描述的。现在可以灵活运用一些常用的属性,进行一些基本操作,以实现预期目标。
实现该计算器,当时的想法是尽量向Windows计算器靠拢。可以看到,这个计算器有很多Windows计算器的影子。虽然这个计算器还有很多不足,比如表达式的处理。 这个计算器的代码都是自己思考过后写出来的,特别是错误排除部分,经历了很多Bug的时期。由于时间限制,可视化计算器的基本实现告一段落,在时间允许的以后再进一步完善计算器功能。
【c++计算器实践报告】相关文章:
C++基础面试题07-13
华为C/C++笔试题07-11
经典C/C++面试题07-11
年终奖计算器 年终奖计算器07-11
华为C++/MFC面试题07-11
2016工资扣税标准计算器07-06
社会保险缴费计算器07-13
《用计算器计算》教学反思07-03
C/C++面试题目集锦07-13
腾讯公司招聘c/c++笔试题07-13