打字游戲畢業(yè)論文_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  打字游戲設(shè)計(jì)</b></p><p>  摘 要:本文的主題是設(shè)計(jì)打字游戲,是在VB的環(huán)境下編程的。在戶聯(lián)網(wǎng)飛速發(fā)展的今天,電腦成了每家每戶的多需要的平臺,打字的速度也是人們所追求的。本文主要設(shè)計(jì)的是對鍵盤的熟悉程度,用戶可以根據(jù)對鍵盤的認(rèn)識程度選擇相應(yīng)的級別來完成打字測試。用戶完成打字測試,可以進(jìn)入一個測試結(jié)果窗體,這個窗體清楚的顯示出用戶擊中字符的個數(shù)和沒有

2、擊中的數(shù)目。用戶通過這個窗體可以更好的認(rèn)識到自己對鍵盤上的字符還有哪些不熟識的。</p><p>  關(guān)鍵詞:打字游戲 ;測試;設(shè)計(jì);</p><p><b>  引言</b></p><p>  隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,計(jì)算機(jī)已經(jīng)深入到工作和生活的各個角落,文字錄入是學(xué)習(xí)計(jì)算機(jī)非常重要的一部分。在手寫錄入技術(shù)和語音識別技術(shù)

3、還不完善的同時大部分人還在使用鍵盤作為文字錄入的工具。所以我編了這個程序,也是我的畢業(yè)設(shè)計(jì),希望能對電腦處學(xué)者和想提高打字速度的朋友有所幫助。</p><p><b>  1 設(shè)計(jì)思路</b></p><p>  在打字之前,由用戶選擇所需要的打字級別,該系統(tǒng)設(shè)置是通過一組單選按鈕來實(shí)現(xiàn)的。本系統(tǒng)的關(guān)鍵在于如何實(shí)現(xiàn)打字練習(xí)。首先,應(yīng)使字符以隨機(jī)方式出現(xiàn)在窗體中,并不斷

4、下落,其中字符的出現(xiàn)方式與用戶的具體設(shè)置相關(guān)。 </p><p>  本系統(tǒng)中采用了命令按鈕來表示不同的隨機(jī)字符,該數(shù)組的每個元素為一個命令按鈕,用來顯示一個字符。為了使不同的字符多能在窗體的頂端位置出現(xiàn)并下落,可在設(shè)計(jì)時設(shè)置各命令按鈕的具體位置多在窗體的頂端。而實(shí)現(xiàn)出現(xiàn)字符的隨機(jī)出現(xiàn)方式,應(yīng)在命令按鈕的caption屬性中使用隨機(jī)函數(shù),使之代表不同的字符。字符的自動下落過程由定時器Timer1~Timer6控制

5、命令按鈕,下落速度取決于用戶設(shè)置的練習(xí)速度。</p><p>  用戶在不斷按鍵的時候,會引起Keypress事件,在該事件中可判斷用戶的輸入是否和當(dāng)前命令按鈕數(shù)組中某個元素的Caption屬性值性質(zhì)相同,即判斷是否擊中了出現(xiàn)在窗體中的某個字符。如果擊中,則使用Move方法把圖片Image1移動到被擊中字符的位置出現(xiàn)子彈擊中圖標(biāo)的視覺效果。如果沒有擊中目標(biāo),則所有的字符仍繼續(xù)下落。用戶可以隨時按下Esc鍵來結(jié)束程

6、序的運(yùn)行,在此期間你可以查看自己的排行榜。</p><p><b>  2 方案的初步選定</b></p><p>  我做的畢業(yè)設(shè)計(jì)是一個打字游戲,我選擇的是在Visual Basic6.0的環(huán)境下編程的。因?yàn)槲以诰幊谭矫孢€不是很熟練,所以我設(shè)計(jì)了一個很簡單的打字游戲。游戲里面涉及到的是鍵盤上的操作,及是對鍵盤的熟悉程度,游戲系統(tǒng)里面主要涉及到的是optionbut

7、ton、commandbutton、timer、label、framel、commandialog等一些主要控件的應(yīng)用。</p><p>  這個打字游戲的最突出的地方就是當(dāng)用戶按下Esc鍵后,會彈出一個測試結(jié)果窗體,這個窗體詳細(xì)記錄了用戶打字的情況,窗體分成兩個部分分別是測試數(shù)據(jù)分析和您的測試結(jié)果。用戶通過這個窗體,可以清楚的知道自己的打字能力,還可以看出在哪些地方還需要改進(jìn),讓用戶一目了然。這個界面在其他的一

