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

  • 格式:doc
  • 大小:199.00 KB
  • 文档页数:11

下载文档原格式

  / 22
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言课程设计报告题目:设计一个简单计算器

目录

1.设计目的

2.内容

3.总体设计(有流程图)

4.源程序编写(附上了运行图)

5.执行结果

6.心得体会

一、设计目的

设计一个简单计算器,在功能上功能尽量模拟windows 操作系统中的计算器,系统界面不做强制要求。

全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数、指针和文件的操作,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适

的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,规范编程思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。

二、内容

1、程序设计的一般步骤

a、确定数据结构

b、确定算法

c、编程

d、调试

e、总结资料

2、基本要求

a.设计正确,方案合理,能实现相应功能。

b.界面友好,使用方便。

c.程序精炼,结构清晰。

d.设计报告含程序设计说明,用户使用说明,源程序清单及程序框图。

e.上机演示。

三、总体设计(程序设计组成框图、流程图)

四、源程序编写

#include

#include

#include

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

{

double d1;

int d2;

}dd;

typedef struct

{

dd data[50];

int top;

}zhan1;

zhan1 shu;

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;

}

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;

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]=='-')

{

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--;

}

zhan2[++t2]=a[i];

i++;

}

}

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--;

}

zhan2[++t2]=a[i];

i++;

}

}