admin 管理员组文章数量: 1086019
2024年5月17日发(作者:split电影主演)
攀枝花学院
学生课程设计(论文)
题 目:
简易计算器
学生姓名:
葛肪瑜
学 号:
************
所在院(系):
计算机学院
专 业:
计算机科学与技术
班 级:
10计本(1)班
指 导 教 师:
陈三清
职称:
讲师
2011年6月25日
攀枝花学院教务处制
攀枝花学院本科课程设计(论文) 目录
攀枝花学院本科学生课程设计任务书
题 目
计算器的设计
1、课程设计的目的
本课程设计的目的和任务:(1)巩固和加深学生对C语言课程的基本知识的理解和掌
握;(2)掌握C语言编程和程序调试的基本技能;(3)利用C语言进行简单软件设计的基本
思路和方法;(4)提高运用C语言解决实际问题的能力。
2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)
一、用C实现如下功能:
使用C语言编写一个类似于Windows附件提供的计算器软件,实现计算器的基本功能,
能进行浮点数的加、减、乘、除、乘方和求模运算。
二、撰写课程设计报告或课程设计总结课程设计报告要求:总结报告包括需求分析、总
体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容、课程设计总结、参考资
料等,不符合以上要求者,则本次设计以不及格记。
3、主要参考文献
[1] 潭浩强,《C程序设计》,清华大学出版社
[2] 王声决,《C语言程序设计》,中国铁道出版社
[3] 潭浩强,《C程序设计题解与上机指导》,清华大学出版社
[4] 刘玲等,《C语言程序设计应用教程》,西南师范大学出版社
4、课程设计工作进度计划
第1天 完成方案设计与程序框图
第2、3天 编写程序代码
第4天 程序调试分析和结果
第5天 课程设计报告和总结
指导教师(签字)
教研室意见:
年 月 日
学生(签字):
接受任务时间:
年 月 日
注:任务书由指导教师填写。
日期
年 月 日
II
攀枝花学院本科课程设计(论文) 目录
课程设计(论文)指导教师成绩评定表
题目名称
评分项目
工
作
表
现
20%
01
02
03
04
05
06
07
08
学习态度
科学实践、调研
课题工作量
综合运用知识的能力
应用文献的能力
设计(实验)能力,方案
的设计能力
计算及计算机应用能力
对计算或实验结果的分析
能力(综合分析能力、技
术经济分析能力)
插图(或图纸)质量、篇
幅、设计(论文)规范化
程度
设计说明书(论文)质量
创新
教师网上成绩录入系统开发
分
值
6
7
7
10
5
5
5
10
得
分
评价内涵
遵守各项纪律,工作刻苦努力,具有良好的科学
工作态度。
通过实验、试验、查阅文献、深入生产实践等渠
道获取与课程设计有关的材料。
按期圆满完成规定的任务,工作量饱满。
能运用所学知识和技能去发现与解决实际问题,
能正确处理实验数据,能对课题进行理论分析,
得出有价值的结论。
能独立查阅相关文献和从事其他调研;能提出并
较好地论述课题的实施方案;有收集、加工各种
信息及获取新知识的能力。
能正确设计实验方案,独立进行装置安装、调试、
操作等实验工作,数据正确、可靠;研究思路清
晰、完整。
具有较强的数据运算与处理能力;能运用计算机
进行资料搜集、加工、处理和辅助设计等。
具有较强的数据收集、分析、处理、综合的能力。
能
力
水
平
35%
成
果
质
量
45%
09
10
11
5
30
10
符合本专业相关规范或规定要求;规范化符合本
文件第五条要求。
综述简练完整,有见解;立论正确,论述充分,
结论严谨合理;实验正确,分析处理科学。
对前人工作有改进或突破,或有独特见解。
成绩
指
导
教
师
评
语
指导教师签名: 年 月 日
III
攀枝花学院本科课程设计(论文) 目录
目 录
目 录 ......................................................................................................................... IV
摘 要 .......................................................................................................................... V
1 绪论 ....................................................................................................................... VI
1.1 课程设计背景.................................................................................................................. VI
1.2 需求环境 ......................................................................................................................... VI
1.3 课程设计思路.................................................................................................................. VI
2 课程设计概要 ......................................................................................................... 2
3 程序结构和各模块分析 ......................................................................................... 3
3.1 菜单操作模块................................................................................................................... 3
3.1.1 fun1函数功能 .......................................................................................................... 3
3.1.2 功能实现代码 ........................................................................................................... 3
3.2 加减乘除运算模块 ............................................................................................................... 3
3.2.1 fun2函数功能 .......................................................................................................... 3
3.2.2 功能实现代码 ........................................................................................................... 4
3.3 乘方和开方运算模块 ........................................................................................................... 4
3.3.1 fun3函数功能 .......................................................................................................... 4
3.3.2 功能实现代码 ........................................................................................................... 4
3.4 进制转换运算模块 ............................................................................................................. 5
3.4.1 convert函数功能 .................................................................................................... 5
3.4.2 功能实现代码 ........................................................................................................... 5
3.5 求模运算模块..................................................................................................................... 5
3.5.1 fun4函数功能 .......................................................................................................... 5
3.5.2 功能实现代码 ........................................................................................................... 6
3.6 退出模块 ............................................................................................................................ 6
3.6.1代码功能.................................................................................................................... 6
3.6.2 功能实现代码 ........................................................................................................... 6
4 程序调试 ................................................................................................................. 7
4.1 操作界面 ............................................................................................................................ 7
4.2 加减乘除运算..................................................................................................................... 7
4.3 乘方和开方运算 ................................................................................................................. 9
4.4 进制转换运算................................................................................................................... 10
4.5 求模运算 .......................................................................................................................... 11
4.6 退出 .................................................................................................................................. 12
5 课程设计总结 ....................................................................................................... 12
参考文献 ..................................................................................................................... 13
附录:源代码 ............................................................................................................. 14
IV
攀枝花学院本科课程设计(论文) 目录
摘 要
一直以来,C语言都是在国际上广泛流行的通用编程语言,它既具有高级语言
的特点,又具有低级语言的些特点;既可用于编写系统软件又可用于编写应用软
件。虽然说近二十年来计算机技术取得了长远的进步,各种编程语言不断地涌现
出来,但是C语言功能强大,使用灵活,即使是在科技快速发展的二十一世纪,
仍展现出了强大的生命力,为社会的高度信息化,特别是在信息技术和网络技术
领域做出了十分重要的贡献。
本文介绍了用C语言编写一个简易计算器。实现数学上对浮点数加、减、乘、
除、乘方、开方、求模以及进制转换的运算。利用这个程序可以方便的进行日常
性的小规模运算,小巧简易,是个实用的工具。
关键词: 程序设计,计算器,C语言,函数,循环
V
攀枝花学院本科课程设计(论文) 目录
1 绪论
1.1 课程设计背景
日常生活中我们经常会遇到一些小型数据计算的问题,本课程设计就是以此
为出发点,设计了这样一个简单的计算器,用以实现基本的数学运算。在C语言
当中通过定义模块函数,并在主函数中进行调用从而实现数据的运算。通过与用
户之间的交互,可以在操作界面上实现对各种运算的选择和程序的控制。
在完成课程设计的期间,参阅了相关的书籍并在网络上查找相关的资料,对
实现这个设计提供了很大的帮助。由于设计水平和知识方面的匮乏,本次课程设
计还存在缺点和不足,希望大家提出宝贵的意见,互相交流以期提高。
1.2 需求环境
本课程设计需要的设备为硬件要求和软件配置要求具体要求如下:
①硬件要求:一台计算机。
②软件配置:WINDOWS系统、c/c++程序设计学习与实验软件
1.3 课程设计思路
做计算器最主要的就是实用性,要简单,便于操作。程序的界面要方便与用
户之间的交互。并以设计的要求为基础,进行了创新,增加了对进制转换运算的
支持,这就大致的确定了程序的几个模块。然后对每个模块进行设计,再整合起
来,由此一个简洁美观的计算器就建立起来了。
VI
攀枝花学院本科课程设计(论文) 课程设计概要
2 课程设计概要
在设计程序的时候,考虑到计算器的功能,我按照其功能划分为几个模块,
在程序开始后,可以进行选择,到自己希望进行操作的模块中去。有了具体的模
块之后,在设计程序的时候有更方便了,同时也有法可依,不会造成混乱。具体
分为:加减乘除运算、乘方开方运算、进制转换运算、求模运算和退出五个模块。
具体的模块关系如表2-1:
表2-1 基本模块表
模块
实现功能
简单的四
则运算
加减乘除
运算
乘方开方 进制转换 求绝对值
乘方开方
运算
进制转换
运算
退出
求模运算 退出程序
流程图详解:首先用户运行程序,进入开始菜单,由用户对所要进行的运算
做出选择。当选择运算方式时,程序将调用对应的运算模块,对用户输入的数据
进行处理,并输出结果,随后,当用户确认结果后,程序将清屏,并返回开始菜
单,由用户继续进行选择。当选择退出时,程序将调用退出模块,显示“拜拜!
谢谢使用哈!”,并退出程序。
开始菜单
选择
加
乘
减
除
乘
开
方
方
进
转
制
换
求
对
绝
值
退出
结束
图2-1 程序流程图
- 2 -
攀枝花学院本科课程设计(论文) 程序结构和各模块分析
3 程序结构和各模块分析
3.1 菜单操作模块
3.1.1 fun1函数功能
在这个模块中,为了方便用户的使用,我们定义了一个菜单调用函数,将整
个菜单尽量做到简易美观。程序开始时,由用户对所要进行的运算进行选择。
3.1.2 功能实现代码
程序如下:
void fun1() /* 定义菜单调用函数 */
printf(" ***********************菜单**********************n");
printf(" * *n");
printf(" * 设计人:葛肪瑜 *n");
printf(" * *n");
printf(" *************************************************n");
printf(" * 1.加法运算 *n");
printf(" * 2.减法运算 *n");
printf(" * 3.乘法运算 *n");
printf(" * 4.除法运算 *n");
printf(" * 5.乘方运算 *n");
printf(" * 6.开平方运算 *n");
printf(" * 7.转换为2进制 *n");
printf(" * 8.转换为8进制 *n");
printf(" * 9.转换为16进制 *n");
printf(" * 10.求绝对值 *n");
printf(" * 11.退出 *n");
printf(" *************************************************n");
printf("n");
printf(" 输入你想要进行的运算(1~11):n" );
printf("n");
}
3.2 加减乘除运算模块
3.2.1 fun2函数功能
当用户的选择为1~4时,程序将调用fun2函数(加减乘除运算模块),该函
数首先对用户的选项进行匹配,当匹配为1时,进行加法运算;为2时,进行减
法运算;为3时,进行乘法运算;为4时,进行除法运算。最后将所得结果输出。
- 3 -
攀枝花学院本科课程设计(论文) 程序结构和各模块分析
3.2.2 功能实现代码
算法:采用swich语句的分支机构,对用户选择的加减乘除运算进行匹配,
匹配后将进行相应的运算并输出结果。
程序如下:
void fun2(float x,float y,int c) /* 定义加减乘除模块函数 */
{float z;
switch(c)
{
case 1: z=x+y;printf("
输出结果为
: %g+%g=%gn",x,y,z);break; /* 进行加法运算 */
case 2: z=x-y;printf("
输出结果为
: %g-%g=%gnn",x,y,z);break; /* 进行减法运算 */
case 3: z=x*y;printf("
输出结果为
: %g*%g=%gn",x,y,z);break; /* 进行乘法运算 */
case 4: if(y==0) printf("
输入错误
!"); /* 如果分母为0则输出“
输入错误!
”*/
else{z=x/y;printf("
输出结果为
:%g/%g=%gn",x,y,z);}break; /* 进行除法运算 */
default: printf("
输入错误
!");
}
}
3.3 乘方和开方运算模块
3.3.1 fun3函数功能
当用户的选择为5或6时,程序将调用fun3函数(乘方和开方运算模块),
该函数首先对用户的选项进行匹配,当匹配为5时,进行乘方运算;为6时,进
行开方运算。最后将所得结果输出。
3.3.2 功能实现代码
算法:采用swich语句的分支机构,对用户选择的乘方开方运算进行匹配,
匹配后将进行相应的运算并输出结果。
程序如下:
void fun3(float x,int c) /* 定义乘方开方模块函数 */
{float z;
switch(c)
{
case 5: z=x*x;printf("
输出结果为
: %gn",z);break; /* 进行乘方运算 */
case 6: if(x<0) printf("
输入错误!
"); /* 如果x小于0则输出“
输入错误!
”*/
else{z=sqrt(x);printf("
输出结果为
: %gn",z);}break; /* 进行开方运算 */
default: printf("
输入错误!
");
- 4 -
攀枝花学院本科课程设计(论文) 程序结构和各模块分析
}
}
3.4 进制转换运算模块
3.4.1 convert函数功能
当用户的选择为7~9时,程序将调用convert函数(进制转换运算模块),该
函数首先对用户的选项进行匹配,当匹配为7时,将把用户所输入的数据转换为2
进制数;为8时,将把用户所输入的数据转换为8进制数;为9时,将把用户所
输入的数据转换为16进制数。最后将所得结果输出。
3.4.2 功能实现代码
算法:采用swich语句的分支机构,对用户所要进行转换的进制进行匹配,
匹配后将进行相应的运算并输出结果。
程序如下:
void convert(int m,int c) /* 定义进制转换模块函数 */
{char s[128];
switch(c)
{case 7: itoa(m, s, 2);printf("
输出结果为
: [%s]n",s);break; /* 转换为二进制数 */
case 8: printf("
输出结果为
:%on",m);break; /* 转换为8进制数 */
case 9: printf("
输出结果为
:%xn",m);break; /* 转换为16进制数 */
default: printf("
输入错误!
");
}
}
特殊函数介绍:
itoa()函数的头文件是# include
要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移
数字时所用的基数。在上例中,转换基数为2,所以函数将把数据转换为二进制数。
3.5 求模运算模块
3.5.1 fun4函数功能
当用户的选择为10时,程序将调用fun4函数(求模运算模块),并将用户所
输入的数据求绝对值并输出。
- 5 -
攀枝花学院本科课程设计(论文) 程序结构和各模块分析
3.5.2 功能实现代码
算法:采用fabs()的求绝对值函数,匹配后将数据进行相应的运算并输出
结果。
程序如下:
void fun4(float x) /* 定义求绝对值模块函数 */
{float z=0;
z=fabs(x); /* 进行求模运算 */
printf("
输出结果为
: %fn",z);
}
3.6 退出模块
3.6.1代码功能
当用户的选择为11时,程序将调用quit函数(退出模块),该函数将终止程
序,并退出当前界面。
3.6.2 功能实现代码
程序如下:
void quit() /* 定义退出程序模块函数 */
{exit (0);}
- 6 -
攀枝花学院本科课程设计(论文) 程序调试
4 程序调试
4.1 操作界面
在TC环境下运行程序,进入程序主界面。首先是由用户对所要进行的运算进行选择。
图4-1就显示出操作的界面。
图4-1 操作界面
4.2 加减乘除运算
运行程序,当用户的选择为1-4时,程序将根据用户所选择的运算方式进行加减乘除运
算。图4-2~4-5显示了具体的操作方法及结果。
- 7 -
攀枝花学院本科课程设计(论文) 程序调试
图4-2 加法运算
图4-3 减法运算
图4-4 乘法运算
- 8 -
攀枝花学院本科课程设计(论文) 程序调试
图4-5 除法运算
4.3 乘方和开方运算
开启程序后,当用户的选择为5或6时,程序将根据用户所选择的运算方式进行乘方和
开方运算。图4-6和4-7显示了具体的操作方法及操作结果
图4-6 乘方运算
- 9 -
攀枝花学院本科课程设计(论文) 程序调试
图4-7 开方运算
4.4 进制转换运算
运行程序,当用户的选择为7-9时,程序将根据用户所选择的运算方式把所输入的数据
分别转换为2进制、8进制和16进制数。操作方法及结果见图4-8~4-10。
图4-8 转换为二进制
- 10 -
攀枝花学院本科课程设计(论文) 程序调试
图4-9 转换为八进制
图4-10 转换为十六进制
4.5 求模运算
开启程序后,当用户的选择为10时,程序将根据用户所选择的运算方式进行求绝对值的
运算。图4-11显示了具体的操作方法及操作结果
- 11 -
攀枝花学院本科课程设计(论文) 程序调试
图4-11 求模运算
4.6 退出
基本操作完成之后,我们可以选择11退出程序。
操作方法及结果见图4-12。
图4-12 退出
- 12 -
攀枝花学院本科课程设计(论文) 课程设计总结
5 课程设计总结
在这次课程设计中,我基本上完成了任务,通过对各模块函数的调用和对无
限循环算法的使用实现了计算器的演示过程,基本上达到了此次课程设计的要求。
但是这个程序仍然有不少的问题,例如作为一个计算器它的界面还不够人性化,
功能也不够丰富等,所以整个程序的功能有待进一步完善,让更多的功能得以实
现。
虽然在这次的课程设计中有很多的不足,但是我也收获了很多。由于本身计
算器这个课题就比较简单,涉及的知识不是很多,所以我一个人一组,、通过与同
学们的交流,解决了不少长久以来困扰我的C语言问题,让我深切体会到了大家
共同努力的重要性。在设计这个系统的时候,我查阅了很多相关的书籍,并通过
网络解决了不少问题。通过这次课程式设计,我对TC的开发环境有了更多的认识
和了解,让我对C语言的认识又加深了一步,不仅使我学会了如何查阅资料,同
时也让我发现了网络这个好老师,总之收获了很多。
- 12 -
攀枝花学院本科课程设计(论文) 参考文献
参考文献
[1] 谭浩强.C语言程序设计(第三版).清华大学出版社,2005;260-265,294-308。
[2] 黄明,梁旭,万洪莉.《C语言课程设计》.电子工业出版社。
[2] 谭浩强.《C语言程序设计习题解答与上机指导》.清华大学出版社。
[3] 攀枝花学院本科学生课程设计任务书。
[4] 攀枝花学院本科学生课程设计论文详细格式。
[5] C语言程序设计参考实例。
[6] C语言名题精选百则技巧篇。
[7] C语言程序设计实验指导 - c语言程序设计
[8] 程序设计基础(C语言版)
- 13 -
攀枝花学院本科课程设计(论文) 附录:源代码
附录:源代码
/* Note:Your choice is C IDE */
#include
#include
#include
void fun1()
{ printf(" ***********************菜单**********************n");
printf(" * *n");
printf(" * 设计人:葛肪瑜 *n");
printf(" * *n");
printf(" *************************************************n");
printf(" * 1.加法运算 *n");
printf(" * 2.减法运算 *n");
printf(" * 3.乘法运算 *n");
printf(" * 4.除法运算 *n");
printf(" * 5.乘方运算 *n");
printf(" * 6.开平方运算 *n");
printf(" * 7.转换为2进制 *n");
printf(" * 8.转换为8进制 *n");
printf(" * 9.转换为16进制 *n");
printf(" * 10.求绝对值 *n");
printf(" * 11.退出 *n");
printf(" *************************************************n");
printf("n");
printf(" 输入你想要进行的运算(1~11):n" );
printf("n");
}
void fun2(float x,float y,int c) /* 定义加减乘除模块函数 */
{ float z;
switch(c)
{case 1: z=x+y;printf("输出结果为: %g+%g=%gn",x,y,z);break; /* 进行加
法运算 */
case 2: z=x-y;printf("输出结果为: %g-%g=%gnn",x,y,z);break; /* 进行
减法运算 */
case 3: z=x*y;printf("输出结果为: %g*%g=%gn",x,y,z);break; /* 进行乘
法运算 */
case 4: if(y==0) printf(" 输入错误!"); /* 如果分母为0则输出“enter
error!”*/
else{z=x/y;printf("输出结果为:%g/%g=%gn",x,y,z);}break; /* 进行除法
运算 */
default: printf(" 输入错误!");
}
}
- 14 -
攀枝花学院本科课程设计(论文) 附录:源代码
void fun3(float x,int c) /* 定义乘方开方模块函数 */
{float z;
switch(c)
{case 5: z=x*x;printf("输出结果为: %gn",z);break; /* 进行乘方运算 */
case 6: if(x<0) printf("输入错误!"); /* 如果x小于0则输出“enter
error!”*/
else{z=sqrt(x);printf("输出结果为: %gn",z);}break; /* 进行开方运算
*/
default: printf(" 输入错误,请重新输入!");
}
}
void fun4(float x) /* 定义求绝对值模块函数 */
{float z=0;
z=fabs(x);
printf("输出结果为: %fn",z);
}
void convert(int m,int c) /* 定义进制转换模块函数 */
{char s[128];
switch(c)
{case 7: itoa(m, s, 2);printf("输出结果为: [%s]n",s);break; /* 转换为二进
制数 */
case 8: printf("输出结果为:%on",m);break; /* 转换为8进制数 */
case 9: printf("输出结果为:%xn",m);break; /* 转换为16进制数 */
default: printf(" 输入错误!");
}
}
void quit() /* 定义退出程序模块函数 */
{exit (0);}
/******主函数开始*******/
void main()
{ for(;;) /* 无限循环 */
{float x,y,z;
int c,m;
char n;
fun1(); /* 调用菜单函数 */
scanf("%d",&c);
if(c==1||c==2||c==3||c==4)
{printf("请输入两个数:");
scanf("%f%f",&x,&y);
fun2(x,y,c); /* 调用加减乘除函数 */
}
if(c==5||c==6)
{printf("请输入一个数:");
scanf("%f",&x);
- 15 -
攀枝花学院本科课程设计(论文) 附录:源代码
if(x<0) printf(" 输入错误!");
else fun3(x,c); /* 调用乘方开方函数 */
}
if(c==7||c==8||c==9)
{ printf("请输入一个数:");
scanf("%d", &m);
convert(m,c); /* 调用进制转换函数 */
}
if(c==10)
{printf("请输入一个数:");
scanf("%f",&x);
fun4(x); /* 调用求绝对值函数 */
}
if(c==11)
{printf(" <<<<<<<<<<<拜拜!謝謝使用哈!>>>>>>>>>>> n");
system("pause");
quit();
}
getch();
}
}
- 16 -
版权声明:本文标题:C语言程序设计之简单计算器 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1715882363a689790.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论