




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
济南大学信息科学与工程学院 计算机科学与技术(软件外包方向) 计14级数据结构课程设计 实验报告起止时间:2015.12.28-2015.12.31课程设计题目表达式求值(计算器)设计小组成员及成绩分配班级:成员列表:编译系统、运行环境和已实现的功能:1. 编译系统:Visual C+ 6.0;运行环境:Windows XP 2. 实现功能:(a)实数的加减乘除混合运算;(b)带括号运算; (c)乘方运算;(d)三角函数运算程序功能流程框图:三角函数计算退出实数的加减乘除混合运算计算器 主要算法描述:(可以使用流程图或其它的算法描述方法)一、四则运算1、链栈实现括号和四则运算优先级2、输入并建立表达式,运用数组结构体构建将整型数字与操作符结合定义运算符的优先级。typedef struct yxjchar operat;int rank;yxj;3、分别建立一个操作数栈和操作符栈存放数字和操作符,定义操作符栈第一个元素优先级最低。4、自左向右扫描字符串遇到字符串中的数字时一律提取转换成double型存入操作数栈。遇到操作符时,则将当前运算符的优先级数与运算符栈顶元素的优先级数相比较。若当前运算符的优先级数大,则进栈;反之,则取出栈顶的运算符,并在数栈中连续取出两个栈顶元素作为运算对象进行运算,并将运算结果存入数栈,然后继续比较当前运算符与栈顶元素的优先级。直到当前运算符进栈。5、对比运算符进行+ - * /() 运算。二、三角函数1、自左向右扫描字符串遇到字符串中的数字时提取转换成double型存入数栈。2、进行三角函数运算。测试实例与测试结果(输入数据与运行结果,以及执行结果的截屏):1. 输入:10*(12+16)/2-15=2. 输出:125执行结果: 1. 输入:55+6-10/2=2. 输出:3126执行结果:1、输入:sin302、输出:0.5执行结果:1、输入:cos602、输出:0.5执行结果:1、 输入:cos60 2、输出:0.5执行结果:测试实例与测试结果(输入数据与运行结果,以及执行结果的截屏):1、 输入:tan452、 输出:13、 执行结果: 设计过程中遇到的问题及解决办法:问题:算数表达式以字符串输入,操作数和操作符的提取;解决办法:两两操作符之间如有数字将中间的数字提取强制转换成double型;参考文献:(在设计中参考的书籍、网站等资料)1. 朱振元,数据结构C+语言描述,清华大学出版社,2008年,页码:2. /detail/gszhouyi/738777指导老师评议:成绩评定: 指导教师签名:附件:(程序源代码)#include#include#include#include#define N 100#define pai 3.1415926typedef struct yxjchar operat;int rank;yxj;typedef struct strchar dataN;zs;void sjhs(void)char s10,a10;double y,x;printf(请输入(sin cos tan 角度制)表达式:n);scanf(%s,s);if(strstr(s,sin)!=0)int i=0,j=0;while(si!=0)if(si=0&si=0&si=0&si=9)sj+=si;i+;sj=0;x=atof(s);y=tan(x*pai/180);elseprintf(格式错误n);return;printf(%lfn,y);printf(*1、继续 *n);printf(*0、返回上一层*n);scanf(%s,a);if(strcmp(a,0)=0)return;else if(strcmp(a,1)=0)sjhs();elseprintf(没有该选项n);void szys(yxj mark)yxj osN;char a10;char ch;double nsN;zs zhan20;int numbN;int Len,p=0,q=1,i,o=1,n=0; char dataN;os0=mark0;ns0=0;printf(请输入算术(+ - * / )表达式(以 = 结束):n);scanf(%s,data);if(strcmp(data,+)=0|strcmp(data,-)=0|strcmp(data,*)=0|strcmp(data,/)=0|strcmp(data,)=0|strcmp(data,=)=0)printf(格式错误n);return;Len=strlen(data);numb0=0;for(i=0;i20;i+)zhani.data0=0;for(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)/2.datat+=dataj;zhan(p+k)/2.datat=0;if(zhan(p+k)/2.data0!=0)nsn+=atof(zhan(p+k)/2.data);p+;for(j=0;joso-1.rank&markj.operat!=() oso+=markj;break;else double numb1,numb2,numb;switch(ch=os-o.operat)case +:numb1=ns-n;numb2=ns-n;numb=numb1+numb2;nsn+=numb;break;case -:numb1=ns-n;numb2=ns-n;numb=numb2-numb1;nsn+=numb;break;case *:numb1=ns-n;numb2=ns-n;numb=numb2*numb1;nsn+=numb;break;case /:numb1=ns-n;numb2=ns-n;if(numb1=0)printf(无效操作n);return;elsenumb=numb2/numb1;nsn+=numb;break;case :numb1=ns-n;numb2=ns-n;numb=pow(numb2,numb1);nsn+=numb;break;else if(datai=0&datai=9);else if(datai=.);elseprintf(格式错误,请重新输入:n);szys(mark);break;printf(%lfn,ns0);printf(*1、继续 *n);printf(*0、返回上一层*n);scanf(%s,&a);if(strcmp(a,0)=0)return;else if(strcmp(a,1)=0)szys(mark);elseprintf(没有该选项n);int main ()yxj mark9;mark0.operat=#;mark0.rank=-1;mark1.operat=+;mark1.rank=1;mark2.operat=-;mark2.rank=1;mark3.operat=*;mark3.rank=2;mark4.operat=/;mark4.rank=2;mark5.operat=(;mark5.rank=-1;mark6.operat=);mark6.rank=-1;mark7.operat=;mark7.rank=0;mark8.operat=;mark8.rank=3;while(1)char i10;p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高精度各向异性测量-全面剖析
- 纳米复合储能材料-全面剖析
- 备战2025年高考地理一轮复习第十八单元中国地理单元训练A卷含解析
- 基于机器学习的云安全检测-全面剖析
- 小学美术教学活动实施计划
- 2025秋季班主任课程改革工作计划
- 美容行业产品供货进度计划
- 2025年二年级语文教学计划与评价体系
- 惠安一中2025学年第一学期课程优化计划
- 2025年度环保项目质量监控与安全计划
- 电梯的中修和大修工作指导规范
- 小学科学课堂教学设计策略课件
- 中药饮片出库单
- 宿舍楼施工方案方案
- 甲醇-水精馏塔
- 中国话剧史专题知识
- GB/T 15544.1-2023三相交流系统短路电流计算第1部分:电流计算
- GB/T 90.3-2010紧固件质量保证体系
- GB/T 18799-2020家用和类似用途电熨斗性能测试方法
- 科技公司涉密计算机软件安装审批表
- GA/T 1369-2016人员密集场所消防安全评估导则
评论
0/150
提交评论