




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 攀枝花学院学生课程设计(论文)题 目: 简易计算器 学生姓名: 葛肪瑜 学 号: 201010801018所在院(系): 计算机学院 专 业: 计算机科学与技术 班 级: 10计本(1)班 指 导 教 师: 陈三清 职称: 讲师 2011年6月25日攀枝花学院教务处制攀枝花学院本科学生课程设计任务书题目计算器的设计1、课程设计的目的本课程设计的目的和任务:(1)巩固和加深学生对c语言课程的基本知识的理解和掌握;(2)掌握c语言编程和程序调试的基本技能;(3)利用c语言进行简单软件设计的基本思路和方法;(4)提高运用c语言解决实际问题的能力。2、课程设计的内容和要求(包括原始数据、技术要求、工
2、作要求等)一、用c实现如下功能:使用c语言编写一个类似于windows附件提供的计算器软件,实现计算器的基本功能,能进行浮点数的加、减、乘、除、乘方和求模运算。二、撰写课程设计报告或课程设计总结课程设计报告要求:总结报告包括需求分析、总体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容、课程设计总结、参考资料等,不符合以上要求者,则本次设计以不及格记。3、主要参考文献1 潭浩强,c程序设计,清华大学出版社2 王声决,c语言程序设计,中国铁道出版社3 潭浩强,c程序设计题解与上机指导,清华大学出版社4 刘玲等,c语言程序设计应用教程,西南师范大学出版社4、课程设计工作进度计划第1天 完
3、成方案设计与程序框图 第2、3天 编写程序代码第4天 程序调试分析和结果第5天 课程设计报告和总结指导教师(签字)日期年 月 日教研室意见:年 月 日学生(签字): 接受任务时间: 年 月 日注:任务书由指导教师填写。课程设计(论文)指导教师成绩评定表题目名称教师网上成绩录入系统开发评分项目分值得分评价内涵工作表现20%01学习态度6遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。02科学实践、调研7通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。03课题工作量7按期圆满完成规定的任务,工作量饱满。能力水平35%04综合运用知识的能力10能运用所学知识和技能去发现与解
4、决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。05应用文献的能力5能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。06设计(实验)能力,方案的设计能力5能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。07计算及计算机应用能力5具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。08对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)10具有较强的数据收集、分析、处理、综合的能力。成果质量45%09插图(或图纸)质量、篇幅、设计
5、(论文)规范化程度5符合本专业相关规范或规定要求;规范化符合本文件第五条要求。10设计说明书(论文)质量30综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。11创新10对前人工作有改进或突破,或有独特见解。成绩指导教师评语指导教师签名: 年月日目 录目 录iv摘 要v1 绪论vi1.1 课程设计背景vi1.2 需求环境vi1.3 课程设计思路vi2 课程设计概要23 程序结构和各模块分析33.1菜单操作模块33.1.1 fun1函数功能33.1.2 功能实现代码33.2 加减乘除运算模块33.2.1 fun2函数功能33.2.2 功能实现代码43.3 乘方和开方
6、运算模块43.3.1 fun3函数功能43.3.2 功能实现代码43.4 进制转换运算模块53.4.1 convert函数功能53.4.2 功能实现代码53.5 求模运算模块53.5.1 fun4函数功能53.5.2 功能实现代码63.6 退出模块63.6.1代码功能63.6.2 功能实现代码64 程序调试74.1 操作界面74.2 加减乘除运算74.3 乘方和开方运算94.4 进制转换运算104.5 求模运算114.6 退出125 课程设计总结12参考文献13附录:源代码14摘 要一直以来,c语言都是在国际上广泛流行的通用编程语言,它既具有高级语言的特点,又具有低级语言的些特点;既可用于编写
7、系统软件又可用于编写应用软件。虽然说近二十年来计算机技术取得了长远的进步,各种编程语言不断地涌现出来,但是c语言功能强大,使用灵活,即使是在科技快速发展的二十一世纪,仍展现出了强大的生命力,为社会的高度信息化,特别是在信息技术和网络技术领域做出了十分重要的贡献。本文介绍了用c语言编写一个简易计算器。实现数学上对浮点数加、减、乘、除、乘方、开方、求模以及进制转换的运算。利用这个程序可以方便的进行日常性的小规模运算,小巧简易,是个实用的工具。关键词: 程序设计,计算器,c语言,函数,循环1 绪论1.1 课程设计背景日常生活中我们经常会遇到一些小型数据计算的问题,本课程设计就是以此为出发点,设计了这
8、样一个简单的计算器,用以实现基本的数学运算。在c语言当中通过定义模块函数,并在主函数中进行调用从而实现数据的运算。通过与用户之间的交互,可以在操作界面上实现对各种运算的选择和程序的控制。在完成课程设计的期间,参阅了相关的书籍并在网络上查找相关的资料,对实现这个设计提供了很大的帮助。由于设计水平和知识方面的匮乏,本次课程设计还存在缺点和不足,希望大家提出宝贵的意见,互相交流以期提高。1.2 需求环境本课程设计需要的设备为硬件要求和软件配置要求具体要求如下:硬件要求:一台计算机。软件配置:windows系统、c/c+程序设计学习与实验软件1.3 课程设计思路做计算器最主要的就是实用性,要简单,便于
9、操作。程序的界面要方便与用户之间的交互。并以设计的要求为基础,进行了创新,增加了对进制转换运算的支持,这就大致的确定了程序的几个模块。然后对每个模块进行设计,再整合起来,由此一个简洁美观的计算器就建立起来了。2 课程设计概要在设计程序的时候,考虑到计算器的功能,我按照其功能划分为几个模块,在程序开始后,可以进行选择,到自己希望进行操作的模块中去。有了具体的模块之后,在设计程序的时候有更方便了,同时也有法可依,不会造成混乱。具体分为:加减乘除运算、乘方开方运算、进制转换运算、求模运算和退出五个模块。具体的模块关系如表2-1:表2-1 基本模块表模块简单的四则运算乘方开方进制转换求绝对值退出实现功
10、能加减乘除运算乘方开方运算进制转换运算求模运算退出程序流程图详解:首先用户运行程序,进入开始菜单,由用户对所要进行的运算做出选择。当选择运算方式时,程序将调用对应的运算模块,对用户输入的数据进行处理,并输出结果,随后,当用户确认结果后,程序将清屏,并返回开始菜单,由用户继续进行选择。当选择退出时,程序将调用退出模块,显示“拜拜!谢谢使用哈!”,并退出程序。开始菜单选择加减乘除乘方开方进制转换求绝对值退出结束图2-1 程序流程图3 程序结构和各模块分析3.1 菜单操作模块3.1.1 fun1函数功能在这个模块中,为了方便用户的使用,我们定义了一个菜单调用函数,将整个菜单尽量做到简易美观。程序开始
11、时,由用户对所要进行的运算进行选择。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);
12、 printf( * 8.转换为8进制 *n); printf( * 9.转换为16进制 *n); printf( * 10.求绝对值 *n); printf( * 11.退出 *n); printf( *n); printf(n); printf( 输入你想要进行的运算(111):n ); printf(n); 3.2 加减乘除运算模块3.2.1 fun2函数功能当用户的选择为14时,程序将调用fun2函数(加减乘除运算模块),该函数首先对用户的选项进行匹配,当匹配为1时,进行加法运算;为2时,进行减法运算;为3时,进行乘法运算;为4时,进行除法运算。最后将所得结果输出。3.2.2 功能实现
13、代码算法:采用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,
14、z);break; /* 进行乘法运算 */ case 4: if(y=0) printf( 输入错误!); /* 如果分母为0则输出“输入错误!”*/ elsez=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语句的
15、分支机构,对用户选择的乘方开方运算进行匹配,匹配后将进行相应的运算并输出结果。程序如下:void fun3(float x,int c) /* 定义乘方开方模块函数 */ float z; switch(c) case 5: z=x*x;printf(输出结果为: %gn,z);break; /* 进行乘方运算 */ case 6: if(x0) printf( 输入错误!); /* 如果x小于0则输出“输入错误!”*/ elsez=sqrt(x);printf(输出结果为: %gn,z);break; /* 进行开方运算 */ default: printf( 输入错误!); 3.4 进制转
16、换运算模块3.4.1 convert函数功能当用户的选择为79时,程序将调用convert函数(进制转换运算模块),该函数首先对用户的选项进行匹配,当匹配为7时,将把用户所输入的数据转换为2进制数;为8时,将把用户所输入的数据转换为8进制数;为9时,将把用户所输入的数据转换为16进制数。最后将所得结果输出。3.4.2 功能实现代码算法:采用swich语句的分支机构,对用户所要进行转换的进制进行匹配,匹配后将进行相应的运算并输出结果。程序如下:void convert(int m,int c) /* 定义进制转换模块函数 */ char s128; switch(c) case 7: itoa(
17、m, s, 2);printf(输出结果为: %sn,s);break; /* 转换为二进制数 */ case 8: printf(输出结果为:%on,m);break; /* 转换为8进制数 */ case 9: printf(输出结果为:%xn,m);break; /* 转换为16进制数 */ default: printf( 输入错误!); 特殊函数介绍:itoa()函数的头文件是# include ,该函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用的基数。在上例中,转换基数为2,所以函数将把数据转换为二进制数。 3.5 求模
18、运算模块3.5.1 fun4函数功能当用户的选择为10时,程序将调用fun4函数(求模运算模块),并将用户所输入的数据求绝对值并输出。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
19、quit() /* 定义退出程序模块函数 */ exit (0);4 程序调试4.1 操作界面在tc环境下运行程序,进入程序主界面。首先是由用户对所要进行的运算进行选择。 图4-1就显示出操作的界面。图4-1 操作界面4.2 加减乘除运算运行程序,当用户的选择为1-4时,程序将根据用户所选择的运算方式进行加减乘除运算。图4-24-5显示了具体的操作方法及结果。图4-2 加法运算图4-3 减法运算图4-4 乘法运算图4-5 除法运算4.3 乘方和开方运算开启程序后,当用户的选择为5或6时,程序将根据用户所选择的运算方式进行乘方和开方运算。图4-6和4-7显示了具体的操作方法及操作结果图4-6 乘
20、方运算图4-7 开方运算4.4 进制转换运算运行程序,当用户的选择为7-9时,程序将根据用户所选择的运算方式把所输入的数据分别转换为2进制、8进制和16进制数。操作方法及结果见图4-84-10。图4-8 转换为二进制图4-9 转换为八进制图4-10 转换为十六进制4.5 求模运算开启程序后,当用户的选择为10时,程序将根据用户所选择的运算方式进行求绝对值的运算。图4-11显示了具体的操作方法及操作结果图4-11 求模运算4.6 退出基本操作完成之后,我们可以选择11退出程序。操作方法及结果见图4-12。图4-12 退出5 课程设计总结在这次课程设计中,我基本上完成了任务,通过对各模块函数的调用
21、和对无限循环算法的使用实现了计算器的演示过程,基本上达到了此次课程设计的要求。但是这个程序仍然有不少的问题,例如作为一个计算器它的界面还不够人性化,功能也不够丰富等,所以整个程序的功能有待进一步完善,让更多的功能得以实现。虽然在这次的课程设计中有很多的不足,但是我也收获了很多。由于本身计算器这个课题就比较简单,涉及的知识不是很多,所以我一个人一组,、通过与同学们的交流,解决了不少长久以来困扰我的c语言问题,让我深切体会到了大家共同努力的重要性。在设计这个系统的时候,我查阅了很多相关的书籍,并通过网络解决了不少问题。通过这次课程式设计,我对tc的开发环境有了更多的认识和了解,让我对c语言的认识又
22、加深了一步,不仅使我学会了如何查阅资料,同时也让我发现了网络这个好老师,总之收获了很多。参考文献 1 谭浩强.c语言程序设计(第三版).清华大学出版社,2005;260-265,294-308。2 黄明,梁旭,万洪莉.c语言课程设计.电子工业出版社。2 谭浩强.c语言程序设计习题解答与上机指导.清华大学出版社。3 攀枝花学院本科学生课程设计任务书。4 攀枝花学院本科学生课程设计论文详细格式。5 c语言程序设计参考实例。6 c语言名题精选百则技巧篇。7 c语言程序设计实验指导 - c语言程序设计8 程序设计基础(c语言版)附录:源代码/* note:your choice is c ide */
23、#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)
24、; printf( * 9.转换为16进制 *n); printf( * 10.求绝对值 *n); printf( * 11.退出 *n); printf( *n); printf(n); printf( 输入你想要进行的运算(111):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-
25、%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!”*/ elsez=x/y;printf(输出结果为:%g/%g=%gn,x,y,z);break; /* 进行除法运算 */ default: printf( 输入错误!); void fun3(float x,int c) /* 定义乘方开方模块函数 */ float z; switch(c) case 5: z=x*x;printf(输出结果为: %gn,z);break; /* 进行乘方运算 */ case 6: if(x0) printf(输入错误!); /* 如果x小于0则输出“enter error!”*/ elsez=sqrt(x);printf(输出结果为: %gn,z);break; /* 进行开方运算 */ default: printf( 输入错误,请重新
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2022年楚雄彝族自治州小学二年级语文第六单元考试试卷
- 2025年度租赁车辆合同终止及租赁行业发展趋势预测协议
- 2025短租租赁合同:商务空间租赁协议书
- 监利鸿源初中数学试卷
- 二零二五年度户外公益活动场地租赁协议
- 2025版鸭鸭苗养殖保险代理合同
- 二零二五年高管团队社会责任与公益事业合同
- 二零二五年度新型住宅房产买卖定金合同书
- 二零二五版机床设备采购及配套零部件供应合同
- 二零二五年度交通枢纽建设工程施工合同gf
- 《外存储设备》课件
- 城市排水设施安全检查与维护规定
- DB32T 2060-2024 单位能耗限额
- 装配式建筑(含吊装)专项施工方案
- 院前及创伤气道管理
- 采购行业五年规划
- 基孔肯雅热的临床特征
- 2024年云南省普洱市公开招聘警务辅助人员(辅警)笔试摸底备战测试(1)卷含答案
- 医院服务意识与沟通培训
- 2024年执业药师继续教育专业答案
- 委托经营管理合同协议书
评论
0/150
提交评论