当前位置:文档之家› 简单计算器设计

简单计算器设计

计算机程序训练任务书简单计算器设计学院:材料科学与工程学院专业:材料成型及控制工程班级:07050103学号:0705010318姓名:***目录一.训练目的二.设计内容和要求三.设计思路四.该程序功能分析五.系统用到的数据类型及函数六.基本算法七.程序流程图及屏幕运行截图八.参考文献九.设计心得十.源程序代码计算机程序训练设计报告一.训练目的:计算机程序设计训练是学习完《计算机程序设计》课程后进行的一次全面的综合性上机实验。

其目的在于为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。

提高学生适应实际,实践编程的能力。

二.设计内容和要求:用C语言作为工具制作一个简单的windows计算器,根据课程设计1周时间的安排选择适当大小的设计课题,根据题目的基本需求,画出流程图,编写程序,并写出详细的设计说明书。

最后上机调试通过,并进行验收,交上机报告和程序的原代码。

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

三.设计思路大体框架是用两个while语句来实现相应的计算,用goto 语句来实现多次进入while语句进行相应的计算,第一个while语句用于新的两个数来进行计算,第二个while语句是用上一次储存的计算结果来与另外的数进行相应的运算。

每个while语句嵌套switch语句来实现加减乘除以及三角函数等运算。

每种运算都是调用自定义的函数来实现相应运算的。

四.该程序功能分析:该程序主要功能是计算简单运算,以及简单的三角函数的计算,优点是一次运算结束后会提醒是否将运算的结果储存下来,如果储存则与另外的数继续进行下一次运算,如果不储存,则会执行新的运算,如果不计算了即可跳出界面。

同时计算开方。

五.系统用到的数据类型及其函数:1.整型变量num 用于判断需要进行什么运算。

整型变量l 用于决定进入哪个while循环语句。

实型变量a,b,x,t a,b,x用于放置需要计算的数,t用于放置每次运算的结果。

静态局部变量m 用于存储每次计算的结果。

自定义函数中的形参a,b均定义为实型数据,调用函数时候主调函数把实参的值(即输入的需要计算的数)传递给形参a和b, 计算的结果作为函数的返回值。

2.自定义函数:float add (float a,float b)用于计算加法运算,输入的两个数据作为实参传递给形参a和b, 将计算的结果作为函数的返回值。

float minus(float a,float b)用于计算减法运算,输入的两个数据作为实参传递给形参a和b, 将计算的结果作为函数的返回值。

float mul(float a,float b)用于计算乘法运算,输入的两个数据作为实参传递给形参a和b, 将计算的结果作为函数的返回值。

float div (float a,float b)用于计算除法运算,输入的两个数据作为实参传递给形参a和b, 将计算的结果作为函数的返回值。

float fun1(float a,float b)用于计算求幂,输入的两个数据作为实参传递给形参a和b, 将计算的结果作为函数的返回值。

float fun2(float a)用于计算开方运算,输入的数据作为实参传递给形参a, 将计算的结果作为函数的返回值。

float fun3(float a)用于计算正弦运算,输入的数据作为实参传递给形参a, 将计算的结果作为函数的返回值。

float fun4(float a)用于计算余弦运算,输入的数据作为实参传递给形参a, 将计算的结果作为函数的返回值。

float fun5(float a)用于计算正弦运算,输入的数据作为实参传递给形参a, 将计算的结果作为函数的返回值。

float fun6(float a,)用于计算求倒运算,输入的数据作为实参传递给形参a, 将计算的结果作为函数的返回值。

3.用了数学函数开方sqrt ,正弦sin,余弦cos,正切tan.4.main()主函数程序的入口,程序中使用switch语句和while实现相应的循环,switch用于判断算术符号,通过调用相应的函数完成相应的计算,while则用于每次计算的循环,则不用退出程序即可实现下一次计算。

同时在程序末尾用了goto语句循环,也是用于计算的循环。

每次计算完一次算法后,会判断是否储存,如果储存则会执行第二个while 循环,如果是不储存则执行第一个while语句循环。

六.基本算法程序开始运行S1:L=1;int mun ;float a,b,x,t; static float m;S2:如果L=1 则执行第一个while语句,第一个while语句中执行switch语句。

S3:如果num =1 执行加法运算。

S4:如果num=2 执行减法运算。

S5:如果num=3 执行乘法运算。

S6:如果num=4 执行除法运算。

S7:如果num=5 执行求幂运算。

S8:如果num=6 执行求开方运算。

S9:如果num=7 执行正弦运算。

S10:如果num=8 执行余弦运算。

S11:如果num=9 执行正切运算。

S12:如果num=10 执行求倒运算。

S13:如果输入L=1 则返回S2.如果输入L=2则执行S14.如果输入L=0 则退出整个程序。

S14:将第一次的while语句执行的结果赋予m,执行第二个while语句,从而执行其中的switch语句。

S15:如果num =1 第一次计算的结果与另一值执行加法运算。

S16:如果num=2 第一次计算的结果与另一值执行减法运算。

S17:如果num=3 第一次计算的结果与另一值执行乘法运算。

S18:如果num=4 第一次计算的结果与另一值执行除法运算。

