简易计算器说明书_第1页
简易计算器说明书_第2页
简易计算器说明书_第3页
简易计算器说明书_第4页
简易计算器说明书_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘 要当今时代,计算器已经大面积的普及,开始应用于生产生活等各个领域,用所学的c语言言知识编写一款简易计算器,不仅能够巩固自己所学的知识,而且还可以为以后学习更高级的语言打下基础学习生活中,无可避免的总是会遇到一些数目较大数据繁杂的数值运算,徒手运算起来很困难,这时候我们就必须用到计算器。人们对计算的要求不断提高,仅能进行四则运算的普通的功能的计算工具已经不能满足需要,需要一种能进行多种计算。现在已经有一些功能较为强大、涵盖面较广的计算软件,而且各种平台的小工具仍不断出现。这些大大方便了我们的生活给我们更多的选择和实现方式。本程序的编写基础是本程序实现算术运算、函数运算、进制之间的转换功能。它

2、可以直接输入数字,不需要任何转换,就可以直接输出运算的结果。但是,每次只能运算一个表达式,根据提示可以再计算下一组式子,还是比较方便的。关键词:程序设计;数据类型;流程图;函数调用;结构体数组AbstractIn modern times, calculator has widespread popularity, start each domains such as applied in the production and living, written in c language knowledge to a simple calculator, can not only consoli

3、date their knowledge, but also lays the foundation for later learning more advanced language learning life, inevitable will always encounter some large number data and complex numerical arithmetic, unarmed operation difficult, at this time we have to use a calculator. People demand for computing, ca

4、n only arithmetic in the common function of calculation tools already cannot satisfy the need, need a can in a variety of computing. Now there are some of the more powerful, wide coverage of calculation software, and a variety of platforms gadgets still appear constantly. These greatly facilitate ou

5、r life give us more choice and way of implementation. The program to write is based on the program implementation arithmetic operations, functions, operations, and hexadecimal conversion between functions. It can be directly input Numbers, does not require any conversion, can directly output the res

6、ult of the operation. But, every time can only be an expression, according to the prompt can be calculated under a set formula, or is more convenient.Key words:Program design; Data types; Process flow diagram; A function call; Struct array目 录1概述11.1实训题目41.2内容,要求42总体设计52.1功能设计52.2设计思路52.3总体流程图73详细设计8

7、3.1详细模块说明83.2算法说明104调试分析144.1调试目的144.2测试要求144.3测试方法144.4调试与测试结果175总结19参考文献21致谢22附录231概述通过本项课程设计,可以培养独立思考、 综合运用所学有关相应知识的能力,能更好的巩固C语言程序设计课程学习的内容,掌握 工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性!通过C语言课程设计,使自己了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求

8、解问题的能力,具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。最早的计算工具诞生在中国,中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可随身携带。直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的"纳皮尔算筹",英国牧师奥却德发明了计圆柱型对数算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这

9、些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。1642年,年仅19岁的法国伟大科学家帕斯卡引用算盘的原理,发明了第一部机械式计算器,在他的计算器中有一些互相联锁的齿轮,一个转过十位的齿轮会使另一个齿轮转过一位,人们可以像拨电话号码盘那样,把数字拨进去,计算结果就会出现在另一个窗口中,但是只能做加减计算。1694年,莱布尼兹在德国将其改进成可以进行乘除的计算。此后,一直要到20世纪50年代末才有电子计算器的出现。实物计算器, 此类计算器一般是手持式计算器, 便于携带, 使用也较方便, 但一般情况下, 功能较简单, 也不太方便进行功能升级.

