2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(jì)</b></p><p>  題 目: 貪食蛇小游戲的開發(fā) </p><p>  所 在 系: 計(jì)算機(jī)科學(xué)系 </p><p>  專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) </p><p>  學(xué) 號:

2、 </p><p>  作者姓名: </p><p>  指導(dǎo)教師: </p><p>  2014年 5 月 6 日</p><p><b>  貪食蛇小游戲的開發(fā)</b></p><

3、p>  摘 要 Visual Basic(VB)作為世界上使用人數(shù)最多的語言,以其簡單、易學(xué)等諸多優(yōu)點(diǎn),深受初學(xué)者們的喜愛,貪食蛇是一款家喻戶曉的經(jīng)典小游戲,它簡單有趣,老少皆宜,深受人們的青睞。本文基于VB開發(fā)了一個(gè)操作簡單、界面美觀的貪食蛇游戲,達(dá)到學(xué)習(xí)VB技術(shù)和熟悉軟件開發(fā)流程的目的。本文首先分析了游戲的基本功能,從功能、可行性方面分析了需求。然后,對游戲的概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)進(jìn)行了分析,這也是本文的重點(diǎn)。最后為了保證程序

4、代碼的正確性和功能實(shí)現(xiàn)的可靠性,本文還介紹了游戲的運(yùn)行調(diào)試過程和功能測試結(jié)果。</p><p>  關(guān)鍵詞 VB;貪食蛇;游戲</p><p><b>  目 錄</b></p><p><b>  1 引言1</b></p><p><b>  2 開發(fā)環(huán)境2</b>

5、</p><p><b>  2.1開發(fā)工具2</b></p><p><b>  2.2應(yīng)用環(huán)境2</b></p><p>  3 游戲需求分析3</p><p>  3.1 功能描述3</p><p>  3.2 需求分析3</p><p&g

6、t;  3.3 可行性分析3</p><p>  3.3.1技術(shù)可行性3</p><p>  3.3.2操作可行性4</p><p>  3.3.3經(jīng)濟(jì)可行性4</p><p><b>  4 概要設(shè)計(jì)6</b></p><p>  4.1 程序功能模塊6</p><

7、;p>  4.2 程序流程6</p><p><b>  5 詳細(xì)設(shè)計(jì)8</b></p><p>  5.1 開始界面8</p><p>  5.1.1 開始游戲8</p><p>  5.1.2 最高分9</p><p>  5.1.3游戲說明10</p><

8、;p>  5.1.3退出游戲11</p><p>  5.2 游戲過程12</p><p>  5.3 游戲結(jié)束14</p><p><b>  6 測試18</b></p><p>  6.1 測試意義18</p><p>  6.2 測試過程18</p><

9、;p>  6.2.1 測試計(jì)劃18</p><p>  6.2.2 測試需求20</p><p>  6.2.3 測試用例21</p><p>  6.2.4 測試報(bào)告21</p><p>  6.3 測試結(jié)果21</p><p><b>  7 總結(jié)23</b></p&g

10、t;<p><b>  致謝25</b></p><p><b>  參考文獻(xiàn)26</b></p><p><b>  附錄27</b></p><p><b>  1 引言</b></p><p>  貪食蛇游戲是諾基亞手機(jī)上一個(gè)必不

11、可少的游戲,但是你知道這個(gè)游戲的由來嗎?據(jù)說蛇引誘夏娃吃了蘋果之后,就被貶為毒蟲,陰險(xiǎn)的象征。而蛇吃東西是整只動物吞進(jìn)去的,在文藝復(fù)興的時(shí)候就有人發(fā)明了一種游戲,也就是現(xiàn)在貪食蛇游戲的前身,后來就慢慢地演變成今天的貪食蛇了。</p><p>  貪食蛇是一款大眾化游戲,因?yàn)樵谥Z基亞手機(jī)中隨處可見,而諾基亞手機(jī)也可以堪稱為手機(jī)中的一款非常經(jīng)典的手機(jī),貪食蛇游戲也如此。所以,人們對于這款游戲并不陌生,在現(xiàn)在緊張的生活

12、節(jié)奏中可以給人們帶來不少的樂趣,讓人們能夠在緊張的生活中得到片刻的放松,保持良好的生活狀態(tài)。</p><p>  貪食蛇游戲是一款生產(chǎn)于1970年后期的計(jì)算機(jī)游戲,該游戲在1990年代由于一些手機(jī)將其引入而再度流行起來。在游戲中,玩家操控一條細(xì)長的蛇爬行于一個(gè)帶邊界的平面之上,呑食系統(tǒng)隨機(jī)生成的食物,并要避免觸碰到自身或者包圍著游戲區(qū)的“墻”。蛇身隨著貪食蛇所呑食的食物而增長,蛇身的不斷增長使游戲的難度逐漸變大。

13、操控貪食蛇時(shí),玩家操控貪食蛇的頭部朝向(向上、向下、向左或向右)控制貪食蛇的進(jìn)行方向,貪食蛇的身體跟隨著頭部行進(jìn)。</p><p><b>  2 開發(fā)環(huán)境</b></p><p><b>  2.1開發(fā)工具</b></p><p>  本程序采用Microsoft Visual Basic 6.0中文版進(jìn)行編譯,VB是一

14、種由微軟公司開發(fā)的包含協(xié)助開發(fā)環(huán)境的事件驅(qū)動編程語言。從任何標(biāo)準(zhǔn)來說,VB都是世界上使用人數(shù)最多的語言——不僅是盛贊VB的開發(fā)者還是抱怨VB的開發(fā)者的數(shù)量。它源自于BASIC編程語言。VB擁有圖形用戶界面和快速應(yīng)用程序開發(fā)系統(tǒng),可以輕易地使用DAO、RDO、ADO連接數(shù)據(jù)庫,或者輕松地創(chuàng)建控件。程序員可以輕松地使用VB提供的組件快速建立一個(gè)應(yīng)用程序。</p><p><b>  2.2應(yīng)用環(huán)境</