S19:如果num=5 第一次计算的结果与另一值执行求幂运算。

S20:如果num=6 第一次计算的结果执行求开方运算。

S21:如果num=7 第一次计算的结果执行正弦运算。

S22:如果num=8 第一次计算的结果执行余弦运算。

S23:如果num=9 第一次计算的结果执行正切运算。

S24:如果num=10 第一次计算的结果执行求倒运算。

S25:如果输入L=1 则返回S2,如果输入L=2 则执行S14,如果输入L=0 则跳出整个程序。

七:程序流程图屏幕运行截图输入l 的值l=0l=2l=1l=1的时候执行你输入数的加减乘除以及三角函数的运算相当于计算器的开始按钮以及运算按钮l=2的时候用你储存的数与另外的数进行新的加减乘除运算相当于计算器的储存按钮以及显示储存按钮以及M+按钮和运算按钮l=0跳出整个程序相当于计算器的关闭按钮八:参考文献C 程序设计(第三版)谭浩强著九:设计心得此次课程设计,我感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在整整一周的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能算一个真正的程序,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说静态变量……通过这次课程设计之后,一定把以前所学过的知识重新温故。

同时感谢指导教师的亲切的鼓励和耐心的指导,我相信对以后的学习路会受益颇深的。

十:源程序代码#include<stdio.h>#include<math.h>float add(float a,float b){float c;c=a+b;printf("%f\n",c);return(c);}float minus(float a,float b){float c;c=a-b;printf("%f\n",c);return(c);}float mul(float a,float b){float c;c=a*b;printf("%f\n",c);return(c);}float div(float a,float b){float c;c=a/b;printf("%f\n",c);return(c);}float fun1(float a,float b){float c;c=pow(a,b);printf("%f\n",c);return(c);}float fun2(float a){float b;b=sqrt(a);printf("%f\n",b);return(b);}float fun3(float a){float b;b=sin(a);printf("%f\n",b);return(b);}float fun4(float a){float b;b=cos(a);printf("%f\n",b);return(b);}float fun5(float a){float b;b=tan(a);printf("%f\n",b);return(b);}float fun6(float a){float b;b=1.0/a;printf("%f\n",b);return(b);}main(){int num,l=1;float a,b,x,t;static float m;loop:while(l==1){printf("1.+\n2.-\n3.*\n4./\n5.pow\n6.Sqrt\n7.sin\n8.cos\n9.tan\n10.D\n"); printf("\nplease choose a number(1-10):\n");scanf("%d",&num);switch(num){case 1:printf("please input a and b:\n");scanf("%f %f",&a,&b);t=add(a,b); m=t;break;case 2:printf("please input a and b:\n");scanf("%f %f",&a,&b);t=minus(a,b);m=t;break;case 3:printf("please input a and b:\n");scanf("%f %f",&a,&b);t=mul(a,b); m=t;break;case 4:printf("please input a and b:\n");scanf("%f %f",&a,&b);t=div(a,b);m=t;break;case 5:printf("please input a and b:\n");scanf("%f %f",&a,&b);t=fun1(a,b); m=t;break;case 6:printf("please input x:\n");scanf("%f",&x);t=fun2(a); m=t;break;case 7:printf("please input x:\n");scanf("%f",&x);t=fun3(a); m=t;break;case 8:printf("please input x:\n");scanf("%f",&x);t=fun4(a); m=t;break;case 9:printf("please input x:\n");scanf("%f",&x);t=fun5(a);m=t;break;case 10:printf("please input x:\n");scanf("%f",&x);t=fun6(a);m=t;break;default:printf("error!\n");}printf("If you want to be continue ,please enter 1 \n");printf("if you want to store the number,please enter 2 \n");printf("If you want to exit,please enter 0 \n");printf("Enter your choice:");scanf("%d",&l);}while(l==2){printf("1.+\n2.-\n3.*\n4./\n5.pow\n6.Sqrt\n7.sin\n8.cos\n9.tan\n12.D\n"); printf("\nplease choose a number(1-10):\n");scanf("%d",&num);switch(num){case 1:printf("please input b:\n");scanf("%f",&b);t=add(m,b);m=t;break;case 2:printf("please input b:\n");scanf("%f",&b);t=minus(m,b);m=t;break;case 3:printf("please input b\n");scanf("%f",&b);t=mul(m,b); m=t;break;case 4:printf("please input b:\n");scanf("%f",&b);t=div(m,b);m=t;break;case 5:printf("please input b:\n");scanf("%f",&b);t=fun1(m,b); m=t;break;case 6:printf("please input b:\n");t=fun2(m);m=t;break;case 7:printf("please input b:\n");t=fun3(m);m=t;break;case 8:printf("please input b:\n");t=fun4(m); m=t;break;case 9:printf("please input b:\n");t=fun5(m); m=t;break;case 10:printf("please input b:\n");t=fun6(m); m=t;break;default:printf("error!\n");}printf("If you want to be continue ,please enter 1 \n"); printf("if you want to store the number,please enter 2 \n"); printf("If you want to exit,please enter 0 \n");printf("Enter your choice:");scanf("%d",&l);}if(l!=0) goto loop;}。

相关主题