10、也有少部功能强大的图形式手持计算器, 但由于价格最贵, 在平板电脑与智能手机普及的情况下, 不建议购买最贵的多功能手持计算器。软件形式的计算器. 此类计算器以软件存在, 能在PC电脑或者智能手机, 平板电脑上使用. 此类计算器功能多, 功能可以通过软件升级进行扩展. 随着平板与智能手机有普及, 软件形式的计算器的应用会越来越多, 最终有望取代传统的手持式计算器.软件形式的计算一般可分为三类:常见计算器,专用计算器,综合功能计算器.常见的计算器又有四类:算术型计算器可进行加、减、乘、除等简单的四则运算,又称简单计算器。一般都是实物计算器 Win7下的科学型计算器 Win7下的算术型计算器(标准型

11、)科学型计算器可进行乘方、开方、指数、对数、三角函数、统计等方面的运算,又称函数计算器。 可以是软件,也可以是实物。 Win7下的程序型计算器程序员计算器专门为程序员设计的计算器, 主要特点是支持And, Or, Not, Xor: 最基本的与或非和异或操作, 移位操作 Lsh, Rsh:全称是Left Shift和Right Shift,也就是左移和右移操作,你需要输入你要移动的位数(不能大于最大位数) RoL, RoR:全称是Rotate Left和Rotate Right,对于RoL来讲,就是向左移动一位,并将移出的那位补到最右边那位上,RoR类似 统计计算器- 为有统计要求的人员设计的

12、设计的计算器, 可以是软件,也可以是实物。1专用计算器除常用计算器外, 还有专用计算器, 专用计算器就特别多了,如个人所得税计算器, 房贷计算器, 油耗计算器等. 一般以软件的形式存在.再有就是综合功能计算器 (可编程计算器)此类计算器一般都是以软件的形式存, 它除了具有常用计算器的功能外, 还可以由使用者自已编写程序或公式,把较复杂的运算步骤或者公式贮存起来,以后可以调用,进行多次重复的运算, 甚至能打印计算过程与结果。大多数的专用计算器的能功能它都可实现, 如 个人所得税计算, 单位换算等都可以由使用者自行编程计算. 使用者也可到网上下载别人制作好的公式文件进行计算. 综合计算器适用范围广

13、, 不仅适用于普通用户, 也适用程序员, 更适合于各个设计行业的复杂计算, 如建筑, 水利, 机械, 传动, 齿轮, 结构,医学, 甚至大学生的毕业设计, 中小学生也可使用它来学习数学知识和一些简单的编程计算, <超级公式计算器>就是此类计算器中的一个代表。超级公式计算器一个现代手持型科学计算器电子计算器过去有些计算器像是今日的计算机一样大,第一个机械计算器是桌面型机械设备,但很快被桌面型电力机械计算器取代,之后又被真空管、晶体管、集成电路逻辑线路等材料依序取代。今日大部分计算器是掌上型微电子设备。 基本计算器计算器的复杂度随着使用目的而有所不同。最简单的计算器模块应该包含下列部件

14、:电源,例如电池或太阳能板(solar panel)显示幕,通常以LED光源或LCD制成,可显示一定数量的数字(通常为八、十、十二、十六位,以十二位最常见)电子回路一个包含下列按键的按键面版:(1)十个数字键,从0到9(2)小数点(3)等于符号,用于显示运算解(4)四个运算函数(加减乘除)(5)取消键,用于清空当前显示的数字(6)电源开关(7)其他基本函数,例如求平方根或百分比键 (%)更高级的模块也许会有一个单数值记忆按键(M+,M-),可在需要时叫回。高级电子计算器较高级的科学计算器或工程型计算器支持三角函数、统计与其他函数。而最先进的现代计算器甚至可显示图型,并且包含计算机代数系统。这种

15、计算器可以编写程序,且内含了代数方程式求解程序、经济模型甚至游戏程序。这类计算器可显示填满显示屏的单一数值。并可将数字以科学记数法表现至9.999999999*10。如果用户试图输入一过大的数值或运算产生过大数值的算式(例如输入100!,即100阶乘),则计算器仅显示错误一词。因为存储器如此有限的计算器无法存储如此巨大的输入(>=10160)。错误也用以表示数学上未定义的函数或操作,例如除以零或对负数取平方根(除了某些昂贵的计算器拥有可处理复数的特殊函数,大部分科学计算器不允许复数的存在)。某些少数计算器可分别这两种错误的不同,虽然用户依然难以了解error 1与error2的差别何在。

