ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:216.45KB ,
资源ID:3892210      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3892210.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言程序设计简单的计算器.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言程序设计简单的计算器.docx

1、C语言程序设计 简单的计算器程序设计基础(C)课程设计报告简易计算器设计学 生 姓 名: 学 号: 班 级: 指 导 老 师: 日 期: 309工作室设计一、设计目标设计一个C语言程序(简单计算器设计)具体要求:在功能上功能尽量模拟windows操作系统中的计算器,系统界面不做强制要求。主要功能:进行+、-、*、/、三角函数、对数、幂等各项数学运算,能够进行进制间的相互转换与计算。二、总体设计1、程序设计组成框图2、设计思路简单计算器的设计的程序中主要调用的函数有:数学函数的定义和I/O函数;设计思路和理念在于一切追求简便易操作原理,通过个人的构思和设计以及调试运行设计出这一款简单的计算器。3

2、、程序设计流程图三、详细设计1、功能函数 函数的功能: 两数的+、-、*、/计算、求平均函数的入口: 从main()的if(flag=1)开关结构中进入,即flag的值为1时进入该函数,从而进行该功能函数的计算。函数调用关系: 被主函数调用,由if()开关结构中进入。函数的出口: 函数的出口为printf(是否继续运算?(Y/N) :),此时输入“Y”,继续前面的结构。 2、功能函数 函数的功能: x的y次方的计算、两数的求余、以x为底y的对数函数的入口: 从main()的if(flag=2)开关结构中进入,即flag的值为2时进入该函数,从而进行该功能函数的计算。函数调用关系: 被主函数调用

3、,由if()开关结构中进入。函数的出口: 函数的出口为printf(是否继续运算?(Y/N) :),此时输入“Y”,继续前面的结构。 3、功能函数 函数的功能: 单个数值sin、cos、tan的计算,以e为底的指数、求绝对值函数的入口: 从main()的if(flag=3)开关结构中进入,即flag的值为3时进入该函数,从而进行该功能函数的计算。函数调用关系: 被主函数调用,由if()开关结构中进入。函数的出口: 函数的出口为printf(是否继续运算?(Y/N) :),此时输入“Y”,继续前面的结构 4、功能函数 函数的功能: 单个数值的ln值、以10为底的对数、取整、平方、立方计算函数的入

4、口: 从main()的if(flag=4)开关结构中进入,即flag的值为4时进入该函数,从而进行该功能函数的计算。函数调用关系: 被主函数调用,由if()开关结构中进入。函数的出口: 函数的出口为printf(是否继续运算?(Y/N) :),此时输入“Y”,继续前面的结构 5、功能函数 函数的功能: 单个数值的倒数、阶乘函数的入口: 从main()的if(flag=5)开关结构中进入,即flag的值为5时进入该函数,从而进行该功能函数的计算。函数调用关系: 被主函数调用,由if()开关结构中进入。函数的出口: 函数的出口为printf(是否继续运算?(Y/N) :),此时输入“Y”,继续前面

5、的结构 6、功能函数 函数的功能: 进行进制间的转换函数的入口: 从main()的if(flag=6)开关结构中进入,即flag的值为6时进入该函数,从而进行该功能函数的计算。函数调用关系: 被主函数调用,由if()开关结构中进入。函数的出口: 函数的出口为printf(是否继续运算?(Y/N) :),此时输入“Y”,继续前面的结构7、功能函数主菜单 本函数由本组成员共同设计 函数的功能: 提供本计算器的几个功能选项,方便用户使用 函数的入口: 从main函数的while(command_begin=Y|command_begin=y)开始,当输入“Y”时进入本菜单。 函数调用关系: 被主函数

