C语言课程设计计算器(图形界面)_第1页
C语言课程设计计算器(图形界面)_第2页
C语言课程设计计算器(图形界面)_第3页
C语言课程设计计算器(图形界面)_第4页
C语言课程设计计算器(图形界面)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、第 页共11页扬州大学C语言课程设计报告一个简易计算器的设计与实现指导教师成绩老师评语:扬州大学信息工程学院2010年6月25目录TOC o 1-5 h z一、程序设计目的:1二、程序设计内容:1三、课程设计所补充的内容:补充的函数或算法3,4四、系统总体设计.4五、系统详细设计5,6,7,8六、运行结果8,9,10七、系统调试8,9,10,11八、课程设计体会总结8,9,10,11课程设计目的(1).课程设计是一项综合性实践环节,是对平时实验的一个补充,课程设计内容包括课程的主要理论知识,但由于C语言对初学者较难掌握,因而对一个完整的C语言程序不适合平时实验。通过课程设计可以达到综合设计C语

2、言程序的目的。(2)通过本课程设计,可以培养独立思考,综合运用所学有关相应知识的能力,能更好地使用C语言的知识,更好地了解C语言的好处和其可用性!掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础!(3)通过本程序训练程序设计的基本技能,掌握字符串的表示方法和字符串函数的功能、自学掌握四则运算的算法及WIN-TC的图形操作的基本知识、键盘上特殊键的获取及图形方式下光标的显示。课程设计内容目的:本课程的课程设计要求学生模拟实现一个简单计算器,要求(1)能够实现四则运算,并能支持优先级运算。(2)

3、三角与反三角运算:如sinx,cosx等。(3)指数对数运算:如log(x),lnx,e的x次方等。(4)其他运算:如X!,x的累加等。(4)不允许调用库函数,使用自行开发的程序实现常用函数运算。(5)进一步考虑计算器外观设计,用可视化界面给出计算器外观、功能按键及输入界面。使用说明:执行加法运算,表示执行减法运算,表示执行乘法运算,/表示除法运算.Q表示退出计算器C表示清零,二表示得出结果表示执行x的y次方,e表示执行e的x次方操作,&表示执行累加操作.,你可以可以用键盘上的上下左右键对光标进行移动,当光标移动到计算器按键上时,按ENTER即可执行该键的操作!最后按“二”则可得出结果。课题设

4、计的补充知识本程序通过intspecialkey(void)和#include来实现对屏幕的操作,通过调用intarrow()函数,intspecialkey(void)来实现对光标的操作。计算机图形采用TurboC2.0绘图程序制作。因此涉及C的图形程序设计知识。此外,由于不允许调用库函数,则要自行开发程序实现sinx,cosx,e的x次方函数运算,则可以根据幂级数的展开式来设计实现其运算的算法,而x的阶乘和x的累加则可用for语句来实现。最后,不得不说说四则运算的算法,有两种方法可以实现:(1)利用堆栈实现四则运算(2)还可以用递归整数的四则运算。sinx函数#include#includ

5、emain()intn=1;floatx;doublesum,term;printf(inputx:);scanf(%f,&x);sum=x;term=x;doterm=-term*x*x/(n+1)*(n+2);sum=sum+term;n=n+2;while(fabs(term)=1e-5);printf(sin(x)=%f,sum);getch();cosx函数#include#includemain()intn=0;floatx;doublesum,term;printf(inputx:);scanf(%f,&x);sum=1;term=x;doterm=-term*x*x/(n+1)

6、*(n+2);sum=sum+term;n=n+2;while(fabs(term)=1e-5);printf(cos(x)=%f,sum);getch();使用使只需要将其转换为函数,在computer函数中对其进行调用即可课程总体设计main()函数首先初始化图形系统,然后调用计算器computer()进行计算器的计算功能,当计算器程序返回时,关闭图形系统,结束程序。其系统模块图如下:5.1系统详细设计5.1.1主界面:画一个带标题(calculator)的窗口,窗口最上面的光条显示数字和运算结果,光条下30个矩形块模拟命令按钮,按钮上面显示数字和运算符号,并且在按钮上有图形光标,通过移动

