田甜数据结构课程设计报告

上传人:xins****2008 文档编号:111247278 上传时间:2019-11-02 格式:DOC 页数:13 大小:202KB
返回 下载 相关 举报
田甜数据结构课程设计报告_第1页
第1页 / 共13页
田甜数据结构课程设计报告_第2页
第2页 / 共13页
田甜数据结构课程设计报告_第3页
第3页 / 共13页
田甜数据结构课程设计报告_第4页
第4页 / 共13页
田甜数据结构课程设计报告_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《田甜数据结构课程设计报告》由会员分享,可在线阅读,更多相关《田甜数据结构课程设计报告(13页珍藏版)》请在金锄头文库上搜索。

1、 数据结构课程设计报告课程设计题目:(计算机运算符的优先级比较)学 生 姓 名 :田甜专 业 :信息管理与信息系统班 级 :0930602指 导 老 师 :徐青2011年 6 月 19 一、 课程设计目的:课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。二:题目简介: 设计一个简单的计算机运算界面,实现计算机的简单的”+”,”-“,”*”,”/”运算,以及运算符(+,-,*,/,())的优先级比较。三:流程图或者模块图:入栈模块流程图:返回错误判断栈的长度 栈以满 栈 未 满字符入

2、栈栈的长度加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);pr

3、intf(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 /

4、: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;/遇到

5、数字和小数点直接写入后缀表达式/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-to

6、p;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 |

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号