版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> VB課程設(shè)計(jì)報(bào)告</b></p><p><b> 題目:英語詞匯游戲</b></p><p> 姓 名: xxx </p><p> 學(xué) 號(hào):xxxxx </p><p> 院 系: xxxx</p><p> 指導(dǎo)老
2、師: xxxx</p><p><b> 目錄</b></p><p> 課程設(shè)計(jì)目的....................1</p><p> 課程設(shè)計(jì)題目及簡(jiǎn)介...............1</p><p> 設(shè)計(jì)方法簡(jiǎn)介.....................1</p><p>
3、; 部分源代碼實(shí)現(xiàn)...................2</p><p> 運(yùn)行結(jié)果截圖顯示.................7</p><p> 心得與體會(huì).......。..............15</p><p><b> 課程設(shè)計(jì)目的:</b></p><p> 隨著計(jì)算機(jī)、計(jì)算機(jī)應(yīng)用技術(shù)的不斷發(fā)
4、展,計(jì)算機(jī)應(yīng)用已經(jīng)深入到政治、經(jīng)濟(jì)、軍事、教育、生活的各個(gè)領(lǐng)域,計(jì)算機(jī)軟件是計(jì)算機(jī)應(yīng)用的核心內(nèi)容,作為開發(fā)計(jì)算機(jī)軟件的程序設(shè)計(jì)顯得尤為重要。VB程序開發(fā)語言以其簡(jiǎn)單易學(xué)的特性,在全社會(huì)得到廣泛的使用和推廣,各行各業(yè)的人員通過學(xué)習(xí)VB程序開發(fā)語言,能夠很快的成為計(jì)算機(jī)和信息技術(shù)應(yīng)用的開發(fā)者。</p><p> 本次課程設(shè)計(jì)為學(xué)生提供了一個(gè)既動(dòng)手又動(dòng)腦的,獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的理論知識(shí)和實(shí)踐有機(jī)的結(jié)合起來,鍛煉
5、學(xué)生的分析解決實(shí)際問題的能力,提高學(xué)生適應(yīng)實(shí)際,實(shí)踐編程的能力。</p><p> 二.課程設(shè)計(jì)題目及簡(jiǎn)介:</p><p> 英語詞匯連接游戲通過在給出的英語單詞和中文含義之間進(jìn)行連接來學(xué)習(xí)英語。游戲按照英語字典的順序,系統(tǒng)地安排從A到Z的不同游戲小局,用戶可以根據(jù)自己的情況選擇進(jìn)行娛樂學(xué)習(xí),并給出學(xué)習(xí)效果評(píng)價(jià)。通過反復(fù)游戲,用戶可以提高英語單詞詞匯量,在用戶從A到Z地選擇不同游戲小
6、局后,將在顯示界面上出現(xiàn)10個(gè)英語單詞的英文及對(duì)應(yīng)中文卡片,同時(shí)進(jìn)行10s計(jì)時(shí),時(shí)間到了,將出現(xiàn)下一組10個(gè)英語單詞的英文及對(duì)應(yīng)的中文卡片,直至游戲小局結(jié)束。同時(shí),對(duì)連接正確的進(jìn)行計(jì)數(shù),給出學(xué)習(xí)效果。</p><p><b> 設(shè)計(jì)方法簡(jiǎn)介:</b></p><p> 本次課程設(shè)計(jì)英語單詞按照文件進(jìn)行組織,從A到Z組織成26個(gè)文件。每個(gè)文件每一行由單詞英文,單詞中
7、文構(gòu)成,例如:?jiǎn)卧~1英文、單詞1中文、單詞2英文、單詞2中文、......、單詞n英文,單詞n中文。</p><p><b> 數(shù)據(jù)流程圖如下:</b></p><p><b> 功能結(jié)構(gòu)圖如下:</b></p><p> 部分源代碼實(shí)現(xiàn)如下:</p><p> ublic Class wo
8、rdlink</p><p> Dim currentgame As String = ""</p><p> Dim gamenow As String = "0"</p><p> Dim gameover As Boolean = False</p><p> Dim words(10,
9、2) As String</p><p> Dim wordscoor(10, 2) As String</p><p> Dim first As Integer = -1</p><p> Dim second As Integer = -1</p><p> Dim nums As Integer = 0</p>
10、<p> Dim totalwords As String = ""</p><p> Dim wordstring As String = ""</p><p> Dim currentwords As Integer = 1</p><p> Dim openmidi As Boolean = False
11、</p><p> Dim seconds As Integer = 0</p><p> Private Declare Function mciExecute Lib "winmm.dll" Alias "mciExecute" ()</p><p> Private Sub game_SelectedIndexCh
12、anged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles game.SelectedIndexChanged</p><p> Dim filename As String</p><p> currentgame = game.GetItemText(game.SelectedItem)<
13、/p><p> filename = currentgame + ".text"</p><p> If readwords(filename) Then</p><p><b> nums = 0</b></p><p> matchnum.Text = nums.ToString</p&
14、gt;<p> ProgressBar1.Value = 0</p><p> checkclear(0)</p><p> checkclear(3)</p><p> first = -1</p><p> second = -1</p><p> wordstring = getword
15、s()</p><p> splitword()</p><p> ProgressBar1.Step = Int(550 / (5 * currentwords / 2))</p><p> checkclear(2)</p><p> Timer2.enabled = True</p><p><b&
16、gt; End If</b></p><p><b> End Sub</b></p><p> Private Function readwords(ByVal file As String) As Boolean</p><p> readwords = False</p><p> If Sy
17、stem.IO.File.Exists(file) Then</p><p> totalwords = System.IO.File.ReadAllText(file)</p><p> If totalwords.Trim.Length <= 0 Then</p><p> MsgBox(file + "文件沒有內(nèi)容!", Msg
18、BoxStyle.Exclamation, "請(qǐng)檢查文件!")</p><p> gameover = True</p><p><b> Else</b></p><p> gameover = False</p><p> readwords = True</p><p
19、><b> End If</b></p><p><b> Else</b></p><p> MsgBox(file + "文件不存在!", MsgBoxStyle.Exclamation, "請(qǐng)檢查文件!")</p><p> gameover = True<
20、/p><p><b> End If</b></p><p> End Function</p><p> Private Function getwords() As String</p><p> Dim mystr As String = ""</p><p> D
21、im temp As String = ""</p><p> Dim i As Integer = 0</p><p> Do While i < 20</p><p> temp = totalwords.Substring(0, totalwords.IndexOf(",") + 1)</p>
22、<p> totalwords = totalwords.Substring(totalwords.IndexOf(",") + 1)</p><p> If totalwords.Trim.Length >= 0 And temp.Trim.Length > 1 Then</p><p> mystr = mystr + temp</
23、p><p> currentwords = i + 1</p><p><b> Else</b></p><p> mystr = mystr + ","</p><p><b> End If</b></p><p><b> Loop
24、</b></p><p> If totalwords.Trim.Length > 0 Then</p><p> gameover = False</p><p><b> Else</b></p><p> gameover = True</p><p><b&
25、gt; End If</b></p><p> getwords = mystr</p><p> End Function</p><p> Private Sub splitword()</p><p> Dim aword() As String</p><p> Dim i, j As
26、Integer</p><p> Dim splitchar() As String = {","}</p><p> Dim gen As New System.Random</p><p> Dim ok As Boolean = False</p><p> Dim tempstr As String<
27、/p><p> tempstr = wordstring</p><p> For i = 0 To 9</p><p> wordscoor(i, 0) = ""</p><p> wordscoor(i, 1) = ""</p><p><b> Next&l
28、t;/b></p><p><b> i = 0</b></p><p><b> j = 0</b></p><p> aword = tempstr.Split(splitchar(0))</p><p> For i = 0 To 9</p><p>
29、words(i, 0) = aword(2 * i)</p><p> words(i, 1) = aword(2 * i + 1)</p><p><b> Next</b></p><p> For i = 0 To 9</p><p> ok = False</p><p> Do
30、 While Not ok</p><p> j = Int(gen.NextDouble * 10)</p><p> tempstr = wordscoor(j, 0)</p><p> If System.String.IsNullOrEmpty(tempstr) Then</p><p> wordscoor(j, 0) =
31、words(i, 0)</p><p><b> ok = True</b></p><p><b> End If</b></p><p><b> Loop</b></p><p><b> Next</b></p><p&
32、gt; For i = 0 To 9</p><p> ok = False</p><p> Do While Not ok</p><p> j = Int(gen.NextDouble * 10)</p><p> tempstr = wordscoor(j, 1)</p><p> If Syste
33、m.String.IsNullOrEmpty(tempstr) Then</p><p> wordscoor(j, 1) = words(i, 1)</p><p><b> ok = True</b></p><p><b> End If</b></p><p><b> L
34、oop</b></p><p><b> Next</b></p><p> Me.Label1.Text = wordscoor(0, 0)</p><p> Me.Label2.Text = wordscoor(1, 0)</p><p> Me.Label3.Text = wordscoor(2
35、, 0)</p><p> Me.Label4.Text = wordscoor(3, 0)</p><p> Me.Label5.Text = wordscoor(4, 0)</p><p> Me.Label6.Text = wordscoor(5, 0)</p><p> Me.Label7.Text = wordscoor(6
36、, 0)</p><p> Me.Label8.Text = wordscoor(7, 0)</p><p> Me.Label9.Text = wordscoor(8, 0)</p><p> Me.Label10.Text = wordscoor(9, 0)</p><p> Me.Label11.Text = wordscoor
37、(0, 1)</p><p> Me.Label12.Text = wordscoor(1, 1)</p><p> Me.Label13.Text = wordscoor(2, 1)</p><p> Me.Label14.Text = wordscoor(3, 1)</p><p> Me.Label15.Text = words
38、coor(4, 1)</p><p> Me.Label16.Text = wordscoor(5, 1)</p><p> Me.Label17.Text = wordscoor(6, 1)</p><p> Me.Label18.Text = wordscoor(7, 1)</p><p> Me.Label19.Text = w
39、ordscoor(8, 1)</p><p> Me.Label20.Text = wordscoor(9, 1)</p><p><b> End Sub</b></p><p> Private Sub musicplay_CheckedChanged(ByVal sender As System.Object, ByVal e As
40、 System.EventArgs) Handles musicplay.CheckedChanged</p><p><b> End Sub</b></p><p> Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer
41、2.Tick</p><p> If openmidi And musicplay.Checked Then</p><p> mciExecute("close sound")</p><p> mciExecute("open ")</p><p> mciExecute("pla
42、y sound")</p><p><b> End If</b></p><p><b> End Sub</b></p><p> Private Sub wordlink_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
43、Handles MyBase.Load</p><p> Timer2.Enabled = True</p><p><b> End Sub</b></p><p> Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
44、Handles Label1.Click</p><p> Dim wd As String = ""</p><p> Dim i As Integer</p><p> wd = Label1.Text.Trim</p><p> If wd.Length > 0 Then</p><
45、p> If first >= 0 Or second >= 0 Then</p><p> If first >= 0 Then</p><p> If words(first, 1).ToString.Trim = wd Then</p><p> nums = nums + 1</p><p> matc
46、hnum.Text = nums.ToString</p><p> Label1.Enabled = False</p><p> first = -1</p><p> second = -1</p><p> checkclear(1)</p><p><b> End If</b>
47、;</p><p><b> Else</b></p><p> If words(second, 0).ToString.Trim = wd Then</p><p> nums = nums + 1</p><p> Label1.Enabled = False</p><p> m
48、atchnum.Text = nums.ToString</p><p> first = -1</p><p> second = -1</p><p> checkclear(1)</p><p><b> End If</b></p><p><b> End If<
49、;/b></p><p><b> Else</b></p><p> For i = 0 To 9</p><p> If words(i, 0).ToString.Trim = wd Then</p><p> Label1.Enabled = False</p><p><
50、;b> first = 1</b></p><p><b> Exit For</b></p><p> ElseIf words(i, 1).ToString.Trim = wd Then</p><p> second = i</p><p> Label1.Enabled = False
51、</p><p><b> Exit For</b></p><p><b> End If</b></p><p><b> Next</b></p><p><b> End If</b></p><p><b&g
52、t; End If</b></p><p><b> End Sub</b></p><p> Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick</p><p> If
53、 ProgressBar1.Value + 1 <= 100 Then</p><p> seconds = seconds + 1</p><p> secnum.Text = seconds.ToString</p><p><b> Else</b></p><p> Timer1.Enabled =
54、 False</p><p> ProgressBar1.Value = 0</p><p> checkclear(2)</p><p> checkclear(0)</p><p> checkclear(3)</p><p> first = -1</p><p> secon
55、d = -1</p><p> If Not gameover Then</p><p> wordstring = getwords()</p><p> ProgressBar1.Step = Int(550 / (5 * currentwords / 2))</p><p> splitword()</p><
56、;p> checkclear(2)</p><p> Timer1.Enabled = True</p><p><b> Else</b></p><p><b> nums = 0</b></p><p> seconds = 0</p><p><
57、b> End If</b></p><p><b> End If</b></p><p><b> End Sub</b></p><p> Private Sub allover_Click(ByVal sender As System.Object, ByVal e As System.Ev
58、entArgs) Handles allover.Click</p><p> Application.Exit()</p><p><b> End Sub</b></p><p><b> End Class</b></p><p><b> 運(yùn)行結(jié)果截圖顯示</b>
59、;</p><p><b> 主窗體效果如圖</b></p><p> 窗體main添加進(jìn)度控件效果</p><p> 窗體mian添加時(shí)間按鈕控件效果</p><p> 窗體mian添加多個(gè)標(biāo)簽控件效果</p><p><b> 實(shí)例全局變量初始化</b><
60、/p><p><b> 代碼設(shè)計(jì)窗口</b></p><p> 輸入生成單詞文件名稱的代碼效果</p><p> 輸入讀取文件內(nèi)容代碼效果</p><p> 變量,控制賦初值代碼輸入后效果</p><p> 變量,控件賦初值代碼輸入后效果</p><p> 單詞序列
61、分組,排列和游戲計(jì)時(shí)設(shè)置代碼輸入效果</p><p><b> 心得與體會(huì):</b></p><p> VB程序設(shè)計(jì)的入門學(xué)習(xí)并不難,但卻是一個(gè)十分重要的過程,因?yàn)槌绦蛟O(shè)計(jì)思想的形成,以及之前學(xué)習(xí)積累的經(jīng)驗(yàn),很快就對(duì)VB有了一定的了解。下面就是我這段時(shí)間學(xué)習(xí)的新的與體會(huì)。</p><p> 我認(rèn)為作為學(xué)習(xí)程序設(shè)計(jì)最重要的一點(diǎn)是要注重理解一
62、些重要的概念.VB程序設(shè)計(jì)本身并不復(fù)雜,翻開一本程序設(shè)計(jì)學(xué)習(xí)的書籍,看到的無非就是變量,函數(shù),條件語句,循環(huán)語句等概念.但要真正能進(jìn)行程序設(shè)計(jì),需要深入理解這些概念.因此,在 程序入門階段還是應(yīng)該重視概念的學(xué)習(xí).我們學(xué)習(xí)VB并沒有從正常的途徑,而是通過老師的演示與講解,了解并學(xué)習(xí)了這門課程,可以說VB語言相對(duì)來說比其他語言簡(jiǎn)單,從他的語法就可以看出</p><p> 其次,自己動(dòng)手編寫程序。程序設(shè)計(jì)入門階段要經(jīng)
63、常自己動(dòng)手抄寫或編寫一些小程序,親自動(dòng)手進(jìn)行程序設(shè)計(jì)是創(chuàng)造性思維應(yīng)用的體現(xiàn),是培養(yǎng)邏輯思維的好方法.因此一定要多動(dòng)手編寫程序,而且要從小程序開發(fā)開始,逐漸提高寫程序的能力.只有不斷的從自己的程序中積累經(jīng)驗(yàn),從中進(jìn)步,才能寫出好的程序。程序設(shè)計(jì)課是高強(qiáng)度的腦力勞動(dòng),不是聽會(huì)的,也不是看會(huì)的,而是練會(huì)的.只有自己動(dòng)手,編寫一些程序,才會(huì)有成就感,進(jìn)而對(duì)課程產(chǎn)生興趣,學(xué)起來才比較從容.動(dòng)手能力的培養(yǎng)是這門課和以往課程最大的不同之處.重點(diǎn)放在思
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
評(píng)論
0/150
提交評(píng)論