C语言课程设计计算器

上传人:1888****888 文档编号:39469727 上传时间:2021-11-11 格式:DOC 页数:18 大小:2.31MB
收藏 版权申诉 举报 下载
C语言课程设计计算器_第1页
第1页 / 共18页
C语言课程设计计算器_第2页
第2页 / 共18页
C语言课程设计计算器_第3页
第3页 / 共18页
资源描述:

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

1、 大 学 C语言程序设计 课程设计(论文)题目: 计算器 院(系): 专业班级: 学 号: 学生姓名: 指导教师: 教师职称: 助 教 起止时间:2009.12.14至2009.12.26课程设计(报告)任务及评语院(系): 教研室:学 号学生姓名专业班级程序设计(报告)题目计算器程序设计(报告)任务程序设计的任务与要求:(1)掌握C语言编程的基础知识。(2)较熟练地编写C语言应用程序。(3)了解C语言的常用标准函数、编程技巧、异常处理。(4)联系已学过的内容,巩固所学的理论,增强独立工作能力。(5)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。(6)通过

2、本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。指导教师评语及成绩成绩: 指导教师签字: 2009 年 12 月 31 日辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)目 录第1章 课程设计的目的与要求11.1 课程设计目的11.2 课程设计的实验环境11.3 课程设计的预备知识11.4 课程设计要求1第2章 课程设计内容22.1程序功能介绍22.2程序整体设计说明22.2.1设计思路22.2.2数据结构设计及用

3、法说明22.2.3程序结构(流程图)22.2.4各模块的功能及程序说明32.2. 5程序结果42.3程序源代码及注释5第3章 课程设计总结13参考资料 15第1章 课程设计的目的与要求1.1 课程设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完程序设计语言(C)课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力1.2 课程设计的实验环境硬件要求能运行Win

4、dows 2000/XP操作系统的微机系统。C语言程序设计及相应的开发环境。1.3 课程设计的预备知识熟悉C语言及C语言开发工具。1.4 课程设计要求1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告第2章 课程设计内容2.1程序功能介绍利用Turbo C 所具有的函数模仿画出计算器的界面,实现计算器的基本功能,进行浮点数加、减、乘、除、乘方和求模运算。2.2程序整体设计说明计算器的输入输出和显示结果的显示屏,绘制计算器的按键,绘制边框。利用Turbo C绘制程序中的计算器的图形. 程

