VB課程設(shè)計報告jianghan_第1頁
VB課程設(shè)計報告jianghan_第2頁
VB課程設(shè)計報告jianghan_第3頁
VB課程設(shè)計報告jianghan_第4頁
VB課程設(shè)計報告jianghan_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

華東交通大學(xué)VB課程設(shè)計報告VB課程設(shè)計(論文)任務(wù)書土木建筑 學(xué)院土木工程 專業(yè) 4 班一、課程設(shè)計(論文)題目 : 小人移動 二、課程設(shè)計(論文)工作自 2014 年 6 月16日起至 2014 年 6 月 22 日止 三、課程設(shè)計(論文) 地點: 計算中心8#605 四、課程設(shè)計(論文)內(nèi)容要求:1. 本課程設(shè)計的目的(1)進一步鞏固和加深對“VB程序設(shè)計”課程基本知識的理解和掌握,了解VB語言在項目開發(fā)中的應(yīng)用。(2)學(xué)習(xí)程序設(shè)計開發(fā)的一般方法,了解和掌握項目開發(fā)過程及方式,培養(yǎng)正確的設(shè)計思想和分析問題、解決問題的能力,特別是項目設(shè)計能力。(3)通過對標(biāo)準(zhǔn)化、規(guī)范化文檔的掌握并查閱有關(guān)技術(shù)資料等,培養(yǎng)項目設(shè)計開發(fā)能力。 2. 課程設(shè)計的任務(wù)及要求(1) 基本要求:(1) 對系統(tǒng)功能進行需求分析;(2) 使用Visual basic開發(fā)環(huán)境進行程序開發(fā);(3) 提出系統(tǒng)的設(shè)計方案;(4) 編寫源程序代碼并進行調(diào)試。(2) 創(chuàng)新要求在基本要求達到后,可進行創(chuàng)新設(shè)計。(3) 課程設(shè)計報告撰寫及裝訂要求課程設(shè)計報告的撰寫要求表述簡明,圖表準(zhǔn)確。報告按如下內(nèi)容和順序用A4紙進行打印并裝訂成冊。(1)封面采用統(tǒng)一的課程設(shè)計封面,并按要求填寫好封面要求的個人信息和選題。(2)設(shè)計任務(wù)書(3)評閱書(4)目錄 (5)正文 (6)主要參考文獻(4) 課程設(shè)計評分標(biāo)準(zhǔn): (1)達到課程設(shè)計的目的與要求,程序的可讀性較好,并調(diào)試正確,60分;(2)能正確回答設(shè)計的中老師所提問題,可增加10分;(3)課程設(shè)計報告書寫規(guī)范整齊,可增加10分;(4)心得體會認(rèn)真總結(jié),可增加10分;(5)程序有創(chuàng)新性,可增加10分;成績評定實行優(yōu)秀、良好、中等、及格和不及格五個等級。不及格者需重做。(5) 課程設(shè)計進度安排(1)準(zhǔn)備階段(6學(xué)時):選擇設(shè)計題目、了解設(shè)計目的要求、查閱相關(guān)資料。(2)程序模塊設(shè)計分析階段(8學(xué)時):程序總體設(shè)計、詳細(xì)設(shè)計。(3) 代碼編寫調(diào)試階段(10學(xué)時):程序模塊代碼編寫、調(diào)試、測試。(4) 撰寫論文階段(6學(xué)時):總結(jié)課程設(shè)計任務(wù)和設(shè)計內(nèi)容,撰寫課程設(shè)計論文。(6)課程設(shè)計題目具體要求:設(shè)計要求:從迷宮的入口走到出口。詳細(xì)要求如下:1. 能夠打開已有的迷宮文件并進行游戲。2. 游戲者使用光標(biāo)鍵移動目標(biāo)。3. 可對游戲者使用時間計時。4. 移動目標(biāo)只能在通道中移動。5. 可以自定義使用的移動鍵。6. 程序分為設(shè)計和游戲兩種狀態(tài)。7. 在設(shè)計模式能夠通過鼠標(biāo)直接繪制的方式設(shè)計迷宮并能將所設(shè)計的布局保存到文本文件中,保存格式見素材中的樣例文件。8. 設(shè)計迷宮時可以指定入口和出口(入口用S表示,出口用F表示,通道用#表示,墻用空格表示,全用半角字符,設(shè)計時用鼠標(biāo)左鍵開辟通道,CTRL+鼠標(biāo)左鍵設(shè)置迷宮入口,CTRL+鼠標(biāo)右鍵設(shè)置迷宮出口)。9. 被移動目標(biāo)可以使用提供的圖片,或者自行安排其他控件。10. 支持顯示的背景設(shè)置,可以設(shè)置成任意色彩或者圖案。11.創(chuàng)新要求在基本要求達到后,進行創(chuàng)新設(shè)計,創(chuàng)新方向提示如下: 增加三維迷宮線路。 可以設(shè)置迷宮的大小。(10x20到50x100) 其它創(chuàng)新(有一定難度,實現(xiàn)代碼在30行以上)。學(xué)生簽名: 2014年 6月22日課程設(shè)計(論文)評閱意見序號項 目等級優(yōu)秀良好中等及格不及格1課程設(shè)計態(tài)度評價2出勤情況評價3任務(wù)難度評價4工作量飽滿評價5設(shè)計中創(chuàng)新性評價6論文書寫規(guī)范化評價綜合評定等級評閱人 職稱 講師 2013年 6 月 22 日 目 錄第1章 系統(tǒng)概要11.1功能大概介紹1第2章總體設(shè)計22.1設(shè)計思路22.2 設(shè)計方案22.3方案解決2第3章源程序代碼43.1 屬性窗口43.2 Form1的窗口代碼4第4章 運行結(jié)果及分析94.1 運行結(jié)果94.2程序分析104.3運行程序使用說明10第5章 心得體會11參考文獻12 第1章 系統(tǒng)概要 程序設(shè)計可以參考圖,(也可以自己設(shè)計,完成即可)本設(shè)計小人移動,從迷宮的入口走到出口,屬于游戲類。1.1功能大概介紹 啟動程序,出現(xiàn)小人行走的界面 通過上、下、左、右健控制小人行走,小人通過走空白的地方尋找出口。 當(dāng)小人走出迷宮時,彈出窗口顯示“恭喜你,成功走出迷宮”。 第2章總體設(shè)計2.1設(shè)計思路通過上下左右鍵控制小人行走走出迷宮。 如圖2-1為程序流程圖。通過上下左右鍵進入程序走出迷宮圖2-1 流程圖2.2 設(shè)計方案設(shè)計程序界面迷宮線路可以使用兩種方法實現(xiàn),一是事先畫好,二是利用line控件通過數(shù)組動態(tài)生成。編寫代碼包括事件處理過程和功能函數(shù),還有必要的聲明。變量聲明部分聲明本程序所需要的變量和數(shù)組。要添加必要的程序說明語句。事件處理包括下面的主要事件:Form_Load() 作一些初始化的工作。畫迷宮線路。Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)利用光標(biāo)鍵控制目標(biāo)移動。 2.3方案解決1.從文件中讀取數(shù)據(jù)建立一個二維數(shù)組打開提供的路線文件就可以發(fā)現(xiàn)這個文件是由”#”和” ”構(gòu)成的,對于文件部分課堂上沒有講解,但是可以看課本的第7章。下面是具體使用方法。fnum = FreeFile 得到空文件號Open SelectFile For Input As #fnum 打開文件并指定緩沖區(qū)的文件號Input #fnum, NumRows, NumCols 讀入數(shù)組的行(NumRows)和列(NumCols)值ReDim LelMove(1 To NumRows, 1 To NumCols) 定義動態(tài)數(shù)組的大小對于此二維數(shù)組值的獲得,可以使用雙重循環(huán)逐行讀入。對讀入的每一行mid()取子串生成二維的邏輯性數(shù)組。ch = Mid(row, c, 1) row為讀入的每行內(nèi)容LelMove(r, c) = (ch #) 判斷ch #成立則為True,否則為False另外注意對入口s和出口f的判斷。數(shù)組形成之后定義form的高度和寬度(注意應(yīng)該和迷宮線路的寬度、二維數(shù)組相結(jié)合),這里還要涉及到窗口的屬性ScaleModevbPixels。2.利用數(shù)組畫迷宮線路如果二維數(shù)組讀入正確,畫線就很簡單了,只需設(shè)定線高和線寬就可以了(參考線高和線寬值為20)。仍然要注意提取入口和出口的坐標(biāo)值。Line (c * SQUARE_WID, r * SQUARE_HGT)-Step(-SQUARE_WID, -SQUARE_HGT), clr, BF 線路的高度SQUARE_WID,寬度 SQUARE_HGT,顏色clr3.移動目標(biāo)小人這里面使用的是Picture控件,圖片已提供。小人根據(jù)坐標(biāo)x,y值出現(xiàn)PaintPicture picPlayer.Picture, x, y但是怎么樣使舊的小人擦除?可以確定原位置然后重新畫線。小人要通過光標(biāo)鍵來移動,這就用到了下面的事件Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)KeyCode 是按鍵返回的鍵值,我們涉及到的有vbKeyLeft,vbKeyRight, vbKeyDown, vbKeyUp通過上面的事件和二維數(shù)組結(jié)合起來,在可走的地方小人允許出現(xiàn),這樣就可以確定小人只能沿著你畫好的線路走。第3章源程序代碼3.1 屬性窗口Begin VB.Form Form1 AutoRedraw = -1 True BackColor = &H80000004& Caption = 闖迷宮 ClientHeight = 9630 ClientLeft = 225 ClientTop = 555 ClientWidth = 12765 FillColor = &H80000004& FillStyle = 0 Solid KeyPreview = -1 True LinkTopic = Form1 MaxButton = 0 False Picture = 迷宮.frx:0000 ScaleHeight = 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 = 400 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 ScaleWidth = 345 TabIndex = 0 Top = 400 Width = 400 End Begin VB.Menu mig Caption = 隨機生成迷宮 End Begin VB.Menu dmg Caption = 啟動動態(tài)迷宮 End Begin VB.Menu start Caption = 初始化 EndEndAttribute VB_Name = Form1Attribute VB_GlobalNameSpace = FalseAttribute VB_Creatable = FalseAttribute VB_PredeclaredId = TrueAttribute 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 * 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 If 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 Picture1.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則表示障礙或墻,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 迷宮矩陣.txt For Input As #1 讀取事先設(shè)計好的迷宮矩陣,隨機讀取一種矩陣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), vbWhite, 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, i * 400)-(400 * (j + 1), 400 * (i + 1), vbWhite, B End If Next NextClose #1End SubPrivate Sub Timer1_Timer() 使迷宮矩陣動態(tài)變化,隨機生成的迷宮可能是走不通的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), vb

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論