8、些打字游戲中還沒有出現(xiàn),我設(shè)計(jì)這個界面就是想讓用戶更清楚的看見自己在哪里的不足,對鍵盤上的哪些鍵還是比較陌生的,對哪些鍵盤上的字母、數(shù)字及特殊符號在哪個位置比較清楚。</p><p><b>  3 需求分析</b></p><p>  3.1 用戶需求分析 </p><p>  在當(dāng)今社會的情景下,電腦的發(fā)展不管是在硬件還是軟件每天多在不

9、斷的更新中,隨著時代的腳步,人們在使用電腦過程中對打字的速度的要求也越來越高,在現(xiàn)在的電腦使用者之中,大部分人多在使用金山打字因?yàn)槔锩娌还苁窃诠δ苓€是在界面設(shè)計(jì)中,多是非常好的。所以我也設(shè)計(jì)了一個打字游戲,雖然不能跟金山打字相比,里面沒有那么多的功能,但是這個系統(tǒng)還是有它的可取之處,我相信對剛接觸電腦或電腦初學(xué)者多是有一定幫助的。 </p><p>  3.2確定系統(tǒng)開發(fā)環(huán)境 </p><p&

10、gt;  由于大多數(shù)公司內(nèi)部使用的計(jì)算機(jī)平臺都是基于Windows環(huán)境的。為了降低系統(tǒng)成本,應(yīng)最大程度地利用現(xiàn)有的資源、兼容現(xiàn)有的環(huán)境,可確定使用下面的開發(fā)環(huán)境: </p><p>  服務(wù)器平臺:Windows2000/2003/XP;客戶機(jī)平臺:Windows95/98/NT/2000/XP; </p><p>  前端開發(fā)工具:visualBasic6.0(企業(yè)版);</p&g

11、t;<p>  Visual意為“可視化的”,指的是一種開發(fā)圖形用戶界面的方法,所以Visual Basic</p><p>  是基于Basic的可視化的程序設(shè)計(jì)語言。在Visual Basic中,一方面繼承了Basic所具有</p><p>  的程序設(shè)計(jì)語言簡單易用的特點(diǎn),另一方面在其編程系統(tǒng)中采用了面向?qū)ο蟆⑹录?qū)動</p><p>  的編程

12、機(jī)制,用一種巧妙的方法把Windows的編程復(fù)雜性封裝起來,提供了一種所見</p><p>  即所得的可視化程序設(shè)計(jì)方法。</p><p><b>  4.系統(tǒng)總體設(shè)計(jì)</b></p><p>  4.1 系統(tǒng)的目標(biāo)與功能設(shè)計(jì)</p><p>  系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)打字練習(xí),希望通過這個打字系統(tǒng)能對電腦初學(xué)者和想

13、提高打字速度的朋友們有所幫助。</p><p>  本系統(tǒng)需要完成的功能有以下幾點(diǎn):</p><p>  1)、一開始進(jìn)入游戲要先設(shè)定名字,以方便進(jìn)入后面游戲排行榜。</p><p>  2)、用戶對打字難度的級別選擇。</p><p>  3)、用戶進(jìn)入打字主界面,根據(jù)用戶對速度的選擇,窗體上出現(xiàn)相應(yīng)程度的字母及符號擊中時出現(xiàn)子彈擊中圖標(biāo)的

14、視覺效果。</p><p>  4)、查看用戶測試的詳細(xì)報(bào)告。</p><p>  5)、根據(jù)測試的成績進(jìn)行名次排行。</p><p>  系統(tǒng)的主要目的是實(shí)現(xiàn)打字功能,通過用戶登入系統(tǒng)進(jìn)入系統(tǒng)主界面實(shí)現(xiàn)打字游戲,然后根據(jù)用戶的打字速度,系統(tǒng)自動進(jìn)行排行。打字游戲的工作流程圖如圖1所示:</p><p>  圖1: 系統(tǒng)工作流程圖</p

