数据结构课程设计报告(二)表达式求值(计算器)(共7页).doc
《数据结构课程设计报告(二)表达式求值(计算器)(共7页).doc》由会员分享,可在线阅读,更多相关《数据结构课程设计报告(二)表达式求值(计算器)(共7页).doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上课程设计报告课程名称: 数据结构课程设计 设计题目: 表达式求值(计算器) 学 院: 信息科学与工程学院 专 业: 计算机科学与技术(软件外包)姓 名: 指导教师:二零一五年 十二月 二十九日专心-专注-专业一、设计内容与要求1、问题描述 设计一个算术计算器,能运算包括四则运算、括号的表达式的运算。2、设计要求实现()、+、-、*、/、 等运算,实现小数和整数混合运算,优先级的处理,能判断算术表达式是否正确等。二、算法设计1、输入并建立表达式,运用数组结构体构建将整型数字与操作符结合定义运算符的优先级。typedef struct yxjchar operat;int
2、 rank;yxj;2、分别建立一个操作数栈和操作符栈存放数字和操作符,定义操作符栈第一个元素优先级最低。3、自左向右扫描字符串遇到字符串中的数字时一律提取转换成double型存入操作数栈。遇到操作符时,则将当前运算符的优先级数与运算符栈顶元素的优先级数相比较。若当前运算符的优先级数大,则进栈;反之,则取出栈顶的运算符,并在数栈中连续取出两个栈顶元素作为运算对象进行运算,并将运算结果存入数栈,然后继续比较当前运算符与栈顶元素的优先级。直到当前运算符进栈。4、对比运算符进行+ - * /() 运算。三、程序代码#include#include#include#include#define N 1
3、00typedef struct yxjchar operat;int rank;yxj;typedef struct strchar dataN;zs;void szys(yxj mark)yxj osN;char ch;double nsN;zs zhan20;int numbN;int Len,p=0,q=1,i,o=1,n=0; char dataN;os0=mark0;printf(请输入算术(+ - * / )表达式(以 = 结束):n);scanf(%s,data);Len=strlen(data);numb0=0;for(i=0;i20;i+)zhani.data0=0;for
4、(i=0;iLen;i+) int t=0;if(datai=|datai=+|datai=-|datai=*|datai=/|datai=(|datai=)|datai=)int j,k=0;if(datai=|datai=|datai=+|datai=-|datai=*|datai=/)&(datai-1=|datai-1=+|datai-1=-|datai-1=*|datai-1=/)printf(格式错误n);return;numbq+=i;while(zhan(p+k)/2.data0!=0)k+;for(j=numbq-2;j=0&dataj=9|dataj=.)zhan(p+k)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 报告 表达式 求值 计算器
限制150内