16、仅有少数公司研发与制造现代职业工程师与经济学家用的计算器:最有名的是Casio、夏普、HP与德州仪器。这些计算器都是嵌入式系统的范型。3windows计算器在windows系统中自带有计算器,并可在简易计算器和科学型计算器之间进行切换。1.1 实训题目简易计算器设计1.2 内容,要求在功能上功能尽量模拟windows操作系统中的计算器,系统界面不做强制要求。要求能够实现算术运算、函数运算、进制之间的转换功能。算术运算功能。能够实现+、-、*、/、mod、and、or、xor、not、int运算。函数运算功能。能够实现exp、ln、sin、xy、log、cos、x3、n!、tan、x2、1/x、

17、avg、sum、dat等运算。进制之间的转换功能。能够实现十六、十、二、八进制数据之间的转换。系统要求在Windows XP或Windows 7(32)2总体设计2.1、功能设计本程序要完成如下几项功能:1) 在程序之中加入足够的操作提醒环节,使得使用者能够清楚的掌握操作流程和界面。2) 程序中分类完成+、-、*、/、xy、求余、x为底y的对数、求平均,sin、cos、tan、exp、ln、以10为底的对数、取整、平方、立方、绝对值,进制之间的转换;使用者可以根据个人的需要在提示后输入相应的代码,然后进行相应的运算,最后在运算结果中查找自己需要的即可;如需做多步骤运算,只要在上一次运算结束后按

18、照提示输入相应代码即可选择是继续进行运算还是退出程序,操作简便。2.2、设计思路简单计算器的设计的程序中主要调用的函数有:数学函数的定义和I/O函数;设计思路和理念在于一切追求简便易操作原理,通过个人的构思和设计以及调试运行设计出这一款简单的计算器。程序的开始首先提示使用者“是否开始?” 如果不需要开始,则可按任意键后回车,程序退出;如需开始,输入“y”或“Y”后,系统将会提示使用者选择所需计算的类型(如图):基本界面程序:printf("*简单计算器*n"); printf("*n"); printf(" 请输入要进行的运算 n")

19、; printf("-n"); printf(" 1 基本运算请输入1 n"); printf(" 2 三角运算请输入0 n"); printf(" 3 进制转换请输入2 n");printf("在'>'提示后输入一个命令字符n"); printf("是否开始?(Y/N)>");图2.1 简易计算器界面只需按照相应的提示输入代码,即可进入到下一步运算。下面以十进制转换八进制、十六进制为例,做进一步说明:a) 首先,输入代码:“2”,跳转到如下界面:

20、b) 接着,输入代码:“10”,进行到下一界面;c) 最后,只需输入相应的十进制数后回车即可得到相应的结果 图 2.2 进制转换操作 图 2.3 进制转换指令2.3总体流程图开始按键前一次按键是数字?增加一位清零操作数字键否运算函数运算符显示函数设置相关后效信息按键其它键退格键清零相关归零键退出显示函数是减少一位,结束图 2.4 总体设计流程图3详细设计3.1详细模块说明1.整体界面程序:printf("*简单计算器*n");printf("*n");printf(" 请输入要进行的运算 n");printf("-n&quo

21、t;);printf(" 1 基本运算请输入1 n");printf(" 2 三角运算请输入0 n");printf(" 3 进制转换请输入2 n");printf("在'>'提示后输入一个命令字符n");printf("是否开始?(Y/N)>");图3.1 简易计算器界面2.基本运算函数程序value_jia=first_number+second_number;/加法printf("两数之和:%lfn",value_jia);value_pin

