《软件设计基础(VB)》课程设计报告

更新时间:2023-05-25 02:25:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

河北理工大学

《软件设计基础(VB)》

课程设计报告

设计名称: 模拟射击游戏

姓 名: 许素鹏 学 号: 200903010209

专业班级: 机械设计制造及其自动化 (2)班

学 院: 机械工程学院 设计时间:

设计地点:

目 录

1.课程设计目的 ············································································································ 2.课程设计任务与要求 ······························································································· 3.课程设计说明书········································································································ 4.课程设计成果 ············································································································ 5.程序调试过程 ············································································································ 6.设计问题的不足和改进方案 ··················································································· 7.课程设计心得 ············································································································ 8.附录 ···························································································································· 9.参考文献 ····················································································································

《软件设计基础(VB) 》课程设计报告

3

页,共

19

1.课程设计目的《软件设计基础(VB) 》课程设计是这门课程的实践性教学环节之一,本次设计结合实际应用的 要求,使课程设计既覆盖 VB 的知识点,又接近工程实际需要。目的是通过课程设计的综合训练,培 养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式, 帮助学生系统掌握 VB 这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。 本游戏程序设计旨在培养学生综合利用 VB 语言进行程序设计的能力,主要是培养学生的时钟 控制和综合编程能力。

2.课程设计任务与要求:要求:本次课程设计利用《软件设计基础(VB) 》课程中所学到的编程知识和编程技巧,完成具有一定 难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。 要求: 1、对系统进行功能需求分析 2、设计合理的数据结构和系统框架 3、界面设计美观、清楚、合理 4、编程简练,程序功能齐全,能正确运行 5、具有一定的创新性 6、说明书、流程图要清楚 7、课题完成后必须按要求提交课程设计报告 任务: 1、要求使用面向对象和结构化程序设计的编程思路。 2、 在射击区域内随机出现设计目标, 如果在规定时间内单击中目标就增加分数并生成新的目标, 如果没有单击中则减少生命。 3、在基本要求达到后,进行创新设计,力求游戏更加完美。

《软件设计基础(VB) 》课程设计报告

4

页,共

19

3.课程设计说明书⑴功能描述此游戏为简单的射击小游戏,旨在培养快捷的反应能力与模拟战斗能力。 游戏共设三关:初级、 中级、高级。难度逐级递增,即目标出现的速度加快。 游戏流程如下:单

机游戏界面的"开始"按钮,游戏开始。屏幕中随机出现位置颜色大小均不同的目标方块,用鼠标点击 目标,目标消失后随机生成,分数加 1;若规定时间内未击中目标,生命数减 1,连续击中十个目标 后生命数加 1。当积累一定分数时,游戏升级,难度增加。当生命数为零时,游戏结束。在游戏过程

中,单击“暂停”可以停止游戏。单击“清除记录”即游戏重设,分数归零,生命返回初始值。离开 游戏时,单击“退出”即可。在菜单中可以设置游戏的等级,最高分与音效。

⑵概要设计游戏总分四个窗体:首界面,游戏界面,说明界面,最高分界面。各个界面之间存在调用关系。 模块结构图:

游戏进入

初级

中级

高级

开 始

暂 停

清 除

开 始

暂 停

清 除

游戏 说明 说明清 除

最高分

开 始

暂 停

游戏结束

⑶详细设计单击开始按钮后随机生成目标的单击开始按钮后随机生成目标的位置(top 和 left 属性),同 时令 timer 控件开始计时。目标的单击事件中进行加总分和重新生成目标以及重新启动 timer 控件。 如果规定时间内没有单击目标,会触发 timer 控件的 timer 事件,在 timer 事件中进行生命数减少、 重新确定目标位置和重新启动 timer 控件的功能。

《软件设计基础(VB) 》课程设计报告 总体流程图: 进入 开始 加分增加生命 升级 加分增加生命

5

页,共

19

升级 升级

加分增加生命

级别设置 暂停 清除 开始 生命到零

游戏结束

各功能模块流程图:各功能模块流程图同模块结构图。

