设计一个简单计算器的C语言课程设计报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c计算器课程设计报告”。
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]!=' '){
if(a[i]>='0'&&a[i]
{
z=0;
j=i+1;
while(a[j]>='0'&&a[j]
{j++;}
j--;
for(k=i;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]
{j++;}
j--;
for(k=i;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]=' ';
}
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]=' ';
j--;
}
t2=j-1;
i++;
}
else if(a[i]=='+')
{
while(t2>0&&zhan2[t2]!='(')
{
nibo[++t1]=zhan2[t2];
nibo[t1+1]=' ';
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]=' ';
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]=' ';
t2--;
}
zhan2[++t2]=a[i];
i++;
}
else if(a[i]=='^'||a[i]=='@')
{
while(zhan2[t2]=='^'||zhan2[t2]=='@')
{
nibo[++t1]=zhan2[t2];
nibo[t1+1]=' ';
t2--;
}
zhan2[++t2]=a[i];
i++;
} } while(t2>0){
nibo[++t1]=zhan2[t2];
nibo[t1+1]=' ';
t2--;} t1=1;while(nibo[t1]!=' '){
if(nibo[t1]>='0'&&nibo[t1]
{
for(i=0;i
{
if(nibo[t1]-'0'==shu.data[i].d2)
{
m=i;
break;
}
}
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];
t3--;
}
else if(nibo[t1]=='^')
{
zhan3[t3-1]=pow(zhan3[t3-1],zhan3[t3]);
t3--;
}
else if(nibo[t1]=='@')
{
zhan3[t3]=sqrt(zhan3[t3]);
}
t1++;} return zhan3[1];} void main(){ for(;;){ char x,a[50];double jieguo;int i=0;a[0]='$';printf(“@表示开方,^表示乘方n”);
printf(“请输入表达式,退出请输入q:nn”);
scanf(“%c”,&x);if(x=='q')break;while(x!='n'){
a[++i]=x;
scanf(“%c”,&x);} a[i+1]=' ';jieguo=jisuan(a);
printf(“n”);
printf(“结果为:%lf”,jieguo);printf(“nn”);} }
五、执行结果
1、输入 5 4 结果
2、输入 5 4
结果
3、输入 5 4 结果
4、输入 5 4 结果图例:
注:分别输入5、4,分别进行加减乘除。结果运行成功。此图为证明此程序运行0 error,没错误。
六、心得体会
计算机知识博大精深,很奥妙,学过c语言之后我知道我们平时用的那些应用程序都是用各种计算机语言编写的。这次通过老师布置的课程设计,我学会了更多的计算机知识,觉得编程是一件很费脑细胞同时很有意思的一件事。
我在编写这次简单计算器的程序过程中遇到很多困难,犯了很多错,(例如:执行结果部分没有运算符),这也让我意识到编写c语言是需要耐心、细心和热心去做的一件事情!最关键的是,这个程序是我们经过一个暑假后的过程来编写的,我发现很多知识都忘了,所以最关键的是我觉得编程就该持之以恒!
这次的报告前前后后改了很多遍,我觉得无论是做程序还是报告都应该按照要求的格式来,严谨规范的要求自己才能事半功倍!
东华理工大学C语言课程设计报告题目:设计一个简单计算器 姓名:地瓜叶 学号:????? 指导老师:吴志强老师东华理工大学目 录1.设计目的 2.内容3.总体设计(有流程图) 4.源程序编写(附上了运......
C语言小程序之简单计算器实现简单四则运算/*时间:2013年7月7日功能:实现简单计算器四则运算功能 */# include //# include int main(void){float a,b,result;char sym;int i;A......
c语言课程设计设计报告C语言是一门通用计算机编程语言,应用广泛。下面是小编为大家整理的关于c语言课程设计的设计报告,欢迎大家的阅读。高等职业教育的目标及侧重点不同于普......
C语言课程设计报告班级:10电子本1学号:10303033122姓名:指导老师:方文森完成日期:温州大学城市学院课程设计目 录1、课程设计目的和要求 .......................................
目录 1前言 ..............................................................1 2正文 ..............................................................1 2.1设计目的 .........