资源预览内容
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
第9页 / 共13页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数据结构课程设计报告课程设计题目:(计算机运算符的优先级比较)学 生 姓 名 :田甜专 业 :信息管理与信息系统班 级 :0930602指 导 老 师 :徐青2011年 6 月 19 一、 课程设计目的:课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。二:题目简介: 设计一个简单的计算机运算界面,实现计算机的简单的”+”,”-“,”*”,”/”运算,以及运算符(+,-,*,/,())的优先级比较。三:流程图或者模块图:入栈模块流程图:返回错误判断栈的长度 栈以满 栈 未 满字符入栈栈的长度加1 出栈模块流程图:判断栈的长度返回错误 栈已满 栈 未 满栈的长度减1字符出栈判断优先模块图:判断优先级“+,-,*,/,(),#”返回“”四则运算模块流程图:输出结果X*Y输出结果X+Y四则运算(X,Y) 符号为“*” 符号为“+”输出结果X-Y 符号为“/” 符号为“-”输出结果X/Y四:程序清单和运行结果:#include#include#include typedef struct/建立一个栈char a100;int top; sequence_stack;void Showsystem()/显示系统主界面printf(nnnnnn);printf(tt#*#n);printf(tt# 0 0 0 #n);printf(tt# 计算器的简单运算! #n);printf(tt#-#n);printf(tt# 加减乘除 #n);printf(tt#*#n);printf(tt# #n);printf(tt# #n);printf(tt# #n);printf(tt#*#n);printf(tt#请按回车键进入菜单);getchar();void init(sequence_stack *st)/初始化栈st-top=0;int is_operation(char op)/判断是否为运算符号switch(op)case +:case -:case *:case /:return 1;default :return 0;int priority(char op) /要压入栈的优先级 switch(op)case #:return -1;case (:return 0;case +:case -:return 1;case *:case /:return 2;default :return -1;void postfix(char e, char f) / 将字符串变为后缀表达式char opst100;int t,i=0,j=0,top=0;opsttop=#;top+;while(ei!=#)if(ei=0&ei=9)|ei=.) fj+=ei;/遇到数字和小数点直接写入后缀表达式/else if(ei=()/遇到左括号进入操作符栈/opsttop=ei;top+;else if(ei=)/遇到右括号将其对应的左括号的操作符全部写入后缀表达式/t=top-1;while(opstt!=()fj+=opst-top;t=top-1;top-;else if(is_operation(ei)fj+= ;/用空格分开两个操作符/while ( priority(ei)=0&f*i=0&f*i=0&fi=9)obsttop=readnumber(f,&i);top+;else if(fi= ) i+;else if(fi=+) x2=obst-top;x1=obst-top;obsttop=x1+x2;top+;i+;else if(fi=-) x2=obst-top;x1=obst-top;obsttop=x1-x2;top+;i+;else if(fi=*) x2=obst-top;x1=obst-top;obsttop=x1*x2;top+;i+;else if(fi=/) x2=obst-top;x1=obst-top;obsttop=x1/x2;top+;i+;return obst0;void menu(char e,char f)system(cls); /输入一组字符串estrlen(e)=#;postfix(e, f); /将字符串转化为后缀表达式 printf(nnn);printf(tt|-计算器-|n);printf(tt#*#n);printf(tt# #n);printf(tt# 您要求的的结果:%.2f n,evalpost(f); printf(tt# #n);printf(tt#*#n);printf(tt|-|-|-|-|n);printf(tt| 1 | 2 | 3 | + |n);printf(tt|-|-|-|-|n);printf(tt| 4 | 5 | 6 | - |n);printf(tt|-|-|-|-|n);printf(tt| 7 | 8 | 9 |
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号