当前位置:文档之家› VB课程设计 打地鼠论文

VB课程设计 打地鼠论文

武汉工业学院VB程序设计课程设计报告打地鼠—VB课程设计学号姓名:学院:专业班级:指导教师:日期:目录第一章课程设计概述 (3)第一节课程设计名称 (3)第二节任务要求 (3)第三节开发环境 (3)第二章总体设计 ................. 错误!未定义书签。

第一节系统功能需求分析 (4)第二节系统总体设计框架....... 错误!未定义书签。

第三章界面设计 . (5)第四章源程序代码及解释 (6)第五章程序运行效果及出错处理 (13)第六章课程设计体会 (17)参考文献 (18)第1章课程设计概述第一节课程设计名称课程设计目的:本课程的课程设计实际是学生学习完《可视化编程技术》课程后,进行的一次全面的综合训练,其目的在于加深对可视化编程技术基本知识的理解,掌握运用VB开发应用程序的基本方法及基本技巧。

程序名称:打地鼠游戏游戏简介:打地鼠是一种非常有趣的益智游戏,老少皆宜。

游戏进行时,地鼠不断从洞中探出头再缩回去,当地鼠头在洞外时,可以通过按键的方式打击地鼠,时间到时游戏结束,打中地鼠次数越多得分越高,击错、逃跑数越多得分越低。

人们在游戏的同时还能锻炼自己的反映能力,不同的难度选项适用于不同的打地鼠选手。

在英雄榜中保留前五名最高得分信息。

第二节任务要求1.课程设计的预备知识:熟悉Visual Basic 6.0程序设计的基本语法知识及常用技巧。

2.按照课程设计指导书提供的课题,每人设计一个完整的应用程序,要求根据根据规定设计程序的具体要求,按照应用程序的设计步骤,和VB的基本能知识完成应用程序的分析和实现。

第三节开发环境硬件要求能运行Windows 9.X操作系统的微机系统。

软件:Microsoft Visual Basic 6.0VB是由美国微软公司于1991年开发出来的一种可视化的,面向不同对象和驱动环境的各类应用程序。

它简单易学,效率高,功能大。

在VB环境下,利用事件驱动的编程程序机制,可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL),对象的链接与嵌入(OLE),开发式数据连接(ODBC)等技术,可以高效,快速的开发Windows 环境下功能强大的,图形界面丰富的应用软件。

第二章总体设计第一节系统功能需求分析一.主要知识点:图像控件(Image)Select Case语句RanDoomize语句随机函数Rnd()Move 方法For 的循环语句二.任务分析1.在窗体上显示地鼠可以用图像框或图片框,在这里我们选用图像框(Image)控件。

2.地鼠显示位置是随机的,也就是承载地鼠图像框的Left和Top是随机的。

这就需要利用VB提供的随机函数来实现。

而控制地鼠出现的时间,显然可以用计时器来控制。

3.RndDoomize语句的作用是初始化Rnd()中随机数生成,打乱原来的生成序列,使Rnd()函数产生的数更接近真正的随机数。

4.Move 方法对象:Move x(y(,Width(,Height)))功能:移动对象,使其Left为x,Top值为y,并改变对象的宽度值为Width,高度值为Height。

省略的参数,就以上次的数值为默认值。

第二节系统总体设计框架第三章界面设计一.单击菜单栏中的【文件】/【新建工程】命令,这时会弹出【新建工程】对话框,选择“标准EXE”项,然后单击“确定”按钮,这样就新建一个工程。

二.选择窗体,设置窗体的几个属性如下:“Name”为”Form1”,“Caption”为“地鼠娱乐部”。

三.添加一个Label控件,“Caption”为“得分”四.添加一个时间控件“Timer”,其属性设置为:“Enabled”设置为“Fslse”,“Interval”设置为“700”。

五.添加五个Image控件,分别为Image1,Image2,Image3,Image4 Image5,在五个Image 控件中分别添加。

