资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C语言编程-简单的计算器 导读:就爱阅读网友为您分享以下“C语言编程-简单的计算器”资讯,希望对您有所帮助,感谢您对92to.com的支持!苏 州 市 职 业 大 学课程设计说明书名称 计算机语言 C 课程设计 设计一个简单计算器 2011 年 6 月 20 日至 2011 年 6 月 25 日共一周院 班 姓系 级 名计算机工程系系主任教研室主任 指导教任目录一、题目说明 . 2 二、总体设计 . 2 2.1系统开发平台 . 2 2.2系统流程图 . 2 三、详细说明 . 3 四、遇到的问题和解决方法 . 11 五、课程设计总结 . 12 六、参考文献 . 121 苏州职业大学计算机工程系课程设计文档一、题目说明在功能上尽量模拟 windows 操作系统中的计算器,系统界面不做强制要求。 程序开发背景 传统的计算方法有口算、笔算还有就是借助工具。但是一旦碰到计算量稍大的计算 式子,口算和笔算往往就不能发挥出优势,一般都回借助工具。而传统的计算器也并不 方便随身携带。随着科技的发展,计算机已经逐渐普及,人们的生活中、工作中往往都 离不开计算机。如果碰到大量的计算,还要去找计算器,这样似乎太过麻烦。所以,在 计算机中进行计算器的工作,就会方便得多。因此,本次设计了在计算机操作系统中的 计算器。二、总体设计2.1系统开发平台 系统使用的是 Microsoft VC+ 6.0 软件平台。2.2系统流程图 2 苏州职业大学计算机工程系课程设计文档开始定义一个符号常量调用主界面函数NO 表达式是? YES 匹配表达式调用四则混合运 算函数调用开方函数调用乘方函数结束图 1 系统流程图三、详细说明本系统分为两个部分:double jisuan()部分,main()主函数部分。double jisuan 部分首先对程序进行基础设置,以达到能够对输入的表达式进行判断。main()主函数模块,首先通过 printf()语句对一些特殊符号进行解释,然后通过用户自己 讲要计算的式子输入程序,来得出结果3 苏州职业大学计算机工程系课程设计文档1.double jisuan()函数规定对优先级别,其过程为:while(ai!=0) if(ai=0&ai=9) z=0; j=i+1; while(aj=0&aj=9) j+; j-; for(k=i;k=j;k+) z=z*10+ak-0; j=j+1; x=z; if(aj=.) l=1; i=j+1; j=i+1; while(aj=0&aj=9) j+; j-; for(k=i;k=j;k+) n=pow(0.1,l); l=l+1; x=x+n*(ak-0); i=j+1; else i=j; shu.data+shu.top.d1=x; shu.datashu.top.d2=+cnt; nibo+t1=0+shu.datashu.top.d2; nibot1+1=0; else if(ai=() zhan2+t2=ai; i+; 4 苏州职业大学计算机工程系课程设计文档else if(ai=) j=t2; while(zhan2j!=() nibo+t1=zhan2j; nibot1+1=0; j-; t2=j-1; i+; else if(ai=+) 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; else while(t20&.top;i+) if(nibot1-0=shu.datai.d2) m=i; break; zhan3+t3=shu.datam.d1; else if(nibot1=+) zhan3t3-1=zhan3t3-1+zhan3t3; t3-; else if(nibot1=-) zhan3t3-1=zhan3t3-1-zhan3t3; t3-; else if(nibotn3t3=sqrt(zhan3t3); t1+; return zhan31; 2.main()主函数void main() printf(“=n” ); printf(“=这是一个计算器程序=n” ); printf(“=nn”); printf(“tt 输入点号(.)回车,结束程序运行nn” ); for(;) char x,a50; double jieguo; int i=0; a0=$; printf(“请输入表达式,退出请输入 q:nn”); 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(“nn”); 9 苏州职业大学计算机工程系课程设计文档图 3. 主函数输出界面图 4 运算界面 110 苏州职业大学计算机工程系课程设计文档图 5 运行界面 2四、遇到的问题和解决方法1. 在编程时忘记最后少了个“” ,导致程序运行不了。图 8 错误 1在最后输入 后,程序运行正常。 2. 一个语句结束时忘了写上分号导致程序不能正常运行。图 9 错误 211 苏州职业大学计算机工程系课程设计文档五、课程设计总结在本次课程设计上,我发现光靠书上的内容是远远不够的。课本内的知识很多都比 较基础,基础虽然狠重要,但要发挥作用得需要相当大的基础量。所以我们平时应该多 看看这方面的其他书籍,多了解了解这方面的如今比较有价值的知识。 在学习上,光靠自己的努力是远远不够的。遇见不懂得问题,要及时地向周围的同 学、老师或者可以借助互联网来找寻答案。一个问题的不懂可能会导致后面千千万万个 知识的不懂,这样的学习方法是不好的。 平时上课时,照着书打,即使有错基本也都能找出来,所以自我感觉还不错。可是 通过这次的程序设计,我发现我的能力还是远远不够。没了书,没了参考,才发现原来 自己其实什么都不怎么会。连分析出设计这个程序的套路都不能确定究竟是怎么个流 程,压根就不知道究竟该从哪下手。而平时作业都依赖书上现成的,或许就是缺少了平 时的锻炼吧,这样的学习只是半吊子,少了刚开始的分析能力,只能编译一些比较短的 简单的程序,一旦碰到大型的,顿时就感觉没处下手。 虽然我这次的程序设计是要求一个人独立完成的,但是我发现,一个内容的完成其 实有了周围人的帮助会完成的更好更快。几个人出现了问题互相探讨互相帮忙,不仅有 更大的可能性能解决问题,还可以加深我们对这个内容的印象。若是下次再出现类似的 问题,我们也就不会感到迷茫了。而且,每个人对知识理解的方面可能不一样,深入程 度也不一样,合作的话可以互相弥补。六、参考文献1 李金祥、 顾小晶主编. 实用 C 语言程序设计教程 , 北京: 中国电力出版社, 2010.6 2 康莉、李宽编. 零基础学 C 语言 ,北京:机械工业出版社,200712 苏州职业大学计算机工程系课程设计文档附录:略#includestdio.h #includemath.h #includemalloc.h double jisuan(char a) int i=1,j,k,m,cnt=0,t1=0,t2=0,t3=0; char nibo50,zhan250; double x,n,l,z=0,zhan320; typedef struct double d1; int d2; dd; typedef struct dd data50; int top; zhan1; zhan1 shu; shu.top=0; while(ai!=0) if(ai=0&ai=9) z=0; j=i+1; while(aj=0&aj=9) j+; j-; for(k=i;k=j;k+) z=z*10+ak-0; j=j+1; x=z; if(aj=.) l=1; i=j+1; j=i+1;13 苏州职业大学计算机工程系课程设计文档while(aj=0&aj=9) j+; j-; for(k=i;k=j;k+) n=pow(0.1,l); l=l+1; x=x+n*(ak-0
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号