《VB课程设计报告jianghan.doc》由会员分享,可在线阅读,更多相关《VB课程设计报告jianghan.doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、VB课程设计(论文)任务书土木建筑 学院土木工程 专业 4 班一、课程设计(论文)题目 : 小人移动 二、课程设计(论文)工作自 2014 年 6 月16日起至 2014 年 6 月 22 日止 三、课程设计(论文) 地点: 计算中心8#605 四、课程设计(论文)内容要求:1. 本课程设计的目的(1)进一步巩固和加深对“VB程序设计”课程基本知识的理解和掌握,了解VB语言在项目开发中的应用。(2)学习程序设计开发的一般方法,了解和掌握项目开发过程及方式,培养正确的设计思想和分析问题、解决问题的能力,特别是项目设计能力。(3)通过对标准化、规范化文档的掌握并查阅有关技术资料等,培养项目设计开发
2、能力。 2. 课程设计的任务及要求(1) 基本要求:(1) 对系统功能进行需求分析;(2) 使用Visual basic开发环境进行程序开发;(3) 提出系统的设计方案;(4) 编写源程序代码并进行调试。(2) 创新要求在基本要求达到后,可进行创新设计。(3) 课程设计报告撰写及装订要求课程设计报告的撰写要求表述简明,图表准确。报告按如下内容和顺序用A4纸进行打印并装订成册。(1)封面采用统一的课程设计封面,并按要求填写好封面要求的个人信息和选题。(2)设计任务书(3)评阅书(4)目录 (5)正文 (6)主要参考文献(4) 课程设计评分标准: (1)达到课程设计的目的与要求,程序的可读性较好,
3、并调试正确,60分;(2)能正确回答设计的中老师所提问题,可增加10分;(3)课程设计报告书写规范整齐,可增加10分;(4)心得体会认真总结,可增加10分;(5)程序有创新性,可增加10分;成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。(5) 课程设计进度安排(1)准备阶段(6学时):选择设计题目、了解设计目的要求、查阅相关资料。(2)程序模块设计分析阶段(8学时):程序总体设计、详细设计。(3) 代码编写调试阶段(10学时):程序模块代码编写、调试、测试。(4) 撰写论文阶段(6学时):总结课程设计任务和设计内容,撰写课程设计论文。(6)课程设计题目具体要求:设计要求:
4、从迷宫的入口走到出口。详细要求如下:1. 能够打开已有的迷宫文件并进行游戏。2. 游戏者使用光标键移动目标。3. 可对游戏者使用时间计时。4. 移动目标只能在通道中移动。5. 可以自定义使用的移动键。6. 程序分为设计和游戏两种状态。7. 在设计模式能够通过鼠标直接绘制的方式设计迷宫并能将所设计的布局保存到文本文件中,保存格式见素材中的样例文件。8. 设计迷宫时可以指定入口和出口(入口用S表示,出口用F表示,通道用#表示,墙用空格表示,全用半角字符,设计时用鼠标左键开辟通道,CTRL+鼠标左键设置迷宫入口,CTRL+鼠标右键设置迷宫出口)。9. 被移动目标可以使用提供的图片,或者自行安排其他控
5、件。10. 支持显示的背景设置,可以设置成任意色彩或者图案。11.创新要求在基本要求达到后,进行创新设计,创新方向提示如下: 增加三维迷宫线路。 可以设置迷宫的大小。(10x20到50x100) 其它创新(有一定难度,实现代码在30行以上)。学生签名: 2014年 6月22日课程设计(论文)评阅意见序号项 目等级优秀良好中等及格不及格1课程设计态度评价2出勤情况评价3任务难度评价4工作量饱满评价5设计中创新性评价6论文书写规范化评价综合评定等级评阅人 职称 讲师 2013年 6 月 22 日 目 录第1章 系统概要11.1功能大概介绍1第2章总体设计22.1设计思路22.2 设计方案22.3方
6、案解决2第3章源程序代码43.1 属性窗口43.2 Form1的窗口代码4第4章 运行结果及分析94.1 运行结果94.2程序分析104.3运行程序使用说明10第5章 心得体会11参考文献12第1章 系统概要 程序设计可以参考图,(也可以自己设计,完成即可)本设计小人移动,从迷宫的入口走到出口,属于游戏类。1.1功能大概介绍 启动程序,出现小人行走的界面 通过上、下、左、右健控制小人行走,小人通过走空白的地方寻找出口。 当小人走出迷宫时,弹出窗口显示“恭喜你,成功走出迷宫”。 第2章总体设计2.1设计思路通过上下左右键控制小人行走走出迷宫。 如图2-1为程序流程图。通过上下左右键进入程序走出迷
7、宫图2-1 流程图2.2 设计方案设计程序界面迷宫线路可以使用两种方法实现,一是事先画好,二是利用line控件通过数组动态生成。编写代码包括事件处理过程和功能函数,还有必要的声明。变量声明部分声明本程序所需要的变量和数组。要添加必要的程序说明语句。事件处理包括下面的主要事件:Form_Load() 作一些初始化的工作。画迷宫线路。Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)利用光标键控制目标移动。 2.3方案解决1.从文件中读取数据建立一个二维数组打开提供的路线文件就可以发现这个文件是由”#”和” ”构成的,对于文
8、件部分课堂上没有讲解,但是可以看课本的第7章。下面是具体使用方法。fnum = FreeFile 得到空文件号Open SelectFile For Input As #fnum 打开文件并指定缓冲区的文件号Input #fnum, NumRows, NumCols 读入数组的行(NumRows)和列(NumCols)值ReDim LelMove(1 To NumRows, 1 To NumCols) 定义动态数组的大小对于此二维数组值的获得,可以使用双重循环逐行读入。对读入的每一行mid()取子串生成二维的逻辑性数组。ch = Mid(row, c, 1) row为读入的每行内容LelMov
9、e(r, c) = (ch #) 判断ch #成立则为True,否则为False另外注意对入口s和出口f的判断。数组形成之后定义form的高度和宽度(注意应该和迷宫线路的宽度、二维数组相结合),这里还要涉及到窗口的属性ScaleModevbPixels。2.利用数组画迷宫线路如果二维数组读入正确,画线就很简单了,只需设定线高和线宽就可以了(参考线高和线宽值为20)。仍然要注意提取入口和出口的坐标值。Line (c * SQUARE_WID, r * SQUARE_HGT)-Step(-SQUARE_WID, -SQUARE_HGT), clr, BF 线路的高度SQUARE_WID,宽度 SQ
10、UARE_HGT,颜色clr3.移动目标小人这里面使用的是Picture控件,图片已提供。小人根据坐标x,y值出现PaintPicture picPlayer.Picture, x, y但是怎么样使旧的小人擦除?可以确定原位置然后重新画线。小人要通过光标键来移动,这就用到了下面的事件Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)KeyCode 是按键返回的键值,我们涉及到的有vbKeyLeft,vbKeyRight, vbKeyDown, vbKeyUp通过上面的事件和二维数组结合起来,在可走的地方小人允许出现,这样就可以确定小人只
11、能沿着你画好的线路走。第3章源程序代码3.1 属性窗口Begin VB.Form Form1 AutoRedraw = -1 True BackColor = &H& Caption = 闯迷宫 ClientHeight = 9630 ClientLeft = 225 ClientTop = 555 ClientWidth = 12765 FillColor = &H& FillStyle = 0 Solid KeyPreview = -1 True LinkTopic = Form1 MaxButton = 0 False Picture = 迷宫.frx:0000 ScaleHeight
12、= 9630 ScaleWidth = 12765 StartUpPosition = 2 屏幕中心 Begin VB.PictureBox Picture2 BorderStyle = 0 None Height = 400 Index = 1 Left = 11600 Picture = 迷宫.frx:0461 ScaleHeight = 405 ScaleWidth = 405 TabIndex = 2 Top = 9200 Width = 400 End3.2 Form1的窗口代码BorderStyle = 0 None Height = 400 Index = 0 Left = 40
13、0 Picture = 迷宫.frx:08C2 ScaleHeight = 405 ScaleWidth = 405 TabIndex = 1 Top = 0 Width = 400 End Begin VB.Timer Timer1 Enabled = 0 False Interval = 2000 Left = 7320 Top = 240 End Begin VB.PictureBox Picture1 BackColor = &H0000FF00& Height = 400 Left = 400 Picture = 迷宫.frx:0D23 ScaleHeight = 345 Scale
14、Width = 345 TabIndex = 0 Top = 400 Width = 400 End Begin VB.Menu mig Caption = 随机生成迷宫 End Begin VB.Menu dmg Caption = 启动动态迷宫 End Begin VB.Menu start Caption = 初始化 EndEndAttribute VB_Name = Form1Attribute VB_GlobalNameSpace = FalseAttribute VB_Creatable = FalseAttribute VB_PredeclaredId = TrueAttribu
15、te VB_Exposed = FalseConst row = 22, col = 30Dim grid(row + 1, col + 1)Private Sub dmg_Click()Picture1.Left = 400 初始化图片位置Picture1.Top = 400Timer1.Enabled = True 启动时钟End SubPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) 键盘控制图片移动l = Picture1.Left 400t = Picture1.Top 400Line (l * 400, t
16、 * 400)-(400 * (l + 1), 400 * (t + 1), vbGreen, BF 显示走过的路径Select Case KeyCode 随着键盘的动作来移动 Case vbKeyLeft If Picture1.Left - 400 = 400 Then If grid(t, l - 1) = 0 Then Picture1.Left = Picture1.Left - 400 Picture1.Top = Picture1.Top End If End If Case vbKeyRight If Picture1.Left + 400 = 400 * col Then I
17、f grid(t, l + 1) = 0 Then Picture1.Left = Picture1.Left + 400 Picture1.Top = Picture1.Top End If End If Case vbKeyDown If Picture1.Top + 400 = 400 Then If grid(t - 1, l) = 0 Then Picture1.Left = Picture1.Left Picture1.Top = Picture1.Top - 400 End If End IfEnd SelectIf Picture1.Top 400 = row And Pict
18、ure1.Left 400 = col - 1 Then Timer1.Enabled = False MsgBox (恭喜你,成功走出迷宫!) 显示成功信息 End IfEnd SubPrivate Sub Form_Load()Open 迷宫矩阵.txt For Input As #1 读取迷宫矩阵,绘制迷宫图 For i = 0 To row + 1 For j = 0 To col + 1 If 1 = i And i = row And 1 = j And j = col Then Input #1, grid(i, j) If grid(i, j) = 1 Then 值为1则表示障
19、碍或墙,0则表示通道,即可行路径 Line (j * 400, i * 400)-(400 * (j + 1), 400 * (i + 1), vbBlue, BF End If Else Line (j * 400, i * 400)-(400 * (j + 1), 400 * (i + 1), vbBlue, BF End If Next NextClose #1End SubPrivate Sub mig_Click() 随机获取迷宫矩阵Picture1.Left = 400Picture1.Top = 400Randomizem = row * Int(20 * Rnd)Open 迷宫
20、矩阵.txt For Input As #1 读取事先设计好的迷宫矩阵,随机读取一种矩阵Do While n m Line Input #1, temp n = n + 1Loop For i = 1 To row For j = 1 To col Input #1, grid(i, j) If grid(i, j) = 1 Then Line (j * 400, i * 400)-(400 * (j + 1), 400 * (i + 1), vbBlue, BF Else Line (j * 400, i * 400)-(400 * (j + 1), 400 * (i + 1), vbWhi
21、te, B End If Next NextClose #1End SubPrivate Sub start_Click()Picture1.Left = 400Picture1.Top = 400Open 迷宫矩阵.txt For Input As #1 初始化迷宫矩阵 For i = 1 To row For j = 1 To col Input #1, grid(i, j) If grid(i, j) = 1 Then Line (j * 400, i * 400)-(400 * (j + 1), 400 * (i + 1), vbBlue, BF Else Line (j * 400,
22、 i * 400)-(400 * (j + 1), 400 * (i + 1), vbWhite, B End If Next NextClose #1End SubPrivate Sub Timer1_Timer() 使迷宫矩阵动态变化,随机生成的迷宫可能是走不通的X = 1: Y = 1 For i = 1 To row For j = 1 To col Randomize grid(i, j) = Int(2 * Rnd) If grid(i, j) = 1 Then Line (j * 400, i * 400)-(400 * (j + 1), 400 * (i + 1), vbBlu
23、e, BF Else Line (j * 400, i * 400)-(400 * (j + 1), 400 * (i + 1), vbWhite, B End If Next NextEnd Sub第4章 运行结果及分析4.1 运行结果如图4-1、4-2、4-3所示均为本程序的控制窗口。图4-1form1(打开时显示截图)图4-2为form1运行时截图图4-3走出迷宫时截图4.2程序分析解释:得到的数据i,j既为小人在预先设定的二维数组的迷宫里的位置,依次通过这些位置,小人即可到达出口。4.3运行程序使用说明双击打开迷宫.exe,以上下左右键控制小人的移动,当你走出迷宫后会弹出一个“恭喜,成
24、功走出迷宫”的窗体,除此之外,还可以点击左上角随机生成迷宫或动态迷宫等功能。第5章 心得体会1.要有积极向上的心态 1、要有自信,自强,积极主动学习. 2、要有打破砂锅问到底的决心2.要有良好的学习习惯 1、课前预习,认真听课并适当做些笔记,课后要认真复习消化所学内容,完成作业. 2、VB程序设计学习中养成的良好习惯个十分重要,因为程序设计思想就在这时形成的。3.理解VB的一些基本概念多看书,书中自有黄金屋,多记函数,理解函数的意思。.4.自己独立编写程序 自己动手编写程序,哪怕是最简单的,提高自己的动手能力,不能只停留在懂的阶段。5.多看些程序,量能产生质变,看看别人的闪光点,帮助自己提高。 .6.总结一句话就是,多读,多看,多练就初步掌握VB。 参考文献(1) Visual basic程序设计实验教程【M】 吴昊 杜玲玲(人民邮电出版社 2011.3)(2) Visual basic程序设计【M】 熊李艳 周美玲(人民邮电出版社 2011.3)