15、b></p><p>  操作系統(tǒng):Windows XP,Windows7,Windows8,Windows Server</p><p>  應(yīng)用軟件:Visual Basic 6.0</p><p><b>  3 需求分析</b></p><p><b>  3.1 功能描述</b>&l

16、t;/p><p>  用VB語言實(shí)現(xiàn)經(jīng)典貪食蛇游戲,其基本功能描述如下。</p><p>  此游戲程序應(yīng)實(shí)現(xiàn)一條蛇在密閉的圍墻內(nèi)游動,在圍墻內(nèi)隨機(jī)生成一個(gè)食物,并且通過按鍵的上、下、左、右四個(gè)方向控制蛇身的移動,蛇頭撞到食物時(shí),則表示事物被蛇吃掉,蛇身隨之增長一節(jié),并同時(shí)計(jì)分加10分,接著再出現(xiàn)食物,重復(fù)剛才的過程。如果在蛇的移動的過程中,蛇撞到墻壁或者身體交叉即蛇頭撞到自己的身體,游戲結(jié)束

17、。</p><p><b>  3.2 需求分析</b></p><p>  本游戲主要是完成貪食蛇的基本操作,用戶可以自己練習(xí)和娛樂。本游戲需要滿足以下幾點(diǎn)要求:</p><p>  對鍵盤事件的處理:上,下,左,右箭頭(↑、↓、←、→)。</p><p><b>  食物的隨機(jī)生成。</b>&l

18、t;/p><p><b>  蛇身方向的處理。</b></p><p>  蛇撞墻或者撞到自己的判斷。</p><p><b>  最高分的獲取。</b></p><p>  游行,吃到食物,碰壁的聲音設(shè)計(jì)。</p><p><b>  3.3 可行性分析</b&

19、gt;</p><p>  3.3.1技術(shù)可行性</p><p>  技術(shù)可行性指的是決策方案和決策技術(shù)不能突破組織所擁有的活著相關(guān)人員掌握的技術(shù)資源的邊界。在進(jìn)行技術(shù)可行性分析時(shí),需注意以下一些問題:</p><p>  系統(tǒng)開發(fā)過程中所涉及到的所有的技術(shù)問題</p><p>  開發(fā)一個(gè)小游戲同樣也涉及到多方面的技術(shù)問題,其中包括:軟件開

20、發(fā)、游戲結(jié)構(gòu)、游戲軟硬件平臺的搭建、游戲界面的設(shè)置等。不僅應(yīng)該客觀和全面地分析軟件開發(fā)過程中所涉及到的技術(shù)問題。還應(yīng)該充分地考慮到這些技術(shù)的現(xiàn)實(shí)性和成熟度問題。</p><p><b>  采用成熟技術(shù)</b></p><p>  成熟的技術(shù)是已被多人使用且其可行性被反復(fù)證明的有效的技術(shù),所以,采用較成熟的技術(shù)往往具有較高的成功率。此外,成熟的技術(shù)已經(jīng)經(jīng)過大范圍和常時(shí)

21、間的使用和優(yōu)化,其可操作性和優(yōu)化程度以及經(jīng)濟(jì)性面都要比新技術(shù)好。所以,在軟件的開發(fā)過程中,在能夠滿足所開發(fā)系統(tǒng)需求、適應(yīng)所開發(fā)系統(tǒng)發(fā)展、保證所開發(fā)系統(tǒng)成本的條件下,要盡量地使用成熟地技術(shù)。</p><p>  慎重地引入新進(jìn)的技術(shù)</p><p>  在軟件開發(fā)過程中,為解決系統(tǒng)特定問題,為了讓所開發(fā)系統(tǒng)有更好的適應(yīng)性采取某些先進(jìn)地或者科研成果仍然處于試驗(yàn)階段,其實(shí)用性沒有得到完全解決,

22、也沒有經(jīng)過大量的試驗(yàn)驗(yàn)證。因此,在選擇這些技術(shù)時(shí),必須慎重。如果不加以分析,盲目地采用這些技術(shù),應(yīng)用時(shí)難免會出現(xiàn)許多難以解決的具體的問題。</p><p><b>  技術(shù)可行性評價(jià)</b></p><p>  本游戲完全可以用Visual Basic 6.0來編程,由于其簡單性和易用性,所以在技術(shù)上也不會有太大的問題。</p><p>  3

23、.3.2操作可行性</p><p>  操作可行性,主要是指系統(tǒng)的運(yùn)行方式和操作規(guī)程在用戶組織內(nèi)可以有效地實(shí)施。</p><p>  這是一個(gè)簡單易行,休閑益智的游戲,而且無論什么平臺都能很好的運(yùn)行。用戶在游戲的過程中也能受益不淺。</p><p>  3.3.3經(jīng)濟(jì)可行性</p><p>  經(jīng)濟(jì)可行性值的是人力資源、自然資源和資金條件等可

24、使用資源的可能性。</p><p><b>  經(jīng)濟(jì)可行性的內(nèi)容</b></p><p>  其中主要包括以下兩個(gè)方面的內(nèi)容:一是某一方案使用和占有經(jīng)濟(jì)資源的可能性,從而達(dá)到實(shí)現(xiàn)政策目標(biāo)的可能性; 二是要考慮到所需花費(fèi)的成本和取得的利益。資源是有限的。如果某事物方案的成本高于利益,顯然這個(gè)是不可行的。</p><p><b>  經(jīng)濟(jì)

25、可行性的方法</b></p><p>  經(jīng)濟(jì)可行性的評估有兩個(gè)基本方法:成本-效益分析、成本-效能分析。</p><p><b>  經(jīng)濟(jì)可行性的標(biāo)準(zhǔn)</b></p><p>  其具體標(biāo)準(zhǔn)有效力、效率、投入產(chǎn)出比、利潤率等。這里主要指出效力和效率兩個(gè)概念。效力是指用最小的成本實(shí)現(xiàn)擬定的目標(biāo)。效率是指以最小的投入換取最大的產(chǎn)出。&