第四章源程序代码及解释Dim 鼠X As SingleDim 鼠Y As SingleDim 地鼠 As ByteDim 对数 As IntegerDim 总数 As IntegerSub 判断(X, Y)Select Case 地鼠Case 0, 1, 2 ‘表示测试的值为0,1,2,X = 地鼠Y = 0Case 3, 4, 5 ‘表示测试的值为3,4,5X = 地鼠 - 3Y = 1Case 6, 7, 8 ‘表示测试的值为6,7,8X = 地鼠 - 6Y = 2End SelectEnd SubPrivate Sub Form_Load() ‘窗体加载Randomize ‘随机函数初始化ShowPrintFor 地鼠 = 0 To 8 ‘遍历鼠洞判断 X, YForm1.PaintPicture Image5.Picture, 1000 + 1050 * X, 1000 + 1050 * Y Next总数 = 1End SubPrivate Sub Form_ Load ()RandomizeShowPrintFor 地鼠 = 0 To 8判断 X, YForm1.PaintPicture Image5.Picture, 1000 + 1050 * X, 1000 + 1050 * Y Next总数 = 1End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Image1.Move X - Image1.Width / 2, Y - Image1.Height / 2鼠X = Image1.Left鼠Y = Image1.TopTimer1.Enabled = TrueLabel2.Caption = "运行中..."End SubPrivate Sub Image1_MouseDown (Button As Integer, Shift as Integer, X As Single, Y as Single)Image1.Picture = Image3.Picturexy = 99If 鼠X > 800 And 鼠X < 1850 ThenIf 鼠Y + 1500 > 1600 And 鼠Y + 1500 < 2350 Then xy = 0If 鼠Y + 1500 > 2650 And 鼠Y + 1500 < 3400 Then xy = 3If 鼠Y + 1500 > 3700 And 鼠Y + 1500 < 4450 Then xy = 6End IfIf 鼠X > 1850 And 鼠X < 2900 ThenIf 鼠Y + 1500 > 1600 And 鼠Y + 1500 < 2350 Then x y = 1If 鼠Y + 1500 > 2650 And 鼠Y + 1500 < 3400 Then x y = 4If 鼠Y + 1500 > 3700 And 鼠Y + 1500 < 4450 Then x y = 7End IfIf 鼠X > 2900 And 鼠X < 3950 ThenIf 鼠Y + 1500 > 1600 And 鼠Y + 1500 < 2350 Then xy = 2If 鼠Y + 1500 > 2650 And 鼠Y + 1500 < 3400 Then xy = 5If 鼠Y + 1500 > 3700 And 鼠Y + 1500 < 4450 Then xy = 8End IfIf 地鼠 = xy Then对数 = 对数 + 1Label1.Caption = "打中次数 :" & 对数判断 X, YForm1.PaintPicture Image6.Picture, 1000 + 1050 * X, 1000 + 1050 * Y End IfEnd SubPrivate Sub Image1_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)Image1.Move 鼠X - (Image1.Width / 2 - X), 鼠Y - (Image1.Height / 2 - Y)鼠X = Image1.Left鼠Y = Image1.TopEnd SubPrivate Sub Image1_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)Image1.Picture = Image2.PictureEnd SubPrivate Sub Timer1_Timer ()总数 = 总数 + 1判断 X, YForm1.PaintPicture Image5.Picture, 1000 + 1050 * X, 1000 + 1050 * Y 地鼠 = Int(Rnd * 9)判断 X, YForm1.PaintPicture Image4.Picture, 1000 + 1050 * X, 1000 + 1050 * Y If 总数 > 100 ThenTimer1.Enabled = False判断 X, YForm1.PaintPicture Image5.Picture, 1000 + 1050 * X, 1000 + 1050 * YIf 对数 > 100 Thenmsg = MsgBox("恭喜" + Chr(13) + "你以经爆机了,还要继续吗?", vbYesNo, "地鼠娱乐部")Elsemsg = MsgBox("你以经过关了,您打中了" & 对数 & "次。

还要继续吗?", vbYesNo, "地鼠娱乐部")End IfIf msg = vbYes Then总数 = 1对数 = 0Timer1.Enabled = TrueElseUnload MeEnd IfEnd IfEnd SubPrivate Sub 犯得上_Click(Index As Integer)EndEnd SubPrivate Sub 关于_Click()MsgBox " 地鼠娱乐部" + Chr(13) + Chr(13) + "这是一个基于Windows98以上操作系统下" + Chr(13) + _"用VB编写的程序", , "地鼠娱乐部"End SubPrivate Sub 使用_Click()MsgBox "欢迎来到地鼠娱乐部" + Chr(13) + "使用说明:" + Chr(13) + "鼠标左右键都可打击" _+ "想要能更快的打到地鼠连续打击左右键," + Chr(13) + "那能加快打地鼠的次数", , "地鼠娱乐部"End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Image1.Move X - Image1.Width / 2, Y - Image1.Height / 2鼠X = Image1.Left鼠Y = Image1.TopTimer1.Enabled = TrueLabel2.Caption = "运行中..."End SubPrivate Sub Image1_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)Image1.Picture = Image3.Picturexy = 99If 鼠X > 800 And 鼠X < 1850 ThenIf 鼠Y + 1500 > 1600 And 鼠Y + 1500 < 2350 Then xy = 0If 鼠Y + 1500 > 2650 And 鼠Y + 1500 < 3400 Then xy = 3If 鼠Y + 1500 > 3700 And 鼠Y + 1500 < 4450 Then xy = 6End IfIf 鼠X > 1850 And 鼠X < 2900 ThenIf 鼠Y + 1500 > 1600 And 鼠Y + 1500 < 2350 Then xy = 1If 鼠Y + 1500 > 2650 And 鼠Y + 1500 < 3400 Then xy = 4If 鼠Y + 1500 > 3700 And 鼠Y + 1500 < 4450 Then xy = 7End IfIf 鼠X > 2900 And 鼠X < 3950 ThenIf 鼠Y + 1500 > 1600 And 鼠Y + 1500 < 2350 Then xy = 2If 鼠Y + 1500 > 2650 And 鼠Y + 1500 < 3400 Then xy = 5If 鼠Y + 1500 > 3700 And 鼠Y + 1500 < 4450 Then xy = 8End IfIf 地鼠 = xy Then对数 = 对数 + 1Label1.Caption = "打中次数 :" & 对数判断 X, YForm1.PaintPicture Image6.Picture, 1000 + 1050 * X, 1000 + 1050 * Y End IfEnd SubPrivate Sub Image1_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)Image1.Move 鼠X - (Image1.Width / 2 - X), 鼠Y - (Image1.Height / 2 - Y)鼠X = Image1.Left鼠Y = Image1.TopEnd SubPrivate Sub Image1_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)Image1.Picture = Image2.PictureEnd SubPrivate Sub Timer1_Timer ()总数 = 总数 + 1判断 X, YForm1.PaintPicture Image5.Picture, 1000 + 1050 * X, 1000 + 1050 * Y 地鼠 = Int(Rnd * 9)判断 X, YForm1.PaintPicture Image4.Picture, 1000 + 1050 * X, 1000 + 1050 * Y If 总数 > 100 ThenTimer1.Enabled = False判断 X, YForm1.PaintPicture Image5.Picture, 1000 + 1050 * X, 1000 + 1050 * YIf 对数 > 100 Thenmsg = MsgBox("恭喜" + Chr(13) + "你以经爆机了,还要继续吗?", vbYesNo, "地鼠娱乐部")Elsemsg = MsgBox("你以经过关了,您打中了" & 对数 & "次。

相关主题