C语言专业课程设计计算器图形界面.doc
《C语言专业课程设计计算器图形界面.doc》由会员分享,可在线阅读,更多相关《C语言专业课程设计计算器图形界面.doc(12页珍藏版)》请在咨信网上搜索。
扬 州 大 学 C语言课程设计汇报 题 目 一个简易计算器设计和实现 班 级 学 号 姓 名 指导老师 成 绩 老师评语: 扬州大学信息工程学院 年 6 月 25 目录 一、 程序设计目标:………………………………………………1 二、 程序设计内容:………………………………………………1 三、 课程设计所补充内容:补充函数或算法…………3,4 四、 系统总体设计………………………………………………….4 五、 系统具体设计………………………………………5,6,7,8 六、 运行结果………………………………………………8,9,10 七、 系统调试…………………………………………8,9,10,11 八、 课程设计体会总结………………………………8,9,10,11 1 课程设计目标 (1).课程设计是一项综合性实践步骤,是对平时试验一个补充,课程设计内容包含课程关键理论知识,但因为C语言对初学者较难掌握,所以对一个完整C语言程序不适合平时试验。经过课程设计能够达成综合设计C语言程序目标。 (2)经过本课程设计,能够培养独立思索,综合利用所学相关对应知识能力,能愈加好地使用C语言知识,愈加好地了解C语言好处和其可用性!掌握基础程序设计过程和技巧,掌握基础分析问题和 利用计算机求解问题能力,含有初步高级程序设计能力。为后续各门计算机课程学习和毕业设计打下坚实基础! (3)经过本程序训练程序设计基础技能,掌握字符串表示方法和字符串函数功效、自学掌握四则运算算法及WIN-TC图形操作基础知识、键盘上特殊键获取及图形方法下光标显示。 2 课程设计内容 目标:本课程课程设计要求学生模拟实现一个简单计算器,要求(1)能够实现四则运算,并能支持优先级运算。(2)三角和反三角运算:如sinx,cosx等。(3)指数对数运算:如log(x),lnx,ex次方等。(4)其它运算:如X!,x累加等。(4)不许可调用库函数,使用自行开发程序实现常见函数运算。(5)深入考虑计算器外观设计,用可视化界面给出计算器外观、功效按键及输入界面。 使用说明:实施加法运算,'—'表示实施减法运算,表示实施乘法运算,'/'表示除法运算.‘Q’表示退出计算器‘C’表示清零,’=’表示得出结果'^'表示实施xy次方,'e'表示实施ex次方操作,'&'表示实施累加操作.,你能够能够用键盘上上下左右键对光标进行移动,当光标移动到计算器按键上时,按ENTER即可实施该键操作!最终按“=”则可得出结果。 3 课题设计补充知识 本程序经过int specialkey(void)和#include<conio.h>来实现对屏幕操作,经过调用int arrow()函数,int specialkey(void)和#include<conio.h>来实现对光标操作。计算机图形采取Turbo C 2.0绘图程序制作。 所以包含C图形程序设计知识。另外,因为不许可调用库函数,则要自行开发程序实现sinx,cosx,ex次方函数运算,则能够依据幂级数展开式来设计实现其运算算法,而x阶乘和x累加则可用for语句来实现。 最终,不得不说说四则运算算法,有两种方法能够实现:(1)利用堆栈实现四则运算(2)还能够用递归整数四则运算。 sinx函数 #include<stdio.h> #include<math.h> main() { int n=1; float x; double sum ,term; printf("input x:"); scanf("%f",&x); sum=x; term=x; do { term=-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<stdio.h> #include<math.h> main() { int n=0; float x; double sum ,term; printf("input x:"); scanf("%f",&x); sum=1; term=x; do { term=-term*x*x/((n+1)*(n+2)); sum=sum+term; n=n+2; } while (fabs(term)>=1e-5); printf("cos(x)=%f ",sum); getch(); } 使用使只需要将其转换为函数,在computer函数中对其进行调用即可 4课程总体设计 main()函数首先初始化图形系统,然后调用计算器computer()进行计算器计算功效,当计算器程序返回时,关闭图形系统,结束程序。 其系统模块图以下: main函数 Computer函数计算 Initialize初始化图形系统 Closegraph关闭图形系统 5.1系统具体设计 5.1.1主界面:画一个带标题(calculator)窗口,窗口最上面光条显示数字和运算结果,光条下30个矩形块模拟命令按钮,按钮上面显示数字和运算符号,而且在按钮上有图形光标,经过移动光标键到所需位置,按回车键即可选择对应符号。 5.1.2main()主函数:首先初始化图形系统(Initialize函数),然后调用计算器computer()函数进行计算器计算功效,当计算器程序返回时,关闭图形系统(Closegraph),结束程序。 5.1.3initialize()初始化函数:调用initgraph(&GraphDriver,&&GraphMode,”初始化系统,将其装入对应图形驱动器。图形函数所用屏显模式由GraphMode所指向整数值确定。用DETECT自动检测现在屏显硬件类型,并选择最大分辨率屏显模式。为了方便设计计算器界面,在这个函数中你,获取图形屏幕最大尺寸及纵横比。 5.1.4mwindow()主窗口函数:设置视口大小为目前窗口二分之一,然后调用画边框函数drawboder()画出边框。 5.1.5drawboder()画边框函数:经过函数getviewsettings(&vp)把相关目前视口信息装入由vp所指向结构中。vp是struct viewporttype类型,其结构定义以下: struct viewporttype {int left,top,right,bottom; int clip; } 域left,top,right,bottom中分为左上角和右下角坐标。当clip为0时,不对超出视口边界裁剪,不然裁剪以预防超出边界。 因窗口是屏幕活动部分,在这个活动窗口将显示输出,为保持字符屏幕和图形系统独立。字符屏幕函数提供了窗口(window),而图形系统提供了视口(ViewPort),当屏幕用字符模式时,左上角坐标为(1,1),而在图形状态下,左上角坐标为(0,0)。依据视口坐标,利用画矩形函数rectangle()画出边框线。 5.1.6computer()计算器函数:这是关键函数,实现了计算器计算功效。先调用mwindow()函数显示窗口,再在窗口中显示计算器,最终接收按键进行运算。依据窗口大小设置按钮大小和位置,设置了两个单位变量width和height,图形显示以这两个变量为计算单位。图中符号按钮利用setfillstyle()设置颜色来实体填充,再用把bar()函数画矩形条,setcolor()函数设置边框线颜色,rectangle()函数画矩形边框线,利用outtextxy()函数将预先存放在str1中字符串中字符输出,因outtextxy()输出时字符串,则应利用sprintf()函数将要输出字符写入字符数组str2中,转变为字符串,然后输出。界面设置好后,先在第一个按钮位置显示图标,此时可移动和按下光标,变量m和n统计光标位置,光标移动某个位置按回车后,则程序判定所按字符,进行对应处理:(1)若为数字或小数点,则判定是否为负数,若是则将负号连接到字符串中,不然只连接所选数字或小数点,并显示数据。(2)当所选为“-“先判定有没有操作数,没有,则为负数,做负号标识,不然是做减法,做减法标志,并将目前操作数保留。(3)当所选为”+“、”*“、”/“、”^“等符号时,处理方法一样均是先保留第一个操作数,做运算标志,准备接收第二个操作数。(4)当所选为”=“时,依据运算符号标志值act进行对应运算,将结果显示。(5)当所选为”C“时,表示清零,将第一和第二操作数均置0。(6)当所选为“Q”时,则运算结束。另外,数据和结果显示仍然用outtextxy.()函数,而且填充二维矩阵条覆盖前一次输出。 5.1.7arrow()设计图形鼠标函数:用fillpoly(8,raw)画一个由raw所指向数组中定义8个x、y坐标点所围成封闭图形,用目前填充模式和颜色对该形状进行填充,利用imagesize()函数测试图像大小,分配内存区域,将图像保留,再经过图像读取函数getimage()和putimage()和XOR-PUT操作实现光标显示和隐藏。 5.1.8speciallykey()读取特殊键函数:利用bioskey(1)读取用户所按键信息,int bioskey(int cmb)函数原型在bios.h中,功效是完成直接按键操作。假如cmb是0 ,bioskey()返回下一个在键盘键入值,即在等候到下一个键。假如cmb是1,bioskey()查询是否按下一个键,当按下一个键时返回非0值,不然返回0值,所以用while(bioskey(1)==0)语句等候按键 5.2.模块接口设计 int main() {initialize(); Computer(); Closegraph(); Return(0); } 先设置系统进入图形模式(调用initialize()函数),即为模块入口,然后调用computer()函数实施计算器计算功效,最终调用closegraph()函数来关闭图形模式返回文本模式(模块出口),再结束程序。 5.3步骤图 开始 设计计算器图形样式及光标 计算器计算功效,用switch语句 结束 Computer()函数步骤图 按键 实施运算 显示结果 清零 增加一位 Q或C键 清零 结束 开始 前一位是运算符还是数字或小数点 Q或C键 运算符 数字或小数点 等于 Q键 清零 C键 总系统设计步骤图 6运行结果 运算器主界面 4阶乘运算结果 cos0运算结果 e平方运算结果 Ln10运算结果 7系统调试 该计算器系统不能实现四则运算功效,有望改善! 8课程设计体会总结 经过一周C语言课程设计,使我加深了C语言程序使用,并能达成基础上利用。同时也增强了动手和实践能力。即使在碰到了不少困难,不过正因为这些困难,我也学到了更多东西。 这次“简单计算器制作”课程设计不仅让我对C语言熟悉城上升到了一个新高度,是我在编程路上一个质飞跃。当我看到一个含有图形界面计算器模型成品出现在我面前时,心中有着无限感慨,原来编程也不是很遥不可及,原来在编程趣味中能让我学到更多有意思知识! 9试验指导书和参考书 1.谭浩强,《C程序设计(第三版)》,清华大学出版社,。 2.郭翠英,《C语言课程设计案例精编》,中国水利水电出版社,。 3.黄勇,《C语言简单图形编程》,清华大学出版社,。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 专业课程 设计 计算器 图形界面
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文