简单计算器

简单计算器
简单计算器

C课程设计报告

题目:简单计算器

设计者:刘妮娜.李文妮.肖明秋专业班级:网络0901

学号:0930*******

0930*******

0930*******

指导教师:任长安

所属系部:计算机与信息科学系

2010年6 月24 日

目录

一、设计目的

二、设计要求

三、本组课题及组员任务

四、程序功能简介

五、主体内容

1.设计分析

2.程序结构

3.各模块的功能及程序说明

4. 源程序

5.试验过程及结果截图

6.设计体会

六、附录

一、设计目的

1、培养自己的实际分析、编程和动手能力,最终目标是想通过这次课程

设计,帮助自己更加系统的掌握该门课程的主要内容,综合自己所学的,为以后的学习打下基础。同时增加同学间的团队合作精神,更加体会到团队合作在以后的工作中的重要性与必要性。

2、培养自己对c语言程序设计的兴趣,更加有信心学好这门课程,把自

己掌握的基本知识和编写程序的能力运用到实际应用中,以此提高实际操作运行能力。并为后续各门计算机课程的学习打下坚实的基础。

3、设计一个简易计算器,可以进行加、减、乘、除运算。

二、设计要求

此程序能够进行简单的加、减、乘、除运算,并且运用所学的知识, 在设计程序的过程中运用switch、if、goto等语句,使程序循环。在这四种算术功能上尽量模拟windows操作系统中的计算机。

三、本组课题及组员任务

课题:计算器

组员任务:源程序及报告整体设计由组员三人合作完成,设计报告中出现的错误查找工作与改错由肖明秋负责,程序的流程图由刘妮娜负责,设计报告的后期检验工作由李文妮负责。

四、程序功能简介

计算器在输入数字后可进行加(+)、减(-)、乘(*)、除(/)等简单算术计算。

五、主体内容:

1、设计分析

首先分析程序设计的思想,设计的步骤、难点技术和解决方案。以及开发的过程和所要完成的功能。在编写程序过程中先弄清楚需要调用哪些头文件,再运用所学知识分段编写菜单目录,设置全局变量以及加、减、乘、除的运算代码,并运用循环语句使得算术能更流畅。

2、程序结构(各部分流程图)

(1) 主菜单

(2) 菜单选项(3)加法运算(4)减法运算

(5)乘法运算(6) 除法运算

(7) 选择加法的循环(8) 选择减法的循环

(9) 选择乘法的循环(10) 选择除法的循环

3、各模块的功能及程序说明

图(1)为main函数图,图(2)为menu-select,图(3)为加法运算,图(4)为减法运算,图(5)为乘法运算,图(6)为除法运算,图(7)—(10)分别为加、减、乘、除运算的选择循环结构。

4、源程序

#include

#include//包含exit函数//

#include

float add(float ,float );

float mub(float ,float );

float mult(float ,float );

float divp(float ,float);

int menu_select();

void xun_huan1();

void xun_huan2();

void xun_huan3();

void xun_huan4();

float x,y;//全局变量

double answer;

int main()

{

switch(menu_select())

{

case 1:answer=add( x, y);

xun_huan1();

case 2:answer=mub( x, y);

xun_huan2();

case 3:answer=mult( x, y);

xun_huan3();

case 4:answer=divp( x, y);

xun_huan4();

case 0:

default :{printf("Error! please input again!\n");main();}

exit(0);

}

return 0;

}

int menu_select()//菜单选项//