22、gjun=value_jia/2;/求平均printf("平均数是:%lfn",value_pingjun);value_jian=first_number-second_number;/减法printf("两数之差:%lfn",value_jian);value_cheng=first_number*second_number;/乘法printf("两数之积:%lfn",value_cheng);printf("两数之商:除数不能为零,如果需要求商,请重新输入:n");/除法value_mi=pow(first_

23、number,second_number);/幂次printf("x的y次幂:%lfn",value_mi);printf("取余为:除数不能为零,如果需要求余,请重新输入:n");/取余printf("以x为底y的对数为:计算结果趋于无穷,无法显示:n");/x为底y的对数3三角函数运算程序value_sin=sin(first_number);/求sinprintf("sin值:%lfn",value_sin);value_cos=cos(first_number);/求cosprintf("cos值

24、:%lfn",value_cos);value_tan=tan(first_number);/求tanprintf("tan值:%lfn",value_tan);value_exp=exp(first_number);/以e为底的指数printf("exp值:%lfn",value_exp);printf("ln值:计算结果趋于无穷,无法显示:n");/求lnprintf("10为底的对数:计算结果趋于无穷,无法显示:n");/以10为底的对数value_floor=floor(first_number)

25、;/取整printf("x取整:%lfn",value_floor);value_n=1;/求阶乘for(i=1;i<(first_number+1);i+)value_n=value_n*i;printf("n阶乘:%lfn",value_n);value_2=pow(first_number,2);/求x的平方printf("x的平方:%lfn",value_2);value_3=pow(first_number,3);/求x的立方printf("x的立方:%lfn",value_3);printf(&q

26、uot;x的倒数:0不能求倒n");/求倒value_fabs=fabs(first_number);/求绝对值printf("x的绝对值:%lfn",value_fabs);4进制转换程序printf("八进制转换为其他进制请输入8,n十进制转换为其他进制请输入10,n十六进制转换为其他进制请输入16,n请按照需要输入8、10或16:");scanf("%d",&act);if(act=8)/八进制转换为十进制、十六进制printf("请输入一个八进制数字:");scanf("%o&q

27、uot;,&first_number);printf("八进制%o 转换为十进制%u 十六进制%xn",first_number,first_number,first_number);if(act=10)/十进制转换为八进制、十六进制printf("请输入一个十进制数字:");scanf("%d",&first_number);printf("十进制%u 转换为八进制%o 十六进制%xn",first_number,first_number,first_number);if(act=16)/十六进制

28、转换为八进制、十进制printf("请输入一个十六进制数字:");scanf("%x",&first_number);printf("十六进制%x 转换为八进制%o 十进制%un",first_number,first_number,first_number);if(act!=8&&act!=10&&act!=16)3.2算法说明1.通过利用C程序中的数组·函数·分支·循环·文件等内容,在Visual C+ 6.0的环境下调试运行设计并实现了该课程设计中的

29、简单计算器的设计。算术运算功能。能够实现+、-、*、/、mod、and、or、xor、not、int运算。函数运算功能。能够实现exp、ln、sin、xy、log、cos、x3、n!、tan、x2、1/x、avg、sum、dat等运算。进制之间的转换功能。能够实现十六、十、二、八进制数据之间的转换。程序中分类完成+、-、*、/、xy、求余、x为底y的对数、求平均,sin、cos、tan、exp、ln、以10为底的对数、取整、平方、立方、绝对值,进制之间的转换;使用者可以根据个人的需要在提示后输入相应的代码,然后进行相应的运算,最后在运算结果中查找自己需要的即可;如需做多步骤运算,只要在上一次运

30、算结束后按照提示输入相应代码即可选择是继续进行运算还是退出程序,操作简便2.数据结构设计及用法说明 此程序调用的函数主要有<math.h>   /*数学函数的定义*/<conio.h>  /*屏幕操作函数*/<stdio.h>  /*I/O函数*/<stdlib.h>  /*库函数*/<stdarg.h>  /*变量长度参数表*/<graphics.h>  /*图形函数*/<st

31、ring.h>  /*字符串函数*/<ctype.h>  /*字符操作函数*/。基本使用:用控制鼠标图形移动,当移动到相应得按钮时按回车键输入当前数字或执行对应的函数。 加法:输入一个被加数数,按“+”,输入被加数,按“=”,输出结果。 减法:输入被减数数,按“-”,输入减数,按“=”,输出结果。 乘法: 输入一个数,按“*”,输入另个数,按“=”,输出结果。 除法: 输入一个被除数,按“+”,输入另个除数,按“=”,输出结果。 求x的y次方: 输入数x,按

32、“”,输入数y,按“=”,输出结果。 求余:输入一个数,按“mod”,按“=”,输出结果。 取整:输入一个数,按“int”,按“=”,输出结果。 余弦:输入一个数,按“cos”,按“=”,输出结果。 正弦:输入一个数,按“sin”,按“=”,输出结果。 正切:输入一个数,按“tan”,按“=”,输出结果。 阶乘:输入一个数,按“n!”,按“=”,输出结果。 倒数:输入一个数,按“1/x”,按“=”,输出结果 十进制转二进制:输入一个十进制数,按“10->2”,输出二进制结果。 十进制转八进制:输入一

33、个十进制数,按“10->8”,输出八进制结果。 八进制转十进制:输入一个八进制数,按“10->8”,输出十进制结果3 技术支持Visual C+ 6.0简介Visual C+ 6.0,简称VC或者VC6.0,是微软推出的一款C+编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。Visual C+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C+1.0后,随着其新版本的不断问世,Visual C+已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了 Visual C+.NET(Visual C+7.0),但它的应用有

34、很大的局限性,只适用于Windows 2000、Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C+6.0为平台。特色和缺点特色Visual C+6.0由Microsoft开发, 它不仅是一个C+ 编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。Mi

35、crosoft的主力软件产品。Visual C+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C+1.0后,随着其新版本的不断问世,Visual C+已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了Visual C+.NET(Visual C+7.0),但它的应用的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C+6.0为平台。Visual C+6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许

36、用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结(link)著称。这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。1缺点由于C+是由C语言发展起来的,也支持C语言的编译。6.0版本是使用最多的版本,很经典。最大的缺点是对于模版的支持比较差。现在最新补丁为SP6,推荐安装,否则易出现编译时假死状态。仅支持Windows操作系统。目前发现与windows 7兼容性不好,安装成功后可能会出现无法打开cpp文件的现象。4调试分析4.1调试目的为了是计算器正常工作,提高运算正确率,所以进行必要

37、的测试,保证用户使用的可靠性,同时也可以完善计算机自身的不足。软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。(1)测试是为了发现程序中的错误而执行程序的过程(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案(3)成功的测试是发现了至今为止尚未发现的错误的测试。(4)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进。(5)这种分析也能帮助

38、测试人员设计出有针对性的测试方法,改善测试的效率和有效性(6)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法(7)另外,根据测试目的的不同,还有回归测试、压力测试、性能测试等,分别为了检验修改或优化过程是否引发新的问题、软件所能达到处理能力和是否达到预期的处理能力等。4.2测试要求熟悉软件测试流程,有智能产品/网络应用经验者优先考虑;熟悉软件测试理论和方法,能够熟练应用多种测试工具;熟悉 C/C+/C#/Java编程, 有网络协议测试经验;有较强的逻辑分析能力和学习能力,具备较强的总结能力;热爱软件测试工作,可以胜任重复性工作。软件测试员是指根据测试计划和测试方案进行软件测

39、试;能够针对软件需求开发测试模型,制定测试方案,安排测试计划,并对测试项目进行管理的专业人员。每一阶段的测试都是为了减少软件的bug和提升软件的功能需求,所以测试人员必须具备良好的编程功底。4.3测试方法1.定义是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。2.划分等价类等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价

40、类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。1)有效等价类是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。2)无效等价类与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。3.划分等价类的标准1)

