下载此文档

计算器-数据结构.doc


文档分类:IT计算机 | 页数:约13页 举报非法文档有奖
1/13
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/13 下载此文档
文档列表 文档介绍
实验项目: 计算器
实验目的:掌握栈的运算及应用,了解对算法的健壮性要求
实验内容:实现计算器类中lp、rp和operate函数;完善计算器类evaluate函数,增加对输入的合法性检查,包括滤掉所有非法输入及处理左右括号不配对的输入;编制应用程序测试这个计算器;
程序简介:该计算器能够过滤字母,即当输入的字符串中有字母的时候,会自动过滤掉;当输入的字符串不合法时,输出错误提示,本程序将会对下列的输入进行合法检验
(56-23)/8-4# 期望结果:
34+p(u89-)k/3# 期望结果:
*749+25)# 期望结果:输入有误
(8*(7-4)# 期望结果:输入有误
65*(72+98)(70-45) # 期望结果:输入有误
6*# 期望结果:输入有误
)5+3(# 期望结果:输入有误
9….0878+# 期望结果:
算法设计介绍:
先定义两个堆栈,一个存放符号,一个存放数字,两个函数lp和rp是定义加减乘除以及括号的优先级的。Clear函数是检验其合法性的。Operate函数是进行两个数字之间的运算,只有两个数和一个运算符。evaluate函数是过滤字符串以及计算结果的。
当输入一个字符串之后,先判断其是否合法,再进行过滤字母和小数点的操作,然后再进行计算。当数字进栈的时候,若是浮点数,则现将存进栈的单个数字乘以相应的位权再相加转化成浮点数,再进行计算操作。
困难及解答
编这个程序的时候,一开始基本上没什么思路,后来请教了郑鹏同学,多亏郑鹏同学指点迷津,帮助我完成了这个计算器的设计,其实这个计算器还有很多不足的地方,我本来打算先过滤字母和小数点着,可是思路不清晰,导致编完之后的程序总是运行不出来,后来请教了郑鹏同学,在听完他的讲解之后,基本上明白了大体的思路,所以就仿照了郑鹏同学的算法,这个程序不是自己独立完成的,是得益于郑鹏同学的帮助。
心得
我逐渐意识到,自己平时编的程序太少了,少的都可怜。到了真正编程的时候就会手忙脚乱,不知从何下手。平时总是很有理由说没时间编程,编程太费时间了,但是,就我一个人没时间吗?难道别人就有时间吗?其实,自己的时间完全是由自己支配的,多抽出时间编程才是重中之重,以后还要靠这个吃饭。
程序清单
源代码:
/*
// 我真诚地保证:

// 我在同学的帮助下完成了整个程序从分析、设计到编码的所有工作。
// 如果在上述过程中,我遇到了什么困难而求教于人,那么,我将在程序实****报告中
// 详细地列举我所遇到的问题,以及别人给我的提示。
// 在此,我感谢郑鹏同学和李雷阳同学对我的启发和帮助。下面的报告中,我还会具体地提到
// 他们在各个方法对我的帮助。
// 我的程序里中凡是引用到其他程序或文档之处,
// 例如教材、课堂笔记、网上的源代码以及其他参考书上的代码段,
// 我都已经在程序的注释里很清楚地注明了引用的出处。
// 我从未没抄袭过别人的程序,也没有盗用别人的程序,
// 不管是修改式的抄袭还是原封不动的抄袭。
// 我编写这个程序,从来没有想过要去破坏或妨碍其他计算机系统的正常运转
文件名称:
创建者:
创建时间:
最后修改时间:
功能:实现加减乘除四则运算
文件中的函数名称和简单功能描述:double operate(char theta, double a, double b)-实现两个数字的计算、
int rp(char op)-左优先级的定义、int lp(char op)右优先级的定义、 void evaluate()-四则运算的算法、
bool clear()-检验字符串是否合法;
文件中定义的全局变量和简单功能描述:无
文件中用到的他处定义的全局变量及其出处:无
与其他文件的依赖关系:
:
类名称: calculator
定义该类的目的:封装计算器的各种功能
类属性:
类中函数及功能:double operate(char theta, double a, double b)-实现两个数字的计算、
int rp(char op)-左优先级的定义、int lp(char op)右优先级的定义、 void evaluate()-四则运算的算法、
bool clear()-检验字符串是否合法;
与其他类的关系(调用/被调用哪类对象中的什么函数):
3. 关于函数的说明
(1) 函数名称:double operate(char theta, double a, double b)
函数功能描述:实现a与b的计算
函数调用之前的预备条件:doubl

计算器-数据结构 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数13
  • 收藏数0 收藏
  • 顶次数0
  • 上传人63229029
  • 文件大小139 KB
  • 时间2017-11-10