⑷代码实现 本系统总共 4 个窗体:form1~form4 详细如下: form1、首页 作用: “游戏运行” 。 所用控件:4 个标签,1 个框架,3 个按钮,8 个文本框,1 个 MMcontrol 控件和 2 个时钟。 设计思路:用时钟控制 label1、6 的 caption。单击各个按钮进行相应操作。单击 菜单进行相应设置。 详细内容:单机游戏界面的"开始"按钮,游戏开始。屏幕中随机出现位置颜色大小均不同的目标方块,用鼠标点击目标,目标消失后随机生成,分数加 1;若规定时间内未击中目标,生命数减 1, 连续击中十个目标后生命数加 1。当积累一定分数时,游戏升级,难度增加。当生命数为零时,游戏 结束。在游戏过程中,单击“暂停”可以停止游戏。单击“清除记录”即游戏重设,分数归零,生命 返回初始值。离开游戏时,单击“退出”即可。在菜单中可以设置游戏的等级,最高分与音效。

代码如下:Dim z As Variant Dim score As Integer Dim life As Integer Dim X As Variant Dim ac As Variant Dim mu As Integer Private Sub a_Click() Timer1.Interval = 1500 Timer2.Interval = 1500 End Sub Private Sub ab_Click() Timer1.Interval = 600 Timer2.Interval = 600 End Sub Private Sub b_Click()

'初级

'高级

'中级

《软件设计基础(VB) 》课程设计报告Timer1.Interval = 1000 Timer2.Interval = 1000 End Sub Private Sub close_Click() mu = 0 End Sub Private Sub Command1_Click() If Timer1.Enabled = False Then '游戏开始 Timer1.Enabled = True Command1.Caption = "暂停" X=1 '定义变量 1 Command3

.Enabled = False menu.Enabled = False Command2.Enabled = False If mu = 1 Then MMControl1.FileName = App.Path + "\yinyue\cs-music1.mp3" mand = "open" mand = "play" End If Else Timer1.Enabled = False '游戏开始 Command1.Caption = "开始" X=2 '定义变量 2 Command3.Enabled = True menu.Enabled = True Command2.Enabled = True mand = "pause" '音乐暂停 mand = "stop" End If If Timer2.Enabled = False Then Timer2.Enabled = True End If End Sub

6

页,共

19

'音乐播放

Private Sub Command2_Click() If MsgBox("您要走吗?欢迎您下次再来!", 36, "请选择") = vbYes Then End End Sub Private Sub Command3_Click() Label1.Caption = 0 Label6.Caption = 8 Timer1.Enabled = False Timer2.Enabled = False End Sub Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single) ac = 0 '定义加分区间

《软件设计基础(VB) 》课程设计报告End Sub Private Sub instrction_Click() Form4.Show End Sub Private Sub open_Click() mu = 1 End Sub Private Sub super_Click() Form2.Show End Sub

7

页,共

19

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Timer1.Enabled = True Then Text1.Visible = False Label1.Caption = Label1 + 1 ac = ac + 1 z=2 End If End Sub

Private Sub Text2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Timer1.Enabled = True Then Text2.Visible = False Label1.Caption = Label1 + 1 ac = ac + 1 z=2 End If End Sub

Private Sub Text3_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Timer1.Enabled = True Then Text3.Visible = False Label1.Caption = Label1 + 1 ac = ac + 1 z=2 End If End Sub

Private Sub Text4_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Timer1.Enabled = True Then

《软件设计基础(VB) 》课程设计报告Text4.Visible = False Label1.Caption = Label1 + 1 ac = ac + 1 z=2 End If End Sub

8

页,共

19

Private Sub Text5_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Timer1.Enabled = True Then Text5.Visible = False Label1.Caption = Label1 + 1 ac = ac + 1 z=2 End If End Sub Private Sub Text6_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Timer1.Enabled = True Then Text6.Visible = False Label1.Caption = Label1 + 1 ac = ac + 1 z=2 End If End Sub Private Sub Text7_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Timer1.Enabled = True Then Text7.Visible = False Label1.Caption = Label1 + 1 ac = ac + 1 z=2 End If End Sub Private Sub Text9_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Timer1.Enabled = True Then Text9.Visible = False Label1.Caption = Label1 + 1 ac = ac + 1 z=2 End If End Sub Private Sub Timer1_Timer() Text1.Visible = True Text1.BackColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)