6、调用,由while()结构进入。函数的出口: 函数的出口为printf(是否继续运算?(Y/N) :8、功能函数主函数 本函数由本组成员共同设计 函数的功能: 欢迎页面及退出画面提示四、调试与测试1、调试方法打开Microsoft Visual C+ 6.0,先将各个功能函数的的内容清空,只保留主函数main(),然后编译检验main()函数中是否有错,如果没有错误,再连接、运行。确认main()函数一切无误后,然后依次加入功能函数进行调试。当所有的功能函数都加上且正确无误时,就可以进入下一个环节程序的测试。2、测试方法: 运行程序,然后进入简易计算器的界面,在这里需要做的就是把自己当成一个公

7、司的程序使用者,来对该程序进行使用,看该程序有哪些方面用着不够爽,把这些问题依次整理出来,再对源程序进行修改,在这个过程中也需要对程序进行调试,不过不必将各个功能函数的的内容清空再进行如上述的调试方法,而是,改一部份运行一次,看是否有无错误。若所有的错误都改过来了,且运行无误,那就大功告成了。【在调试中遇到的问题:】调试过程中,我们遇到诸多小问题,但都在我们共同讨论后解决了。1、问题:标点符号在输入的时候,使用的是中文输入法,这种错误一般都难以发现,让修改的时候找不到目标。解决方法:用“替换”。如果程序中的error很多,不管error是什么,先将标点替换成英文的标点。2、问题:调试时,有的时

8、候编译后没什么问题,就是在点击连接link时出现了错误。而且,这种错误让我们不知道怎么修改。但是我们的程序的确正确。解决方法:将源程序保存(save),然后关掉Microsoft Visual C 6.0,重新启动Microsoft Visua C 6.0, 五、分析及结论A、在设计中实现了设计目标能进行简单的数学运算,在功能上极力地模仿windows计算器B、其中遇到的问题 输入时,scantf()函数中出现非地址项,某变量未进行类型定义,以及语句末尾缺少分号等常见的低等错误。 解决办法: 根据Microsoft Visual C 6.0的错误提示(error)与警告(warning)回到源

9、程序逐一对错误和警告修改,每修改一次调试一次。C、该程序的不足生成的可执行程序操作界面不美观,用Microsoft Visual C 6.0编写,未使用标准的Turbor C 2.0中的图库,所以不好看,但是这中DOS界面的东西再怎么弄都不好看,强烈建议下学期开课C+。D、实践心得 通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习c语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。经过C语言课程设计实践学习,使我对c语言有了更进一步的认识和了解,板通过实践,我也发现我的好多不足之处,首先是在程序输入上还不

10、够熟练,经常按错字母,通过学习也有所改进;再有对c语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对c语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。熟练地掌握了C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用,以及文件的读写操作等我认为要学好c语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。只有这样我们才能成为合格的计算

11、机人材。六、参考文献(1) C语言程序设计.普措才仁版(2) C语言程序设计.谭浩强版(3) 全国计算机等级考试二级C语言.2008版(4) C语言上机指导(5) Microsoft Visual C+ 6.0指南(6) C语言之家()(7) C语言教室()【附录】源程序清单#include#include#include#include#includevoid main() char command_begin; /开始字符 int flag; int act; int i; double first_number; double second_number; double value_ji

12、a,value_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(nn); printf( n); printf( *n); printf( *n); printf( *n); print

13、f( *n); printf( * 欢迎使用简易计算器系统 *n); printf( * *n); printf( * *n); printf( * 2013.07.05 *n); printf( *n); printf( *n); printf( *n); printf( *n); printf( n); printf(nn); printf( printf( printf( 【输入Y,按回车键开始使用】nn); printf(是否开始?(Y/N): ); scanf(%c,&command_begin); system(CLS); printf(n); /由本组成员共同设计 while(c

14、ommand_begin=Y|command_begin=y) /当接收Y/y命令时执行计算器程序 printf( 【请选择计算类别】nn); printf(* *n); printf(* *n); printf(* (1). 两数的+、-、*、/计算、求平均 *n); printf(* *n); printf(* (2). x的y次方的计算、两数的求余、以x为底y的对数 *n); printf(* *n); printf(* (3). 单个数值sin、cos、tan的计算,以e为底的指数、求绝对值 *n); printf(* *n); printf(* (4). 单个数值的ln值、以10为底

15、的对数、取整、平方、立方计算 *n); printf(* *n); printf(* (5). 单个数值的倒数、阶乘 *n); printf(* *n); printf(* (6). 进制之间的转换 *n); printf(* *n); printf(* *n); printf(nn); printf(请输入1、2、3、4、5或6(按回车键继续):n); printf(nnnnn); scanf(%d,&flag); /由本组成员共同设计 if(flag=1) system(CLS); printf(nn); printf(请输入两个数字,中间用空格隔开:nnn); scanf(%lf%lf,

16、&first_number,&second_number);if(second_number=0) value_jia=first_number+second_number;/加法 printf(两数之和:%lfn,value_jia); value_jian=first_number-second_number;/减法 printf(两数之差:%lfn,value_jian); value_cheng=first_number*second_number;/乘法 printf(两数之积:%lfn,value_cheng); value_chu=first_number/second_numb

17、er;/除法 printf(两数之商:除数不能为零,如果需要求商,请重新输入:n);/除法 value_pingjun=value_jia/2;/求平均 printf(平均数是:%lfn,value_pingjun);else value_jia=first_number+second_number;/加法 printf(两数之和:%lfn,value_jia); value_jian=first_number-second_number;/减法 printf(两数之差:%lfn,value_jian); value_cheng=first_number*second_number;/乘法 p

18、rintf(两数之积:%lfn,value_cheng); value_chu=first_number/second_number;/除法 printf(两数之商:%lfn,value_chu); value_pingjun=value_jia/2;/求平均 printf(平均数是:%lfn,value_pingjun); if(flag=2) system(CLS); printf(nn); printf(请输入两个数字,中间用空格隔开:nnn); scanf(%lf%lf,&first_number,&second_number);if(second_number=0) value_mi

19、=pow(first_number,second_number);/幂次 printf(x的y次幂:%lfn,value_mi); printf(取余为:除数不能为零,如果需要求余,请重新输入:n);/取余 printf(以x为底y的对数为:计算结果趋于无穷,无法显示:n);/x为底y的对数else value_mi=pow(first_number,second_number);/幂次 printf(x的y次幂:%lfn,value_mi); value_yu=fmod(first_number,second_number);/取余 printf(取余为:%lfn,value_yu); va

20、lue_duishu=(log10(second_number)/log10(first_number);/x为底y的对数 printf(以x为底y的对数为:%lfn,value_duishu); if(flag=3) system(CLS); printf(nn); printf(请输入一个数字:); scanf(%lf,&first_number); if(first_number0) value_sin=sin(first_number);/求sin printf(sin值:%lfn,value_sin); value_cos=cos(first_number);/求cos printf

21、(cos值:%lfn,value_cos); value_tan=tan(first_number);/求tan printf(tan值:%lfn,value_tan); value_exp=exp(first_number);/以e为底的指数 printf(exp值:%lfn,value_exp); value_fabs=fabs(first_number);/求绝对值 printf(x的绝对值:%lfn,value_fabs); if(first_number=0) value_sin=sin(first_number);/求sin printf(sin值:%lfn,value_sin);

22、 value_cos=cos(first_number);/求cos printf(cos值:%lfn,value_cos); value_tan=tan(first_number);/求tan printf(tan值:%lfn,value_tan); value_exp=exp(first_number);/以e为底的指数 printf(exp值:%lfn,value_exp); value_fabs=fabs(first_number);/求绝对值 printf(x的绝对值:%lfn,value_fabs); if(first_number0) value_ln=log(first_num

23、ber);/求ln printf(ln值:%lfn,value_ln); value_log=log10(first_number);/以10为底的对数 printf(10为底的对数:%lfn,value_log); value_floor=floor(first_number);/取整 printf(x取整:%lfn,value_floor); value_2=pow(first_number,2);/求x的平方 printf(x的平方:%lfn,value_2); value_3=pow(first_number,3);/求x的立方 printf(x的立方:%lfn,value_3); i

24、f(first_number=0) printf(ln值:计算结果趋于无穷,无法显示:n);/求ln printf(10为底的对数:计算结果趋于无穷,无法显示:n);/以10为底的对数 value_floor=floor(first_number);/取整 printf(x取整:%lfn,value_floor); value_2=pow(first_number,2);/求x的平方 printf(x的平方:%lfn,value_2); value_3=pow(first_number,3);/求x的立方 printf(x的立方:%lfn,value_3); if(first_number0) value_n=1;/求阶乘 for(i=1;i(first_number+1);i+) value_n=value_n*i; print

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1