26、lt;/p><p><b>  經(jīng)濟(jì)可行性分析</b></p><p>  自己的電腦上,即可用VB完成貪食蛇的編碼,實(shí)現(xiàn)貪食蛇小游戲的開發(fā)??梢哉f其經(jīng)濟(jì)利益相當(dāng)可觀,隨著手機(jī)和電腦的普及,這種小游戲也將隨著普及。而我們用較小的成本即可得到較大的收入。</p><p><b>  4 概要設(shè)計(jì)</b></p>&

27、lt;p>  4.1 程序功能模塊</p><p>  由需求分析知,本次課程設(shè)計(jì)是用方向鍵實(shí)現(xiàn)貪食蛇游戲程序,故其功能模塊分為:開始畫面(開始游戲、游戲說明、最高分)、游戲過程(開始、停止、快速、蛇身樣式、得分、最高分)、游戲結(jié)束。具體的模塊如圖4-1所示。</p><p>  圖4-1 程序功能模塊</p><p>  Fig.4-1 program fu

28、nction module</p><p><b>  4.2 程序流程</b></p><p>  貪食蛇的內(nèi)容主要包括:游戲開始/停止、隨機(jī)出現(xiàn)食物;雙擊開始游戲;蛇身樣式的控制等功能。程序的流程圖如圖4-2所示。</p><p><b>  5 詳細(xì)設(shè)計(jì)</b></p><p>  編寫詳細(xì)設(shè)

29、計(jì)文檔目的是對貪食蛇小游戲進(jìn)行詳細(xì)設(shè)計(jì),在概要設(shè)計(jì)的基礎(chǔ)上進(jìn)一步明確游戲結(jié)構(gòu),為游戲的實(shí)現(xiàn)和測試做準(zhǔn)備</p><p>  系統(tǒng)總體設(shè)計(jì)完成后,就可以根據(jù)需求對各個(gè)模塊來進(jìn)行實(shí)現(xiàn)了。首先是開始界面,進(jìn)入主界面主要有開始游戲/游戲說明/最高分/退出游戲等模塊。其詳細(xì)介紹如下。</p><p><b>  5.1 開始界面</b></p><p>

30、  雙擊貪食蛇的運(yùn)行文件,出現(xiàn)游戲開始界面,如圖5-1所示。</p><p>  圖5-1 程序主界面</p><p>  Fig.5-1 Program main interface</p><p>  5.1.1 開始游戲</p><p>  點(diǎn)擊“開始游戲”按鈕,出現(xiàn)圖5-2界面。</p><p><b&g

31、t;  圖5-2 游戲界面</b></p><p>  Fig.5-2 Game interface</p><p>  其原理是將“貪食蛇小游戲”窗口隱藏,將“貪食蛇”窗口顯示,其代碼如下:</p><p>  Private Sub 開始游戲_Click(Index As Integer)</p><p>  貪食蛇小游戲.H

32、ide</p><p><b>  貪食蛇.Show</b></p><p><b>  End Sub</b></p><p><b>  5.1.2 最高分</b></p><p>  點(diǎn)擊“最高分”按鈕,出現(xiàn)圖5-3界面。</p><p>  圖5

33、-3 最高分界面</p><p>  Fig.5-3 Highest score interface</p><p>  將字符串拼接起來,存儲在maxscore里面,并且使用msgbox函數(shù)將最高分彈出來,具體代碼如下:</p><p>  Private Sub 最高分_Click(Index As Integer)</p><p>  

34、Dim maxscore</p><p>  MDIForm1.Hide</p><p><b>  貪食蛇.Hide</b></p><p>  maxscore = "最高分為:" & 貪食蛇.Tag</p><p>  MsgBox maxscore, 0, "最高分"

35、;</p><p><b>  End Sub</b></p><p><b>  5.1.3游戲說明</b></p><p>  點(diǎn)擊游戲說明,出現(xiàn)圖5-4界面。</p><p>  圖5-4 游戲說明界面</p><p>  Fig.5-4 Game statement

36、interface</p><p>  利用vbCrLf換行,用&符號將字符串拼接起來,其代碼如下:</p><p>  Private Sub 游戲說明_Click(Index As Integer)</p><p>  Dim note As String</p><p>  note = "1. 使用鍵盤↑、↓、←、→

37、鍵控制蛇身的移動方向" & vbCrLf</p><p>  note = note & "2. 食物吞食越多 ,蛇身越長,分?jǐn)?shù)越高" & vbCrLf</p><p>  note = note & "3. 如果碰到墻壁或者自己的身體,游戲結(jié)束"</p><p>  MsgBox n

38、ote, 0, "游戲說明"</p><p><b>  End Sub</b></p><p><b>  5.1.3退出游戲</b></p><p>  退出界面如圖5-5所示。</p><p>  圖5-5 退出游戲界面</p><p>  Fig.

39、5-5 Quit game interface</p><p>  用msgbox函數(shù)彈出一個(gè)確認(rèn)是否退出游戲的提示,其代碼如下:</p><p>  Private Sub 退出游戲_Click(Index As Integer)</p><p>  If MsgBox("確認(rèn)退出游戲?", vbYesNo, "提示") =

40、 vbYes Then End</p><p><b>  End Sub</b></p><p><b>  5.2 游戲過程</b></p><p>  游戲過程的界面如圖5-6所示。</p><p>  圖5-6 游戲過程界面</p><p>  Fig.5-6 Gam

41、e progress interface</p><p>  首先為窗口添加一個(gè)mFast菜單,以及mmFast的子菜單,并將mmFast的子菜單的索引設(shè)置為0,然后再在窗體上放四個(gè)控件:Lable1,Lable2,Shape1,Timer2并在在屬性窗口修改控件屬性:Label1 的 Name=LabSnake,Index=0Label2 的 Name=LabTai,Index=0Shape1 的

42、Name=ShaFoot,Index=0</p><p>  蛇身方向的控制,當(dāng)按鍵按下,如果按鍵不朝當(dāng)前蛇身運(yùn)動的相反方向,那么就改變蛇身當(dāng)前運(yùn)動的方向,其代碼的實(shí)現(xiàn)如下所示:</p><p>  Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)</p><p>  Select Case