41、完备测试、避免冗余;2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;3)并是整个集合:完备性;4)子集互不相交:保证一种形式的无冗余性;5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径"。4.划分等价类的方法1)在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。如:输入值是学生成绩,范围是0100;2)在输入条件规定了输入值的集合或者规定了"必须如何"的条件的情况下,可确立一个有效等价类和一个无效等价类;边界值1. 定义:边界值分析法就

42、是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。2. 与等价划分的区别1) 边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。2) 边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。3. 边界值分析方法的考虑:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边

43、界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。4. 常见的边界值1) 对16-bit 的整数而言 32767 和 -32768 是边界2) 屏幕上光标在最左上、最右下位置3) 报表的第一行和最后一行4) 数组元素的第一个和最后一个5) 循环的第 0 次、第 1 次和倒数第 2 次、最后一次5. 边界值分析1) 边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。例:测试计算平方根的函数-输入:实数-输出:实数-规格说明:当输入一个0或比0大的数

44、的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息"平方根非法-输入值小于0"并返回0;库函数Print-Line可以用来输出错误信息。4.4调试与测试结果图 4.1输入提示图4.2两个数字的基本运算图4.3 三角函数的计算图4.4进制转换图4.5退出程序5总结经过一个星期的学习、一个计算器总算编好了,虽然每天对着电脑屏幕编写程序经常会感到眼睛胀痛,但看到自己的劳动成果,心里很欣慰, 这次“简单计算器制作”的课程设计不仅让我对C语言的熟悉程度上升到了另一个高度,而且在一定意义上课程设计设计的理解更加深刻了。是我在编程路途上的一次质的飞跃。而且在处理非常规数据类型的

