收藏 分销(赏)

C语言专业课程设计计算器图形界面.doc

上传人:人****来 文档编号:2728393 上传时间:2024-06-05 格式:DOC 页数:12 大小:2.65MB 下载积分:8 金币
下载 相关 举报
C语言专业课程设计计算器图形界面.doc_第1页
第1页 / 共12页
C语言专业课程设计计算器图形界面.doc_第2页
第2页 / 共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语言简单图形编程》,清华大学出版社,。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服