43、 KeyCode</p><p>  Case vbKeyUp: If ctTo <> to_Down Then ctTo = to_Up</p><p>  Case vbKeyDown: If ctTo <> to_Up Then ctTo = to_Down</p><p>  Case vbKeyLeft: If ctTo <&

44、gt; to_Right Then ctTo = to_Left</p><p>  Case vbKeyRight: If ctTo <> to_Left Then ctTo = to_Right</p><p>  End Select</p><p><b>  End Sub</b></p><p>

45、  對于游戲最高分的獲取,代碼如下所示:</p><p>  Private Sub ShowFen(Optional AddFen As Boolean)</p><p>  Dim Adds As Long</p><p>  If mmFast(m_Fast).Checked Then Adds = 20 Else Adds = 10’普通速度下,吃一個(gè)食物加

46、10分,加速的情況下加20分</p><p>  If ctAuto Then</p><p>  If AddFen Then ctAutoFen = ctAutoFen + Adds</p><p>  LabTai(2).Caption = "最高分 " & ctAutoMax</p><p>  LabTa

47、i(3).Caption = "得分 " & ctAutoFen</p><p>  貪食蛇.Tag = ctAutoMax</p><p><b>  Else</b></p><p>  If AddFen Then ctFen = ctFen + Adds</p><p>  LabTa

48、i(2).Caption = "最高分 " & ctMaxFen</p><p>  LabTai(3).Caption = "得 分 " & ctFen</p><p>  貪食蛇.Tag = ctMaxFen</p><p><b>  End If</b></p>&l

49、t;p><b>  End Sub</b></p><p><b>  5.3 游戲結(jié)束</b></p><p>  貪食蛇撞墻或者自己身體重疊,游戲結(jié)束,提示GAME OVER,并且返回到主界面,其界面如圖5-7和5-8所示。</p><p>  圖5-7 游戲結(jié)束界面</p><p>  

50、Fig.5-7 game over interface</p><p>  當(dāng)蛇身撞“墻”,彈出“GAME OVER”提示游戲結(jié)束,游戲結(jié)束,返回到主界面,代碼如下所示:</p><p>  If L > ctL Or L < 1 Then’判斷是否超出兩邊豎線的范圍</p><p>  LabSnake(nHead).ZOrder</p>

51、<p>  Timer1.Enabled = False</p><p>  LabTai(1).Caption = "游戲結(jié)束"</p><p>  Call ShowStr("Game Over", 36) </p><p>  MsgBox "GAME OVER"</p>

52、<p><b>  貪食蛇.Hide</b></p><p>  貪食蛇小游戲.Show</p><p><b>  End If</b></p><p>  If H > ctH Or H < 1 Then’判斷是否超出兩條橫線的范圍</p><p>  LabSnake(

53、nHead).ZOrder</p><p>  Timer1.Enabled = False</p><p>  LabTai(1).Caption = "游戲結(jié)束"</p><p>  Call ShowStr("Game Over", 36)</p><p>  MsgBox "GAME

54、OVER"</p><p><b>  貪食蛇.Hide</b></p><p>  貪食蛇小游戲.Show</p><p>  'Call ShowStr("雙擊重新開始", 36, 1)</p><p>  'GoTo SetNewHead</p><

55、p>  'If L < ctL * 0.5 Then ctTo = to_Right Else ctTo = to_Left</p><p>  'GoTo MoveHL</p><p><b>  End If</b></p><p>  圖5-8 游戲結(jié)束界面</p><p>  Fig.

56、5-8 Game over interface</p><p>  當(dāng)蛇身撞“自己”,彈出“GAME OVER”提示游戲結(jié)束,游戲結(jié)束,返回到主界面,代碼如下所示:</p><p>  If InBody(nHead, H, L) > -1 Then</p><p>  LabSnake(nHead).ZOrder</p><p>  

57、Timer1.Enabled = False</p><p>  LabTai(1).Caption = "游戲結(jié)束"</p><p>  Call ShowStr("Game Over", 36)</p><p>  MsgBox "GAME OVER"</p><p><b

58、>  貪食蛇.Hide</b></p><p>  貪食蛇小游戲.Show</p><p>  GoTo SetNewHead </p><p><b>  End If</b></p><p><b>  6 測試</b></p><p><b&g

59、t;  6.1 測試意義</b></p><p>  系統(tǒng)測試是為了發(fā)現(xiàn)系統(tǒng)缺陷,保證產(chǎn)品質(zhì)量而執(zhí)行程序的過程,成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤的測試。</p><p>  測試的目的就是希望能以最少的人力和資源在最少的時(shí)間內(nèi)發(fā)現(xiàn)潛在的各種錯(cuò)誤和缺陷。應(yīng)根據(jù)開發(fā)各階段的需求、設(shè)計(jì)等文檔或程序的內(nèi)部結(jié)構(gòu),利用等價(jià)類、邊界值、錯(cuò)誤推斷等測試方法,精心設(shè)計(jì)測試用例,并利用這些實(shí)例

60、來運(yùn)行程序,以便發(fā)現(xiàn)錯(cuò)誤。系統(tǒng)測試是保證系統(tǒng)質(zhì)量和可靠性的關(guān)鍵步驟,是對系統(tǒng)開發(fā)過程中的系統(tǒng)分析系統(tǒng)設(shè)計(jì)和實(shí)施的最后復(fù)查。</p><p><b>  6.2 測試過程</b></p><p>  測試過程一般分為:制定測試計(jì)劃、編寫測試需求、編寫測試用例、執(zhí)行測試用例、編寫測試報(bào)告。</p><p>  6.2.1 測試計(jì)劃</p>