45、运算的锻炼下,使我对编程语言有了一个新的认识。当看着一个具有可以实现运算的计算器的出现在自己面前时,心中有着无限感慨,原来编程也不是非常遥不可及的,原来在编程的趣味性中能让我学到更多有意思的知识。不过编写的程序肯定有不足之处,希望在以后的日子里不断提高自己的编程能力, 测试阶段中发现了几处错误导致程序不能编译,去图书馆查找相关的资料, 又同学一起讨论。通过耐心的分析源代码终于编好了一个完整无误的程序。在这次的c语言程序设计实习中遇到了现实编程中必然见到的问题通过这些问题的解决积累了编程的实践经验。在实际的编程操作中发现自己c语言知识的不足,加深了对c语言的理解。在学习之余体验到收获的

46、感觉. 善于总结,也是学习能力的一种体现,每次完成一个编程任务,完成一段代码,都应当有目的的跟踪该程序的应用状况,随时总结,找到自己的不足,这样所编写的程序才能逐步提高.课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。 自从拿到题目到完成整个编程,从理论到实践,在整整半个学期的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书

47、本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相我们把前面所学过的知识又重新温故了一遍。 通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。安排课程设计的基本目的,在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟。尤其是观察、分析和解决问题的实际工作能力,以便培养成为能够主动适应社会主义现代化建设需要的高素质的复合型人才。作为整个学习体系的有机组成部分,课程设计虽然安排在一周进行,但并不具有绝对独立的意义。它的一个重要功能,在于运用学习成果,检验学习成果。运用学习成果,把

48、课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。这也是一次预演和准备毕业设计工作。通过课程设计,让我们找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。课程设计促进了我系人才培养计划的完善和课程设置的调整。近年来,我系为适应

49、学生的实践需要陆续增设与调整了一系列课程,受到同学的欢迎,其中这次的设计很受同学们的喜欢。课程设计达到了专业学习的预期目的。在一个星期的课程设计之后,我们普遍感到不仅实际动手能力有所提高,更重要的是通过对软件开发流程的了解,进一步激发了我们对专业知识的兴趣,并能够结合实际存在的问题在专业领域内进行更深入的学习。课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,因此作为计算机专业的学生来说掌握程序的开发技术是十分重要的。 我的题目是简易计算器,对于我们这些实践中的新手来说,这是一次考验

50、。怎么才能找到课堂所学与实际应用的最佳结合点?怎样让自己的业余更接近专业?怎样让自己的计划更具有序性,而不会忙无一用?这都是我们所要考虑和努力的。这次课程设计我学到很多很多的东西,学会了怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。参考