《软件设计基础(VB) 》课程设计报告Text2.Visible = True Tex

t2.BackColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255) Text3.Visible = True Text3.BackColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255) Text4.Visible = True Text4.BackColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255) Text5.Visible = True Text5.BackColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255) Text6.Visible = True Text6.BackColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255) Text7.Visible = True Text7.BackColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255) Text9.Visible = True Text9.BackColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255) Dim a As Integer Dim b As Integer Dim c As Integer Dim d As Integer Dim e As Integer Dim f As Integer Dim g As Integer Dim h As Integer Dim i As Integer Dim j As Integer Dim k As Integer Dim l As Integer Dim m As Integer Dim n As Integer Dim s As Integer Dim t As Integer a = Rnd * 5000 b = Rnd * 5000 c = Rnd * 4000 d = Rnd * 4000 e = Rnd * 4430 f = Rnd * 4530 g = Rnd * 4060 h = Rnd * 4040 i = Rnd * 4230 j = Rnd * 4000 k = Rnd * 6000 l = Rnd * 2440 m = Rnd * 4320 n = Rnd * 4220 s = Rnd * 3860 t = Rnd * 4050

9

页,共

19

《软件设计基础(VB) 》课程设计报告Text1.Top = c Text1.Left = d Text2.Top = e Text2.Left = f Text3.Top = g Text3.Left = h Text4.Top = i Text4.Left = j Text5.Top = k Text5.Left = l Text6.Top = m Text6.Left = n Text7.Top = a Text7.Left = b Text9.Top = s Text9.Left = t End Sub

10

页,共

19

Private Sub Timer2_Timer() If ac = 10 Then Label6.Caption = Label6.Caption + 1 ac = 0 End If If X = 1 Then z=z+1 If z = 4 Then Label6.Caption = Label6.Caption - 1 z=2 End If End If If Label1.Caption = 32 Then Timer1.Enabled = False Timer2.Enabled = False Y = MsgBox("太棒了,奖励你 1 分,恭喜你进入下一关!", 64, "Shoot") Command3.Enabled = True Command1.Caption = "开始" menu.Enabled = True Label1.Caption = 33 Command2.Enabled = True Timer1.Interval = 1000 Timer2.Interval = 1000 mand = "pause" mand = "stop" End If If Label1.Caption = 60 Then Y = MsgBox("神枪手,奖励你 2 分,希望你再接再励。恭喜你进入下一关!", 64, "Shoot")

《软件设计基础(VB) 》课程设计报告

11

页,共

19 页

Timer1.Enabled = False Timer2.Enabled = False Command3.Enabled = True Command1.Caption = "开始" menu.Enabled = True Label1.Caption = 62 Command2.Enabled = True Timer1.Interval = 500 Timer2.Interval = 500 mand = "pause" mand = "stop" End If If Label6.Caption = 0 Then Y = MsgBox("Game Over!,别灰心,集中精力,到初级那重新体验一下吧,祝你成功!", 48, "成功 在等着你呢") Timer1.Enabled = False Timer2.Enabled = False Command3.Enabled = True Command1.Caption = "开始" If bel1.Caption > Form2.Text1.Text Then Form2.Text1.Text = bel1.Caption End If Label1.Caption = 0 Label6.Caption = 8 menu.Enabled = True Command2.Enabled = True mand = "pause" mand = "stop" Timer1.Interval = 1500 ‘游戏返回初级 Timer2.Interval = 1500 End If End Su

b

Form2 作用: “最高分记录” 。 所用控件:1 个标签,1 个 文本框。 设计思路: 游戏结束后,文本框显示游戏的最高记录。 代码编写在 timer2 中如下:If bel1.Caption > Form2.Text1.Text Then Form2.Text1.Text = bel1.Caption End If

