C语言简单计算器的编写课程设计
C语言简单计算器的编写课程设计
1、C语言简单计算器的编写课程设计C语言简单计算器的编写课程设计12/12C语言简单计算器的编写课程设计精心整理2013-2014学年第二学期学号高级语言程序设计课程设计报告题目:简单计算器专业:数字媒体技术班级:13级1班姓名:邢洪波指导教师:王辉成绩:计算机与信息工程系二0一四年二月二十天设计内容及要求1.1利用本学期所学的C语言程序设计课程,运用相关知识,查阅相关资料,编写C语言程序,设计一个简单计算器,要求编写的简单计算器能够模拟系统的计算器C语言简单计算器的编写课程设计,用户能够用键盘输入相关数据,能够进行简单的加、减、乘、除运算c语言课程设计计算器,并且在程序运行过程中能够正常的退出程序。?在计算器程序运行中,输入数据时
2、若是遇到输入错误的情况,能够能过键盘上的退格键进行删除,并且重新输入正确的数据。在数据输入达成后,若是需要2019年9月精心整理放弃本次计算操作,能够利用程序中设置好的按键进行清零,并为下一次运算作准备。1.2运用相关知识,查阅相关资料,编写一个简单的计算器,能够实现简单的基本的加减乘除运算,在计算器工作时用户能利用键盘或鼠标进行相应操作。程序基本功能要求实现圆满,并有简单的考据。程序还须有切合标准的程序设计报告。2019年9月精心整理大纲设计2.1系统流程图开始输入第一个操作数加减乘除清开乘法法法法零方方输入第二个操作数显示结果结束2.1系统流程图2.2主要功能表2.2主要功能表序号文件名主
3、要功能备注1+加法两个操作数2减法两个操作数3*乘法两个操作数4/除法两个操作数5#开方一个操作数2019年9月精心整理6乘方两个操作数等于8Tab清零9q退出设计过程或程序代码###/*的头文件代表在内存中开辟积蓄空间*/(chara)inti=1,j,k,m,cnt=0,t1=0,t2=0,t3=0;/*定义整型变量i,j,k,m,n,cnt,t1,t2,t3*/,;/*定义字符型数组*/,n,l,z=0,;/*定义双精度变量x,n,l,z
4、,*//*表示可以用con定义结构体变量*/;intd2;dd;0;;zhan1;zhan1*shu;/*定义指针变量*/shu=(zhan1*)((zhan1);shu-top=0;while(ai!=0)/*外循环是用while语句*/2019年9月精心整理if(ai=0&ai=0&aj=9)/*内循环使用各种循环语句的嵌套*/j+;j-;for(k=i;k=0&aj=9)/*内循环使用各种循环语句的嵌套*/j+;j-;for(k=i;kdata+shu-to
5、p.d1=x;shu--top.d2=+cnt;nibo+t1=0+shu--top.d2;2019年9月精心整理+1=0;(ai=()zhan2+t2=ai;i+;(ai=)j=t2;while(!=()nibo+t1=;+1=0;j-;t2=j-1;i+;(ai=+)/*对加法的定义*/while(t20&!=()/*定义当加号和括号同时出现时*/nibo+t1=;/*将赋给nibo+t2*/+1=0;t2-;zhan2+t2
6、=ai;i+;(ai=-)/*对减法的定义*/2019年9月精心整理if(ai-1=$)a0=0;i=0;(ai-1=()ai-1=0;ai-2=(;i=i-2;t2-;(t20&!=()/*对括号的定义*/nibo+t1=;+1=0;t2-;zhan2+t2=ai;i+;(ai=*|ai=/)/*对乘法和除法的定义*/while(=*|=/|=|=#)/*逻辑运算*/nibo+t1=;+1=0;t2-;zhan2+t2
7、=ai;i+;2019年9月精心整理(ai=|ai=#)/*逻辑运算中的或运算*/while(=|=#)nibo+t1=;+1=0;t2-;zhan2+t2=ai;i+;while(t20)nibo+t1=;/*将的值赋给nibo+t1*/+1=0;/*遇到0结束部分程序的运算*/t2-;j=1;t3=0;while(j=0&niboj!=&niboj!=#)for(i=1;itop;i+)if(int)(niboj-0)=shu-datai.d2)m=i;break;zhan3+t3=s
8、hu-datam.d1;2019年9月精心整理(niboj=+)/*对加法的定义*/-1=-1+;t3-;(niboj=-)/*对减法的定义*/-1=-1-;t3-;(niboj=*)/*对乘法的定义*/-1=-1*;t3-;(niboj=/)/*对除法的定义*/-1=-1/;t3-;(niboj=)/*对乘方的定义*/-1=pow(-1,z
9、);t3-;(niboj=#)/*对开方的定义*/=sqrt();j+;2019年9月精心整理;/*返回值*/()for(;)charx,a50;;inti=0;a0=$;(#表示开方,表示乘方(支持负数)n);/*对乘方和开方的定义*/(请输入表达式无需输入=号直接回车可输出答案退出请输入qnn);scanf(%c,&x);if(x=q)break;while(x!=n)/*遇到0结束部分程序的运算*/a+i=x;scanf(%c,&x);ai+1=0
10、;=(a);(n);(结果为:%lf,);(nnn);(退出请输入q连续请直接输入nn);设计结果与剖析系统测试结果以下:依照电脑所给的提示出现语法错误,缺少变量的定义大多的语法错误在经过书本参照下能够改正。主若是平常看书不认真、不太注意而产生的,如没有注意详尽数据使用是有必然的范围限定;过分重视分号的重要性而在for、if、while语句中画蛇添足加分号;在使用文件的时候忘记将2019年9月精心整理文件先打开,对打开的方式与使用的情况不太注意而造成不般配;还有遗漏形参的定义是值不能够传达等等。这些语法错误有信
11、息框的提示一般是能够除掉的。其余还有部分说明的地址也错了,最重要的是逻辑上的错误,一般电脑不简单发现。所以更对程序认真的检查。经认真改正今后重新保存文件。错误原因剖析一缺少变量定义c语言课程设计计算器,定义地址不正确由于该程序相对来讲稍有些长,前后有些变量不简单联系起来,但是在错误信息的提示下一般还是很简单找到,但是需要注意的是在定义的时候有些函数使用同样的变量名而表示不同样样的作用,所以使用要很小心,定义及定义的地址特别留意。为减少这样的错误我今后还是用不同样样的变来名来表示,结果引起的那些错误解决了。语法错误大多的语法错误在经过书本参照下能够改正。主若是平常缺少锻炼、不太注意而产生的。如没有注意详尽数据使用是
12、有必然的范围限制;过分重视分号的重要性而在for、if、while语句中画蛇添足加分号。错误原因剖析二说明的地址程序设计中在说明的时候不能够同我们平常写字同样为非作恶,我们应该注意说明的格式。说明中不能够含有C语言可执行的语句。逻辑错误编译、连接的成功其实不意味着程序的最后成功,逻辑上的错误机器不易检查出来,这时需要多数据结果进行剖析。这种错误的查找是最难的,需要有相当的耐心和认真去把问题找出来,这也是本次程序编写过程中遇到的最大的难题。经常运行今后得不到令人满意的结果。此时解决的方法一则用“分段检查”的方法,在程序的不同样样地址设几个函数语句,输出相关变量的值,逐段往下检查,对检
13、查出的错误进行改正,当调试达成将设置的都删去,若在程序中找不到问题,则再来考虑算法可否逻辑慎重,再进行改正C语言简单计算器的编写课程设计,这样循环往复,直到最后程序运行成功。在本次程序编写过程中,我就是这样办理这个问题的。所以到最后我找到了错误,及时改正,终于把程序达成了,所有功能显示正常。2019年9月精心整理小结用C语言来编程的技巧,以及对C也有了更加深刻的认识。经过此次两个星期左右的C语言程序课程设计实习,我感觉我学到了很多c语言课程设计计算器,以前在课堂上学的东西以为都是一些无聊无味的东西,直到进行了此次课程设计后我才真切的理解了什么叫做“书到用时方恨少”,深深地感觉自己C语言知道的缺少,感觉自己上机编程能力的不足,我对C有了更加深刻的认识,提高了我用C语言编程的综合能力和实质操作能力,初步掌握简单软件的剖析方法和设计方法。我希望在今后的学习中能有更多这样的时机,让我们能够进行实践操作,从而在实质操作中不断提高我们的综合能力。参照文件谢希仁.计算机网络(第五版)M.北京:电子工业初版社,2008年2月2胡小强计算机网络M北京:北京邮电大学初版社2005年1月3李丽娟C语言程序设计教程(第2版)M,人民邮电初版社2009年3月,2019年9月