C语言课程设计计算器软件.docx
《C语言课程设计计算器软件.docx》由会员分享,可在线阅读,更多相关《C语言课程设计计算器软件.docx(10页珍藏版)》请在冰豆网上搜索。
![C语言课程设计计算器软件.docx](https://file1.bdocx.com/fileroot1/2022-11/16/3c03d161-3cf9-4ffb-a57d-2f4ffc76ac8c/3c03d161-3cf9-4ffb-a57d-2f4ffc76ac8c1.gif)
C语言课程设计计算器软件
《C语言》
课程设计报告
题目
计算器软件
学号
姓名
年级专业
同组人员
指导教师
完成日期
2010
年
6
月
20
日
1.问题描述
2.基本要求
3.程序设计流程图。
4.程序设计内容。
5.程序设计截图。
6.程序设计分析。
7.程序设计心得。
8.程序设计评定。
一、问题描述
本程序设计是一个将数学问题与C语言程序设计结合的程序设计问题。
能够实现用用C语言编程让计算机模拟计算器的实验,可以改变计算数值,计算出不同的结果。
计算器是一种很常用的计算工具,他在日常生活中给了我们很大方便。
“计算器”是一种关于多种控件的应用的比较复杂的程序,它包含对字符串的处理,多模块程序设计,数学函数的使用。
所以它所需要的知识点较多,必须对各方面都有所了解。
计算器的主要功能就是运算,但是任何一个数值的输入都是以字符的形式进行的,但是字符是无法参与运算的,不许转换成整形变量。
二、基本要求
1)能够实现加减乘除功能;
2)要求单字符输入,即输入的数字或符号不需要按回车键;
3)具有一定的容错能力;
4)按回车键或等号键则显示计算结果。
三、程序设计流程图。
否
是
四、程序设计内容。
#include
#include
#defineN50
voidmain(void)
{
intinti=0,intj=0;
doubledoux[N]={0},dousum=0;
charcharx[N],chary[2*N];
printf("Pleaseinput:
");
scanf("%s",chary);
while(inti{
switch(chary[inti])
{
case'0':
doux[(int)(inti/2)]=0;break;
case'1':
doux[(int)(inti/2)]=1;break;
case'2':
doux[(int)(inti/2)]=2;break;
case'3':
doux[(int)(inti/2)]=3;break;
case'4':
doux[(int)(inti/2)]=4;break;
case'5':
doux[(int)(inti/2)]=5;break;
case'6':
doux[(int)(inti/2)]=6;break;
case'7':
doux[(int)(inti/2)]=7;break;
case'8':
doux[(int)(inti/2)]=8;break;
case'9':
doux[(int)(inti/2)]=9;break;
case'+':
charx[inti/2]='+';break;
case'-':
charx[inti/2]='-';break;
case'*':
charx[inti/2]='*';break;
case'/':
charx[inti/2]='/';break;
}
inti++;
}
inti=0;
while(inti{
if(charx[inti]=='-')
{
doux[inti+1]=0-doux[inti+1];
}
elseif(charx[inti]=='*')
{
doux[inti+1]=doux[inti+1]*doux[inti];
doux[inti]=0;
}
elseif(charx[inti]=='/')
{
if(doux[inti+1]==0)
{
intj=1;
break;
}
doux[inti+1]=doux[inti]/doux[inti+1];
doux[inti]=0;
}
else
{
;
}
inti++;
}
if(intj==1)
{
printf("Error\n");
}
else
{
for(inti=0;inti{
dousum+=doux[inti];
}
printf("%lf\n",dousum);
}
system("pause");
}
五、程序设计截图。
输入正确计算公式屏幕显示:
容错能力屏幕显示:
六、程序设计分析。
1.文件名
#include
#include
#defineN50/*宏定义*/
2.头文件
voidmain(void)/*空类型*/
3.定义变量
intinti=0,intj=0;
doubledoux[N]={0},dousum=0;/*定义数值变量*/
charcharx[N],chary[2*N];/*定义数组变量*/
4文件主体
while(inti{
switch(chary[inti])
{
case'0':
doux[(int)(inti/2)]=0;break;/*定义计算数值*/
case'1':
doux[(int)(inti/2)]=1;break;
case'2':
doux[(int)(inti/2)]=2;break;
case'3':
doux[(int)(inti/2)]=3;break;
case'4':
doux[(int)(inti/2)]=4;break;
case'5':
doux[(int)(inti/2)]=5;break;
case'6':
doux[(int)(inti/2)]=6;break;
case'7':
doux[(int)(inti/2)]=7;break;
case'8':
doux[(int)(inti/2)]=8;break;
case'9':
doux[(int)(inti/2)]=9;break;
case'+':
charx[inti/2]='+';break;/*定义计算符号*/
case'-':
charx[inti/2]='-';break;
case'*':
charx[inti/2]='*';break;
case'/':
charx[inti/2]='/';break;
}
inti++;
}
inti=0;
while(inti{
if(charx[inti]=='-')/*运算符号转换*/
{
doux[inti+1]=0-doux[inti+1];
}
elseif(charx[inti]=='*')
{
doux[inti+1]=doux[inti+1]*doux[inti];
doux[inti]=0;
}
elseif(charx[inti]=='/')
{
if(doux[inti+1]==0)
{
intj=1;
break;
}
doux[inti+1]=doux[inti]/doux[inti+1];
doux[inti]=0;
}
else
{
;
}
inti++;
}
if(intj==1)
{
printf("Error\n");/*容错*/
}
else
{
for(inti=0;inti{
dousum+=doux[inti];
}
printf("%lf\n",dousum);/*输出结果*/
}
system("pause");/*程序结束*/
}
七、程序设计心得
回顾起此次课程设计,我们有很多的感慨,自从拿到题目到完成整个编程,从理论到实践的过程中,可以学到很多很多的的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,加深了对C语言的学习理解。
通过这次课程设计懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,还要把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的的能力。
此次,应用程序的设计和创建,经历了平时在课堂中和考试中,决不会有的重重难题和问题。
而这些问题,又都是课本上很少提到的、更深一层的知识领域和应用领域。
这些问题,并不是我们平时只靠课本,就可以轻易解决的。
所以,锻炼了我们面对难题,自己思索,自己探索,自己查资料发现问题、解决问题的独断能力。
当然,此次任务的完成,也体现出本组成员之间的团结精神。
所遇种种难以解决的问题,我们都会把它当作共同遇到的问题,在一起共同探讨,共同发挥自己所学和所知,投入式的互相帮助和解决困难。
在以后的学习生活中我要不断的加深掌握C语言这门技术。
物理与电子信息学院课程设计评定意见
指导教师评语
主要内容包括:
设计报告内容的完整性和完成情况、报告格式的规范性、通过课程设计取得的收获等。
成绩:
签名:
年 月 日