15、><p>  4.2 打字游戲系統(tǒng)的實(shí)現(xiàn)</p><p>  4.2.1 初始化處理</p><p>  當(dāng)設(shè)置了用戶所需要的級別后,進(jìn)入系統(tǒng)主界面之前,在FormLoad事件中進(jìn)行初始化處理初始化隨機(jī)出現(xiàn)的字母。所以變量code、steps(i)應(yīng)為模塊級的變量,需要在通用-聲明段進(jìn)行如下說明:</p><p>  Option Explic

16、it</p><p>  Dim code, steps(i) As Integer</p><p>  為Image加載圖片</p><p>  Image控件只能用于顯示圖片,在代碼運(yùn)行時可借助LoadPictuer函數(shù)來設(shè)置其Pictuer屬性。LoadPictuer函數(shù)的使用格式為:</p><p>  LoadPicture([fi

17、lename])其中參數(shù)filename指定了圖形文件及所在的磁盤和目錄;如果該參數(shù)為空字符串(“”),則會取消控件中的圖片。</p><p>  4.2.2、程序的登入</p><p>  在一開始游戲時往往多有用戶登入這一模塊。所以當(dāng)用戶開始使用這個打字游戲時,一開始即進(jìn)入“請輸入你的姓名”對話框。這個對話框的作用是登記進(jìn)入該游戲的用戶的名字以方便于用戶在進(jìn)行打字、結(jié)束游戲時可以進(jìn)入游

18、戲用戶排行榜,方便查找用戶本身的排名。排行榜界面如圖2所示:</p><p>  圖2:打字游戲排行榜界面</p><p>  該界面就是通過一開始用戶登入這個界面進(jìn)來的,在通過用戶姓名登入進(jìn)入到打字界面,排行榜是根據(jù)用戶的打字速度來排行的。該界面分別顯示4個排行榜,代碼如下:</p><p>  Private Sub Command1_Click(Index A

19、s Integer)</p><p>  Select Case Index</p><p>  Case 0: Frame1.Caption = "初級測試排行榜": flag = 1: Call level_tip</p><p>  Case 1: Frame1.Caption = "中級測試排行榜": flag = 2

20、: Call level_tip</p><p>  Case 2: Frame1.Caption = "專家級測試排行榜": flag = 3: Call level_tip</p><p>  Case 3: Frame1.Caption = "瘋狂級測試排行榜": flag = 4: Call level_tip</p><

21、p>  End Select</p><p><b>  End Sub</b></p><p>  4.3 打字游戲的系統(tǒng)設(shè)置</p><p>  當(dāng)用戶登入時,系統(tǒng)會自動進(jìn)入“級別選擇”這 一個窗體。通過這個“級別選擇”窗體,用戶可以選擇自己所需要的級別來測試。這一個窗體是由一個單選按鈕組成的控件數(shù)組、兩個命令按鈕和一個文本框組成的。

22、這組控件數(shù)組分別為初級、中級、專家級及狂人級,初級即是為初學(xué)者提供的,初級里面涉及到只是一些小寫字母,這個級別里的字母多是很簡單的,純粹是一些小寫字母,所以當(dāng)你是剛接觸電腦或是電腦初學(xué)者或者是對電腦的鍵盤不熟悉,你多可以選擇這個級別來練習(xí);中級是涉及到有關(guān)大寫和小寫的混合,這個級別相當(dāng)于初級是有一點(diǎn)難度的,因?yàn)槔锩娴淖帜甘请S機(jī)出現(xiàn)的,所以這個級別是有一定難度,但是如果你對鍵盤有點(diǎn)熟悉的話,其實(shí)也是很簡單的;專家級的涉及到的是有大寫、小寫

23、、還有數(shù)字字符,這個難度就是很大的,這個級別就是要用戶對鍵盤相當(dāng)?shù)氖煜?,通過這個練習(xí)打字對你的速度提高是有很大的幫助的;還有一個就是狂人級的級別,這個級別涉及到的是上面所提到的多有,還涉及到一些特殊字符,這個級別的難度是非常大的,這個要求是用戶到鍵盤的熟悉度是很高的。界面如圖3所示:</p><p>  圖3:打字游戲級別選擇界面</p><p>  該界面很簡單的只要通過下面的一段程序就

