网站大量收购闲置独家精品文档,联系QQ:2885784924

表达式求值课程设计(数据结构C语言版).docx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计报告 课程设计题目: 表达式求值 姓 名 胡*其 学 号 *** 班 级 *****17Z 指导教师 徐** 2017年 12月 30日 东华理工大学 课程设计评分表 学生姓名:胡*其 班级:*****17Z 学号*** 课程设计题目:表达式求值 项目内容 满分 实 评 选 题 能结合所学课程知识、有一定的能力训练。符合选题要求 (1人一题) 10 工作量适中,难易度合理 10 能 力 水 平 能熟练应用所学知识,有一定查阅文献及运用文献资料能力 10 理论依据充分,数据准确,公式推导正确 10 能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等 10 能体现创造性思维,或有独特见解 10 成 果 质 量 总体设计正确、合理,各项技术指标符合要求。 10 说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰 10 设计说明书栏目齐全、合理,符号统一、编号齐全。 格式、绘图、表格、插图等规范准确,符合国家标准 10 有一定篇幅,字符数不少于5000 10 总 分 100 指导教师评语: 指导教师签名: 年 月 日 目 录 TOC \o 1-2 \u 一.题目: PAGEREF _Toc312359512 \h 1 二.设计任务: PAGEREF _Toc312359513 \h 1 三.问题分析: PAGEREF _Toc312359514 \h 1 四.结构分析: 1 4.1用于存储操作数和运算结果(Sfloat) 1 4.2用于存储运算符(Schar) PAGEREF _Toc312359517 \h 2 4.2系统中子程序及功能要求 PAGEREF _Toc312359517 \h 2 五.实现流程 3 5.1程序主流程图 3 5.2求值操作流程 3 六.个性功能介绍 4 七.部分问题及解决方案 5 7.1不能进行带有小数点的数的运算 5 7.2在输错后,跳回主界面直接提示指令输入错误,重输 6 八.课程设计小结 7 九.附录一:部分测试数据 7 十.附录二:源代码 7 PAGE \* MERGEFORMAT15 一、题目: 表达式求值 二、课程设计任务: 要求能输入一个带“( )”的任意多位实数的表达式。 要求: 1、有合理的提示; 2、有非法数据的判断; 3、能够进行多次计算。 测试数据及测试结果请在上交的资料中写明; 三、问题分析: 任何一个表达式都是由操作符,运算符组成的。我们分别用顺序栈来寄存表达式的操作数和运算符。栈是限定于紧仅在表尾进行插入或删除操作的线性表。顺序栈的存储结构是利用一组连续的存储单元依次存放自栈底到栈顶的数据元素。 为了实现算符优先算法。可以使用两个栈。一个称为Schar,用以寄存运算符,另一个称做Sfloat,用以寄存操作数或运算结果。 1.首先置操作数栈为空栈,表达式起始符”#”为运算符栈的栈底元素; 2.依次读入表达式,若是操作符即进Sfloat栈,若是运算符则和Schar栈的栈顶运算符比较优先权后作相应的操作,直至整个表达式求值完毕(即Schar栈的栈顶元素和当前读入的字符均为”#”)。 四、结构分析: 1.用于存储操作数和运算结果(Sfloat): ADT s_float{ 数据元素:此链栈中的所有元素类型为字符型的数字字符 数据关系:栈中数据元素之间是线性关系。 基本操作: (1) Init(Sfloat *S); 初始化数字栈 (2)Push(Sfloat*S,float e) 进栈 (3)Pop(Sfloat*S,float*x) 出栈 (4)GetTop(Sfloat *S,float *x) 取栈顶 (5)void ClearStack(Sfloat *S) 清空栈 } ADT s_float 2.用于存储运算符(Schar): ADT s_char{ 数据对象D:元素类型为字符型的符号字符 数据关系R:栈中数据元素之间是线性关系。 基本操作: (1)Init(Schar *S) 初始化字符栈 (2)Push(Schar *S,char x) 进栈 (3)Pop(Schar *S,char *x) 出栈 (4)GetTop(Schar *S,char *x) 取栈顶 (5)ClearStack(Schar *S) 清空栈 } ADT

文档评论(0)

yigang0925 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档