Form 3 作用: “进入游戏窗口” 。 所用控件:4 个标签,1 个按钮。

《软件设计基础(VB) 》课程设计报告 设计思路: 运用背景图片,标签解读游戏主题, 代码如下: Private Sub Command1_Click() Load Form1 Form3.Hide Unload Form3 Form1.Show End Sub Form 4 作用: “游戏说明” 。 所用控件:1 个标签。 设计思路:玩家进入游戏后观看说明。 详细内容:进入游戏后在菜单中进入游戏说明。 无代码。

12

页,共

19

4.课程设计成果

《软件设计基础(VB) 》课程设计报告

13

页,共

19

Form3 的界面, 单击“进入” 进入游戏界 面。

此图为 Form1 游 戏界 面

《软件设计基础(VB) 》课程设计报告

14

页,共

19

此图为运行界面

当满 32 分时, 游戏 升级

《软件设计基础(VB) 》课程设计报告

15

页,共

19

当满 60 分时,游戏 再次升级

游戏结束界面

最高分界面

《软件设计基础(VB) 》课程设计报告

16

页,共

19

游戏说明界面

游戏退出界面

5.程序调试过程1) 在设计过程中,目标随机位置的确定,利用控件的 top 和 left 属性可以改变控件的位置。随机 位置利用 rnd 函数生成随机数。目标用文本框代替,先让文本框隐藏,当游戏开始后出现且位置 随机。 2) 目标随机颜色的确定,利用 RGB 函数与 rnd 函数相结合实现。

《软件设计基础(VB) 》课程设计报告

17

页,共

19

3) Timer 控件的添加,控制分数与生命的数量问题,以及游戏的升级问题。在此过程中,又添加了 清除记录的功能,游戏最高分记录功能等。 4) 添加游戏说明界面。 5) 添加背景音乐,遇到问题是音乐不能循环播放。

《软件设计基础(VB) 》课程设计报告 6.设计问题的不足和改进方案 在课程设计过程中,出现的问题大致如下:

18

页,共

19

1) 目标随机出现以后,位置随机已经确定,但是随机的目标有一个重叠问题,因为 程序代码的缺陷,目标相对比较大,目标会出现部分重叠和全部重叠的情况。 改进方案是对随机函数加一些条件,使得各个目标的随机位置互不相等,即目标 的 top,left 属性至少一个属性不相等。相对而言游戏运行就更好了。 2) 游戏运行结束后不能保存游戏的最高分纪录。改进方案是设置一个文本窗体将其 最高分纪录保存。 3) 游戏运行过程中,背景音乐没有随机播放。改进方

案是一个相关的音乐控件实现 此功能。

7.课程设计心得

通过本次程序设计, 我深深认识到 VB 这一程序语言的强大功能, 它方便简洁高效, 采用可视化的图形用户界面, 面向对象的程序设 计思想, 事件驱动的编程机制和结构化程序设计语言, 成为人们实 际生活中的有力助手。 用了将近半个月的时间,终于完成了这次课题,看到自己的付 出有了回报,的确有些欣慰。但是程序中存在着诸多不足与缺点, 无法达到尽善尽美。 有待于我继续开发设计。 我们处于的只是学习 VB 的初级阶段,还有大量的知识等着我们去学习,大量的课题等 着我们去开发。 我们所做的只是皮毛而已, 以后要更加努力学习这 一语言,深化自己的编程思想,提高自己的编程素质。熟练运用这 一语言,将这一语言运用到实际生活中,去帮助他人社会,发挥它 的最大作用来造福社会。

《软件设计基础(VB) 》课程设计报告 8.附录

19

页,共

19

有些需要说明的部分。如添加 ActiveX 等非不标准部件,或使用文件 操作时对路径有特殊要求等。若没有特殊要求,此处为“无” 。

9.参考文献 1 陈惟彬 张军. Visual Basic 开发指南.北京:清华大学出版社,2001.01

本文来源:https://www.bwwdw.com/article/mzt4.html

Top