1、1 7/6/2019 课程设计 (2012-2013 学年度学年度 第第二二学期学期) 题 目: 鼠鼠 标标 控控 制制 学生姓名:学生姓名: 学生学号学生学号 : 专专 业业: 计算机科学与技术计算机科学与技术 班班 级级: 1111 级(级(3 3)班)班 指导教师指导教师: 2 7/6/2019 目录目录 1设计目的3 2.设计 要求 3 3.算法说明3 4.流程 图 4 4.1 主函数 4 5.程序测试5. 6.结论与体会5 7 . 参 考 资 料 5 8 . 源 代 码 6 1.1.设计目的设计目的 通过一个综合应用程序的开发,掌握 C 语言程序设计的基本方法和常用算 法,学会从实际
2、应用出发来分析问题,进行软件规划和算法设计,逐步求精, 养成良好的编程风格,熟悉软件设计的基本步骤,为后续课程的学习打下良好 的基础。 2 2. .设计要求设计要求: : (1) 实现弹出式菜单,菜单至少分为两级 (2) 界面尽量友好,尽量符合人们的操作习惯 (3) 有退出图标,在任意级菜单下点击退出图标退出整个程序 (4) 至少有5个子菜单项 (5) 实现同组同学的菜单集成 相关知识:相关知识:图形绘制、鼠标操作、循环、分支、数组等 功能扩充:功能扩充:1)三级菜单 2)增加子菜单项 3.3.算法说明算法说明 3 7/6/2019 3.1 3.1 鼠标样子的计算(画鼠标)鼠标样子的计算(画鼠
3、标) 鼠标的状态是存放在两个一维数组(UpNum16, DownNum16)里面的。而鼠 标的各点像素是存放二维数组 mouse_draw1616里面的。是通过 UpNum16, DownNum16两个一维数组给 up1616,down1616两个二维数组赋值,再 通过 up1616,down1616给 mouse_draw1616赋初值。具体的说, UpNum16, DownNum16里的数字都是 4 位的 16 进制数,展开后将其值分别赋 给 up1616,down1616两个数组。这样 up1616,down1616就是仅 由 0,1 组成的数。up1616,down1616同位置坐标相
4、比有四种可能。其中 两种是没有像素的点。另外两种一种代表鼠标内部颜色,另一种代表鼠标边界颜 色。 3.2 3.2 菜单模型的控制菜单模型的控制 按照我设计菜单的思路,上一级菜单可以进入下一级菜单,下一级菜单可以返回 上一级菜单或进入下一级菜单。因此对于我要达到的 3 级菜单,我引入了 3 个控 制菜单的变量,i,j,k。i 是控制其级数,表明处于第 i 级菜单。j 表示其是第 几个一级菜单或其下子菜单。k 代表其为 3 级菜单,处于所在上级菜单的第 k 个 子菜单(功能)。 比如主菜单下:i=0;j=0;k=0; 又如在调用的五子棋,i=2;j=3;k=0; 4.4.流程图流程图 (判断条件时
5、,红色代表 False,绿色代表 True。) 4.1 主函数 4 7/6/2019 i=2 /*定义的数组,保存状态*/ intint step_x,step_y;/*行走的坐标*/ intint key ; /*获取按下的键盘的键*/ intint flag; /*玩家标志*/ intint wzq; /*上为五子棋所需宏定义及全局变量 */ intint MouseX; intint MouseY; /*/*全局变量全局变量(MouseX,MouseYMouseX,MouseY)为鼠标顶尖点坐标)为鼠标顶尖点坐标*/*/ /*up1616/*up1616与与 down1616down1616两数组为中间变量。两数组为中间变量。mo