计算器C语言课程设计.docx
- 文档编号:8179330
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:22
- 大小:751.45KB
计算器C语言课程设计.docx
《计算器C语言课程设计.docx》由会员分享,可在线阅读,更多相关《计算器C语言课程设计.docx(22页珍藏版)》请在冰豆网上搜索。
计算器C语言课程设计
沈阳航空航天大学
课程设计
学号
班级
姓名
指导教师
2012年6月22日
沈阳航空航天大学
课程设计任务书
学院:
专业:
班级:
学号:
题目:
一、课程设计时间
2011~2012第2学期第16周,共计1周,20学时。
二、课程设计内容
用C语言编写软件完成以下任务:
在实数范围内支持加、减、乘、除运算,同时支持正弦、正切,及其反三角函数运算。
用户可以选择运算的类型,并可以在界面进行数据的输入和输出。
被运算的数据、运算的类型、运算的结果应能够保存到文件myfile.txt中。
保存的形式可以参考如下所示:
4*2=8;sin(0.5)=0.479426。
三、课程设计要求
程序质量:
✧贯彻结构化的程序设计思想。
✧用户界面友好,功能明确,操作方便。
✧用户界面中的菜单至少应包括“运算选项”、“数据输入”、“数据结果”、“退出”4项。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
✧课程结束后,上交课程设计说明书和源程序。
课程设计说明书的内容参见提供的模板。
四、指导教师和学生签字
指导教师:
________学生签名:
________
五、成绩
六、教师评语
目录
一、程序设计题目1
二、需求分析1
三、程序流程图2
四、各操作对应的截图7
五、核心技术的实现方法、程序段及注释12
六、个人总结15
七、参考文献16
八、源程序16
一、程序设计题目
计算器实现的简单功能,具体如下:
1、加法运算;
2、减法运算;
3、乘法运算;
4、除法运算;
5、正弦运算;
6、正切运算;
7、反正弦运算;
8、反正切运算;
9、退出。
注:
运算结果保存到D:
\myfile.txt文件中。
二、需求分析
经过对程序设计题目的分析可知,整个程序的设计实现大致分为两个大模块,他们的功能分别是:
运算和保存。
运算中又分为八个小模块,其中每一个小模块对应一个函数,它们的功能分别是:
数据作和函数(+),数据作差函数(-),数据作积函数(*),数据作商函数(/),数据作正弦函数运算(sin),数据作正切函数运算(tan),数据作反正弦函数运算(asin),数据作反正切函数运算(atan)模块。
1、数据作和函数主要实现求两个数的和;
2、数据作差函数主要实现求两个数的差;
3、数据作积函数主要实现求两个数的乘积;
4、数据作商函数主要实现求两个数的商值;
5、数据作正弦函数运算可以实现度数和数据的转化;
6、数据作余弦函数运算可以实现度数和数据的转化;
7、数据作反正弦函数运算可以实现数据和度数的转化;
8、数据作反正切函数运算可以实现数据和度数的转化。
除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。
每一个记录都包含在实数范围内加、减、乘、除运算,以及正弦、正切,及其反三角函数运算。
在程序当中,用户可以选择运算的类型,并可以在界面进行数据的输入和输出。
被运算的数据、运算的类型、运算的结果都能够保存到文件D:
\myfile.txt中。
这样做可以对所进行过的运算进行永久保存。
三、程序流程图
1、程序总体结构图
真
n=1
假
加法运算
真
n=2
假
减法运算
真
n=3
假
乘法运算
真
n=4
假
除法运算
真
n=5
假
正弦运算
真
n=6
假
正切运算
真
n=7
假
反正弦运算
真
n=8
假
反正切运算
退出
图1程序总体结构图
2、
具体功能框图
(1)数据作和函数(+)
图2数据作和函数
(2)
数据作差函数(-)
图3数据作差函数
(3)
数据作积函数(*)
图4数据作积函数
(4)数据作商函数(/)
图5数据作商函数
(5)
数据作sin数运算
图6数据作正弦函数运算
(6)
数据作tan函数运算
图7数据作正切函数运算
(7)
数据作asin函数运算
图8数据作反正弦函数运算
(8)
数据作atan函数运算
图9数据作反正切函数运算
四、各操作对应的截图
1、加法运算运行截图
2、减法运算运行截图
3、乘法运算运行截图
4、除法运算运行截图
5、正弦运算运行截图
6、正切运算运行截图
7、反正弦运算运行截图
8、反正切运算运行截图
9、退出显示截图
10、保存文件截图
五、核心技术的实现方法、程序段及注释
1、定义函数名称,分别编号,按照数字选择。
进入调试状态,页面菜单显示“选择需要的算法”,选择需要计算的函数进行下一步的运算,具体程序段如下所示:
voidmain()
{
intn;
doublea,b,c;
FILE*fp;
fp=fopen("D:
\\myfile.txt","a");
while
(1){
printf("囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧\n");
printf("囧计算器囧\n");
printf("囧1.加法运算囧\n");
printf("囧2.减法运算囧\n");
printf("囧3.乘法运算囧\n");
printf("囧4.除法运算囧\n");
printf("囧5.正弦运算囧\n");
printf("囧6.正切运算囧\n");
printf("囧7.反正弦运算囧\n");
printf("囧8.反正切运算囧\n");
printf("囧9.退出计算器囧\n");
printf("囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧\n");
printf("选择需要的算法:
\n");
本程序段的截图如下
2、运算函数:
利用switch语句来实现,分别计算,然后跳出程序。
具体程序段如下所示:
switch(n)
{
case1:
printf("输入需要进行加法运算的两个数:
\n");
scanf("%lf",&a);
scanf("%lf",&b);
c=a+b;
printf("%lf+%lf=%lf\n",a,b,c);
fprintf(fp,"%lf+%lf=%lf;",a,b,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
case2:
printf("输入需要进行减法运算的两个数:
\n");
scanf("%lf",&a);
scanf("%lf",&b);
c=a-b;
printf("%lf-%lf=%lf\n",a,b,c);
fprintf(fp,"%lf-%lf=%lf;",a,b,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
case3:
printf("输入需要进行乘法运算的两个数:
\n");
scanf("%lf",&a);
scanf("%lf",&b);
c=a*b;
printf("%lf*%lf=%lf\n",a,b,c);
fprintf(fp,"%lf*%lf=%lf;",a,b,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
case4:
printf("输入需要进行除法运算的两个数:
\n");
scanf("%lf",&a);
scanf("%lf",&b);
c=a/b;
printf("%lf/%lf=%lf\n",a,b,c);
fprintf(fp,"%lf/%lf=%lf;",a,b,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
case5:
printf("输入需要进行正弦运算的角度数:
\n");
scanf("%lf",&a);
c=sin(a*2*3.1415926/360);
printf("sin(%lf)=%lf\n",a,c);
fprintf(fp,"sin(%lf)=%lf;",a,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
case6:
printf("输入需要进行正切运算的角度数:
\n");
scanf("%lf",&a);
c=tan(a*2*3.1415926/360);
printf("tan(%lf)=%lf\n",a,c);
fprintf(fp,"tan(%lf)=%lf;",a,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
case7:
printf("输入需要进行反正弦运算的一个数:
\n");
scanf("%lf",&a);
c=asin(a)*360/(3.1415926*2);
printf("asin(%lf)=%lf\n",a,c);
fprintf(fp,"asin(%lf)=%lf;",a,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
case8:
printf("输入需要进行反正切运算的一个数:
\n");
scanf("%lf",&a);
c=atan(a)*360/(3.1415926*2);
printf("atan(%lf)=%lf\n",a,c);
fprintf(fp,"atan(%lf)=%lf;",a,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
case9:
exit(0);
default:
printf("请输入上面所对应的选项数字!
\n");
}
以上程序段主要由一个主函数和八个自定义函数组成,其中主函数以菜单的形式调用其它函数来实现计算器要求的所有功能。
在这些函数当中,数据三角函数运算和反三角函数运算因为涉及到弧度与角度之间的相互转化,所以数据三角函数运算和反三角函数运算是计算器程序中比较中的两大部分,我们将在下面分别进行仔细说明。
3、数据作三角函数运算
三角函数运算分为正弦函数(sin)和正切函数(tan)。
输入要计算的数据,通过弧度与角度的转换公式,输出结果。
具体的程序段如下所示:
case5:
printf("输入需要进行正弦运算的角度数:
\n");
scanf("%lf",&a);
c=sin(a*2*3.1415926/360);
printf("sin(%lf)=%lf\n",a,c);
fprintf(fp,"sin(%lf)=%lf",a,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
case6:
printf("输入需要进行正切运算的角度数:
\n");
scanf("%lf",&a);
c=tan(a*2*3.1415926/360);
printf("tan(%lf)=%lf\n",a,c);
fprintf(fp,"tan(%lf)=%lf",a,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
4、数据作反三角函数运算
反三角函数运算分为反正弦函数(asin)和反正切函数(atan)。
输入要计算的数据,通过角度与弧度的转换公式,输出结果。
具体程序段如下所示:
case7:
printf("输入需要进行反正弦运算的一个数:
\n");
scanf("%lf",&a);
c=asin(a)*360/(3.1415926*2);
printf("asin(%lf)=%lf\n",a,c);
fprintf(fp,"asin(%lf)=%lf",a,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
case8:
printf("输入需要进行反正切运算的一个数:
\n");
scanf("%lf",&a);
c=atan(a)*360/(3.1415926*2);
printf("atan(%lf)=%lf\n",a,c);
fprintf(fp,"atan(%lf)=%lf",a,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
六、个人总结
这是我自学习以来,使我C语言和ward文档有了很大的进步,并对C语言和ward文档有了更加深刻的了解。
使我懂得C语言ward文档的实际重要性,这次实践也使我有了融入实践的机会。
这次课设实践使我学习到了很多新的知识,同时也使我懂得做事要认真。
我在这次实践中,体会到了由不懂到懵懂,由懵懂到彻底领会的痛苦与欢乐。
并且,通过实践我更加深了与同学之间的友谊,也更加丰富了我的专业知识。
前几天的课设过程中,我对所要设计的课题完全摸不到头脑,更不知如何下手。
但是通过查阅资料和咨询老师是我每一次我都能有新的进展,并找到了一些解决方法。
工夫不负苦心人,我渐渐成功的着手做起。
可是,仍旧有一些细小的问题困扰我。
但是通过同学和老师的帮助我不断完善了自己的设计,最终做出了令我自己比较满意的程序。
课程设计让我受益匪浅,锻炼了我的时间能力,提高了我对C语言的兴趣,同时也加深了我对C语言的理解。
七、参考文献
C程序设计(第三版)谭浩强著
八、源程序
#include
#include
#include
#include
voidmain()//主函数
{
intn;//定义变量a,b,c
doublea,b,c;
FILE*fp;//建立空文件
fp=fopen("D:
\\myfile.txt","a");//以追加方式打开文件
while
(1){
printf("囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧\n");//目录输出
printf("囧计算器囧\n");
printf("囧1.加法运算囧\n");
printf("囧2.减法运算囧\n");
printf("囧3.乘法运算囧\n");
printf("囧4.除法运算囧\n");
printf("囧5.正弦运算囧\n");
printf("囧6.正切运算囧\n");
printf("囧7.反正弦运算囧\n");
printf("囧8.反正切运算囧\n");
printf("囧9.退出计算器囧\n");
printf("囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧\n");
printf("选择需要的算法:
\n");//提示输入运算选项
{
scanf("%d",&n);
switch(n)//多分支选择执行菜单
{case1:
printf("输入需要进行加法运算的两个数:
\n");//加法运算输入两个数据
scanf("%lf",&a);
scanf("%lf",&b);
c=a+b;
printf("%lf+%lf=%lf\n",a,b,c);
fprintf(fp,"%lf+%lf=%lf;",a,b,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
case2:
printf("输入需要进行减法运算的两个数:
\n");//减法运算输入两个数据
scanf("%lf",&a);
scanf("%lf",&b);
c=a-b;
printf("%lf-%lf=%lf\n",a,b,c);
fprintf(fp,"%lf-%lf=%lf;",a,b,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
case3:
printf("输入需要进行乘法运算的两个数:
\n");//乘法运算输入两个数据
scanf("%lf",&a);
scanf("%lf",&b);
c=a*b;
printf("%lf*%lf=%lf\n",a,b,c);
fprintf(fp,"%lf*%lf=%lf;",a,b,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
case4:
printf("输入需要进行除法运算的两个数:
\n");//除法运算输入两个数据
scanf("%lf",&a);
scanf("%lf",&b);
c=a/b;
printf("%lf/%lf=%lf\n",a,b,c);
fprintf(fp,"%lf/%lf=%lf;",a,b,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
case5:
printf("输入需要进行正弦运算的角度数:
\n");//正弦运算输入一个数据
scanf("%lf",&a);
c=sin(a*2*3.1415926/360);//调用sin函数
printf("sin(%lf)=%lf\n",a,c);
fprintf(fp,"sin(%lf)=%lf;",a,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
case6:
printf("输入需要进行正切运算的角度数:
\n");//正切运算输入一个数据
scanf("%lf",&a);
c=tan(a*2*3.1415926/360);//调用tan函数
printf("tan(%lf)=%lf\n",a,c);
fprintf(fp,"tan(%lf)=%lf;",a,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
case7:
printf("输入需要进行反正弦运算的一个数:
\n");//反正弦运算输入一个数据
scanf("%lf",&a);
c=asin(a)*360/(3.1415926*2);//调用asin函数
printf("asin(%lf)=%lf\n",a,c);
fprintf(fp,"asin(%lf)=%lf;",a,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
case8:
printf("输入需要进行反正切运算的一个数:
\n");//反正切运算输入一个数据
scanf("%lf",&a);
c=atan(a)*360/(3.1415926*2);//调用atan函数
printf("atan(%lf)=%lf\n",a,c);
fprintf(fp,"atan(%lf)=%lf;",a,c);
printf("运算结果已保存到D:
\\myfile.txt文件中\n");
break;
case9:
exit(0);
default:
printf("请输入上面所对应的选项数字!
\n");
}
}}
fclose(fp);//关闭文件
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算器 语言 课程设计