欢迎来到天天文库
浏览记录
ID:13117764
大小:72.50 KB
页数:8页
时间:2018-07-20
《数据结构课程设计-报告模板》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、黄淮学院“数据结构”课程设计报告系(院):信息工程学院设计题目:算数表达式求值专业班级:计算机科学与技术小组成员:张硕指导教师:汪洋完成时间:2014~2015学年第二学期-7-数据结构课程设计报告²课程设计目的1、能够灵活地应用所学数据结构知识,根据加工数据对象的特征,选择适当的数据结构、存贮结构及相应算法,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。2.初步掌握各种算法在时间和空间的分析技巧;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.能够进行算法设计和程序设
2、计,并且使所设计的程序结构清楚,正确易读,并上机调试通过;提高综合运用所学的理论知识和方法独立分析和解决问题的能力。4.用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。5.培养较强的实习和实践能力;较强的分析问题和解决问题的能力。²课程设计任务与要求:[问题描述]算数表达式求值,主要解决运算符优先级问题。[基本要求]运用栈解决与实现[测试数据]加减乘除与括号运算[实现提示]按四则运算进行 一需求分析四则运算二概要设计本程序只考虑
3、”+”,”-“,”*”,”/”,”(“,”)”,6种运算符1.先进行乘除运算,在进行加减运算。2.对于相同的优先级,从左向右进行运算。3.若要改变优先级,可使用括号。对有括号的表达式,先计算括号内,在计算括号外。三详细设计(2+3)*5首先扫描到(,这时还不知道右括号在哪,因此,需要将左括号保存起来。接着继续扫描下一个字符2,也不知道该字符需要和后面的数据进行什么操作,继续获取下一个字符+,这时可知道是2+上某一个数,但具体还不知道是什么数,因此需要将+号保存。继续获取下一个字符3,这时可知道2+3,但是还不行,因
4、为如果后边出现/或者*,要先计算/或者*,所以先将3保存起来,继续读取下一个字符),这时,就应该将前面保存的2=3取出来计算,得出结果。在上面的过程中,遇到右括号),则计算前面+的内容,表示右括号的优先级低于+号的优先级。四设计与调试分析先进行加减乘除运算,然后进行复合运算-7-数据结构课程设计报告五用户手册输入一个算式,以=号结束注:任意输入一个数据后进入系统,然后根据系统提示操作即可。六测试成果七附录(源程序清单)#include#include#defineSIZE50t
5、ypedefintDATA;-7-数据结构课程设计报告typedefstructstack{DATAdata[SIZE+1];inttop;}seqstack;seqstack*seqstackInit(){seqstack*p;if(p=(seqstack*)malloc(sizeof(seqstack))){p->top=0;returnp;}returnNULL;}voidseqstackFree(seqstack*s){if(s)free(s);}intseqstackIsEmpty(seqstack*s)
6、{return(s->top==0);}voidseqstackClear(seqstack*s){s->top=0;}intseqstackIsFull(seqstack*s){return(s->top==SIZE);}intseqstackPush(seqstack*s,DATAdata){if((s->top+1)>SIZE){printf("栈溢出!");return0;}s->data[++s->top]=data;return1;}DATAseqstackPop(seqstack*s){-7-数据
7、结构课程设计报告if(s->top==0){printf("栈为空");exit(0);}return(s->data[s->top--]);}DATAseqstackPeek(seqstack*s){if(s->top==0){printf("栈为空");exit(0);}return(s->data[s->top]);}intIsOperator(charc){switch(c){case'+':case'-':case'*':case'/':case'(':case')':case'=':return1;br
8、eak;default:return0;break;}}intPRI(charoper1,charoper2){intpri;switch(oper2){case'+':case'-':if(oper1=='('
9、
10、oper1=='=')pri=-1;elsepri=1;break;-7-数据结构课程设计报告case'*':case'/':if(oper1=
此文档下载收益归作者所有