{

char s;

int cn;

printf("\nThis is computer menu below:\n");

printf("\t1.add \t");

printf("\t2.mub \t");

printf("\t3.mult \n");

printf("\t4.div \t");

printf("\t0.Error!\n");

printf("input 1--4 to choose :\t");

do

{

s=getchar();

cn=(int)s-48;//为了使switch语句中的case语句对应数字0~4// }

while(cn<0||cn>4);

return cn;

}

//***下面就是定义各种运算函数***//

float add(float x,float y)

{

printf("input numbers:\n");

scanf("%f %f",&x,&y);

return(x+y);

}

float mub(float x,float y)

{

printf("input numbers:\n");

scanf("%f %f",&x,&y);

return(x-y);

}

float mult(float x,float y)

{

printf("input numbers:\n");

scanf("%f %f",&x,&y);

return(x*y);

}

float divp(float x,float y)

{

printf("input numbers:\n");

scanf("%f %f",&x,&y);

return(x/y);

}

void xun_huan1()

{

printf("answer=%lf\n",answer);

printf("Do you want to countine?(y/n)\t");

char c;

c=getchar();

if((c=getchar())=='y')

{

loop: answer=add( x, y);

printf("answer=%lf\n",answer);

printf("Do you want to countine?(y/n)\t");

c=getchar();

if((c=getchar())=='y')

goto loop;//使用goto语句实现循环,继续进行加法运算// else goto loop1;

}

loop1: main();//返回主菜单//

}

void xun_huan2()

{

printf("answer=%lf\n",answer);

printf("Do you want to countine?(y/n)\t");

char c;

c=getchar();

if((c=getchar())=='y')

{

loop2: answer=mub( x, y);

printf("answer=%lf\n",answer);

printf("Do you want to countine?(y/n)\t");

c=getchar();

if((c=getchar())=='y')

goto loop2;

else goto loop3;

}

loop3: main();

}

void xun_huan3()

{

printf("answer=%lf\n",answer);

printf("Do you want to countine?(y/n)\t");

char c;

c=getchar();

if((c=getchar())=='y')

{

loop4: answer=mult( x, y);

printf("answer=%lf\n",answer);

printf("Do you want to countine?(y/n)\t");

c=getchar();

if((c=getchar())=='y')

goto loop4;

else goto loop5;

}

loop5: main();

}

void xun_huan4()

{

printf("answer=%lf\n",answer);

printf("Do you want to countine?(y/n)\t");

char c;

c=getchar();

if((c=getchar())=='y')

{

loop6: answer=divp( x, y);

printf("answer=%lf\n",answer);

printf("Do you want to countine?(y/n)\t");

c=getchar();

if((c=getchar())=='y')

goto loop6;

else goto loop7;

}

loop7: main();

}}

5、实验过程及结果截图:

6、设计体会

①、通过此次课程设计,我深刻体会到,C语言程序设计是一门实践性比较强的课程,要想得到良好的效果,必须注重编写。程序调试和程序测试的每一个环节。

②、C语言程序设计要求我们能灵活运用所学的知识解决实际问题,把掌握的基本知识和简单设计程序运用到生活中,以此进一步提高设计和编程的能力。③、在做这个课程设计题目的过程中,遇到了很多困难,感觉题目很难,根本就做不出来,但是通过与朋友们的研究与讨论,在网上收索相关的资料。在共同的努力之下完成了设计。在程序设计的过程之中,必须要细心的去写每一个步骤,不然很容易出错。

附录

一、函数设计列表:

二、函数的使用清单

在课程设计中主要用到以下函数,用法说明如下:

●主调函数

原型:int main(void)

功能:总控;

参数:void

返回值:0。

●菜单选择函数

原型:int menu_select(void)

功能:显示运算总菜单,并接收用户输入的字符,然后把输入的数据转换成int 型的

参数:void

返回值:int

●加法运算函数

原型:float add(float ,float )

功能:提示用户输入计算数据并接收数据,然后进行加法运算

参数:float x ,float y

返回值:float

●减法运算函数

原型float mub(float ,float )

功能:提示用户输入计算数据并接收数据,然后进行减法运算

参数:float x ,float y

返回值:float

●乘法运算函数

原型float mult (float ,float )

功能:提示用户输入计算数据并接收数据,然后进行乘法运算

参数:float x ,float y

返回值:float

●除法运算函数

原型float divp(float ,float )

功能:提示用户输入计算数据并接收数据,然后进行除法运算

参数:float x:除数,float y:被除数

返回值:float

●循环使用加法的函数

原型:void xun_huan1(void)

功能:当使用一次加法运算后,就会提示“Do you want to continue?(y/n)”,如果用户输入“y”,就继续调用加法函数,如果输入“n”,就会返回主菜单。

参数:void

返回值:void

●循环使用减法的函数

原型:void xun_huan2(void)

功能:当使用一次减法运算后,就会提示“Do you want to continue?(y/n)”,如果用户输入“y”,就继续调用减法函数,如果输入“n”,就会返回主菜单。

参数:void

返回值:void

●循环使用乘法的函数

原型:void xun_huan3(void)

功能:当使用一次乘法运算后,就会提示“Do you want to continue?(y/n)”,如果用户输入“y”,就继续调用乘法函数,如果输入“n”,就会返回主菜单。

参数:void

返回值:void

●循环使用除法的函数

原型:void xun_huan4(void)

功能:当使用一次除法运算后,就会提示“Do you want to continue?(y/n)”,如果用户输入“y”,就继续调用除法函数,如果输入“n”,就会返回主菜单。

参数:void

返回值:void

三、程序整体流程图

相关主题
相关文档
最新文档