版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实习报告题目:算术表达式求值演示。一、需求分析1. 以字符序列的形式从终端输入语法正确的、不含变量的整数表 达式。2. 利用教科书表给出的算符优先关系,实现对算数四则混合运算 表达式的求值。3. 仿照教科书的例子在求值中运用符栈、运算数栈、输入字符和 主要操作的变化过程。4. 程序执行的命令包括:(1) 构造空栈;(2) 判断符号优先级 ;(3) 判断是否为七种运算符之一 ;(4) 运算求解算术表达式。5. 测试数据(1) 3*(7-2);(2) 8;(3) 1+2+3+4;(4) 88-1*5;(5) 1024*4/8;(6) (20+2)*(6/2);(7) 3-3-3;(8) 8/(9-
2、9);(9) 2*(6+2*(3+6*(6+6);(10) (6+6)*6+3)*2+6)*2;二、概要设计1. 设定栈的抽象数据类型定义:ADT Stack数据对象:D=ai |a i CharSet,i=1,2,,n,n 0数据关系:R仁| a i -1, ai D,i=2,,n 基本操作:InitStack (&S)操作结果:构造一个空栈 S。GetTop (S , &e)初始条件:栈 S 已存在。操作结果:若栈 S 不空,则以 e 返回栈顶元素。Push(&S, e)初始条件:栈 S 已存在。操作结果:在栈 S 的栈顶插入新的栈顶元素 e。Pop(&S, &e)初始条件:栈 S 已存在
3、。操作结果:删除S的栈顶兀素,用e返回其值。 ADT Stack2. 设定运算表达式的抽象数据类型为:ADT EvaluateExpression数据对象:D=ai | a i为数字及运算符,i=1,2,n,n 0 数据关系: R1= 基本操作:Precede(a1 , a2)初始条件:字符al, a2存在。 操作结果:判定运算符的优先级In( d )初始条件:字符 d 存在。操作结果:判断 c 是否为七种运算符之一Operate(a, theta, b )初始条件:字符 a, theta, b 存在。 操作结果:运算表达式结果。 ADT EvaluateExpression3. 本程序包含
4、3 个模块:(1 )主程序模块:int main()初始化;do接受命令:处理命令:return 0;(2) 栈模块实现栈抽象数据类型(3) 求解算术表达式模块实现算术表达式数据类型 各模块之间的调用关系如下:主程序模块V栈模块V求解算术表达式模块三、详细设计1. 数据类型、字符类型。typedef double SElemType; 类型typedef struct SqStack SElemType *base;SElemType *top;int stacksize;SqStack;栈的基本操作设置如下:void InitStack (SqStack &S)求解算术表达式的伪算法SEle
5、mType EvaluateExpression( )SqStack OPTR,OPND;Push(OPND,c-48);c=getchar();elsecouterror!输入错误 !endl;exit(-1);GetTop(OPTR,e);GetTop(OPND,e);return e;4. 主函数和其他函数的伪算法int main()数的调用关系图反映了演示程序的结构层次:主程序JJInitialization ReadCommand InterpretInitEvaluateExpressionPrintEvaluateExpressionJJInitStack Push Pop Ge
6、tTop四、调试分析1. 这次作业思路比较简单, 核心问题就是表达式的运算, 要区分运算 符的优先顺序。 通过运用栈后进先出的特点实现算法功能, 调用 push 和 pop 等函数,实现一系列操作。2. 调试过程中,起初想打换行符时打成了 ,忘了打字母 n, 结果 程序调试总是有错误,改成 n 后便成功运行了,可见,细节之处 也很重要3. 运用了很多的栈的基本操作, 让我对栈的内容熟悉了不少, 收获很 大。4本题中时间复杂度为 O(n)五、用户手册本程序的运行环境为DOS操作系统,执行文件为:六、测试结果(1) 请输入表达式:3*(7-2);结果为: 15(2) 请输入表达式:8;结果为: 8(3) 请输入表达式:1+2+3+4;结果为: 10(4) 请输入表达式:88-1*5;结果为: 82(5) 请输入表达式:1024*4/8;结果为: 512(6) 请输入表达式:(20+2)*(6/2);结果为: 6(7) 请输入表达式:3-3-3;结果为: -3(8) 请输入表达式:8/(9-9);结果为: erro
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋诚意金合同范本
- 房屋转让建设协议书
- 房屋销售合同协议书
- 房车出行协议书范本
- 手工活代加工协议书
- 手机厂家供货协议书
- 手机网点维修协议书
- 打工员工安全协议书
- 托养合同协议书范本
- 托管委托接送协议书
- 创伤急救模拟教学的高仿真情景构建方法
- 半导体后端封装测试片及测试设备零部件生产项目环境影响报告书
- 消防队的考试题库及答案
- 2025年度XX市妇幼保健院党支部书记抓基层党建工作述职报告
- 2024年万宁市事业单位招聘笔试真题
- 2025昆明市石林国有资本投资集团有限公司及下属公司招聘(30人)考试笔试备考题库及答案解析
- 木地板安装施工方案
- 2025山东发展投资控股集团有限公司权属企业招聘249人考试笔试备考题库及答案解析
- 安全管理工作汇报
- 7月电子商务四级测试题与参考答案
- 一顶温暖的帽子课件
评论
0/150
提交评论