C语言计算器的编写课程设计.docx
- 文档编号:5191944
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:12
- 大小:63.52KB
C语言计算器的编写课程设计.docx
《C语言计算器的编写课程设计.docx》由会员分享,可在线阅读,更多相关《C语言计算器的编写课程设计.docx(12页珍藏版)》请在冰豆网上搜索。
C语言计算器的编写课程设计
C语言计算器的编写课程设计
C计算器课程设计
学院:
信息学院
专业:
通信工程
班级:
24041001
学号:
23
姓名:
王卫玲
目 录
第1章课程设计内容及要求................5
1.1内容..............................5
1.2要求..............................5
第2章系统设计流程图.................6
2.1系统流程图........................6
2.2主要功能表........................7
第3章系统测试........................8
3.1系统测试..........................8
3.2调试..............................9
第4章使用...........................11
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
#include
#include
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]>='0'&&a[j]<='9')
{j++;}
j--;
for(k=i;k<=j;k++)
{
z=z*10+a[k]-'0';
}
j=j+1;
x=z;
if(a[j]=='.')
{
l=1;
i=j+1;
j=i+1;
while(a[j]>='0'&&a[j]<='9')
{j++;}
j--;
for(k=i;k<=j;k++)
{
n=pow(0.1,l);
l=l+1;
x=x+n*(a[k]-'0');
}
i=j+1;
}
elsei=j;
shu->data[++shu->top].d1=x;
shu->data[shu->top].d2=++cnt;
nibo[++t1]='0'+shu->data[shu->top].d2;
nibo[t1+1]='\0';
}
elseif(a[i]=='(')
{
zhan2[++t2]=a[i];
i++;
}
elseif(a[i]==')')
{
j=t2;
while(zhan2[j]!
='(')
{
nibo[++t1]=zhan2[j];
nibo[t1+1]='\0';
j--;
}
t2=j-1;
i++;
}
elseif(a[i]=='+'){
while(t2>0&&zhan2[t2]!
='(')
{
nibo[++t1]=zhan2[t2];
nibo[t1+1]='\0';
t2--;
}
zhan2[++t2]=a[i];
i++;
}
elseif(a[i]=='-')
{
if(a[i-1]=='$')
{
a[0]='0';
i=0;
}
elseif(a[i-1]=='(')
{
a[i-1]='0';
a[i-2]='(';
i=i-2;
t2--;
}
else
{
while(t2>0&&zhan2[t2]!
='('){
nibo[++t1]=zhan2[t2];
nibo[t1+1]='\0';
t2--;
}
zhan2[++t2]=a[i];
i++;
}
}
elseif(a[i]=='*'||a[i]=='/'){
while(zhan2[t2]=='*'||zhan2[t2]=='/'||zhan2[t2]=='^'||zhan2[t2]=='#'){
nibo[++t1]=zhan2[t2];
nibo[t1+1]='\0';
t2--;
}
zhan2[++t2]=a[i];
i++;
}
elseif(a[i]=='^'||a[i]=='#'){
while(zhan2[t2]=='^'||zhan2[t2]=='#')
{
nibo[++t1]=zhan2[t2];
nibo[t1+1]='\0';
t2--;
}
zhan2[++t2]=a[i];
i++;
}
}
while(t2>0)
{
nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;
}
j=1;t3=0;
while(j<=t1)
{
if(nibo[j]>='0'&&nibo[j]!
='^'&&nibo[j]!
='#')
{
for(i=1;i<=shu->top;i++)
{
if((int)(nibo[j]-'0')==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--;
}
elseif(nibo[j]=='-'){
zhan3[t3-1]=zhan3[t3-1]-zhan3[t3];
t3--;
}
elseif(nibo[j]=='*')
{
zhan3[t3-1]=zhan3[t3-1]*zhan3[t3];
t3--;
}
elseif(nibo[j]=='/')
{
zhan3[t3-1]=zhan3[t3-1]/zhan3[t3];
t3--;
}
elseif(nibo[j]=='^')
{
zhan3[t3-1]=pow(zhan3[t3-1],zhan3[t3]);
t3--;
}
elseif(nibo[j]=='#')
{
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("%c",&x);
}
a[i+1]='\0';
jieguo=jisuan(a);
printf("\n");
printf("结果为:
%lf",jieguo);
printf("\n\n\n");
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 计算器 编写 课程设计