61、;<p>  制定測試計(jì)劃。在擬制測試計(jì)劃時(shí),需充分考慮到整個(gè)項(xiàng)目的開發(fā)進(jìn)展、開發(fā)時(shí)間、測試時(shí)間,盡可能的將測試時(shí)間安排得充裕點(diǎn),使得測試計(jì)劃是可行的。測試計(jì)劃的內(nèi)容主要有測試內(nèi)容、進(jìn)度時(shí)間安排、測試所需的環(huán)境和條件、測試人員任務(wù)的分配等。其主要測試計(jì)劃如下所示:</p><p><b>  測試目的</b></p><p>  為檢驗(yàn)該游戲的功能是否達(dá)

62、到要求,對自己所設(shè)計(jì)的貪食蛇小游戲進(jìn)行鑒定測試。</p><p><b>  測試范圍</b></p><p> ?、俟δ苄?,包括準(zhǔn)確性、安全保密性、適合性、互操作性、功能依從性。</p><p> ?、谝子眯?,包括易學(xué)性、易理解性、易吸引性、易操作性、易用依從性。</p><p>  ③可移植性,包括共存性、易安裝性、

63、適應(yīng)性、易替換性、可移植的依從性。</p><p>  ④可靠性,包括成熟性方面、易恢復(fù)性、容錯(cuò)性、可靠的依從性。</p><p> ?、菥S護(hù)性,包括易測試性、易改變性、易分析性、穩(wěn)定性、維護(hù)的依從性。</p><p>  ⑥效率,包括資源利用性、時(shí)間特性、效率依從性。</p><p><b>  測試需求</b><

64、;/p><p>  測試需求見本章6.2.2測試需求。</p><p><b>  測試所生成的文檔</b></p><p> ?、贉y試計(jì)劃②測試需求③測試用例④缺陷報(bào)告⑤測試報(bào)告</p><p><b>  測試策略</b></p><p><b>  表6-1 測試

65、策略</b></p><p>  Table 6-1 test strategy</p><p><b>  測試工具</b></p><p>  純手工測試,沒有運(yùn)用到測試工具。</p><p><b>  人員與進(jìn)度表</b></p><p><b>

66、;  表6-2 測試進(jìn)度</b></p><p>  Table 6-2 testing progress </p><p>  6.2.2 測試需求</p><p>  測試需求明確地指出在項(xiàng)目中要測試什么。</p><p>  首先要先明確測試需求,才能決定怎么進(jìn)行測試、測試的時(shí)間、需要多少人人數(shù)、測試環(huán)境。測試中需要的技能、

67、工具以及相應(yīng)背景知識,測試中可能會遇到的風(fēng)險(xiǎn)等,以上的因素就構(gòu)成了測試計(jì)劃的基本要素。測試需求是測試計(jì)劃的重點(diǎn)和基礎(chǔ)。</p><p>  測試需求根據(jù)不同的環(huán)境,不同的要求,不同的專業(yè)水平,詳細(xì)程度也會有所不同。一份測試需求通常由被測系統(tǒng)的功能模塊、需求標(biāo)識、測試要點(diǎn)等組成。</p><p>  由于本貪食蛇小游戲操作等各方面都比較簡單、也沒有涉及到復(fù)雜的邏輯問題和往輸入框中輸入字符等問

68、題,所以整個(gè)系統(tǒng)的測試需求比較簡單,僅需點(diǎn)擊查看其功能能否正常并且正確地完成即可。</p><p>  下面是一部分功能模塊測試需求。</p><p><b>  表6-3 測試需求</b></p><p>  Table 6-3 test requirement</p><p>  6.2.3 測試用例</p&g

69、t;<p>  根據(jù)測試大綱設(shè)計(jì)和相關(guān)需求按照等價(jià)類、邊界值等相關(guān)方法生成測試用例。在設(shè)計(jì)測試用例的時(shí)候,產(chǎn)生測試設(shè)計(jì)說明文檔,其內(nèi)容主要有被測項(xiàng)目、輸人數(shù)據(jù)、測試過程、預(yù)期輸出結(jié)果等。</p><p>  6.2.4 測試報(bào)告</p><p>  測試完成后,要形成相應(yīng)的測試報(bào)告,主要對測試進(jìn)行概要說明,列出測試的結(jié)論,指出缺陷和錯(cuò)誤,另外,給出一些建議,如可采用的修改方法

70、,各項(xiàng)修改預(yù)計(jì)的工作量及修改的負(fù)責(zé)人員。</p><p><b>  6.3 測試結(jié)果</b></p><p>  貪食蛇小游戲已經(jīng)通過測試,結(jié)果表明:</p><p>  功能性(適合性、準(zhǔn)確性、互操作性、安全保密性、功能性依從性)</p><p>  該軟件各項(xiàng)功能運(yùn)行正常,能夠較準(zhǔn)確的完成開始/停止游戲、加快速度、

71、顯示樣式等基本操作。</p><p>  可靠性(成熟性、容錯(cuò)性、易恢復(fù)性、可靠性的依從性)</p><p>  該軟件對用戶的誤操作能較好的屏蔽,容錯(cuò)能力較好;軟件在測試過程中極少出現(xiàn)異常退出,系統(tǒng)運(yùn)行比較穩(wěn)定;軟件能較快的從失效狀態(tài)重新啟動,恢復(fù)到正常工作狀態(tài)。軟件遵循與可靠性相關(guān)的標(biāo)準(zhǔn)、約定或法規(guī)。</p><p>  可移植性(適應(yīng)性、易安裝性、共存性、易替

72、換性、可移植性的依從性)</p><p>  該軟件與其他類似軟件在同一環(huán)境下能夠正常運(yùn)行;在不同環(huán)境下使用時(shí)無需額外的資源;在同樣環(huán)境下,軟件可以替代另一個(gè)相同用途的指定軟件產(chǎn)品;軟件遵循與可移植性相關(guān)的標(biāo)準(zhǔn)或約定。</p><p>  易用性(易理解性、易學(xué)性、易操作性、易吸引性、易用性依從性)</p><p>  該軟件符合用戶使用的要求,操作方便、易學(xué)、易理