24、可以了實(shí)現(xiàn)了:</p><p>  Private Sub Option1_Click(Index As Integer)</p><p>  level_choice = Option1(Index).Caption</p><p>  level = Index + 1</p><p><b>  End Sub</b&g

25、t;</p><p>  在用戶進(jìn)入打字主界面時,界面將出現(xiàn)由用戶選擇的難度的字母出現(xiàn)在窗體中,并不斷下落,當(dāng)用戶擊中時,屏幕上將出現(xiàn)子彈擊中目標(biāo)的視覺效果,并修改測試結(jié)果窗體上的用于顯示成績的標(biāo)簽的Caption屬性值,同時重新設(shè)置被擊中命令按鈕上的顯示字符,初始化該命令按鈕的Top屬性值,以使命令 按鈕從窗體上方重新下落。如果沒有擊中目標(biāo),則所有的字符仍繼續(xù)下落。為使命令按鈕上的字符能隨機(jī)出現(xiàn)在窗體中,應(yīng)使用

26、隨機(jī)函數(shù)。首先,通過Randomize初始化隨機(jī)數(shù)生成器。由于 用戶選擇的打字難度和速度不同,用戶可能選擇初級、中級、專家級及狂人級,因此要根據(jù)窗體中的單選按鈕的值,自動生成字符。例如,如果用戶選擇了初級,則窗體中的Option1.Value的值為True。小寫字母的ASCLL碼范圍為97~122,因此隨機(jī)字符的ASCLL碼值可以通過語句temp = Rnd * 6,依temp的隨機(jī)值產(chǎn)生相應(yīng)隨機(jī)類型的字符。</p>&l

27、t;p>  為使字符能夠記錄丟失的字符數(shù)及字符在頂端的初始狀態(tài),我對定時器做如下處理:If Command1(0).Top = 0 Then Call new_char(0): Command1(0).Caption = Chr(code)</p><p>  If Command1(0).Top < main.ScaleHeight - Command1(0).Height Then</p&g

28、t;<p>  Command1(0).Top = Command1(0).Top + steps(0)</p><p><b>  Else</b></p><p>  lost_letter = lost_letter + 1 '記錄丟失的字符數(shù)</p><p>  Command1(0).Top = 0

29、 '挨到了底邊就將其置于初使?fàn)顟B(tài)(頂部)</p><p><b>  End If</b></p><p><b>  End Sub</b></p><p>  通過對6個定時器的處理,字符會自動下落,在沒有被擊中的字符自動被記錄到測試結(jié)果界面中。</p><p>  用戶可以隨時按下E

30、sc鍵結(jié)束程序的運(yùn)行,程序可以通過語句ElseIf KeyAscii = 27 Then ' Timer1.Enabled = False</p><p>  Timer2.Enabled = False</p><p>  Timer3.Enabled = False</p><p>  Timer4.Enabled = False</p&g

31、t;<p>  Timer5.Enabled = False</p><p>  Timer6.Enabled = False</p><p>  判斷用戶是否按下Esc鍵</p><p>  如果按下,4秒鐘后系統(tǒng)會自動轉(zhuǎn)到測試結(jié)果窗體,用戶在該窗體中查看用戶自己的擊中字符及數(shù)字字符或是特殊符號的個數(shù),在該窗體中,用戶可以看出自己在這個級別測試時的速

32、度、時間、擊中率和擊鍵次數(shù)。下面是測試結(jié)果窗體的界面如圖4所示:</p><p>  圖4:打字游戲測試結(jié)果界面</p><p>  在測試結(jié)果窗體中,用戶可以在文件這個目錄中打開用戶排行榜,這個排行榜也是分為初級排行榜、中級排行榜、專家級排行榜及狂人級排行榜。因?yàn)樵诖蜃值倪^程中用戶有可能沒有按鍵或者是打字的時間為0,所以在程序中應(yīng)加進(jìn)以下代碼:</p><p> 

33、 If right_letter = 0 Then</p><p>  Label4(5).Caption = 0 & "%"</p><p><b>  Else</b></p><p>  hit_rate = Val(right_letter) / (total_keypress - 1) * 100</

34、p><p>  Label4(5).Caption = Format(hit_rate, "##0.00 ") & "%" </p><p><b>  End If</b></p><p>  Label4(6).Caption = total_keypress - 1 </p>&l

