C语言计算器的编写课程设计Word文档格式.docx
《C语言计算器的编写课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言计算器的编写课程设计Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
4.1运行程序进入计算器界面............11
第5章课程设计心得....................12
第1章课程设计内容及要求
1.1内容
编写C语言程序,设计一个简单计算器
1.2要求
运用相关知识,查阅相关资料,编写一个简单的计算器。
第2章系统设计流程图
2.1系统流程图
2.1系统流程图
2.2主要功能表
2.2主要功能表
序号
文件名
主要功能
备注
1
+
加法
两个操作数
2
—
减法
3
*
乘法
4
/
除法
5
#
开方
一个操作数
6
^
乘方
7
Enter
等于
8
Tab
清零
9
q
退出
第3章系统测试
程序的调试是指对程序的差错和排错,为了便于差错、阅读,在设计该程序的过程中我们采用了结构化程序方法编辑,添加了尽可能多的注释,这就为接下来的调试过程带来了很多方便。
经过仔细检查之后进行上机调试。
进行编译,如果在编译和连接过程中发现错误,屏幕上显示了出错信息,根据提示找到出错的位置,加以改正,在进行编译……如此反复,直到顺利通过编译和连接为止。
在本次实习过程中碰到的编译、连接的错误主要有:
缺少变量定义、定义为置不正确、语法错误、转义字符漏用、逻辑错误等。
3.1系统测试
系统测试结果如下:
3.2调试
根据电脑所给的提示出现语法错误,缺少变量的定义大多的语法错误在通过书本参考下能够修改。
主要是平时看书不仔细、不太注意而产生的,如没有注意具体数据使用是有一定的范围限定;
过分重视分号的重要性而在for、if、while语句中画蛇添足加分号;
在使用文件的时候忘记将文件先打开,对打开的方式与使用的情况不太注意而造成不匹配;
还有漏掉形参的定义是值不能传递等等。
这些语法错误有信息框的提示一般是能够排除的。
另外还有部分注释的位置也错了,最重要的是逻辑上的错误,一般电脑不容易发现。
所以更对程序仔细的检查。
经认真修改之后重新保存文件。
第4章使用
4.1运行程序进入计算器界面
打开软件
进入界面
运行结果
第5章 课程设计心得
用C语言来编程的技巧,以及对C也有了更加深刻的认识。
我希望在以后的学习中能有更多这样的机会,让我们能够进行实践操作,从而在实际操作中不断提高我们的综合能力。
源代码:
#include<
stdio.h>
math.h>
malloc.h>
doublejisuan(chara[])
{
inti=1,j,k,m,cnt=0,t1=0,t2=0,t3=0;
charnibo[50],zhan2[50];
doublex,n,l,z=0,zhan3[50];
typedefstruct{
doubled1;
intd2;
}dd;
typedefstruct
dddata[50];
inttop;
}zhan1;
zhan1*shu;
shu=(zhan1*)malloc(sizeof(zhan1));
shu->
top=0;
while(a[i]!
='
\0'
)
if(a[i]>
0'
&
a[i]<
9'
){
z=0;
j=i+1;
while(a[j]>
a[j]<
{j++;
}
j--;
for(k=i;
k<
=j;
k++)
{
z=z*10+a[k]-'
;
}
j=j+1;
x=z;
if(a[j]=='
.'
)
l=1;
i=j+1;
n=pow(0.1,l);
l=l+1;
x=x+n*(a[k]-'
);
}
elsei=j;
shu->
data[++shu->
top].d1=x;
data[shu->
top].d2=++cnt;
nibo[++t1]='
+shu->
top].d2;
nibo[t1+1]='
elseif(a[i]=='
('
zhan2[++t2]=a[i];
i++;
)'
j=t2;
while(zhan2[j]!
nibo[++t1]=zhan2[j];
t2=j-1;
+'
while(t2>
0&
zhan2[t2]!
nibo[++t1]=zhan2[t2];
t2--;
-'
if(a[i-1]=='
$'
a[0]='
i=0;
elseif(a[i-1]=='
a[i-1]='
a[i-2]='
i=i-2;
else
){
*'
||a[i]=='
/'
while(zhan2[t2]=='
||zhan2[t2]=='
^'
#'
while(t2>
0)
nibo[++t1]=zhan2[t2];
j=1;
t3=0;
while(j<
=t1)
if(nibo[j]>
nibo[j]!
for(i=1;
i<
=shu->
top;
i++)
if((int)(nibo[j]-'
)==shu->
data[i].d2)
m=i;
break;
zhan3[++t3]=shu->
data[m].d1;
elseif(nibo[j]=='
zhan3[t3-1]=zhan3[t3-1]+zhan3[t3];
t3--;
zhan3[t3-1]=zhan3[t3-1]-zhan3[t3];
zhan3[t3-1]=zhan3[t3-1]*zhan3[t3];
zhan3[t3-1]=zhan3[t3-1]/zhan3[t3];
zhan3[t3-1]=pow(zhan3[t3-1],zhan3[t3]);
zhan3[t3]=sqrt(zhan3[t3]);
j++;
returnzhan3[t3];
voidmain()
for(;
charx,a[50];
doublejieguo;
inti=0;
a[0]='
printf("
功能:
实现+,-,*,\,^(乘方),#(开方),(,),(负数),小数,混合运算\n"
printf("
请输入表达式\n\n"
scanf("
%c"
&
x);
if(x=='
q'
)break;
while(x!
\n'
a[++i]=x;
scanf("
a[i+1]='
jieguo=jisuan(a);
\n"
结果为:
%lf"
jieguo);
\n\n\n"