73、解、吸引用戶使用;軟件遵循與易用性相關(guān)的標(biāo)準(zhǔn)、預(yù)定、風(fēng)格指南或法規(guī)。</p><p>  維護(hù)性(易分析性、易改變性、穩(wěn)定性、易測試性、維護(hù)性的依從性)</p><p>  該軟件可以修改;修改后的功能可以開展測試;修改功能后對其他功能不產(chǎn)生關(guān)聯(lián)影響;能夠較快的定位到缺陷并解決;軟件遵循與維護(hù)性相關(guān)的標(biāo)準(zhǔn)或約定。</p><p>  效率(時(shí)間特性、資源特性、依從性

74、)</p><p>  該軟件主要操作能夠在5S內(nèi)完成,系統(tǒng)資源使用正常,CPU使用率平均為30%以下,內(nèi)存使用為20%以下,I/O Wait小于2;軟件遵循與效率相關(guān)的標(biāo)準(zhǔn)或約定。</p><p><b>  用戶文檔</b></p><p>  用戶手冊對軟件的主要功能和關(guān)鍵操作有相應(yīng)的描述,易理解;用戶文檔描述和軟件實(shí)際功能基本一致。&l

75、t;/p><p><b>  7 總結(jié)</b></p><p>  通過幾個(gè)月的VB學(xué)習(xí),讓我對VB有一個(gè)更透徹的了解。</p><p>  首先了解到VB的特點(diǎn),VB是在原來Basic的基礎(chǔ)上發(fā)展而來,它繼承了Basic的簡單易用等優(yōu)點(diǎn),不需要用大量的代碼去描述界面元素的外觀和位置,只要把預(yù)先建立的對象添加到屏幕上的某點(diǎn)即可。VB是世界上使用人數(shù)

76、最多的語言之一,VB在原來BASIC語言的基礎(chǔ)上進(jìn)一步發(fā)展至今包含了數(shù)百條語句,函數(shù)及關(guān)鍵詞,其中很多和WINDOWS GUI有直接關(guān)系,VB不僅是可視語言,而且是面向?qū)ο蟮木幊陶Z言。其特點(diǎn)是概念多,實(shí)踐性強(qiáng),涉及面廣。</p><p>  其次,了解到一些基本的概念。例如類,就是創(chuàng)建對象實(shí)例的模板包含了創(chuàng)建的屬性描述和行為特征的定義。而此中的對象又是類的一個(gè)實(shí)例,繼承了類的屬性、方法,而VB中常用的對象有窗體、

77、控件等。但我們在建立之前必須清楚對象的三要素:屬性、方法、事件。而建立程序的步驟大致可分為:</p><p>  (1) 啟動程序,裝載和顯示窗體。</p><p>  (2) 窗體等待事件的發(fā)生。</p><p>  (3) 事件發(fā)生時(shí),執(zhí)行對應(yīng)的事件發(fā)生過程。</p><p>  (4) 再重復(fù)(2)(3)的過程。</p>

78、<p>  (5) 最后直接遇到"END"</p><p>  結(jié)束語句結(jié)束程序的運(yùn)行或按"結(jié)束"強(qiáng)行停止程序的運(yùn)行。再用VB創(chuàng)建一個(gè)應(yīng)用程序,第一步驟是創(chuàng)建窗體,它是用戶與應(yīng)用程序進(jìn)行交互操作的可視部分,窗體是創(chuàng)建界面的基本構(gòu)造模塊,也是創(chuàng)建應(yīng)用程序所使用的對象。而后必要設(shè)置窗體的屬性,從而構(gòu)出窗體的外觀,設(shè)置好的窗體,窗體就作為對象,能夠?qū)ζ涠x的事件作出響應(yīng)

79、,這也是所謂的窗體事件,而窗體事件又包括窗體本身事件,鍵盤事件和鼠標(biāo)事件。在了解窗體基本知識就還應(yīng)了解VB的語言基礎(chǔ),其中包括了代碼模塊(窗體模塊、標(biāo)準(zhǔn)模塊、類模塊),注釋、分行和續(xù)行、數(shù)據(jù)類節(jié)(字節(jié)型、邏輯型、數(shù)值型、日期型)、變量與常數(shù)、運(yùn)算符與表達(dá)式、數(shù)組、控制結(jié)構(gòu)、子過程、函數(shù)。同時(shí),為了編程,我們還應(yīng)培養(yǎng)良好的編程習(xí)慣,首先是對象、變量、過程的命名約定,然結(jié)構(gòu)化編碼約定。在VB中創(chuàng)建應(yīng)用程序之際也就是和對象打交道之時(shí),對象是代

80、碼和數(shù)據(jù)的組合,可以作為一個(gè)單位來處理,對象可以是應(yīng)用程序的一部分,比如可以是控件、窗體、數(shù)據(jù)訪問對象控件也是對象中的一種,主要用來獲取用戶的輸入信息和顯示輸出信息。應(yīng)用程序中可用的控件包括文本框、命令按扭和列表框而通過另外一些控件可以訪問其他應(yīng)用程序并處理</p><p>  學(xué)習(xí)VB程序設(shè)計(jì)后,增加對此的認(rèn)識,深入學(xué)習(xí)VB程序就可掌握新的軟件,新的編程環(huán)境,學(xué)習(xí)此課程,也可學(xué)會使用開發(fā)環(huán)境,開發(fā)工具的方法才能

81、更好地跟上計(jì)算機(jī)學(xué)科的發(fā)展。</p><p><b>  致謝</b></p><p>  本論文是在**老師的悉心指導(dǎo)下完成的。老師淵博的知識,精益求精的工作作風(fēng),嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,誨人不倦的高尚師德,嚴(yán)以律己,寬以待人的崇高風(fēng)范,平易近人、樸實(shí)無華的人格魅力對我產(chǎn)生了深遠(yuǎn)的影響。這不僅使我樹立了遠(yuǎn)大的學(xué)術(shù)目標(biāo)、還讓我懂得了許多為人處世,待人接物方面的道理。</

