设计一个简单计算器的C语言课程设计报告资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7
while(zhan2[j]!='(') { nibo[++t1]=zhan2[j]; nibo[t1+1]='\0'; j--; } t2=j-1; i++; } else if(a[i]=='+') { while(t2>0&&zhan2[t2]!='(') { nibo[++t1]=zhan2[t2]; nibo[t1+1]='\0'; t2--; } zhan2[++t2]=a[i]; i++; } else if(a[i]=='-') {
6
for(k=i;k<=j;k++) {
n=pow(0.1,l); l=l+1;
x=x+n*(a[k]-'0'); } i=j+1; } else i=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'; } else if(a[i]=='(') { zhan2[++t2]=a[i]; i++; } else if(a[i]==')') { j=t2;
double d1; int d2; }dd; typedef struct { dd data[50]; int top;
}zhan1; zhan1 shu;
shu.top=0; while(a[i]!='\0')
5
{ 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--;
zhan2[++t2]=a[i]; i++; }
9
} else if(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++; } else if(a[i]=='^'||a[i]=='@') { while(zhan2[t2]=='^'||zhan2[t2]=='@') { nibo[++t1]=zhan2[t2]; nibo[t1+1]='\0'; t2--; }
C 语言课程设计报告 题目:设计一个简单计算器
目录 1.设计目的 2.内容 3.总体设计(有流程图)
4.源程序编写(附上了运行图)
5.执行结果
6.心得体会
2Hale Waihona Puke Baidu
一、设计目的
设计一个简单计算器,在功能上功能尽量模拟 windows 操作系统 中的计算器,系统界面不做强制要求。
全面熟悉、掌握 C 语言基本知识,掌握 C 程序设计中的顺序、 分支、循环三种结构及数组、函数、指针和文件的操作,把编程和实 际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及 算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干 有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题 的能力,规范编程思想,为以后在专业课程中应用计算机系统解决计 算、分析、实验和设计等学习环节打下较扎实的基础。
二、内容
1、 程序设计的一般步骤 a、 确定数据结构 b、 确定算法 c、 编程 d、 调试 e、 总结资料
2、基本要求
3
a.设计正确,方案合理,能实现相应功能。 b.界面友好,使用方便。 c.程序精炼,结构清晰。 d.设计报告含程序设计说明,用户使用说明,源程序清单及程序框 图。 e.上机演示。 三、总体设计(程序设计组成框图、流程图)
10
zhan2[++t2]=a[i]; i++; } } while(t2>0) { nibo[++t1]=zhan2[t2]; nibo[t1+1]='\0'; t2--; } t1=1; while(nibo[t1]!='\0') { if(nibo[t1]>='0'&&nibo[t1]<='9') { for(i=0;i<=shu.top;i++) { if(nibo[t1]-'0'==shu.data[i].d2) {
8
if(a[i-1]=='$') { a[0]='0'; i=0; } else if(a[i-1]=='(') { a[i-1]='0'; a[i-2]='('; i=i-2;\ } else {
while(t2>0&&zhan2[t2]!='(') { nibo[++t1]=zhan2[t2]; nibo[t1+1]='\0'; t2--; }
四、 源程序编写 #include<stdio.h>
4
#include<math.h> #include<malloc.h>
double jisuan(char a[]) { int i=1,j,k,m,cnt=0,t1=0,t2=0,t3=0;
char nibo[50],zhan2[50]; double x,n,l,z=0,zhan3[20]; typedef struct {
m=i; break; }
11
} zhan3[++t3]=shu.data[m].d1;
} else if(nibo[t1]=='+') { zhan3[t3-1]=zhan3[t3-1]+zhan3[t3]; t3--; } else if(nibo[t1]=='-') { zhan3[t3-1]=zhan3[t3-1]-zhan3[t3]; t3--; } else if(nibo[t1]=='*') { zhan3[t3-1]=zhan3[t3-1]*zhan3[t3]; t3--; } else if(nibo[t1]=='/') { zhan3[t3-1]=zhan3[t3-1]/zhan3[t3];
相关文档
最新文档