35、t;p>  If user_time = 0 Then </p><p>  Label4(7).Caption = 0 & Space(1) & "char/s"</p><p><b>  Else</b></p><p>  speed = Val(right_letter) / user_tim

36、e * 2</p><p>  Label4(7).Caption = Format(speed, "0.00 ") & "char/s"</p><p><b>  End If</b></p><p>  4.4 對用戶按鍵和擊中字符的處理</p><p> ?。?)、

37、當(dāng)用戶按下鍵盤上的按鍵時,有以下3中情況發(fā)生:</p><p>  1)擊中了窗體中的字符時,總成績提高,顯示擊中視覺效果,重新設(shè)置該按鈕的位置和顯示字符。</p><p>  沒有擊中窗體中的字符時,不做任何處理。</p><p>  3) 按下Esc鍵時,結(jié)束程序。</p><p>  對上述3中情形,都是在按下按鍵時進(jìn)行相應(yīng)的處理,即在

38、Form的KeyPress事件中加以處理。</p><p> ?。?)、在vb設(shè)計(jì)語言中,KeyPress事件中的參數(shù)KeyAscill的值返回用戶所按字母的ASCII碼值。根據(jù)該值,通過Chr函數(shù)可以得到用戶單擊的字符,用這個字符逐個跟命令按鈕的Caption屬性值進(jìn)行比較,判斷是否擊中了其中的某個字符,代碼如下所示:</p><p>  For i = 0 To Command1.

39、count – 1</p><p>  If Commanda.Item (i) .Caption = Chr(KeyAscii) Then </p><p><b>  …</b></p><p><b>  End If</b></p><p><b>  …</b><

40、;/p><p><b>  Next</b></p><p>  如果擊中了某字符,應(yīng)在該字符所在位置顯示被擊中的視覺效果。采用移動Image1控件的方式,將它移動到被擊中字符的位置,并使該控件中的圖片可見:</p><p>  Image1.Visible = True</p><p>  Image1.Top = Com

41、mand1.Item(m).Top</p><p>  Image1.Left = Command1.Item(m).Left – 300</p><p>  擊中字符時總成績也要增加,而本系統(tǒng)中成績的增加和用戶設(shè)置的級別相關(guān)。</p><p><b>  5 總結(jié)</b></p><p>  上面這就是我寫的論文,通過

42、這三個月的時間,我終于完成了這篇論文。本文設(shè)計(jì)的打字游戲主要是針對用戶對鍵盤的熟悉程度,本文只是很簡單的打字游戲,功能比較單一,沒有像金山打字通有那么多的功能,但是我會繼續(xù)努力的,使該系統(tǒng)的功能盡可能的完善。</p><p><b>  致謝</b></p><p>  論文已經(jīng)寫結(jié)束了,寫這篇論文時因?yàn)檫€處在實(shí)習(xí)階段,很多地方都不懂,通過這篇論文,我對用vb編程這一

43、方面的了解又多一些知識。在這里我要謝謝我的論文指導(dǎo)老師,在我寫論文的這段時間,我得到了老師的大力幫助,在此我要對她表示衷心的感謝,感謝她對我的論文提出的各種修改意見,使我的論文有了一個本質(zhì)的提高。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 楊晶潔,鄭有增.visual basic程序設(shè)計(jì)教程,科學(xué)出版社,2006</p>

44、<p>  [2] 龔沛曾,陸慰民,楊志強(qiáng). Visual Basic程序設(shè)計(jì)簡明教程,第二版 </p><p>  [3] 劉瑞新,李樹東. Visual Basic 程序設(shè)計(jì)教程,電子工業(yè)出版社 </p><p>  [4] 梁曦.Visual Basic程序設(shè)計(jì)與應(yīng)用開發(fā) 案例教程,中國電力出版社 </p><p>  [5] 劉炳文.Visual

45、Basic 程序設(shè)計(jì)試題匯編,清華大學(xué)出版社 </p><p>  [6] 羅朝盛.Visual Basic 6.0 程序設(shè)計(jì)實(shí)踐指導(dǎo),浙江科學(xué)技術(shù)出版社</p><p>  [7] 傅英.vb程序設(shè)計(jì),電子工業(yè)出版社,2001</p><p>  [8] 林卓然.vb語言程序設(shè)計(jì),電子工業(yè)出版社,2009</p><p><b>

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論