82、p><p>  本論文從選題到完成,每一步都是在老師的悉心指導(dǎo)下完成的,傾注了**老師大量的心血。通過指導(dǎo)老師的認(rèn)真指導(dǎo)使我的畢業(yè)設(shè)計(jì)能夠如期完成。再次向我的指導(dǎo)老師表示衷心的感謝,同時(shí),論文的順利的完成,也離不開各位老師、同學(xué)和朋友的幫助與關(guān)心。謝謝大家!</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 魏星基于Java

83、的游戲“貪食蛇”的設(shè)計(jì)和實(shí)現(xiàn)—實(shí)現(xiàn)游戲主控制功能[M].成都:四川師范大學(xué),2007(03).</p><p>  [2] 徐艷.貪食蛇游戲的結(jié)構(gòu)程序設(shè)計(jì)流程[J].科技廣場,2010(01).</p><p>  [3] 劉艷.貪食蛇游戲的結(jié)構(gòu)程序設(shè)計(jì)流程[J].科技大學(xué),2010(01).</p><p>  [4] 肖志明.談?wù)刅B程序設(shè)計(jì)教學(xué)中的數(shù)據(jù)庫應(yīng)用[

84、J].廣西廣播電視大學(xué)學(xué)報(bào),2010(01).</p><p>  [5] 王運(yùn)堅(jiān).《VISUAL BASIC 6.0 應(yīng)用指南》[M ]. 北京: 人民郵電出版社,1998(07).</p><p>  [6] 管麗娜白海波.《實(shí)用Visual Basic6 教程》[M] .北京:清華大學(xué)出版社,2001(04).</p><p>  [7] 胡伏湘,雷軍環(huán),JA

85、VA程序設(shè)計(jì)實(shí)用教程.北京:清華大學(xué)出版社,2005(03).</p><p>  [8] 耿祥義,張躍平.Java2實(shí)用教程(第三版).清華大學(xué)出版社,2006(08).</p><p>  [9] 陳昊鵬[同譯者作品].Java編程思想(第四版).機(jī)械工業(yè)出版社,2007(01).</p><p><b>  附錄</b></p>

86、;<p>  其游戲過程的代碼如下:</p><p>  Enum enMenuIndex '枚舉菜單索引</p><p>  m_Start '開始</p><p>  m_Auto '自動</p><p><b>  m_Fast</b></p><p>

87、<b>  m_ShowWen</b></p><p>  m_Line '此常數(shù)必須在最后,便于調(diào)試</p><p><b>  End Enum</b></p><p><b>  Enum enTo</b></p><p><b>  to_Up<

88、/b></p><p><b>  to_Down</b></p><p><b>  to_Left</b></p><p><b>  to_Right</b></p><p><b>  End Enum</b></p><

89、p>  Dim ctTo As enTo, ctZong As Long, ctFoot As Long, ctHead As Long</p><p>  Dim ctB As Long, ctSize As Long, ctH As Long, ctL As Long, ctEsc As Boolean</p><p>  Dim ctDown As Long, ctRight

90、As Long</p><p>  Dim ctFen As Long, ctMaxFen As Long, ctAutoFen As Long, ctAutoMax As Long, ctAuto As Boolean</p><p>  Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)</p>&

91、lt;p>  Select Case KeyCode</p><p>  Case vbKeyUp: If ctTo <> to_Down Then ctTo = to_Up</p><p>  Case vbKeyDown: If ctTo <> to_Up Then ctTo = to_Down</p><p>  Case vbK

92、eyLeft: If ctTo <> to_Right Then ctTo = to_Left</p><p>  Case vbKeyRight: If ctTo <> to_Left Then ctTo = to_Right</p><p>  End Select</p><p><b>  End Sub</b>

93、</p><p>  Private Sub ShowBack(Optional AutoSize As Boolean)</p><p>  Dim W As Single, H As Single, W1 As Single, H1 As Single </p><p>  If Not AutoSize Then GoTo Back1</p>

94、<p>  W1 = Me.Width - Me.ScaleX(Me.ScaleWidth, Me.ScaleMode, vbTwips) '窗口邊框?qū)挾龋壕?lt;/p><p>  H1 = Me.Height - Me.ScaleY(Me.ScaleHeight, Me.ScaleMode, vbTwips) '窗口標(biāo)題欄高度:緹</p><p>  W = ct

95、L * ctSize + ctB * 2: H = ctH * ctSize + ctB * 2</p><p>  W = W + Me.TextWidth("A") * 14 '留出 14 個(gè)字符的空白區(qū),顯示成績</p><p>  For I = 0 To LabTai.Count - 1</p><p>  LabTai(I).

96、Move ctRight + ctB * 0.5, ctB + ctSize * 1.2 * (I + 1)</p><p><b>  Next</b></p><p>  W = W1 + Me.ScaleX(W, Me.ScaleMode, vbTwips)</p><p>  H = H1 + Me.ScaleY(H, Me.Scale

97、Mode, vbTwips)</p><p>  Me.Move (Screen.Width - W) * 0.5, (Screen.Height - H) * 0.5, W, H </p><p><b>  Back1:</b></p><p><b>  Me.Cls</b></p><p>

98、;  Me.Line (ctB, ctB)-(ctRight, ctDown), RGB(0, 155, 0), BF</p><p>  If Not mmFast(m_Line).Checked Then Exit Sub</p><p>  Dim nStr As String</p><p>  Me.Font.Size = 9</p><

99、;p>  W1 = Me.TextWidth("A"): H1 = (ctSize - Me.TextHeight("A")) * 0.5</p><p>  For H = 0 To ctH '橫線</p><p>  Me.Line (ctB, ctB + H * ctSize)-Step(ctRight - ctB, 0)<

100、/p><p>  nStr = H + 1</p><p>  Me.CurrentX = ctB - Me.TextWidth(nStr)</p><p>  Me.CurrentY = ctB + H * ctSize + H1</p><p>  If H < ctH Then Me.Print nStr</p><

101、;p><b>  Next</b></p><p>  H1 = Me.TextHeight("A")</p><p>  For H = 0 To ctL '縱線</p><p>  Me.Line (ctB + H * ctSize, ctB)-Step(0, ctDown - ctB)</p>

