C语言程序设计之简单计算器

上传人:d****1 文档编号:117466668 上传时间:2022-07-08 格式:DOCX 页数:26 大小:391.70KB
收藏 版权申诉 举报 下载
C语言程序设计之简单计算器_第1页
第1页 / 共26页
C语言程序设计之简单计算器_第2页
第2页 / 共26页
C语言程序设计之简单计算器_第3页
第3页 / 共26页
资源描述:

《C语言程序设计之简单计算器》由会员分享,可在线阅读,更多相关《C语言程序设计之简单计算器(26页珍藏版)》请在装配图网上搜索。

1、攀枝花学院学生课程设计(论文)题 目:简易计算器学生姓名:葛肪瑜学号:所在院(系):计算机学院专 业:计算机科学与技术班 级:10计本(1)班指导教师: 陈三清职称: 讲师2011年6月25日攀枝花学院教务处制攀枝花学院本科学生课程设计任务书题目计算器的设计1、课程设计的目的本课程设计的目的和任务:(1)巩固和加深学生对C语言课程的基本知识的理解和掌 握;(2)掌握C语言编程和程序调试的基本技能;(3)利用C语言进行简单软件设计的基本 思路和方法;(4)提高运用C语言解决实际问题的能力。2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)一、用C实现如下功能:使用C语言编写一个类似于

2、Windows附件提供的计算器软件,实现计算器的基本功能, 能进行浮点数的加、减、乘、除、乘方和求模运算。二、撰写课程设计报告或课程设计总结课程设计报告要求:总结报告包括需求分析、总 体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容、课程设计总结、参考资 料等,不符合以上要求者,则本次设计以不及格记。3、主要参考文献1 潭浩强,C程序设计,清华大学出版社2 王声决,C语言程序设计,中国铁道出版社3 潭浩强,C程序设计题解与上机指导,清华大学出版社4 刘玲等,C语言程序设计应用教程,西南师范大学出版社4、课程设计工作进度计划第1天完成方案设计与程序框图第2、3天编写程序代码第4天程序

3、调试分析和结果第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乘方和开方运算模块43.3.1 fun3函数功能43.3.2

6、功能实现代码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课程设计背景日常生活中我们经常会遇到一些小型数据计算的问题,本课程设计就是以此 为出发点,设计了这样一个简单的计算器,用以实现基本的数学运算。在C语言 当中通过定义模

8、块函数,并在主函数中进行调用从而实现数据的运算。通过与用 户之间的交互,可以在操作界面上实现对各种运算的选择和程序的控制。在完成课程设计的期间,参阅了相关的书籍并在网络上查找相关的资料,对 实现这个设计提供了很大的帮助。由于设计水平和知识方面的匮乏,本次课程设 计还存在缺点和不足,希望大家提出宝贵的意见,互相交流以期提高。1.2需求环境本课程设计需要的设备为硬件要求和软件配置要求具体要求如下: 硬件要求:一台计算机。 软件配置:WINDOWS系统、c/c+程序设计学习与实验软件1.3课程设计思路做计算器最主要的就是实用性,要简单,便于操作。程序的界面要方便与用 户之间的交互。并以设计的要求为基

9、础,进行了创新,增加了对进制转换运算的 支持,这就大致的确定了程序的几个模块。然后对每个模块进行设计,再整合起 来,由此一个简洁美观的计算器就建立起来了。2课程设计概要在设计程序的时候,考虑到计算器的功能,我按照其功能划分为几个模块, 在程序开始后,可以进行选择,到自己希望进行操作的模块中去。有了具体的模 块之后,在设计程序的时候有更方便了,同时也有法可依,不会造成混乱。具体 分为:加减乘除运算、乘方开方运算、进制转换运算、求模运算和退出五个模块。具体的模块关系如表2-1:表2-1基本模块表模块简单的四 则运算乘方开方进制转换求绝对值退出实现功能加减乘除 运算乘方开方 运算进制转换 运算求模运

10、算退出程序流程图详解:首先用户运行程序,进入开始菜单,由用户对所要进行的运算 做出选择。当选择运算方式时,程序将调用对应的运算模块,对用户输入的数据 进行处理,并输出结果,随后,当用户确认结果后,程序将清屏,并返回开始菜 单,由用户继续进行选择。当选择退出时,程序将调用退出模块,显示“拜拜! 谢谢使用哈!”,并退出程序。图2-1程序流程图3程序结构和各模块分析3.1菜单操作模块3.1.1 funl函数功能在这个模块中,为了方便用户的使用,我们定义了一个菜单调用函数,将整 个菜单尽量做到简易美观。程序开始时,由用户对所要进行的运算进行选择。3.1.2功能实现代码程序如下:void fun1()/

