c语言课程设计_简易计算器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
荆楚理工学院
学院:计算机工程学院
专业:计算机科学与技术
班级: 1 2级本二
学生姓名:X X
学号:*************
设计题目:简易计算器
指导老师:X X X X X
目录
第一章选题的意义 (3)
1.1 课题研究的背景 (3)
1.2 自己设计的优势 (3)
1.3 设计上功能上的不足 (3)
第二章研究的基础 (4)
2.1 涉及的主要知识点 (4)
第三章研究的可行性 (5)
3.1 技术的可行性 (5)
3.2 经济效益和社会效益的可行性 (5)
3.3 法律的可行性 (5)
第四章研究的具体部分 (6)
4.1 研究的主要流程图 (6)
4.2 研究的具体代码 (7)
4.3程序运行结果图表 (13)
第五章总结 (16)
参考文献 (17)
第一章选题的意义
①通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性!
②通过C语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。
1.1 课题研究的背景
计算器是现代日常生活中使用较为频繁的工具之一,常用的计算器有简易版和科学计算器两种模式。简易版的计算器不支持表达式运算,每次只能输入一个数据或者运算符来计算,而科学计算器除了容纳简易版计算器的功能外,还支持表达式运算,用户可以输入一个合法的算术表达式来得到所需的结果。计算器对我们每一的学生都很熟悉,从初中到高中再到大学。但是我们只知道按下几个按钮计算器便会显示出结果,很少有学生分析过计算器究竟是如何运行的。C语言课程设计便是一个很好的机会,让我去亲自写计算器的运行代码,尽管是简单计算器的设计,但其背后的知识那是相当多的,对我是个挑战,我接受!
1.2 自己设计的优势
现时学习生活中,常会遇到一些数目较大数据繁杂的数值运算,徒手运算起来很困难,这时候我们就必须用到计算器。人们对计算的要求不断提高,普通的功能简单的仅能进行加、减、乘、除运算的计算工具已经不能满足需要,需要一种能进行多种计算。现在已经有一些功能较为强大、涵盖面较广的计算软件,而且各种平台的小工具仍不断出现。这些大大方便了我们的生活给我们更多的选择和实现方式。本程序实现了加、减、乘、除、求幂、求模,求平方根,求Sin,求Cos,求Log10,求阶乘,取整,求正切,以及进制之间的相互转换。它可以直接输入数学表达式,不需要任何转换,就可以直接输出。
1.3 设计上功能上的不足
本程序虽然在其他简易计算器的基础上新增加了很多类容,如:三角函数的求值、指数函数的计算、任意数的任意次方、进制之间的相互转换等;但是由于个人能力的限制,仍不能实现四则混合运算的功能,仅仅是能进行一个两个数或者一个数的计算,这是这个程序最为不足的地方。但是我相信,随着学习的不断深入,这个功能在不久以后会被很好的实现。
第二章研究的基础
C语言是一种结构化的程序设计语言。它功能丰富、表现力强、使用灵活、应用面广、目标程序效率高、可移植性好,既具有高级语言的特点,有具有低级语言的功能,以此它成为当今的主流程序设计语言之一。
2.1 涉及的主要知识点
本程序的知识点主要来源于任正云版的《C语言程序设计(第二版)》,其中包含了C 语言的数据类型与基本操作、顺序结构设计、选择结构程序设计、循环结构程序设计、函数、数组、指针等。
本程序通过不同类型数据间的转换实现了部分进制间的转换,如十进制转换为八、十六中printf("%o\n",a); printf("%x\n",a);直接把输入的十进制数转换成了八和十六进制。对于控制程序进行什么样的计算方面,采用了输入的方法,根据提示的信息,输入不同的选项,可以实现不同的运算。在选择结构程序设计方面,采用if语句来判断如在二级制数和十进制数的相互转换的过程中用if—else语句对数的正负进行判断,为其分情况研究提供帮助;又如在一般二次方程的求解上运用if—else if—else{if—else}语句对方程解的四种情况,即无解、两个相同实数根、两个不同实数根、和两个虚数根分别进行计算,以求出不同情况的解。
本程序大量运用switch case 语句;以实现本程序的不同功能。如图(1):这里运用switch 语句,来选择你所以运用到的这个程序的不同的功能,这里共有六个,根据你要使用的功能,可以相应的输入数据,来实现自己所需要的的计算。
又如图(2)对于加减乘除的简单的四则混合运算也是运用的switch语句来实现的;通过switch来实现加减乘除的多级运算,而不是简单的两个数相加减,但是由于没有判断优先级的语句,所以此程序不能进行优先级的计算,只能从左到右的依次计算!
本程序的循环结构用的是while和for。对于需要逐级进行的表达式,就用了这些循环语句在x^y的for(i=1;i<=b;i++) c=c*x;,二级制十进制的转换while(a!=0){t=a%2;b[i]=t;i++;a=a/2;} { for(j=i-1;j>=0;j--) printf("%d",b[j]);},求最值并排序的输入过程、排序过程、输出过程等过程中都运用有这些语句!之所以运用循环,是由于要实现其功能,都要按照一定的条件重复执行同样的一段语句,所以运用循环语句来做到多次重复。
本程序采用的是函数调用的方法,该程序运用了6个自己声明的函数,通过这些函数来在一个程序上实现多种不同的功能void displaymain(); void YBys(); void TSys(); void PSys(); void jzzh1(); void jzzh2();void qfcz();这些就是就是笨晨曦的函数声明的部分内容。
关于数组方面,对于进制的处理方面就用的是数组,把每个数字分别储存在一个空间里,这样就可以更方便的对数的每一个位进行操作。而不用分别去求每一位的数值,正是基于这个原因,本程序可以对多达80位的数来进行转换。突破了只能对同一位数求解的限制。