102、<p>  nStr = H + 1</p><p>  Me.CurrentX = ctB + H * ctSize + (ctSize - Me.TextWidth(nStr)) * 0.5</p><p>  Me.CurrentY = ctB - H1</p><p>  If H < ctL Then Me.Print nStr<

103、/p><p><b>  Next</b></p><p><b>  End Sub</b></p><p>  Private Sub KjInit()</p><p><b>  '初始化</b></p><p>  Dim I As Long

104、, nEnd As Long, S As Long, H As Long</p><p>  ctFoot = 1 '同時(shí)出現(xiàn)的食物數(shù)</p><p>  ctZong = 2: ctTo = to_Right '初始長度、方向</p><p>  ctHead = 0: ctFen = 0 &#

105、39;蛇頭序號,得分</p><p>  ctSize = 15 '蛇身寬度(控件大?。合袼?lt;/p><p>  ctB = 20 '邊框空白區(qū):像素</p><p>  ctH = 30: ctL = 30 '活動區(qū)行列數(shù)</p>

106、;<p>  ctDown = ctB + ctH * ctSize '活動區(qū)底部位置</p><p>  ctRight = ctB + ctL * ctSize '活動區(qū)右部位置</p><p>  Call ShowFen</p><p>  If mmFast(m_ShowRect).Checked Then LabSnak

107、e(0).BorderStyle = 1 Else LabSnake(0).BorderStyle = 0</p><p>  LabSnake(0).Alignment = 2: LabSnake(0).BackColor = 255</p><p>  Randomize: H = 1 + Int((ctH - 1) * Rnd) '初始出發(fā)行</p><p

108、>  nEnd = LabSnake.Count - 1 '當(dāng)前末尾序號</p><p>  S = ctZong</p><p>  If S < nEnd Then S = nEnd</p><p>  For I = 0 To S</p><p>  If I > ctZong Then</p>

109、<p>  Unload LabSnake(I)</p><p><b>  Else</b></p><p>  If I > nEnd Then Load LabSnake(I): LabSnake(I).Visible = True</p><p>  LabSnake(I).Move ctB, ctB + ctSize

110、* H, ctSize, ctSize</p><p>  If mmFast(m_ShowNum).Checked Then LabSnake(I).Caption = I Else LabSnake(I).Caption = ""</p><p><b>  End If</b></p><p><b>  N

111、ext</b></p><p>  ShaFoot(0).Shape = 3: ShaFoot(0).FillStyle = 0: ShaFoot(0).FillColor = RGB(0, 0, 255)</p><p>  ShaFoot(0).Move -ctB - ctSize, 0, ctSize, ctSize</p><p>  nEnd

112、= ShaFoot.Count - 1 '當(dāng)前末尾序號</p><p>  S = ctFoot - 1</p><p>  If S < nEnd Then S = nEnd</p><p>  For I = 0 To S</p><p>  If I > ctFoot - 1 Then</p><

113、p>  Unload ShaFoot(I)</p><p><b>  Else</b></p><p>  If I > nEnd Then Load ShaFoot(I): ShaFoot(I).Visible = True</p><p>  Call RndFoot(I)</p><p><b&

114、gt;  End If</b></p><p><b>  Next</b></p><p><b>  End Sub</b></p><p>  Private Sub Form_Unload(Cancel As Integer)</p><p>  ctEsc = True<

115、/p><p>  If ctAutoMax < ctAutoFen Then ctAutoMax = ctAutoFen</p><p>  If ctMaxFen < ctFen Then ctMaxFen = ctFen</p><p>  SaveSetting "Snake", "Opt", "Aut

116、oMax", ctAutoMax</p><p>  SaveSetting "Snake", "Opt", "MaxFen", ctMaxFen</p><p><b>  End Sub</b></p><p>  Private Function KjIndex(Ind

117、ex As Long, AddNum As Long)</p><p>  KjIndex = Index + AddNum</p><p>  If AddNum > 0 Then</p><p>  If KjIndex > ctZong Then KjIndex = KjIndex - ctZong - 1</p><p>

118、<b>  Else</b></p><p>  If KjIndex < 0 Then KjIndex = KjIndex + ctZong + 1</p><p><b>  End If</b></p><p>  End Function</p><p>  Private Sub L

119、abTai_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)</p><p>  If Index = 0 And Button = 1 Then Me.PopupMenu mFast, , LabTai(Index).Left, LabTai(Index).Top + LabTai

120、(Index).Height</p><p><b>  End Sub</b></p><p>  Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)</p><p>  If Button = 2 Then Me.Po

121、pupMenu mFast</p><p><b>  End Sub</b></p><p>  Private Sub Form_Load()</p><p>  Dim I As Long</p><p>  Me.Caption = "貪食蛇" 'Snake</p>&l

122、t;p>  Me.KeyPreview = True: Me.AutoRedraw = True</p><p>  Timer1.Interval = 100 '速度</p><p>  Me.ScaleMode = vbPixels ' 3 像素</p><p>  Timer1.Enabled = False</p><

123、;p>  mFast.Visible = False</p><p>  For I = 1 To m_Line</p><p>  Load mmFast(I)</p><p><b>  Next</b></p><p>  mmFast(m_Start).Caption = "開始/停止"

124、</p><p>  mmFast(m_Auto).Caption = "自動游戲"</p><p>  mmFast(m_Fast).Caption = "快速"</p><p>  mmFast(m_ShowWen).Caption = "顯示花紋"</p><p>  mmFa

125、st(m_Line).Caption = "顯示網(wǎng)格線"</p><p>  LabTai(0).AutoSize = True</p><p>  For I = 1 To 3</p><p>  Load LabTai(I): LabTai(I).Visible = True</p><p><b>  Ne

126、xt</b></p><p>  LabTai(0).Caption = "選項(xiàng)": LabTai(1).Caption = "雙擊開始游戲"</p><p>  ctAutoMax = GetSetting("Snake", "Opt", "AutoMax", 0)</p

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論