11、*定义菜单调用函数*/printf( printf( printf( printf( printf( printf( printf( printf( printf( printf( printf( printf( printf( printf( printf( printf( printf(e e e e e e e e e e e e e e e e e e e e e ee e e e e!个个个个个个个个个个个个个个个个个个个个个个个ra 个个个个个个个个个个个个个个个个个个个个个个 mn );* *n);* 设计人:葛肪瑜*n);* *n);*n );* 1.加法运算*n);* 2.减

12、法运算*n);* 3.乘法运算*n);* 4.除法运算*n);* 5.乘方运算*n);* 6.开平方运算*n);* 7.转换为2进制*n);* 8.转换为8进制*n);* 9.转换为16进制*n);* 10.求绝对值*n);* 11.退出*n);*n );printf(n);printf(输入你想要进行的运算(111):n);printf(n);3.2加减乘除运算模块3.2.1 fun2函数功能当用户的选择为14时,程序将调用fun2函数(加减乘除运算模块),该函 数首先对用户的选项进行匹配,当匹配为1时,进行加法运算;为2时,进行减 法运算;为3时,进行乘法运算;为4时,进行除法运算。最后将

13、所得结果输出。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(”输出结果为

14、: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功能实现代码算

15、法:采用swich语句的分支机构,对用户选择的乘方开方运算进行匹配, 匹配后将进行相应的运算并输出结果。程序如下: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则输出“输入错误!” */else(z=sqrt(x);printf(”输出结果为:%gn,z);break; /* 进行开方运算 */default: printf(输入错误!”);3.

16、4进制转换运算模块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: i

17、toa(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求模运算模块3.5.1

18、 fun4函数功能当用户的选择为10时,程序将调用fun4函数(求模运算模块),并将用户所 输入的数据求绝对值并输出。3.5.2功能实现代码算法:采用fabs()的求绝对值函数,匹配后将数据进行相应的运算并输出 结果。程序如下:void fun4(float x) /*定义求绝对值模块函数*/(float z=0;z=fabs(x); /*进行求模运算*/print圮输出结果为:fn,z);3.6退出模块3.6.1代码功能当用户的选择为11时,程序将调用quit函数(退出模块),该函数将终止程 序,并退出当前界面。3.6.2功能实现代码程序如下:void quit() /*定义退出程序模块函数

19、*/(exit (0);4程序调试4.1操作界面在TC环境下运行程序,进入程序主界面。首先是由用户对所要进行的运算进行选择。 图4-1就显示出操作的界面。图4-1操作界面4.2加减乘除运算运行程序,当用户的选择为1-4时,程序将根据用户所选择的运算方式进行加减乘除运 算。图4-24-5显示了具体的操作方法及结果。图4-2加法运算SOFFC Yua nib inw-vti= mp.e律率率率率宋中中丰*甲中申申中申申申丰市市中玲宝皂:*申中中丰丰丰*推*出设计人:离何莉?:申市市市木漫拿*:*木*士:f:f:f:木*漫漫漫玲聿*:*;:+:幸市木漫Sc Scic *:!:*:!:*玲丰切法运算避

20、法云尊推法梁方运翼 开平方运耳 搓换为巳史*J 转该为8退勺 转我为18老岳J1.27.8.9.10. 求全对值ILL沮由Mr请镰入两个效:1001 101指出结果为;1001-101=900图4-3减法运算图4-4乘法运算+L加法运算半+2.凝法运算半+3乘法运算宰+4.琮法运算峰+M乘方.哩算+6,开平方运算+L转巷为W进制+8,转巷为8进制+X槌换为场进制*10.求竺对值*11- 出+4tk*E +4=k* +t=k*件 +t=k+输入你想要进行的远算crn):谱号入两个数:如9 精土备果为;99商=11|图4-5除法运算4.3乘方和开方运算开启程序后,当用户的选择为5或6时,程序将根据

21、用户所选择的运算方式进行乘方和 开方运算。图4-6和4-7显示了具体的操作方法及操作结果.,了2-f .一pi wx三* *宰*宰* *率主 代 宰主 和 廿 n 率中葛单 耳幸*李*幸*幸*幸*拳*季*幸*:* 牝&+* 设计人=葛肪瞄* + *+*+*+*+* *4*4*4* *4*4+*+*#4 #*#+ *+*+* +* 】.加法运算*1*.凌法.巨算* 3.乘法:三算十* 上除法溟算* N乘方运算* 0.开平方运算* 7-转挨为2进制* S.转换为9进制+* 9.釜舞沏16进副,+10,求建对迫* 1L退出*5cc$n|c $n|c输入你想妥进行的运算11):b谙输入一个敖:1。口|

22、输出缙.果为t 1MMJ-11 .1图4-6乘方运算1* * 设计人】葛昉瑜* * L加法运鼻+|#土既洼垣箕*专3.乘法匿窜-*- 土除法运算卜E乘方运算* (j.T平声运鼻* 己转拱为2兰*】*B.转换林进割- 9,卷挽为16讲割* LQ求堂对W* LL退出+市市*林林林林*市木市木市*:林市*林林引木木市申市*市*市*松:林林鞍入临想去近行的运算(r】1);岛端入一个索:1 口如口聃白姑云为;1Q0 m图4-7开方运算4.4进制转换运算运行程序,当用户的选择为7-9时,程序将根据用户所选择的运算方式把所输入的数据 分别转换为2进制、8进制和16进制数。操作方法及结果见图4-84-10。图

23、4-8转换为二进制图4-9转换为八进制率 鼻杓:折扣时:小津砰幸料河冲 gc洋律斜导:申辛 般河尚:号牛女和k*村呻*村呻1. 加法运算2, 瞬法运算3. 乘法运算4, 除法运算&策方运算日.开乎方运煎*7. 彗裁为秘制*8. 其拱为8只制+9. 转换为此道制宰顶京绝对苣+L退三+*$c4$cc4朝入弥治妥户行的污算广n):清布j入一 t数:99较T结果为;63(I_!图4-10转换为十六进制4.5求模运算开启程序后,当用户的选择为10时,程序将根据用户所选择的运算方式进行求绝对值的 运算。图4-11显示了具体的操作方法及操作结果图4-11求模运算4.6退出基本操作完成之后,我们可以选择11退

24、出程序。操作方法及结果见图4-12。图4-12退出5课程设计总结在这次课程设计中,我基本上完成了任务,通过对各模块函数的调用和对无 限循环算法的使用实现了计算器的演示过程,基本上达到了此次课程设计的要求。 但是这个程序仍然有不少的问题,例如作为一个计算器它的界面还不够人性化, 功能也不够丰富等,所以整个程序的功能有待进一步完善,让更多的功能得以实 现。虽然在这次的课程设计中有很多的不足,但是我也收获了很多。由于本身计 算器这个课题就比较简单,涉及的知识不是很多,所以我一个人一组,、通过与同 学们的交流,解决了不少长久以来困扰我的c语言问题,让我深切体会到了大家 共同努力的重要性。在设计这个系统

25、的时候,我查阅了很多相关的书籍,并通过 网络解决了不少问题。通过这次课程式设计,我对TC的开发环境有了更多的认识 和了解,让我对C语言的认识又加深了一步,不仅使我学会了如何查阅资料,同 时也让我发现了网络这个好老师,总之收获了很多。参考文献1 谭浩强.C语言程序设计(第三版).清华大学出版社,2005;260-265,294-308。2 黄明,梁旭,万洪莉.C语言课程设计.电子工业出版社。2 谭浩强.C语言程序设计习题解答与上机指导.清华大学出版社。3 攀枝花学院本科学生课程设计任务书。4 攀枝花学院本科学生课程设计论文详细格式。5 C语言程序设计参考实例。6 C语言名题精选百则技巧篇。7 C

26、语言程序设计实验指导-c语言程序设计8 程序设计基础(C语言版)附录:源代码/* Note:Your choice is C IDE */#include #include #includevoid fun1()printf(e e e e e e e e e e e e e e e e e e e e e e ee e e e en个个个个个个个个个个个个个个个个个个个个个个个ra 个个个个个个个个个个个个个个个个个个个个个个、m 、n );printf(*n);printf(*设计人:葛肪瑜*n);printf(*n);printf(*n );printf(*1.加法运算*n);print

27、f(*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(输入你想要进行的运算(111):n);printf(n);void fun2(float x,float y,int c) /* 定义加减乘除模块函数 */ float z;s

28、witch(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则输出“entererror!”*/elsez=x/y;printf(”输出结果为:g/%g=%gn”,x,y,z);br

29、eak; /* 进行除法 运算*/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则输出 “entererror!”*/elsez=sqrt(x);printf(输出结果为:gn”,z);break; /* 进行开方运算 */default: printf(输入错误,请重新输入!);void fun4(

30、float x) /*定义求绝对值模块函数*/float z=0;z=fabs(x);printf(输出结果为:%fn,z);void convert(int m,int c) /*定义进制转换模块函数*/char s128;switch(c)/*转换为二进case 7: itoa(m, s, 2);printf(”输出结果为:%sn,s);break;制数*/*转换为8进制数*/*转换为16进制数*/case 8: printf(输出结果为:on”,m);break;case 9: printf(输出结果为:xn”,m);break;default: printf(输入错误!);void q

31、uit() /*定义退出程序模块函数*/exit (0);/*主函数开始*/void main()for(;)/*无限循环*/float x,y,z;int c,m;char n;fun1();/*调用菜单函数*/scanf(%d”,&c);if(c= 1IIc=2IIc=3 |c=4)printf(-请输入两个数:); scanf(%f%f”,&x,&y);fun2(x,y,c); /*调用加减乘除函数*/if(c=5llc=6)printf(-请输入一个数:);scanf(%f”,&x);if(x0) 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();

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!