- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计说明书(表达式求值)
**大学
数据结构
课 程 设 计 说 明 书
?
?
?
学生姓名:
?***
学 号:
?**********
学 院:
**********学院
专 业:
?网络工程
题 目:
利用栈求表达式的值
成绩
?
指导教师
******
?
?
2009 年 7
.设计目的
数据结构课程设计的目的是,通过设计掌握数据结构课程中学到的基本理论和算法并综合运用于解决实际问题中,它是理论与实践相结合的重要过程。设计要求学会如何对实际问题定义相关数据结构,并采用恰当的设计方法和算法解决问题,同时训练学生进行复杂程序设计的技能和培养良好的程序设计习惯。
设计内容和要求
利用栈求解表达式的值。
设计内容:
建立试题库文件,随机产生n个题目;
题目涉及加减乘除,带括弧的混合运算;
利用栈求解表达式的值;
随时可以退出;
保留历史分数,能回顾历史,给出与历史分数比较后的评价
基本要求:
1)系统功能的完善;
2)代码中有必要的注释
3.本设计所采用的数据结构
栈的数组表示方法(静态分配整型指针)
typedef struct
{
typedef data[MAXSIZE];
int top;
};
4.功能模块详细设计
1.功能一:中缀表达式转化为后缀表达式;
2.功能二:后缀表达式求值;
3.功能三:文件读写;
4.功能四:作业评分;
5.功能五:历史成绩本次成绩比较;
6.功能六:输入“~”符号退出程序
4.1 详细设计思想
1.首先实现表达式的求值:
要用栈求解一个表达式,就要将这个表达式翻译成正确求值的一个机器指令序列,即正确解释表达式,了解算术四则混合运算的规则:
(1).先乘除,后加减;
(2).从左算到右;
(3).先括号内,后括号外
再根据这个运算优先的规定来实现对表达式的编译或解释执行.
任何一个表达式都是由操作数(st)和操作符(op)组成的,根据四则运算基本法则,在运算的每一步中,任意两个相继出现的操作符op1和op2之间的优先关系最多有以下3种:
(1).op1的优先级低于op2
(2).op1的优先级等于op2
(3).op1的优先级小于op2
为实现运算符优先,可以使用两个操作栈,操作栈st,用于存放操作数及运算结果;操作栈op,用于存放操作符。
算法思想:
(1).首先将中缀表达式转换成后缀表达式:
1.从左至右依次扫描中缀表达式的每一个字符,如果是数字字符和“.” ,则直接将它们写入后缀表达式中。
2.如果遇到的是开括号“(”,则将它压入一个操作符栈中,它表明一个新的计算层次的开始,在遇到和它匹配的闭括号时,将栈中元素弹出并放入后缀表达式中,直到栈顶元素为开括号“(”时,将栈顶元素“(”弹出,表明这一层括号内的操作处理完毕。
3.如果遇到的是操作符,则将该操作符和操作符栈顶元素比较:
a)当所遇到的操作符的优先级小于或等于栈顶元素的优先级时,则取出栈顶元素放入后缀表达式,并弹出该栈顶元素,反复执行直到栈顶元素的优先级小于当前操作符的优先级;
b)当所遇到的操作符的优先级大于栈顶元素的优先级时,则将它压入栈中。
重复上述步骤直到遇到中缀表达式的结束‘\0’,弹出栈中的所有元素并放入后缀表达式中,算法结束。
(2).对后缀表达式求值:
将遇到的操作数暂存在一个操作数栈中,凡是遇到操作符,便从栈中弹出两个操作数执行相应的操作,并将结果存于操作数栈中,直到表达式处理完毕,最后压入栈中的数就是表达式的结果。
2.建立试题库文件“shitiku.txt”和成绩库文件“chengji.txt”。
试题库文件“shitiku.txt”中存储20道带括号的四则混合运算;成绩库文件“chengji.txt”中存储历史成绩。
3.从试题库文件“shitiku.txt”中读出“total”道题:
当做的题目数小于“total”时,用随机函数产生每次要做的题号。
4.对本次作业进行评分:
本次作业共做题“total”道,每道“100/total”分;
做对题目数为“r”,本次作业得分为“r*(100/total)”。
5.输入“~”符号时,退出程序。
4.2 源代码
#includestdio.h
#includestdlib.h
#define MAXSIZE 30
int length[20]={13,15,12,9,11,17,13,15,9,11,11,11,12,10,15,13,18,16,16,9};
/*shitiku文件中20个字符串数组的长度*/
typedef struct
{
float data[MAXSIZE];
int top;
};
float compvalu
您可能关注的文档
- 市政路桥施工工艺图中英文对照版.docx
- 市政沥青道路施工组织设计172429418.docx
- 市政街道改造施工合同(2篇).docx
- 市政立交施工组织设计(五).docx
- 市政桥梁工程表格(施管、施记、质检、试验).docx
- 市政施工表格表式1(从首页到试验表1).docx
- 市政雨污水沟槽开槽施工方案文档.docx
- 市政施工表格表式3(从试验表24到55).doc.docx
- 事故浆液箱安装作业指导书(倒装).docx
- 事故浆液箱作业指导书.docx
- 实验室危废随意倾倒查处规范.ppt
- 实验室危废废液处理设施规范.ppt
- 实验室危废处置应急管理规范.ppt
- 初中地理中考总复习精品教学课件课堂讲本 基础梳理篇 主题10 中国的地理差异 第20课时 中国的地理差异.ppt
- 初中地理中考总复习精品教学课件课堂讲本 基础梳理篇 主题10 中国的地理差异 第21课时 北方地区.ppt
- 危险废物处置人员防护培训办法.ppt
- 危险废物处置隐患排查技术指南.ppt
- 2026部编版小学数学二年级下册期末综合学业能力测试试卷(3套含答案解析).docx
- 危险废物处置违法案例分析汇编.ppt
- 2026部编版小学数学一年级下册期末综合学业能力测试试卷3套精选(含答案解析).docx
最近下载
- 市政给水管道(球墨铸铁)施工组织设计114页.pdf VIP
- 《混凝土结构设计原理》22春平时作业1答卷.doc VIP
- 人教PEP版英语五年级上册期末测试卷(含听力书面材料及答案).doc VIP
- (高清版)DB33∕T 926-2014 养老机构服务与管理规范 .pdf VIP
- GB∕T33000-2025《大中型企业安全生产标准化管理体系要求》审核(评审)指导之4领导作用:“4.1安全领导力”要素提问、专业解答和证实(雷泽佳编制2025A0).pdf VIP
- JACK杰克缝纫机A6F-E A6F-EH A6F-E-PK A6F-EH-PK说明书用户手册.pdf
- 学校教学楼电梯安装施工方案.doc VIP
- 江心洲污水二通道承插式管片技术应用研究.pdf VIP
- 沉淀的溶解平衡 .pdf VIP
- 2025学年七年级下学期期末考试生物试卷及答案.docx VIP
原创力文档


文档评论(0)