欢迎来到天天文库
浏览记录
ID:14717642
大小:242.50 KB
页数:39页
时间:2018-07-30
《菜单:大学计算机c语言课程设计(调用鼠标)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、3910/5/2021课程设计(2012-----2013学年度第二学期)题目:鼠标控制学生姓名:高志薇学生学号:1108210106专业:计算机科学与技术班级:11级(3)班指导教师:3910/5/2021目录1.设计目的……………………………………32.设计要求……………………………………33.算法说明………………………………………34.流程图………………………………………44.1主函数……………………………………45.程序测试……………………………………………5.6.结论与体会……………………………
2、……………57.参考资料…………………………………58.源代码…………………………………61.设计目的通过一个综合应用程序的开发,掌握C语言程序设计的基本方法和常用算法,学会从实际应用出发来分析问题,进行软件规划和算法设计,逐步求精,养成良好的编程风格,熟悉软件设计的基本步骤,为后续课程的学习打下良好的基础。2.设计要求:(1)实现弹出式菜单,菜单至少分为两级(2)界面尽量友好,尽量符合人们的操作习惯(3)有退出图标,在任意级菜单下点击退出图标退出整个程序(4)至少有5个子菜单项(5)实现同组同学的菜单集
3、成相关知识:图形绘制、鼠标操作、循环、分支、数组等功能扩充:1)三级菜单2)增加子菜单项3910/5/20213.算法说明3.1鼠标样子的计算(画鼠标)鼠标的状态是存放在两个一维数组(UpNum[16],DownNum[16])里面的。而鼠标的各点像素是存放二维数组mouse_draw[16][16]里面的。是通过UpNum[16],DownNum[16]两个一维数组给up[16][16],down[16][16]两个二维数组赋值,再通过up[16][16],down[16][16]给mouse_draw
4、[16][16]赋初值。具体的说,UpNum[16],DownNum[16]里的数字都是4位的16进制数,展开后将其值分别赋给up[16][16],down[16][16]两个数组。这样up[16][16],down[16][16]就是仅由0,1组成的数。up[16][16],down[16][16]同位置坐标相比有四种可能。其中两种是没有像素的点。另外两种一种代表鼠标内部颜色,另一种代表鼠标边界颜色。3.2菜单模型的控制按照我设计菜单的思路,上一级菜单可以进入下一级菜单,下一级菜单可以返回上一级菜单或进
5、入下一级菜单。因此对于我要达到的3级菜单,我引入了3个控制菜单的变量,i,j,k。i是控制其级数,表明处于第i级菜单。j表示其是第几个一级菜单或其下子菜单。k代表其为3级菜单,处于所在上级菜单的第k个子菜单(功能)。比如主菜单下:i=0;j=0;k=0;又如在调用的五子棋,i=2;j=3;k=0;4.流程图(判断条件时,红色代表False,绿色代表True。)4.1主函数3910/5/2021i==2&&k==t鼠标左击指定区域开始初始化显示器计算鼠标首次显示鼠标画主菜单ha=1首次画hello(ha)i
6、=j=k=0画hello(ha)ha++;根据位置不同进入指定一级菜单鼠标左击i==1&&j==t或i==3鼠标左击指定区域i==0
7、
8、i==1&&鼠标左击指定区域左击exit(i==0,鼠标点击指定区域)
9、
10、((i==2)鼠标点击BACK区域)返回主菜单根据位置不同进入指定二级菜单i==1j==t鼠标左击指定区域根据位置不同进入指定三级菜单结束3910/5/20215.程序测试在编程过程中,对于我们初学者,经常会出现,程序运行结果和预期不同的情况。以下是我常碰到的几种及解决方法。1.没有对屏显进行初始化
11、。方法:对屏显进行初始化2.鼠标留痕迹,或者留“阴影”。方法:没有控制好函数MouseOn(intx,inty),MouseOff()。为了更好的控制我另外定义了一个函数MouseSave()。进行了多次调整。3.点击时出现画面连续跳转。这是由鼠标左击是连续点击的过程(即便很快地点一下),这时应该能想到计算时间间隔控制它,或者采用延时。延时调用函数少,我采用了延时方法。但是delay(intx)函数,电脑与电脑差别甚大,有些电脑甚至用不了。而sleep()又延时1秒以上,使得画面十分不灵活。经过查阅图书,
12、我发现了另外一种延时方法,用for空循环千万次数量级,可以形成比较稳定的延时,并且通过控制循环次数,可以很方便得改变延时时间。6.结论与体会在学习C语言的过程中,我从完全不懂TC,到能自己编出简单的菜单模型,收获了很多很多。一些看似简单的bug,却让没有经验的我调试很久。慢慢就体会到了,那些从事编程工作的人们的辛苦。更让我觉得那些任意盗版他人作品人的可恶。自己起早贪黑做出的程序却被他人未经授权直接拿去从事商业活动。创作人员的积
此文档下载收益归作者所有