51、文献1郑阿奇.C实用教程.电子工业出版社,20092李代平.软件工程.清华大学出版, 20073古乐.软件测试案例与实践教程.清华大学出版,20074谭浩强.C语言课程设计(第四版).清华大学出版社,20105刘浩.C语言从入门到精通.人民邮电大学出版社 ,2011年;6郭翠英.C语言课程设计案例精编 .中国水利水电大学出版社,20047王强如. C语言绘图与计算机仿真技术.北京航空航天大学,19958钱启平.C语言程序设计基础.北京:中国铁道出版社,20009李国昌.C语言程序设计基础.北京:科学出版社,199810李大友.C语言程序设计基础.北京:清华大学出版社,199911姜仲

52、秋.C语言程序设计基础.南京:南京大学出版社,1998致 谢在这次简易计算器设计中,我得到了杨书鸿老师的认真指导和帮助,同时也感谢我的队友苏科同学,因为他们,才提高了我设计进度和效率。我和苏科同学共同完成这次课程设计,在程序设计过程中难免会遇到各种问题,谢谢杨老师的耐心指导,谢谢队友的包容, 在各方面都有所提高,老师以严谨求实,一丝不苟的治学态度和勤勉的工作态度深深感染了我,给我巨大的启迪,鼓舞和鞭策,并成为我人生路上值得学习的榜样。使我的知识层次又有所提高。同时感谢所有教育过我的专业老师,你们传授的专业知识是我不断成长的源泉也是完成本次课设的基础。也感谢我同一组的组员和班里的同学是你们在我遇

53、到难题是帮我找到大量资料,解决难题。再次真诚感谢所有帮助过我的老师同学。通过这次毕业设计不仅提高了我独立思考问题解决问题的能力而且培养了认真严谨,一丝不苟的学习态度。由于经验匮乏,能力有限,设计中难免有许多考虑不周全的地方,希望各位老师多加指教。附录程序源代码:#include<stdio.h>#include<math.h>void main() char command_begin;/开始字符 int flag; int act; int i; double first_number; double second_number; double value_jia,v

54、alue_jian,value_cheng,value_chu,value_pingjun; double value_mi,value_yu,value_duishu; double value_sin,value_cos,value_tan; double value_exp,value_ln,value_log; double value_floor,value_n,value_2,value_3,value_daoshu,value_fabs; printf("*简单计算器*n"); printf("*n"); printf(" 请输入

55、要进行的运算 n"); printf("-n"); printf(" 1 基本运算请输入1 n"); printf(" 2 三角运算请输入0 n"); printf(" 3 进制转换请输入2 n"); printf("在'>'提示后输入一个命令字符n"); printf("是否开始?(Y/N)>"); scanf("%c",&command_begin); while(command_begin='Y&

56、#39;|command_begin='y') /当接收Y/y命令时执行计算器程序 printf("进行+、-、*、/、xy、求余、x为底y的对数、求平均,请输入1;n进行sin、cos、tan、exp、ln、以10为底的对数、取整、平方、立方、绝对值,请输入0;n进制之间的转换请输入2;n请输入0、1或2:"); scanf("%d",&flag); if(flag=1) printf("请输入两个数字,中间用任意符号隔开:n"); scanf("%lf%lf",&first_nu

57、mber,&second_number);if(second_number=0) value_jia=first_number+second_number;/加法 printf("两数之和:%lfn",value_jia); value_pingjun=value_jia/2;/求平均 printf("平均数是:%lfn",value_pingjun); value_jian=first_number-second_number;/减法 printf("两数之差:%lfn",value_jian); value_cheng=first_number*second_number;/乘法 printf("两数之积:%lfn",value_cheng); printf("两数之商:除数不能为零,如果需要求商,请重新输入:n");/除法 value_mi=pow(first_number,second_number

温馨提示

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

评论

0/150

提交评论