




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C 语言集中上机实验报告一、 需求分析(1)制作一个计算器,能够计算四则混合运算以及乘方和开方,并显示出正确的结果。(2)程序能根据运算符的高低进行运算(开放符号置左置右不影响正常运算)(3)可以输入括号二、 设计思路(1)运用栈以及结构体来实现,将数字与运算符分别放在结构体与栈里面,将栈以及结构体里的字符数值一一匹配计算,将得出的结果保存到另一个栈里(zhan3)。(2)开始,对所输入的字符串进行转化,把运算符存放在zhan2里面,把数值存放到 data 结构体里面,然后进行运算和操作。( 3)运用循环来实现无限输入,用数组 nibo 来跟踪整个过程,每次运算后将值置空,若检测到空,计算得出
2、结果,退出输入q。三、 流程图四、 主程序段#include#include#includedouble jisuan(char a)int i=1,j,k,m,cnt=0,t1=0,t2=0,t3=0;char nibo50,zhan250;/zhan2 存放的是运算符double x,n,l,z=0,zhan350;/暂存结果typedef structdouble d1;int d2;dd;typedef structdd data50;int top;zhan1;zhan1 *shu;shu=(zhan1 *)malloc(sizeof(zhan1); shu-top=0;while(
3、ai!=0) if(ai=0&ai=0&aj=9) j+;j-; for(k=i;k=0&aj=9)j+;j-;for(k=i;kdata+shu-top.d1=x; shu-datashu-top.d2=+cnt; nibo+t1=0+shu-datashu-top.d2; nibot1+1=0;/如果是数字那么就保存到结构体里 的 dd 数组里的 第二个成员里 else if(ai=() zhan2+t2=ai; i+;else if(ai=)j=t2;while(zhan2j!=() nibo+t1=zhan2j; nibot1+1=0; j-;t2=j-1;i+;else if(ai=
4、+) while(t20&zhan2t2!=() nibo+t1=zhan2t2; nibot1+1=0;t2-; zhan2+t2=ai;i+;else if(ai=-)if(ai-1=$)a0=0;i=0;else if(ai-1=()ai-1=0;ai-2=(;i=i-2;t2-;else while(t20&zhan2t2!=() nibo+t1=zhan2t2;nibot1+1=0;t2-;zhan2+t2=ai;i+;else if(ai=*|ai=/)while(zhan2t2=*llzhan2t2=7llzhan2t2=Allzhan2t2=#) nibo+t1=zhan2t2
5、;nibot1+1=0;t2-;zhan2+t2=ai;i+;else if(ai=Allai= #)while(zhan2t2=Allzhan2t2=#) nibo+t1=zhan2t2;nibot1+1=0;t2-;zhan2+t2=ai;i+;/把输出的多项式中的数字字符先转换成数值型存入结构体里,然后把加减乘除等的字符存 入到zhan2里-这是转化过程并存储入站下面就是开始计算结果相当于出站的过程把dd结构体里的数值取出和zhan2的字符来进 行运算,当前结果存储到zhan3里,就用nibo数组来判断是否计算完毕while(t20)nibo+t1=zhan2t2;nibot1+1=0;
6、t2-;j=1;t3=0;while(j= 0&n iboj!=人&n iboj!=#)/for(i=1;itop;i+)if(int)(niboj-0)=shu-datai.d2)m=i;break;zhan3+t3=shu-datam.d1;else if(niboj=+)zhan3t3-1=zhan3t3-1+zhan3t3;t3-;else if(niboj=-)zhan3t3-1=zhan3t3-1-zhan3t3;t3-;else if(niboj=*)zhan3t3-1=zhan3t3-1*zhan3t3;t3-;else if(niboj=/)zhan3t3-1=zhan3t3
7、-1/zhan3t3;t3-;else if(niboj=A) zhan3t3-1=pow(zhan3t3-1,zhan3t3); t3-;else if(niboj=#) zhan3t3=sqrt(zhan3t3);j+;return zhan3t3;void main()/for(;)char x,a50;double jieguo;int i=0;a0=$;printf(”#表示开方,人表示乘方(支持负数)n);退出请输入 qprintf(请输入表达式无需输入=退出请输入 qnn);scanf(%c,&x);if(x=q) break;while(x!=n)a+i=x;scanf(%c,&x);ai+1=0;jieguo=jisuan(a);printf(n);printf(” 结果为:lf,jieguo);printf(nnn);printf(退出请输入q继续请直接输入nn); 五、 调试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023六年级数学上册 四 人体的奥秘-比信息窗2 人体中的水分-按比分配说课稿 青岛版六三制
- 河北省邯郸市肥乡区七年级历史下册 第三单元 明清时期:统一多民族国家的巩固与发展 第22课 活动课 中国传统节日的起源说课稿 新人教版001
- 考点解析-人教版八年级上册物理声现象《声音的特性》章节测评试题(含答案解析版)
- 梯级拦蓄供水工程环境影响报告书
- 基于价值共创理论的种业企业品牌价值评估多案例研究
- 自然材料在大班区域游戏中的投放与使用研究
- 机电设备安装施工风险评估方案
- 七年级地理下册 8.4 法国说课稿 湘教版
- 达标测试人教版八年级上册物理声现象《声音的特性声的利用》难点解析试题(含答案及解析)
- 基于价值链视角W公司成本管理研究
- 温州市龙湾区卫生健康系统事业单位招聘卫生专业技术人员笔试真题2024
- 2025年抗肿瘤药物授权培训考核试题(含答案)
- 车辆年检服务合同5篇
- 2026厦门银行秋季校园招聘笔试备考题库及答案解析
- 2025年黑龙江省省级机关遴选考试笔试试题(附答案)
- 2025年hsk监考资格考试真题及答案
- 湖南省九校联盟2026届高三上学期9月第一次联考历史试题(含答案)
- 2025年高压电工复审完整题库(附答案)
- 建设工程监理合同(GF-2015-0212)2025版
- 高职院校校企合作实习管理方案
- 主题活动四 健康友谊助成长说课稿-2025-2026学年小学综合实践活动苏少版新疆专用2024三年级上册-苏少版(新疆专用2024)
评论
0/150
提交评论