7、光标键到所需位置,按回车键即可选择相应的符号。5.1.2main()主函数:首先初始化图形系统(Initialize函数),然后调用计算器computer()函数进行计算器的计算功能,当计算器程序返回时,关闭图形系统(Closegraph),结束程序。5.1.3initialize()初始化函数:调用initgraph(&GraphDriver,&GraphMode,”初始化系统,将其装入相应的图形驱动器。图形函数所用的屏显模式由GraphMod所指向的整数值确定。用ETEC咱动检测目前屏显硬件的类型,并选用最大分辨率的屏显模式为。了方便设计计算器界面在,这个函数中你,获取图形屏幕的最大尺寸及

8、纵横比。5.1.4mwindoW主窗口函数:设置视口大小为当前窗口的一半,然后调用画边框函数drawboder()画出边框。5.1.5drawboder()画边框函数:通过函数getviewsettings(&vp)把有关当前视口的信息装入由vp所指向的结构中。vp是structviewporttype类型,其结构定义如下:structviewporttypeintleft,top,right,bottom;intclip;域left,top,right,bottom中分为左上角和右下角的坐标。当clip为0时,不对超出视口边界裁剪,否则裁剪以防止超出边界。因窗口是屏幕的活动部分,在这个活动窗

9、口将显示输出,为保持字符屏幕和图形系统的独立。字符屏幕的函数提供了窗口(window),而图形系统提供了视口(ViewPort),当屏幕用字符模式时,左上角坐标为(1,1),而在图形状态下,左上角坐标为(0,0)。根据视口坐标,利用画矩形函数rectangle()画出边框线。5.1.6computer()计算器函数:这是主要函数,实现了计算器的计算功能。先调用mwindow()函数显示窗口,再在窗口中显示计算器,最后接收按键进行运算。根据窗口大小设置按钮大小和位置,设置了两个单位变量width和height,图形显示以这两个变量为计算单位。图中的符号按钮利用setfillstyle()设置颜色

10、来实体填充,再用把bar()函数画矩形条,setcolor()函数设置边框线颜色,rectangle()函数画矩形边框线,利用outtextxy()函数将预先存储在str1中的字符串中的字符输出,因outtextxy()输出的时字符串,则应利用sprintf()函数将要输出的字符写入字符数组str2中,转变为字符串,然后输出。界面设置好后,先在第一个按钮位置显示图标,此时可移动和按下光标,变量m和n记录光标的位置,光标移动某个位置按回车后,则程序判断所按的字符,进行相应处理:(1)若为数字或小数点,则判断是否为负数,若是则将负号连接到字符串中,否则只连接所选的数字或小数点,并显示数据。(2)当

11、所选为“-“先判断有无操作数,没有,则为负数,做负号标记,否则是做减法,做减法标志,并将当前操作数保存。(3)当所选为”+“、”*“、”/“、”“等符号时,处理方式一样均是先保存第一个操作数,做运算标志,准备接受第二个操作数。(4)当所选为”二“时,根据运算符号标志值act进行相应的运算,将结果显示。(5)当所选为”C“时,表示清零,将第一和第二操作数均置0。(6)当所选为“Q”时,则运算结束。此外,数据和结果的显示仍然用outtextxy.()函数,并且填充二维矩阵条覆盖前一次的输出。5.1.7arrow()设计图形鼠标函数:用fillpoly(8,raw)画一个由raw所指向的数组中定义的

12、8个x、y坐标点所围成的封闭图形,用当前填充模式和颜色对该形状进行填充,利用imagesize()函数测试图像大小,分配内存区域,将图像保存,再通过图像的读取函数getimage()和putimage()以及X0R-PUT操作实现光标的显示和隐藏。5.1.8speciallykey()读取特殊键函数:利用bioskey(1)读取用户所按键的信息,intbioskey(intcmb)函数原型在bios.h中,功能是完成直接按键操作。如果cmb是0,bioskey()返回下一个在键盘键入的值,即在等待到下一个键。如果cmb是1,bioskey()查询是否按下一个键,当按下一个键时返回非0值,否则返

13、回0值,所以用while(bioskey(1)=0)语句等待按键5.2.模块接口设计intmain()initialize();Computer();Closegraph();Return(0);先设置系统进入图形模式(调用initialize()函数),即为模块入口,然后调用computer()函数执行计算器的计算功能,最后调用closegraph()函数来关闭图形模式返回文本模式(模块出口),再结束程序。5.3流程图Computer()函数流程图第 页共11页第 页共11页按键Q或C键C键Q键运算符数字或小数点前一位是运算符还是数字或等于执行运算显示结果开始结束增加一位清零清零总系统设计流

14、程图6运行结果C语言课程设计课程设计4第 页共11页C语言课程设计课程设计4第 #页共11页呱翊/吐C语言课程设计课程设计4第 #页共11页:liaL-J.4-石灣J拦-,*表示执行確注隹翼宀表示执行乘法运窟p.JyJPj_-_在计算器按键上,*r表示执行加法运算P一:,严表示矗法运算.“表示退出计算器-C*表示購毛*=2叢示得出结果炸击碍竊霉證备上下鞋褲对光标遊行移动当光标移功到计算器技键上时捋EHTEK印可执行该犍的掾作宇辭端使用f欧迎大家掏出不足之处*C语言课程设计课程设计4第 #页共11页C语言课程设计课程设计4第 #页共11页运算器主界面4的阶乘运算结果C语言课程设计课程设计第1O页共11页C语言课程设计课程设计第1O页共11页cosO运算结果e的平方运算结果C语言课程设计课程设计第11页共11页Ln10的运算结果系统调试该计算器系统不能实现四则运算功能,有望改进课程设计体会总结经过一周的C语言课程设计,使我加深了C语言程序的使用,并能达到基本上的运用。同时也增强了动手和实践的能力。虽然在遇到了不少困难,但是正因为这些困难,我也学到了更多的东西。这次“

温馨提示

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

评论

0/150

提交评论