版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
算术表达式求值演示算术表达式求值演示算术表达式求值演示算术表达式求值演示编制仅供参考审核批准生效日期地址:电话:传真:邮编:实习报告题目:算术表达式求值演示。需求分析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-9);(9)2*(6+2*(3+6*(6+6)));(10)(((6+6)*6+3)*2+6)*2;二、概要设计1.设定栈的抽象数据类型定义:ADTStack{数据对象:D={ai|ai∈CharSet,i=1,2,…,n,n≥0}数据关系:R1={<ai-1,ai>|ai-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已存在。操作结果:删除S的栈顶元素,用e返回其值。}ADTStack2.设定运算表达式的抽象数据类型为:ADTEvaluateExpression{数据对象:D={ai|ai为数字及运算符,i=1,2,…,n,n≥0}数据关系:R1={}基本操作:Precede(a1,a2)初始条件:字符a1,a2存在。操作结果:判定运算符的优先级In(d)初始条件:字符d存在。操作结果:判断c是否为七种运算符之一Operate(a,theta,b)初始条件:字符a,theta,b存在。操作结果:运算表达式结果。}ADTEvaluateExpression3.本程序包含3个模块:(1)主程序模块:intmain(){初始化;do{接受命令:处理命令:}return0;}(2)栈模块——实现栈抽象数据类型(3)求解算术表达式模块——实现算术表达式数据类型各模块之间的调用关系如下:主程序模块↓栈模块↓求解算术表达式模块三、详细设计1.数据类型、字符类型。typedefdoubleSElemType;类型typedefstructSqStack{SElemType*base;SElemType*top;intstacksize;}SqStack;栈的基本操作设置如下:voidInitStack(SqStack&S)求解算术表达式的伪算法SElemTypeEvaluateExpression(){SqStackOPTR,OPND;{Push(OPND,c-48);c=getchar();}else{cout<<"error!输入错误!"<<endl;exit(-1);}GetTop(OPTR,e);}GetTop(OPND,e);returne;}4.主函数和其他函数的伪算法intmain()数的调用关系图反映了演示程序的结构层次:主程序↓————————↓————————↓InitializationReadCommandInterpret↓↓————————————————↓InitEvaluateExpressionPrintEvaluateExpression↓↓————————↓——————↓——————↓InitStackPushPopGetTop四、调试分析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)请输入表达式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年度伊春职业学院公开招聘27人考试备考题库及答案详解
- 2026年全省转业军官安置考试笔试备考题库及答案详解
- 2026北京大学生命科学学院招聘劳动合同制工作人员1人考试参考题库及答案详解
- 2026年滨洲湖职业学院高职单招职业适应性测试考试模拟试卷及答案详解(易错题)
- 2027年黑龙江龙江职业学院单招职业技能考试模拟试卷(B卷)附答案详解
- 2026年甘肃省平凉市灵台县蒲窝镇招聘大学生村文书笔试模拟试题及答案详解
- 2025年山东龙口职业学院高职单招职业技能考试题库附答案详解AB卷
- 2026年甘肃省平凉市泾川县考核招聘农村订单定向医学生和协议培养师范毕业生16人考试参考题库及答案详解
- 2025年黑龙江省鸡西市单招职业技能考试模拟试卷【突破训练】附答案详解
- 2026年甘肃省白银市工会人员招聘笔试参考试题及答案详解
- 重庆石柱县2026年专职社区工作者与后备人员招聘考试试卷-含答案解析
- 城市更新项目策划与实施方案
- 2026年湖南省中考数学真题
- 贝恩 -2026年中国购物者报告系列一 增长承压中国快消品市场显现新格局 消费者追求“质价比”新渠道争夺战打响 202606
- 2026新版生产安全事故应急预案
- 注册安全工程师延续履职证明
- 2026年高考(江西卷)历史试题及答案
- 护理技术操作规范与标准
- 售后三方协议合同范本
- 毒品培训知识总结课件
- 水利工程外观质量检查(测)记录表、评定表、赋分表、赋分统计
评论
0/150
提交评论