简易计算器解题报告

简易计算器解题报告

ID:20175977

大小:62.00 KB

页数:5页

时间:2018-10-10

简易计算器解题报告_第1页
简易计算器解题报告_第2页
简易计算器解题报告_第3页
简易计算器解题报告_第4页
简易计算器解题报告_第5页
资源描述:

《简易计算器解题报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、简易计算器解题报告时间:2008.10.26最后一次修改时间:2008.10.27由00748183黄舒志生成解题报告下面是程序的声明部分:声明:/*******************************************************************************************//我真诚地保证://我自己独立地完成了整个程序从分析、设计到编码的所有工作。//如果在上述过程中,我遇到了什么困难而求教于人,那么,我将在程序实习报告中//详细地列举我所遇到的问题,以及别人给我的提示。//在此,我感谢杨明对我的启发和帮助。下面的报告中,我还会具体地提

2、到他在各个方法对//我的帮助。(他最深刻的一句话:计算标准要统一,不能一直采用打补丁式的特殊情况处理//我的程序里中凡是引用到其他程序或文档之处,//例如教材、课堂笔记、网上的源代码以及其他参考书上的代码段,//我都已经在程序的注释里很清楚地注明了引用的出处。//我从未抄袭过别人的程序,也没有盗用别人的程序,//不管是修改式的抄袭还是原封不动的抄袭。//我编写这个程序,从来没有想过要去破坏或妨碍其他计算机系统的正常运转。//00748183黄舒志//00748193金庸//分工:两人一起设计代码,并主要由金庸进行测试数据整理,黄舒志生成解题报告//2008.10.24//作业名称:简易计算器*

3、*****************************************************************************************/·问题描述:编写一个简易计算器程序,用于简单表达式求值。·功能描述:此程序是运用栈来实现简易计算器的。在visual2008下编写运行和进行测试。能支持加减乘除运算,支持小数、负数、连续运算符;附带有三角函数sin和cos,三角函数后面要求必须加上空格,虽然当成单目运算符去计算的话可以不需要空格,但为了实现函数算法的统一性,也方便这个程序扩展功能加入其他函数,所以统一要求输入括号(这一建议来自杨明,在此表示感谢);在

4、表达式中允许任意的合法空格;并能进行较为详细的判错。以等号“#”结束表达式输入。要退出计算器时输入”E”即可退出。·算法分析:虽然问题要求不能先转换到后缀表达式再求值的方法,但可以仿照课本上的后缀表达式求值的方法,只是在算法中设定两个栈,栈一存放操作数,栈二存放操作符,如果碰到操作数则压入栈一;碰到操作符时,则如果当前操作符比栈二栈顶操作符的优先级小或者相等,则取出栈顶操作符,并从栈一中取出两个操作数,进行运算。并对输入的表达式有判错功能,算法是用当前的输入和前一个输入进行比较,在第一个不合法的位置报错,退出计算,并且要求重新输入。以C++面向对象来实现,定义了一个计算器类:Calculato

5、r操作符优先级定义如下:操作符操作符的符号表示操作符优先级定义加+1减-1乘*2除/2负号>3(单目运算符,级别为3)sins3(函数,也可以视为单目运算符符,级别为3)cosc3左括号(0(左括号与右括号统一,也为0,停止运算)右括号)0(右括号为零则一定会进入计算)等号#-1(优先级最低,表示清空)·代码描述:代码是通过定义一个计算器的类来实现计算功能,main函数中定义一个这样的类,进入计算器;成员函数setup_Calculator是计算器的主函数,主函数实现输入,并调用其它函数去实现计算器的功能。运算支持三角函数sin和cos,要求三角函数后面要加上括号。虽然可以将它们看做单目运算符

6、而不加括号,但这里选择将它们视作函数并规定统一的格式,是为了在程序加入功能如pow,sqrt等功能时形成统一的标准(这一个建议来自杨明,在此表示感谢)类Cauculate中有函数:printError(int,int),calculate(int),operation(double,double,char),setup_Calculator(),在下面“算法框架”中将详细介绍。·算法框架:1.函数定义简表:函数名称printErrorOperationcalculateSetup_Calculate函数功能报错,指出错误类型和位置双目运算符的具体计算处理操作符,包括括号和等号#计算器主函数,调

7、用其他函数返回处理退出读取,清空栈,要求重新输入将运算结果压入栈1如果没有出现错误则继续读取字符串无返回值无Double型,计算结果无无参数定义errorType错误类型;index:出错位置a1,a2是栈1中读取的两个操作数;sign操作符PRI表示当前读取的操作符的优先级无与其他对象中函数调用关系无无无无2.对类函数及定义结构体的具体描述:A.StructINPUT{Charc;//输入的字符

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。