5、序中对使用的图形系统进行初始化定义函数,然后输出函数进行字符的输入输出,来进行简单的+、-。*、/运算。2.2.1设计思路C语言编辑的程序可以直接输入数学表达式,是由于它具有优良的兼容性,有很好的数据处理能力,稳定性也很强。不需要转换就可以直接输出数学运算的结果。输入字符后,输出结果可以显示一个字符串表达式(传入参数,输出值), 所以该程序具有较强的计算能力2.2.2数据结构设计及用法说明在主函数里先对接口、屏幕、系统等函数定义(#include #include ),屏幕函数包括文本窗口大小设定()、窗口颜色的设置、窗口文本的清除和输入输出等函数。编制图形程序时,在进入图形方式前,要在程序中

6、对使用的图形系统初始化,进入相应程序的入口地址,利用ottextxy定位输出文本,用void window(int left, int top, int right, int bottom)形式调用window()函数,而需要用另一窗口时, 可以将定义该窗口的window()函数再次调用一次, 就可以定义多个窗口。2.2.3程序结构(流程图) 进入函数表达式有错?输入信息调用E Add Sub接收输入信息数字或右括号跟的不是运算符?数字或右括号跟着左括号结尾有其它非法字符?输出运算结果Quit?退出函数重新输入Error(CHAR_AFTER_RIGHT)字函数输出错误信息Error(LEFT

7、_AFTER_NUM)子函数输出错误信息Error(INVALID_CHAR_TAIL)子函数输出信息错误图2.1 计算器流程图2.2.4各模块的功能及程序说明1、+主要功能:加法 2、-主要功能:减法 3、*主要功能:乘法4、/主要功能:减法 5、/主要功能:除法 备注:两个操作数使用方法:用键盘方向键(上、下、左、右)负值字的正负值字键,如果,当移动到相应得程序的入口地址,用算。控制鼠标图形的移动,当移动到想要输入的按钮时按下回车键即可输入当前数字或者执行与之对应的函数1、输入数值时,按下相应的数字键,若输入错误可以用CE键消去本次输入的数值,然后再重新输入正确的数值。2、输入数值后,按+

8、 - * / 等键进行四则运算。3、按 +/- 可以更改输入数值的正负值。2.2.5程序结果(1) 图2.1程序运行图(2)输入算式25-13= 输入步骤:第一步:图2.2输入25第二步: 图2.3减去13第三步:图2.4等于12(3)输入算式33/11= 输入步骤:第一步: 图2.5输入33第二步:图2.6除以11第三步: 图2.7等于32.3程序源代码及注释#include /*DOS接口函数*/#include /*数学函数的定义*/#include /*屏幕操作函数*/#include /*I/O函数*/#include /*库函数*/#include /*变量长度参数表*/#incl

9、ude /*图形函数*/#include /*字符串函数*/#include /*字符操作函数*/#define UP 0x48 /*光标上移键*/#define DOWN 0x50 /*光标下移键*/#define LEFT 0x4b /*光标左移键*/#define RIGHT 0x4d /*光标右移键*/#define ENTER 0x0d /*回车键*/void *rar; /*全局变量,保存光标图象*/struct palettetype palette; /*使用调色板信息*/int GraphDriver; /* 图形设备驱动*/int GraphMode; /* 图形模式值*/

10、int ErrorCode; /* 错误代码*/int MaxColors; /* 可用颜色的最大数值*/int MaxX, MaxY; /* 屏幕的最大分辨率*/double AspectRatio; /* 屏幕的像素比*/void drawboder(void); /*画边框函数*/void initialize(void); /*初始化函数*/void computer(void); /*计算器计算函数*/void changetextstyle(int font, int direction, int charsize); /*改变文本样式函数*/void mwindow(char *

11、header); /*窗口函数*/int specialkey(void) ; /*获取特殊键函数*/int arrow(); /*设置箭头光标函数*/*主函数*/int main() initialize();/* 设置系统进入图形模式 */ computer(); /*运行计算器 */ closegraph();/*系统关闭图形模式返回文本模式*/ return(0); /*结束程序*/* 设置系统进入图形模式 */void initialize(void) int xasp, yasp; /* 用于读x和y方向纵横比*/ GraphDriver = DETECT; /* 自动检测显示器*

12、/ initgraph( &GraphDriver, &GraphMode, );/*初始化图形系统*/ ErrorCode = graphresult(); /*读初始化结果*/ if( ErrorCode != grOk ) /*如果初始化时出现错误*/ printf(Graphics System Error: %sn, grapherrormsg( ErrorCode ) ); /*显示错误代码*/ exit( 1 ); /*退出*/ getpalette( &palette ); /* 读面板信息*/ MaxColors = getmaxcolor() + 1; /* 读取颜色的最大

13、值*/ MaxX = getmaxx(); /* 读屏幕尺寸 */ MaxY = getmaxy(); /* 读屏幕尺寸 */ getaspectratio( &xasp, &yasp ); /* 拷贝纵横比到变量中*/ AspectRatio = (double)xasp/(double)yasp;/* 计算纵横比值*/*计算器函数*/void computer(void) struct viewporttype vp; /*定义视口类型变量*/ int color, height, width; int x, y,x0,y0, i, j,v,m,n,act,flag=1; float nu

14、m1=0,num2=0,result; /*操作数和计算结果变量*/ char cnum5,str220=,c,temp20=; char str1=1230.456+-789*/Qc=%;/* 定义字符串在按钮图形上显示的符号 */ mwindow( Calculator ); /* 显示主窗口 */ color = 7; /*设置灰颜色值*/ getviewsettings( &vp ); /* 读取当前窗口的大小*/ width=(vp.right+1)/10; /* 设置按钮宽度 */ height=(vp.bottom-10)/10 ; /*设置按钮高度 */ x = width /

15、2; /*设置x的坐标值*/ y = height/2; /*设置y的坐标值*/ setfillstyle(SOLID_FILL, color+3); bar( x+width*2, y, x+7*width, y+height ); /*画一个二维矩形条显示运算数和结果*/ setcolor( color+3 ); /*设置淡绿颜色边框线*/ rectangle( x+width*2, y, x+7*width, y+height ); /*画一个矩形边框线*/ setcolor(RED); /*设置颜色为红色*/ outtextxy(x+3*width,y+height/2,0.); /*

16、输出字符串0.*/ x =2*width-width/2; /*设置x的坐标值*/ y =2*height+height/2; /*设置y的坐标值*/ for( j=0 ; j4 ; +j ) /*画按钮*/ for( i=0 ; i8; /*只取特殊键的扫描值,其余为0*/ return(key); /*返回键值*/第3章 课程设计总结通过本学期C语言学习,我对计算机有了全新的认识。计算机硬件相当于人类的大脑,而程序则相当于人类的思想,我很高兴学习到了有关计算机编程方面的知识。虽然我现在所学的东西远远不足以控制整个计算机系统,但是也可以让计算机成功的运行属于我自己的小程序,当屏幕上出现自己运

17、行的程序的时候,那种激动的心情是无法形容的。C语言是编程语言的基础,以后我一定会更加努力的学习C语言,为以后学习更多的语言打下坚实的基础。期末阶段的课程设计,我们的任务是写一个计算器的程序,我开始摸索,先查找有关资料,然后用画图以及循环将框架设计出来,但是后来的步骤比较棘手,计算是关键和难点,我们也查阅了相关的资料,但它上面用得是坐标来做的,所以为了方便设计程序,我们也改为用坐标来做的,计算问题就解决了。然后就是按键问题,我们找的资料是用鼠标做的,所以按键这个函数就只能自己设计,还好手头有类似的资料,经过自己的反复尝试和与同学们的探讨,这个问题也被我们解决了。闪烁这个设计的方法很死板,都一个类

18、型,就是算坐标比较烦琐,必须确定好它的位置,但是这些只要不断的去尝试,都可以解决。整个课程设计终于完成了,虽然过程有些艰难,但还是顺利的完成了。我们付出了很多努力,但我认为我们所得到的远远多余所付出的。例如同学之间的互相帮助让我第一次这么深刻的体验到了什么叫团队精神,团队精神在日后的工作中是非常重要的。有些同学积极的态度让我感到一丝惭愧,他们所体现出的坚持不懈的品质更令我折服。这次课程设计也让我看到了自己基础的薄弱。从今往后我将不断的求索,学习之路也好,人生之路也罢。而学习C语言之路就是不断调试,完善自我。这次的课程设计还提高了我实际分析问题、编程和动手能力,使我掌握了程序设计的基本技能,提高

19、了我适应实际,实践编程的能力。然而,这只是万里长征的第一步。后面的路还很长,困难还很多,可是我能成功的编译一个程序,能够在思路卡壳的情况下,继续前进,我在此很想感谢那些给予我耐心解答的老师和同学,是他们为我小程序的成功起到了关键性的作用,那么多个日夜,如此多的困难,同学们勤恳塌实,从开始到结束,没有显出一点倦意,始终热情高涨,我感谢这种氛围,感谢学校提供的良好条件。在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有

20、我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。老天不会让我太过顺利,他在这最后的时刻设置的障碍,是要考验我的能力,他要置我于死地?在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。没有了柳暗花明的一天,那么我怎么能说经受住了考验?谢谢老师的那句话,她说:人力有所不能及,然而,人的精神是不会败倒的。我鼓起勇气,到处问,到处查资料,黄天不负有心人,在一篇文章上,终于看到了我所特别要求的函数,我实现了组合是关键的理论。不得不说这是精神的胜利,是永不言败的精神让我的程序重见天日。谢谢给我指点迷津的老师。参考资料1张龙祥.面向对象程序设计M.北京:人

21、民邮电出版社,2001: 180-2062高福祥等.汇编语言程序设计.沈阳:东北大学出版社,1995: 97-1333黄明等.C语言程序设计.大连理工大学出版社,2005: 68-984马靖善.C语言程序设计.清华大学出版社,2005: 75-1205张颖江.C语言程序设计.北京: 科学出版社, 1998 :135-1706谭浩强.C语言程序设计(第二版).北京:高等教育出版社,2002: 66-1757张毅坤.C语言程序设计教程M .西安交通大学出版社,2003: 208-2308李成付.C语言程序设计基础.北京: 科学出版社, 1992: 26-759李国昌.C语言程序设计基础.北京: 科学出版社, 1998: 38-6610李大友.C语言程序设计基础.北京: 清华大学出版社, 1999: 26-5611钱启平.C语言程序设计基础.北京: 中国铁道出版社, 2000: 50-10012郝玉洁.C语言程序设计.北京: 机械工业出版社, 2000: 120-16413姜仲秋.C语言程序设计基础.南京: 南京大学出版社, 1998 :110-13614张基温.C语言程序设计教程.上海:高等教育出版社, 1992 :67-10815薛刚等.C语言实用教程.长春:吉林科学技术出版社,1997: 60-12715

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