c++实现计算器课程设计汇本报告

上传人:工**** 文档编号:554984284 上传时间:2024-02-08 格式:DOC 页数:21 大小:263.50KB
返回 下载 相关 举报
c++实现计算器课程设计汇本报告_第1页
第1页 / 共21页
c++实现计算器课程设计汇本报告_第2页
第2页 / 共21页
c++实现计算器课程设计汇本报告_第3页
第3页 / 共21页
c++实现计算器课程设计汇本报告_第4页
第4页 / 共21页
c++实现计算器课程设计汇本报告_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《c++实现计算器课程设计汇本报告》由会员分享,可在线阅读,更多相关《c++实现计算器课程设计汇本报告(21页珍藏版)》请在金锄头文库上搜索。

1、 得分:信电工程学院课程设计报告基于VC的表达式计算器软件设计课程: 程序设计综合训练1 班级: 12软嵌2班学号: 20120509223: 文靖指导教师: 朱丽2013年 6 月28日目 录 1引言- 11.1课题背景-21.2课程设计目的-32需求分析-52.2系统功能模块-52.3设计要求-63系统实现 -83.1 对话框界面设计-83.2 数值计算功能的实现-104程序关键代码及运行结果 -125总结与体会 -15 / 1 引言1.1 课题背景计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求倒数等简单运算的工具。要实现计算功能,可以用VC+的知识编写程序来解决此问

2、题。该计算器大大的降低了数字计算的难度及提高了计算的准确度和准确度。该计算器使用非常简单和方便,对广阔中小学生的学习有巨大帮助作用,也对在职人员的工作有点帮助作用.1.2 课程设计目的本课程是一门实践性很强的课程,既要熟练掌握相关概念,又要动手编程,还要上机调试运行。同时,本课程也注重提高学生编写技术文档和技术文档阅读的能力。学生通过本课程的学习实践,将学习和强化软件开发的能力、文档写作能力、英语阅读能力、软件使用能力等。为今后计算机编程的学习和工作打下良好、扎实的理论实践根底。2 需求分析2.1系统功能模块1输入的符号,数字从左向右显示; 点击“=输出结果,在输出行显示2支持加减乘除运算;3

3、)支持“xy的运算;4) 括号“的使用;5支持混合运算;6功能键“ANS ,“CLEAR ,“BACKSPACE的使用;7计算器的输入方式:支持鼠标点击计算器键输入;8)计算器计算结果的输出方式:在计算器窗口的输出行显示9)算数运算的数据类型:整数和浮点数;10)特殊情况的计算;11以上所有的运算都是在10进制下进展.1输入的符号,数字从右向左显示。先输入“88再输入“8*点击“=输出结果,在输出行显示.2)支持加减乘除运算.输入行a.乘法计算:8*3 24输出行 b. 加法计算1+01 c. 减法计算8-3 5d.除法运算特殊情况见10.B9/4 2.252) 支持求次方(x y)运算。求次

4、方(x y)运算:“为次方(x y)在输入行中的显示符号42 164“的使用。括号的使用要使用“的时候,先点击“,再输入数字或符号,容输入完毕以后,点击“,完成“的所有功能。例如:22+2=?22*(2*(2+22*(2+2)2*2+2 85)支持混合运算。附:运算符的优先级表优先级功能键显示结合律从高到低( 、 ) 、自左向右xy、1/x、自左向右、*、/自左向右自左向右例如:5+25=?混合运算那么按优先级表中的运算符优先顺序从左向右计算5+2*5 356)功能键“CLEAR及“BACKSPACE的使用。 a“CLEAR为清0键。只要按下“CLEAR键,输入行所有字符清0,输出行回到原始状

5、态。输入前:5+2*5输入后:0b.“BACKSPACE为退格键。当输入任何数字或运算符,只要按下“BACKSPACE键,字符位自右向左消去一位。注:初始的“0不能被删除输入前:5+2*5输入后:5+2*C.“ANS为变量储存器。当一次结果被去除后,只要按下“ANS键就会显示这个结果。如:5+27按“CLEAR键后,再按“ANS键就会这样 7777)计算器的输入方式:只支持鼠标点击计算器键输入;8)计算器计算结果的输出方式:在计算器窗口的输出行显示。9)算数运算的数据类型:整数和浮点数。a.输入行最大显示的字符数32位,每个运算符算一位;b.“,“各占一个字符位;c.输出行最大显示的字符数为3

6、2位;d.纯小数显示的最大字符数为小数点后30位,整数及小数点各占一位;假设纯小数为负数,那么显示最大字符数为小数点后29位,“-占一位;e.输入行在未输入任何数字的时候,显示“0,只占一个字符位;当输入任何数字时。“0消失,输入的的数字取代“0;当输入任何运算符时。默认之前输入数字“0;f.点击“=键前方可显示数字或字母或汉字。10)特殊情况的运算A.运算结果整数局部超出32位,显示Infinity无穷大;出现运算异常! 9999999999999999*99999999 InfinityB.除数为0的情况,提示用户被除数不能为零!1/0除零错误C在运算时,假设结果为纯小数,小数位超过30位

7、,那么超出的字符舍弃。2/30 .6666666666666666666666666假设舍弃超出部位后,结果全为0,那么结果为01/9999 0 D在运算时,假设结果的整数位不为0a总位数在最大字符位,那么直接显示;b总位数在最大字符位以外,整数局部在最大字符位以,那么只优先显示整数部位,弃掉32位以后的字符5/3 1.6666E当用户输入“0时,假设“0之前的算式或数字的值为0,点击“=后,输出界面显示“底数不能为011) 以上所有的运算都是在10进制下进展2.2设计要求(1)了解Windows编程的根底知识,掌握MFC应用程序的根本知识。(2)理解需求分析过程,掌握需求分析文档编写。(3)

8、理解面向对象程序设计的根本思路和方法。(4)掌握用VC+开发MFC应用程序的一般步骤和方法。(5)掌握基于对话框的应用程序的编写,主要包括文本框和按钮等。(6)掌握后缀表达式算法。(7)掌握VC+开发工具的使用。包括资源管理,工程创立,运行调试等。(8)完成表达式的计算器应用程序,实现根本的加、减、乘、除等四那么运算,且支持包括括号的表达式运算功能。3系统实现3.1对话框界面设计3.2数值计算实现例如:22+2=?22*(2*(2+22*(2+2)2*2+2 84程序关键代码及运行结果#include #include #include Stack.h#include using namesp

9、ace std;bool jisuan(double a,double b,char c,double& d) switch (c) case +: d=a+b;/couta+bendl;return true; case -: d=a-b;/couta-bendl;return true; case *: d=a*b;/couta*bendl;return true; case /:if(b=0)throw CString(除零错误!);/couta/bendl; d=a/b;return true;case ,: /couta,b0)/将符号压栈op.Add(char)num);elsechar mid;while(arraynum-40pre-400)int MyCheck=(int)name.at(i-1);if(MyCheck=48|MyCheck=41)break;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号