欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据结构课程设计报告(二)表达式求值(计算器)(共7页).doc

    • 资源ID:14207822       资源大小:222KB        全文页数:7页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构课程设计报告(二)表达式求值(计算器)(共7页).doc

    精选优质文档-倾情为你奉上课程设计报告课程名称: 数据结构课程设计 设计题目: 表达式求值(计算器) 学 院: 信息科学与工程学院 专 业: 计算机科学与技术(软件外包)姓 名: 指导教师:二零一五年 十二月 二十九日专心-专注-专业一、设计内容与要求1、问题描述 设计一个算术计算器,能运算包括四则运算、括号的表达式的运算。2、设计要求实现()、+、-、*、/、 等运算,实现小数和整数混合运算,优先级的处理,能判断算术表达式是否正确等。二、算法设计1、输入并建立表达式,运用数组结构体构建将整型数字与操作符结合定义运算符的优先级。typedef struct yxjchar operat;int rank;yxj;2、分别建立一个操作数栈和操作符栈存放数字和操作符,定义操作符栈第一个元素优先级最低。3、自左向右扫描字符串遇到字符串中的数字时一律提取转换成double型存入操作数栈。遇到操作符时,则将当前运算符的优先级数与运算符栈顶元素的优先级数相比较。若当前运算符的优先级数大,则进栈;反之,则取出栈顶的运算符,并在数栈中连续取出两个栈顶元素作为运算对象进行运算,并将运算结果存入数栈,然后继续比较当前运算符与栈顶元素的优先级。直到当前运算符进栈。4、对比运算符进行+ - * /() 运算。三、程序代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#define N 100typedef 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;i<20;i+)zhani.data0='0'for(i=0;i<Len;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<numbq-1;j+)if(dataj>='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;j<8;j+)if(markj.operat=datai)break;while(1)if(markj.operat='(')oso+=markj;break;else if(markj.rank>oso-1.rank&&markj.operat!='(')oso+=markj;break;else double numb1,numb2,numb;ch=os-o.operat;if(ch='+')numb1=ns-n;numb2=ns-n;numb=numb1+numb2;nsn+=numb;if(ch='-')numb1=ns-n;numb2=ns-n;numb=numb2-numb1;nsn+=numb;if(ch='*')numb1=ns-n;numb2=ns-n;numb=numb2*numb1;nsn+=numb;if(ch='/')numb1=ns-n;numb2=ns-n;if(numb1=0)printf("无效操作n");return;elsenumb=numb2/numb1;nsn+=numb;if(ch='')numb1=ns-n;numb2=ns-n;numb=pow(numb2,numb1);nsn+=numb;else if(datai>='0'&&datai<='9');else if(datai='.');elseprintf("格式错误,请重新输入:n");szys(mark);break;printf("%lfn",ns0);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 iN;printf("*1、计算器*n");printf("*0、退出 *n");scanf("%s",&i);if(strcmp(i,"0")=0)break;else if(strcmp(i,"1")=0)szys(mark);elseprintf("没有该选项n");四、运行测试1.正常四则运算2.乘方运算3.除数为零时4.格式出现错误5.小数运算五、结 论 这次课程设计让我们更加了解大一学到的C和这个学期学到的数据结构。课设题目要求不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力和更加了解编程思想和编程技巧。 这次课程设计也让我们有一个深刻的体会,那就是细节决定成败,编程最需要的是严谨,如何的严谨都不过分,往往检查了半天发现错误发生在某个括号,分号,引号,或者数据类型上。程序设计时,也不要怕遇到错误,在实际操作过程中犯的一些错误还会有意外的收获。在具体操作中这学期所学的数据结构的理论知识得到巩固,达到课程设计的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到C语言具有的语句简洁,使用灵活,执行效率高等特点。 这个程序是我们3个人完成的,我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工作的失败。实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们成功的一项非常重要的保证。而这次课程设计也正好锻炼我们这一点,这也是非常宝贵的。

    注意事项

    本文(数据结构课程设计报告(二)表达式求值(计算器)(共7页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开