




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JINGCHU UNIVERSITY OF TECHNOLOGY简单计算器设计学 院 计算机工程学院 专 业 XX 年级班别 XX学 号 XX学生姓名 XX指导教师 XX2015 年 6 月 25 日目录1. 选题的意义 11.1 课题研究的背景 11.2 自己设计的优势 11.3 设计上功能上的不足 12. 研究的基础 12.1 涉及的主要知识点 23. 研究的可行性 23.1 技术的可行性 24. 研究的具体部分 34.1 研究的主要流程图 34.2 研究的具体代码 44.3 程序运行结果图表 11参考文献 131. 选题的意义通过本项课程设计, 可以培养独立思考、 综合运用所学有关相应知
2、识的能力, 能更好 的巩固 C 语言程序设计课程学习的内容,掌握工程软件设计的基本方法,强化上机动手 编程能力, 闯过理论与实践相结合的难关! 更加了解了 c 语言的好处和其可用性! 同时增加 了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性!通过 C 语言课程设计, 使我了解高级程序设计语言的结构, 掌握基本的程序设计过程 和技巧, 掌握基本的分析问题和利用计算机求解问题的能力, 具备初步的高级语言程序设计 能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。1.1 课题研究的背景计算器是现代日常生活中使用较为频繁的工具之一, 常用的计算器有简易版和科学计算 器
3、两种模式。 简易版的计算器不支持表达式运算, 每次只能输入一个数据或者运算符来计算, 而科学计算器除了容纳简易版计算器的功能外, 还支持表达式运算, 用户可以输入一个合法 的算术表达式来得到所需的结果。 计算器对我们每一的学生都很熟悉, 从初中到高中再到大 学。但是我们只知道按下几个按钮计算器便会显示出结果, 很少有学生分析过计算器究竟是 如何运行的。 C 语言课程设计便是一个很好的机会,让我去亲自写计算器的运行代码,尽管 是简单计算器的设计,但其背后的知识那是相当多的,对我是个挑战,我接受!1.2 自己设计的优势现时学习生活中,常会遇到一些数目较大数据繁杂的数值运算,徒手运算起来很困难, 这
4、时候我们就必须用到计算器。 人们对计算的要求不断提高, 普通的功能简单的仅能进行加、 减、乘、除运算的计算工具已经不能满足需要,需要一种能进行多种计算。 现在已经有一些 功能较为强大、 涵盖面较广的计算软件, 而且各种平台的小工具仍不断出现。 这些大大方便 了我们的生活给我们更多的选择和实现方式。本程序实现了加、减、乘、除、求幂、求模, 求平方根,求 Sin ,求 Cos,求 Log10,求阶乘,取整,求正切,以及进制之间的相互转换。 它可以直接输入数学表达式,不需要任何转换,就可以直接输出。1.3 设计上功能上的不足本程序虽然在其他简易计算器的基础上新增加了很多类容,如: 三角函数的求值、
5、指数函数的计算、任意数的任意次方、进制之间的相互转换等;但是由于个人能力的限制, 仍不 能实现四则混合运算的功能, 仅仅是能进行一个两个数或者一个数的计算, 这是这个程序最 为不足的地方。但是我相信,随着学习的不断深入,这个功能在不久以后会被很好的实现。2. 研究的基础C语言是一种结构化的程序设计语言。它功能丰富、表现力强、使用灵活、应用面广、 目标程序效率高、可移植性好, 既具有高级语言的特点, 有具有低级语言的功能, 以此它成 为当今的主流程序设计语言之一。2.1 涉及的主要知识点本程序的知识点主要来源于任正云版的 C 语言程序设计(第二版) , 其中包含了 C 语言的数据类型与基本操作、
6、 顺序结构设计、 选择结构程序设计、 循环结构程序设计、 函数、 数组、指针等。本程序通过不同类型数据间的转换实现了部分进制间的转换, 如十进制转换为八、 十六 中 printf(%on,a); printf(%xn,a); 直接把输入的十进制数转换成了八和十六进制。 对于控制程序进行什么样的计算方面, 采用了输入的方法, 根据提示的信息, 输入不同的选 项,可以实现不同的运算。在选择结构程序设计方面,采用 if 语句来判断如在二级制数和 十进制数的相互转换的过程中用 if else 语句对数的正负进行判断,为其分情况研究提供 帮助;又如在一般二次方程的求解上运用if else if else
7、if else 语句对方程解的四种情况,即无解、两个相同实数根、两个不同实数根、和两个虚数根分别进行计算,以求出 不同情况的解。本程序大量运用 switch case 语句;以实现本程序的不同功能。如图(1):这里运用switch 语句,来选择你所以运用到的这个程序的不同的功能,这里共有六个,根据你要使 用的功能,可以相应的输入数据,来实现自己所需要的的计算。又如图 (2)对于加减乘除的简单的四则混合运算也是运用的switch 语句来实现的; 通过 switch 来实现加减乘除的多级运算,而不是简单的两个数相加减,但是由于没有判断优 先级的语句,所以此程序不能进行优先级的计算,只能从左到右的依
8、次计算!本程序的循环结构用的是 while 和 for 。对于需要逐级进行的表达式,就用了这些循环 语 句 在 xy 的 for(i=1;i=0;j-) printf(%d,bj); ,求最值并排序的输入过程、排序过程、输出过程等过程中都运用有 这些语句! 之所以运用循环, 是由于要实现其功能, 都要按照一定的条件重复执行同样的一 段语句,所以运用循环语句来做到多次重复。本程序采用的是函数调用的方法, 该程序运用了 6 个自己声明的函数, 通过这些函数来 在一个程序上实现多种不同的功能 void displaymain(); void YBys(); void TSys(); void PSy
9、s(); void jzzh1(); void jzzh2();void qfcz();这些就是就是笨晨曦的函数声明的部分内容。关于数组方面, 对于进制的处理方面就用的是数组, 把每个数字分别储存在一个空间里, 这样就可以更方便的对数的每一个位进行操作。 而不用分别去求每一位的数值, 正是基于这 个原因,本程序可以对多达 80 位的数来进行转换。突破了只能对同一位数求解的限制。3. 研究的可行性3.1 技术的可行性本程序是用 C 语言编写的一部功能相对全面的简易计算器,它通过程序, 可以帮助我们解决一些复杂的运算。 其所运用的知识点也全部是 C语言程序设计 (第二版) 上的知识。 对于一些不能
10、解决的问题, 都可以在百度上找到根据。 通过一个学期的学习, 我认为要学号 C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践来巩固我们的 知识, 特别是学计算机专业的, 我们更应该注重这一环节, 只有这样我们才能成为一个合格 的计算机人才。通过这一个课程设计,进一步来巩固所学的语句,如:循环,和分支结构的课本上的东 加深对课程化 提高程序开发运用。 还要熟悉四则运算和函数的算法。 通过这次课程设计扩展自己的知识面, 西是远远不够的, 可以通过上网或去图书馆查资料等方式得到一些新的知识, 设计思想的理解, 能进行一个系统功能分析, 并设计一个合理的模块化结构, 能力。4. 研
11、究的具体部分4.1 研究的主要流程图开始输入数字(1-7),选 择服务项 目输入数字 N(1-7)?Y计算器运算输出计算结果结束4.2 研究的具体代码/* 主函数 */ #includestdio.h #includemath.h #define N 80 #include stdlib.h #includestring.h void main() int choice,flag=0; void displaymain(); void YBys(); void TSys(); void PSys(); void jzzh1(); void jzzh2(); void qfcz(); while
12、(flag=0) displaymain(); printf(please input a digital(1-7)n); scanf(%d,&choice); if(choice=1&choice=1&a=9)switch(a)case 1:printf(atan(x)=%f,atan(x);break;case 2:printf(acos(x)=%f,acos(x);break;case 3:printf(asin(x)=%f,asin(x);break;case 4:printf(sin(x)=%f,sin(x);break;case 5:printf(cos(x)=%f,cos(x);
13、break;case 6:printf(tan(x)=%f,tan(x);break;case 7:printf(log(x)=%f,log(x);break;case 8:printf( (x)=%f,sqrt(x);break;case 9:float c=1;printf( 请再输入一个个数 n);scanf(%d,&b);for(i=1;i=b;i+) c=c*x;printf(x)(x)=%fn,c);break;elseprintf(your inputs is error!n);void PSys()/* 找出最大值和最小值的函数 */float aN,temp;int i,j,
14、k,n;printf( 请输入要比较数的个数 n); scanf(%f,&n);printf( 请输入 %d数 ,n);for(i=0;in;i+)scanf(%f,&ai);for(i=0;in;i+)printf(%fn,ai);printf(nn); for(k=0;kn-1;k+)for(j=1;jaj) temp=aj-1; aj-1=aj; aj=temp;for(i=0;i0) while(a!=0) t=a%2;bi=t; i+;a=a/2; /*正整数十进制转化二进制 */ for(j=i-1;j=0;j-) printf(%d,bj);printf(n);else whil
15、e(a!=0) a=labs(a);a=255-a;t=a%2;bi=t; i+;a=a/2; /* 负整数十进制转化二进制 */ for(j=i-1;j=0;j-) printf(%d,bj);break; printf(n);break;case 2:printf(%on,a);break;case 3:printf(%xn,a);break;void jzzh2()/*N 进制数转化成十进制数的函数 */long t1;int i,n,t,t3;char aN;printf( 请输入一串数字 :n); scanf(%s,a); strupr(a);t3=strlen(a);t1=0; p
16、rintf(please input n(2or8or16):n); scanf(%d,&n);for(i=0;i=n&ai=n)printf(data error!);if(ai=0&ai=11&(ai=A&ai=A+n-10) t=ai-A+10;t1=t1*n+t;printf(the decimal is %ldn,t1);void qfcz()/* 求解二元一次方程组函数 */float a,b,c,disc,x1,x2,realpart,imagpart;printf( 请依次输入一般二次方程的系数 a,b,cn); scanf(%f,%f,%f,&a,&b,&c); if(fab
17、s(a)=1e-6&fabs(b)=1e-6) printf( 方程无解! n);else if(fabs(a)1e-6)printf( 方程有单根是 %8.4fn,-c/b);elsedisc=b*b-4*a*c;if(fabs(disc)1e-6)x1=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);printf( 方程有两个实数根 !n);printf(x1=%8.4f,x1);printf(x2=%8.4f,x2);elserealpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf( 方程有两个虚根! n);printf(x1=%8.4f+%8.4fin,realpart,imagpart);printf(x2=%8.4f-%8.4fi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 邮政应聘考试试题及答案
- 防疫证书考试试题及答案
- 赣溯源考试试题及答案
- 贵州安全考试试题及答案
- 公务员省考面试题及答案
- 2025年地理高考复习 微专题 堰塞湖(讲义)(解析版)
- 2025进出口商品代理合同书范本
- 2025中介合同协议书范本
- 从学生认知特点视角探讨实验教学策略
- 冲刺2024年高考化学真题重组卷二(浙江专用)无答案
- 基于BIM技术的建筑工程安全管理应用与探讨
- 基于深度学习的电力系统故障恢复与优化方法研究
- 大数据与人工智能营销知到智慧树章节测试课后答案2024年秋南昌大学
- 第20课 清朝君主专制的强化(导学案)(原卷版)
- VR游戏中心:虚拟现实的娱乐新趋势
- 四川省德阳市(2024年-2025年小学六年级语文)统编版小升初模拟((上下)学期)试卷及答案
- iso28000-2022供应链安全管理手册程序文件表单一整套
- 2024年江苏省徐州市中考生物真题卷及答案解析
- T-CSUS 69-2024 智慧水务技术标准
- 道路工程冬季和雨季施工方案
- UL2267标准中文版-2020工业电动卡车安装的燃料电池动力系统UL中文版标准
评论
0/150
提交评论