第一篇:VB課程設(shè)計(jì)報(bào)告
Visual Basic課程設(shè)計(jì)報(bào)告
題目1: 難度: *** 題目2: 難度: 指導(dǎo)教師:
姓 名:
學(xué) 號(hào):
專(zhuān) 業(yè):
班 級(jí):
學(xué) 院:
日 期:
目錄
1、題目簡(jiǎn)介.....................................................................................................................................2
2、設(shè)計(jì)思路與總體方案.................................................................................................................4
2.1 窗體frm1...........................................................................................................................4 2.2窗體form1..........................................................................................................................6 2.3窗體 frmcssz......................................................................................................................7 2.4 窗體frmlsz......................................................................................................................10 2.5窗體 frmcxtj.....................................................................................................................12 2.6 標(biāo)準(zhǔn)模塊..........................................................................................................................17
3、設(shè)計(jì)過(guò)程遇到的主要問(wèn)題及解決方法...................................................................................18
4、設(shè)計(jì)中尚存的不足分析...........................................................................................................18
5、心得體會(huì)...................................................................................................................................18
6、參考文獻(xiàn)...................................................................................................................................19
1、題目簡(jiǎn)介
(簡(jiǎn)要說(shuō)明課程設(shè)計(jì)所設(shè)計(jì)的程序的主要功能。)
本題目旨在設(shè)計(jì)與一個(gè)可對(duì)個(gè)人日常手入和消費(fèi)帳目進(jìn)行管理和查詢(xún)統(tǒng)計(jì)的程序,通過(guò)此程序的設(shè)計(jì),可以加深我們對(duì)上學(xué)期的vb基礎(chǔ)知識(shí)的印象,使理論升華為實(shí)際操作,同時(shí)也有助于我們培養(yǎng)理財(cái)意識(shí),用電子記錄的形式取代從前的手寫(xiě)記錄,使得信息更加精準(zhǔn),不易丟失。
題目的難度系數(shù)相對(duì)不高,但牽涉到眾多的知識(shí)點(diǎn)作為典型的多模塊設(shè)計(jì)類(lèi)型的題目,本程序由五個(gè)窗體模塊frm1,form1,frmcssz,frmcxtj,frmlsz和一個(gè)標(biāo)準(zhǔn)模塊共同構(gòu)成。此外根據(jù)課本121頁(yè)要求,另有三個(gè)文本文件inputtype.txt,outputtype.txt和balance.txt分別用于保存收入類(lèi)型,支出類(lèi)型和收入支出帳目。本程序的密碼按照題目要求保存在了Balance.pas中,并自行設(shè)計(jì)加密處理。我的筆記本打不開(kāi)這個(gè)文件,即便打開(kāi)看到的也不再是密碼本身。這點(diǎn)盡管在這個(gè)程序中用處不是太大,但為我們保存重要文件提供了一種思路。
程序要求實(shí)現(xiàn)如下功能(主要根據(jù)窗口由易到難的順序來(lái))。
如圖1所示,frm1是啟動(dòng)窗體。有密碼的設(shè)定和破譯,開(kāi)始時(shí)必須先輸入密碼。每次錯(cuò)誤后會(huì)彈出對(duì)話(huà)框給予提示,連續(xù)累計(jì)三次則程序自動(dòng)退出初始密碼為空,直接單擊即可進(jìn)入。
圖1.程序主界面
2.輸入密碼后則進(jìn)入主界面,它是連接所有窗口的平臺(tái)。
3.單擊“參數(shù)設(shè)置”按鈕進(jìn)入“參數(shù)設(shè)置”窗口。窗口的三個(gè)選項(xiàng)卡是通過(guò)SSTab或Tabstrip控件來(lái)制作。這些陌生的外部空間對(duì)于我通過(guò)安裝了vb企
業(yè)版方才得到(詳見(jiàn)課本6-7頁(yè)兩者對(duì)比),因?yàn)閟sTab控件相對(duì)來(lái)說(shuō)簡(jiǎn)單,所以在這個(gè)程序的中我完全采用了SSTab控件。
4.收入類(lèi)別和支出類(lèi)別的選項(xiàng)卡分別需要實(shí)現(xiàn)對(duì)兩者的添加,刪除,修改,返回操作,更為重要的是要保存在文件中,以備在流水帳和查詢(xún)統(tǒng)計(jì)的combobox中使用。
開(kāi)始時(shí),“添加”和“返回”按鈕可用,而其余兩個(gè)被置灰,而且文本框不可輸入。因?yàn)榇藭r(shí)列表框的條目未被選中,所以修改和刪除已失去意義,不可用?!疤砑印卑粹o比較繁瑣,其本身可以被“確定”按鈕替代功能。本程序中,按下添加按鈕,則此時(shí)文本框被清空可編輯,而對(duì)比來(lái)說(shuō),按下修改按鈕文本框不清空且可編輯。
圖2.輸入錯(cuò)誤的密碼時(shí)的提示 通過(guò)“密碼修改”選項(xiàng)卡修改密碼,如果兩次輸入不一致或者輸入有誤(圖2和3)則會(huì)提醒用戶(hù)。此外,我把其設(shè)為了在保存時(shí)也 會(huì)提醒,有助于我們記憶。右上角的返回按鈕可以隨時(shí)返回主界面上。
6.單擊主界面上的“日常流水帳”進(jìn)入日常收支原始資料的主要輸入窗口。該窗口主要由“收入記賬”和“支出記賬”兩大部分組成。我設(shè)置了進(jìn)入窗體時(shí)列表框?yàn)榭眨员阌趯?duì)剛輸入的情況一目了然。
這里面就涉及到了另一種新的控件,DTPicker控件的問(wèn)題,這個(gè)控件使用起來(lái)極為方便,單擊即可彈出日期選擇框,且默認(rèn)當(dāng)天時(shí)間,簡(jiǎn)明易懂。其中的列表框中的項(xiàng)目為參數(shù)設(shè)置所得,只需從中選擇即可。
需要我們添加新的收支信息時(shí),我設(shè)定了備注為可有可無(wú)的輸入項(xiàng)但其他三個(gè)空如果有一個(gè)未填則會(huì)在單擊保存后彈出msgbox提示,否則則會(huì)在底部的列表框中每行顯示一個(gè)完整項(xiàng),并且把信息存儲(chǔ)到balance.txt中用于接下來(lái)的步驟。單擊取消按鈕則可以清空各個(gè)文本框中的內(nèi)容以便于重新輸入。添加完畢后單擊右上角的返回按鈕則回到主界面。本程序的重點(diǎn)和難點(diǎn)原先粗步估計(jì)集中在查詢(xún)統(tǒng)計(jì)這一窗體模塊中,所以采用了由易到難的策略。該窗體由三個(gè)選項(xiàng)卡組成,既可以選擇按類(lèi)型查詢(xún)從而
了解單獨(dú)的情況,也可以采用時(shí)間段的模式,從而宏觀大體的知道某個(gè)時(shí)間內(nèi)的情況。設(shè)定這兩種模式時(shí)需要通過(guò)單選框的改變來(lái)結(jié)合visible屬性。實(shí)際并非沒(méi)有想象中的困難,但是,因?yàn)榭蚣芸丶膯?wèn)題,我在這里還是繞了歧路最終放棄了控件數(shù)組,原本代碼可能會(huì)更簡(jiǎn)明些。
收入支出對(duì)比一項(xiàng)用于顯示某段時(shí)間內(nèi)總收入和總支出的量化對(duì)比,在輸入時(shí)間段后按確定按鈕即可顯示。返回按鈕同上述情況。
8.程序中我設(shè)置了一個(gè)標(biāo)準(zhǔn)模塊,主要用于自定義數(shù)據(jù)類(lèi)型中的使用。借用其配合,可使程序顯得更簡(jiǎn)潔些。
2、設(shè)計(jì)思路與總體方案
(說(shuō)明用到哪些控件并進(jìn)行難點(diǎn)分析,說(shuō)明所使用到的模塊、過(guò)程、變量、數(shù)組、自定義數(shù)據(jù)類(lèi)型及其相互關(guān)系,必要時(shí)給出系統(tǒng)結(jié)構(gòu)圖等圖表。
對(duì)如下事項(xiàng)逐步進(jìn)行必要的分析、說(shuō)明:
? 程序設(shè)計(jì)的主要思想,程序功能是如何實(shí)現(xiàn)的?
? 設(shè)計(jì)了幾個(gè)程序模塊(有幾個(gè)窗體模塊、幾個(gè)標(biāo)準(zhǔn)模塊),各個(gè)功能模塊的作者及想到之間的關(guān)系(模塊間是如何傳遞信息和數(shù)據(jù)的,采用什么方式,為什么?)?
? 程序中定義了哪些主要的變量(分別定義了哪些過(guò)程級(jí)變量?模塊級(jí)變量和全局變量),這些變量起什么作用?是否全局變量? 這里不需要給出大段的源程序,只需要給出關(guān)鍵的實(shí)現(xiàn)代碼即可。)
2.1 窗體frm1 這是啟動(dòng)窗體,僅使用了兩個(gè)標(biāo)簽和一個(gè)文本框及兩個(gè)按鈕,但是要考慮的地方卻有很多。下面我配合圖和文字講述下加密的過(guò)程,及對(duì)于輸入字符時(shí)的對(duì)話(huà)框,還有累計(jì)三次時(shí)將自動(dòng)退出的設(shè)置。此處只有三個(gè)通用過(guò)程,分別為CmdCancel_Click,Cmdok_Click,txtpassword_KeyPress,難點(diǎn)集中在后兩者上,其中txtpassword_KeyPress在后面也會(huì)用到;
Private Sub CmdCancel_Click()Unload Me End Sub
Private Sub Cmdok_Click()'自行設(shè)計(jì)的簡(jiǎn)易解密過(guò)程 Dim int1 As String Dim a As Long: Static b As Integer: Dim i As Integer If txtpassword.Text = “" Then Form1.Show '使用靜態(tài)變量三次來(lái)累計(jì) frm1.Hide Exit Sub End If int1 = txtpassword.Text Open App.Path & ”balance.pas“ For Input As 1 Input #1, a Close 1 Do While i <= Len(CStr(np))And i >= 1 a = a1)
Next j
Next i
Close End Sub
下述一段代碼為讀入列表框時(shí)所使用。僅有一字符串變量來(lái)實(shí)現(xiàn) Private Sub Form_Load()
Dim str1 As String Open App.Path & ”O(jiān)utputType.txt“ For Input As #2
Do While Not EOF(2)
Input #2, str1
List1(1).AddItem str1'讀文件進(jìn)入列表框
Loop
Open App.Path & ”InputType.txt“ For Input As #1
Do While Not EOF(1)
Input #1, str1
List1(0).AddItem str1
Loop
Close End Sub
Private Sub Cancel_Click()np.Text = ”“: np2.Text = ”“
'取消密碼輸入 End Sub
Private Sub cmdfh_Click(Index As Integer)'返回按鈕 Unload frmcssz Form1.Show End Sub
Private Sub Cmdqx_Click(Index As Integer)'取消按鈕 Dim m As Integer m = Index Text1(m).Text = ”“ End Sub
Private Sub Cmdsc_Click(Index As Integer)'刪除按鈕
Dim j As Integer: j = Index List1(j).RemoveItem List1(j).ListIndex Text1(j).Text = ”“ End Sub
Private Sub Cmdtj_Click(Index As Integer)'添加按鈕 Dim m As Integer
m = Index Text1(m).SetFocus Text1(m).Locked = False Text1(m).Text = ”“ End Sub
Private Sub List1_Click(Index As Integer)
Dim j As Integer
'點(diǎn)擊列表框?qū)崿F(xiàn)兩鍵的去灰
j = Index
Cmdxg(j).Enabled = True
Cmdsc(j).Enabled = True
Text1(j).Text = List1(j).Text End Sub
Private Sub Cmdxg_Click(Index As Integer)
'修改按鈕。修改鍵解除文本框鎖定
Dim j As Integer
j = Index
Text1(j).Locked = False
Text1(j).SetFocus End Sub
Private Sub Cmdqd_Click(Index As Integer)
Dim int1 As Integer, k As Integer
'確定按鈕。對(duì)欄目的添加, 修改
k = Index
If List1(k).SelCount = 0 Then
List1(k).AddItem Text1(k).Text
Else
int1 = List1(k).ListIndex
List1(k).List(int1)= Text1(k).Text
End If
Text1(k).Text = ”“: Text1(k).Locked = True
Cmdxg(k).Enabled = False: Cmdsc(k).Enabled = False
Cmdtj(k).SetFocus End Sub 后面一段當(dāng)時(shí)看來(lái)顯得很費(fèi)精力,因?yàn)樾枰孕性O(shè)定加密方法 Private Sub sure_click()
Dim i As Integer, password As Long i = 1
If np.Text <> np2.Text Then
MsgBox ”兩次密碼不一樣(~。~)/,請(qǐng)重新輸入“, 48, ”提示“
ElseIf Len(Trim(np))> 8 Then
MsgBox ”請(qǐng)保證密碼不超過(guò)8位“, 48
MsgBox ”密碼已修改,a請(qǐng)記住您的密碼哦!“, 64, ”溫馨提示“
End If Do While i <= Len(np.Text)And i >= 1 np = np + Asc(Mid(np.Text, i, 1))
Loop Open App.Path & ”Balance.pas“ For Output As #1
'設(shè)置密碼
Write #1, np
Close #1
End Sub
Private Sub np_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
'密碼含非數(shù)字字符,則顯示錯(cuò)誤
MsgBox ”密碼應(yīng)當(dāng)為數(shù)字,請(qǐng)重新輸入“, , ”提示“
End If
Else
'兩次輸入一樣就加密并保存到文件
2.4 窗體frmlsz 窗體frmlsz供用戶(hù)輸入每日的收支帳目,即收支類(lèi)型、收支時(shí)間、金額和備注。每次加載窗體frmlsz時(shí)從Inputtype.txt讀出收入類(lèi)型,從Outputtype.txt讀出支出類(lèi)型給combo控件初始化,便于用戶(hù)選擇相應(yīng)的類(lèi)型輸入日常流水賬。為實(shí)現(xiàn)數(shù)據(jù)逐條讀寫(xiě)采用do loop循環(huán) EOF()文件函數(shù)和
input語(yǔ)句。利用If語(yǔ)句判斷data的int1取值,確定數(shù)據(jù)是收入還是支出,這是一種較為簡(jiǎn)便的方式,在后面的數(shù)據(jù)查詢(xún)中有很大的發(fā)揮空間
Frmlsz在主界面中的default屬性被我改成了true。其結(jié)構(gòu)簡(jiǎn)單,但設(shè)計(jì)上還是需要注意些問(wèn)題,比方說(shuō)就看下面一段代碼,我們有時(shí)候確實(shí)有必要在細(xì)節(jié)上較真
Private Sub Cmdbc_Click(Index As Integer)Dim j As Integer: j = Index Dim str1 As String If Coblb(j).Text = ”“ Or txtje(j).Text = ”“ Then '輸入信息
MsgBox ”請(qǐng)輸入完整 >o<“, , ”嘿嘿,注意“ Exit Sub Else str1 = DTPicker1(j).Value & Space(4)& Coblb(j).Text & Space(9)& txtje(j)& Space(12)& txtbz(j)Call List1(j).AddItem(str1)End If Dim newdata As data newdata.int1 = j newdata.time1=DTPicker1(j).Value newdata.moneytype= Coblb(j).Text '收集信息并保存到文件 newdata.money = Str(Val(txtje(j).Text))newdata.addition = txtbz(j).Text Open App.Path & ”Balance.txt“ For Append As #1 Write #1, newdata.int1, newdata.time1, newdata.moneytype, newdata.money, newdata.addition Close #1 End Sub
Private Sub cmdfh_Click(Index As Integer)'返回 Unload Frmlsz Form1.Show End Sub
Private Sub Cmdqk_Click(Index As Integer)'清空按鈕 Dim j As Integer: j = Index Coblb(j).Text = ”“: txtje(j).Text = ”“: txtbz(j).Text = ”“ End Sub 這段代碼基本上在所有類(lèi)似的情況中都大同小異
Private Sub Form_Load()'讀取信息 Dim str1 As String Open App.Path & ”O(jiān)utputType.txt“ For Input As #2 Do While Not EOF(2)Input #2, str1 Coblb(1).AddItem str1 Loop Open App.Path & ”InputType.txt“ For Input As #1 Do While Not EOF(1)Input #1, str1 Coblb(0).AddItem str1 Loop Close End Sub 2.5窗體 frmcxtj 窗體frmcxtj算是對(duì)于上述窗體的綜合應(yīng)用。在數(shù)組的基礎(chǔ)上同時(shí)也涉及到了自定義變量類(lèi)型,利用其尋找到時(shí)間或類(lèi)別上符合要求的項(xiàng),通過(guò)EOF語(yǔ)句不斷賦值,再通過(guò)do loop循環(huán)得到。兩組單選框的value值改變而轉(zhuǎn)化frame的visible屬性,這是大致的思路框架。具體落實(shí)到代碼的編寫(xiě)上,比方尋找時(shí)間段是通過(guò)與dtpicker的value值比較
Private Sub Cmd3_Click()Dim newdata As data, i As Integer ‘此句為收入支出對(duì)比一欄上給兩個(gè)文本框計(jì)算的過(guò)程 Dim amount As Long, money1 As Long, money2 As Integer Lbldb.Caption = ”從“ & Space(3)& DTPicker5.Value & Space(2)& ”到“ & Space(2)& DTPicker6.Value & Space(2)& ”期間“ ‘標(biāo)簽
Open App.Path & ”Balance.txt“ For Input As #1 Do While Not EOF(1)Input #1, newdata.int1 Input #1, newdata.time1 Input #1, newdata.moneytype Input #1, newdata.money Input #1, newdata.addition If(newdata.time1 >=(DTPicker5.Value))And(newdata.time1 <=(DTPicker6.Value))And newdata.int1 = 0 Then money1 = money1 + newdata.money End If If(newdata.time1 >=(DTPicker5.Value))And(newdata.time1 <=(DTPicker6.Value))And newdata.int1 = 1 Then money2 = money2 + newdata.money End If Loop Text1.Text = money1 Text2.Text = money2 Close Text1.Locked = True Text2.Locked = True End Sub
Private Sub Cmd1_Click()’第一個(gè)確定按鈕
List1.Clear ' Dim newdata As data, i As Integer Dim amount As Long, money As Long amount = 0 Open App.Path & ”Balance.txt“ For Input As #1 '當(dāng)選擇收入類(lèi)型查詢(xún)時(shí)
If Option2.Value = True Then Do While Not EOF(1)Input #1, newdata.int1
Input #1, newdata.time1 Input #1, newdata.moneytype Input #1, newdata.money Input #1, newdata.addition If(newdata.time1 >=(DTPicker9.Value))And(newdata.time1 <=(DTPicker10.Value))And newdata.moneytype = Combo1.Text Then List1.AddItem newdata.time1 & Space(5)& newdata.moneytype & Space(5)& CStr(newdata.money)& Space(5)& newdata.addition money = newdata.money End If amount = amount + money Loop Labelsr.Caption = ”從“ & DTPicker9.Value & ”到 “ & DTPicker10.Value & ” 共收入“ & amount & ”元“ Else Input #1, newdata.int1 '當(dāng)選擇按時(shí)間查收入時(shí) Input #1, newdata.time1 Input #1, newdata.moneytype Input #1, newdata.money Input #1, newdata.addition If(newdata.time1 >=(DTPicker7.Value))And(newdata.time1 <=(DTPicker8.Value))And newdata.int1 = 0 Then List1.AddItem newdata.time1 & Space(5)& newdata.moneytype & Space(5)& CStr(newdata.money)& Space(5)& newdata.addition money = newdata.money End If amount = amount + money Loop Labelsr.Caption = ”從“ & DTPicker7.Value & ”到 “ & DTPicker8.Value & ” 共收入“ & amount & ”元“ End If Close End Sub Do While Not EOF(1)
Private Sub Cmd2_Click()第二個(gè)確定按鈕 List2.Clear Dim newdata As data, i As Integer Dim amount As Long, money As Long amount = 0
Open App.Path & ”Balance.txt“ For Input As #2 '當(dāng)選擇支出類(lèi)型查詢(xún)時(shí) If Option4.Value = True Then Do While Not EOF(2)Input #2, newdata.int1 Input #2, newdata.time1 Input #2, newdata.moneytype Input #2, newdata.money Input #2, newdata.addition
If(newdata.time1 >=(DTPicker3.Value))And(newdata.time1 <=(DTPicker4.Value))And newdata.moneytype = Combo2.Text Then '當(dāng)選擇按時(shí)間查支出時(shí) List2.AddItem newdata.time1 & Space(5)& newdata.moneytype & Space(5)& CStr(newdata.money)& Space(5)& newdata.addition money = newdata.money End If amount = amount + money Loop Labelzc.Caption = ”從“ & DTPicker3.Value & ”到 “ & DTPicker4.Value & ” 共支出“ & amount & ”元“ Else Do While Not EOF(2)Input #2, newdata.int1 Input #2, newdata.time1 Input #2, newdata.moneytype Input #2, newdata.money Input #2, newdata.addition
If(newdata.time1 >=(DTPicker1.Value))And newdata.time1 <=(DTPicker2.Value))And newdata.int1 = 1 Then List2.AddItem newdata.time1 & Space(5)& newdata.moneytype & Space(5)& CStr(newdata.money)& Space(5)& newdata.addition money = newdata.money End If amount = amount + money Loop Labelzc.Caption = ”從“ & DTPicker1.Value & ”到 “ & DTPicker2.Value & ” 共支出“ & amount & ”元“ End If Close End Sub
Private Sub Command1_Click(Index As Integer)'返回 Unload Me Form1.Show End Sub
Private Sub Form_Load()'讀取信息 Dim str1 As String Open App.Path & ”O(jiān)utputType.txt“ For Input As #2 Do While Not EOF(2)Input #2, str1 Combo2.AddItem str1 Loop Open App.Path & ”InputType.txt" For Input As #1 Do While Not EOF(1)Input #1, str1 Combo1.AddItem str1 Loop Close End Sub Private Sub Option1_Click()'以下為單選框的四類(lèi)情況
Frame2.Visible = False Frame1.Visible = True End Sub
Private Sub Option2_Click()Frame2.Visible = True Frame1.Visible = False End Sub
Private Sub Option3_Click()Frame3.Visible = True Frame4.Visible = False End Sub
Private Sub Option4_Click()Frame3.Visible = False Frame4.Visible = True End Sub 2.6 標(biāo)準(zhǔn)模塊
標(biāo)準(zhǔn)模塊中我設(shè)立了自定義類(lèi)型的變量用來(lái)聲明自定義數(shù)據(jù)類(lèi)型 data,它有5個(gè)元素,其中int1為難點(diǎn)和重點(diǎn)。其值可用于區(qū)分收入和支出的性質(zhì),在frmcxj中顯得尤為重要,另外我就是剛才犯了個(gè)錯(cuò)誤,time 是關(guān)鍵字,在編寫(xiě)程序時(shí)一直出現(xiàn)了溢出的錯(cuò)誤,幸好及時(shí)得到了改正,np,np2用來(lái)存放密碼,密碼的設(shè)立主要是通過(guò)把每個(gè)數(shù)字的ascii碼求出然后求和的過(guò)程,用到了Mid(),Asc(),Len()函數(shù)和For循環(huán)。
Public np As Integer, np2 As Integer Public Type data int1 As Integer time1 As Date moneytype As String money As Long addition As String End Type
3、設(shè)計(jì)過(guò)程遇到的主要問(wèn)題及解決方法
3.1作為編程者的角度看,需要的是考慮用戶(hù)的感受。當(dāng)我調(diào)試程序后,遇到過(guò)當(dāng)輸入的數(shù)據(jù)類(lèi)型與設(shè)置的變量類(lèi)型不統(tǒng)一時(shí),會(huì)出現(xiàn)許多錯(cuò)誤,為避免如此,必須添加顯式轉(zhuǎn)換語(yǔ)句避免錯(cuò)誤
3.2在參數(shù)設(shè)置的模塊中,我當(dāng)時(shí)在其load的事件中編完了列表框的ADDItem的方法,也檢查代碼,沒(méi)有任何問(wèn)題,但是該窗體就是無(wú)法顯示出列表框的條目來(lái)。后來(lái)把把原先的frmcssz_load改成了form_load情況當(dāng)即就解決了。至今我也沒(méi)曾想通
3.3 在自定義數(shù)據(jù)類(lèi)型中原先有一項(xiàng)我命名其為time,但是我在數(shù)據(jù)查詢(xún)之中就遇到了麻煩。定義錯(cuò)誤,文件超出。我于是將其名稱(chēng)改去,代碼便可順利運(yùn)行
4、設(shè)計(jì)中尚存的不足分析
4.1如圖可見(jiàn),這一段本可使用控件數(shù)組大大簡(jiǎn)化這后面過(guò)程。一開(kāi)始我也確實(shí)是如此設(shè)計(jì)。我的失策主要由于當(dāng)時(shí)建立的全部為控件數(shù)組的形式包括了框架,當(dāng)兩個(gè)框架重疊之后其中一個(gè)被另一個(gè)完全包進(jìn)去了,所以我無(wú)論怎么設(shè)option.value都得不到想要的情況。后來(lái)便放棄了這一想法,采用了一般的步驟而變得更為費(fèi)時(shí)費(fèi)力,可以看到查詢(xún)統(tǒng)計(jì)模塊下的代碼特別冗長(zhǎng)
4.2 在參數(shù)設(shè)置模塊中,當(dāng)點(diǎn)擊添加之后雖然清空了文本框,但若是列表框依然有條目被選,則再輸入其實(shí)變成了另一形式的修改。我希望接下來(lái)的時(shí)間可以去完善一下一些細(xì)節(jié)方面,有些是已經(jīng)考慮到的,有些只有時(shí)間久些才會(huì)慢慢感覺(jué)到
4.3 密碼的設(shè)置上目前情況不是太理想,有待考慮新的算法提高某些文件的保密度
5、心得體會(huì)
這個(gè)程序從難度上講只有三顆星而已,但我想說(shuō)我確實(shí)摸索了很久,從界面的制作排版到代碼的編寫(xiě)。由于計(jì)算機(jī)編程知識(shí)當(dāng)初只學(xué)了些皮毛,很多次我在 18 編程時(shí)不斷調(diào)試卻依然出現(xiàn)這樣那樣的毛病,可能是無(wú)意中拼寫(xiě)錯(cuò)誤,但有些確實(shí)是因?yàn)椴涣私鈜b的某些較為冷僻的用法所致。這段時(shí)間,常會(huì)向同學(xué)請(qǐng)教,也自覺(jué)地去借了些書(shū)看看,基本上完成了要求,但是功能、界面都還不是很完善,我會(huì)借助以后的時(shí)間繼續(xù)去加工的,我需要的是學(xué)以致用。
我體會(huì)到了編寫(xiě)程序是個(gè)有條理的邏輯過(guò)程,首先必須有個(gè)大致的思路,整體的規(guī)劃出來(lái)。然后再是分步地去具體完成,尤為重要的是需要投入相當(dāng)一部分精力去精益求精,這樣你的成果才不會(huì)是毛糙的。思維調(diào)動(dòng)是件另人愉快的事情,而我們應(yīng)該去學(xué)會(huì)享受腦力勞動(dòng)的過(guò)程,哪怕是一次次地失利。這就是一個(gè)月的課程設(shè)計(jì)所教會(huì)我的。
6、參考文獻(xiàn)
[1].王棟,visual basic課程設(shè)計(jì),北京,清華大學(xué)出版社 [2].王棟,visual basic程序設(shè)計(jì)實(shí)用教程,北京,清華大學(xué)出版社 [3].蘭友,vb應(yīng)用程序設(shè)計(jì),北京,交通大學(xué)出版社
[4].董愛(ài)紅等,二級(jí)visual basic語(yǔ)言程序設(shè)計(jì),北京:機(jī)械工業(yè)出版社,2005
第二篇:VB課程設(shè)計(jì)報(bào)告
Visual Basic課程設(shè)計(jì)報(bào)告
題目1: 列車(chē)時(shí)刻查詢(xún)系統(tǒng) 難度: ** 題目2: 記憶力測(cè)試軟件 難度: ** 指導(dǎo)教師: 袁紅兵
姓 名:鄭聰
學(xué) 號(hào):9151010F0535 專(zhuān) 業(yè):兵器類(lèi)
班 級(jí):9151010F05 學(xué) 院:機(jī)械工程學(xué)院
日 期:2016年4月
一、程序功能
二、課程設(shè)計(jì)的詳細(xì)設(shè)計(jì)
三、課程設(shè)計(jì)總結(jié)
四、遇到的問(wèn)題及解決方法
五、源程序代碼
六、總結(jié)及個(gè)人心得體會(huì)
七、參考文獻(xiàn)
程序功能
涉及知識(shí)點(diǎn):(1)讀文本文件;(2)動(dòng)態(tài)數(shù)組(3)字符串處理(4)列表框控件的使用(4)多行文本框控件的使用
功能要求:(1)程序啟動(dòng)后,左邊的列表框顯示所有的車(chē)次,點(diǎn)擊其中一項(xiàng),顯示相應(yīng)的詳細(xì)信息。(2)在“經(jīng)停車(chē)站”組合框中選擇或輸入一個(gè)站名然后回車(chē),列表框中只列出經(jīng)過(guò)該車(chē)站的車(chē)次。單擊列表框下方的“顯示全部車(chē)次”按鈕,列表框中重新列出所有車(chē)次。(3)文本框(或右邊的列表框)中詳細(xì)信息整齊排列。
課程設(shè)計(jì)的詳細(xì)設(shè)計(jì)
1、總體設(shè)計(jì)思路
先將信息讀入到兩個(gè)動(dòng)態(tài)數(shù)組中,再根據(jù)相關(guān)的事件調(diào)用數(shù)組。
2、界面設(shè)計(jì)
界面有frame,list,combol,text,command,label.3、功能模塊設(shè)計(jì)
課程設(shè)計(jì)總結(jié)
(1)整體的功能還是實(shí)現(xiàn)了,運(yùn)行應(yīng)該是沒(méi)有問(wèn)題的。(2)在做這次課程設(shè)計(jì)的過(guò)程中,我深刻領(lǐng)悟到實(shí)踐的重要性,看似困難的課程設(shè)計(jì),一步一步來(lái),問(wèn)題一個(gè)一個(gè)解決,最后回首會(huì)覺(jué)得自己懂得了好多好多。(3)我也知道了,不能光靠自己的課本,要借助網(wǎng)絡(luò)快速的查找自己所需要的知識(shí)點(diǎn)。
遇到的問(wèn)題及解決方法
我在設(shè)計(jì)這個(gè)程序時(shí)主要遇到兩個(gè)問(wèn)題。
第一個(gè)大的問(wèn)題就是怎樣才能實(shí)現(xiàn)查詢(xún)經(jīng)過(guò)站點(diǎn)和顯示車(chē)次途徑車(chē)站和,經(jīng)過(guò)查閱書(shū)籍之后,通過(guò)以下代碼就可以實(shí)現(xiàn)了:
Private Sub Com1_Click()
'查詢(xún)經(jīng)過(guò)站點(diǎn)
Dim n As Integer
List1.Clear: List2.Clear
'清除界面
For i = 0 To k
If str(i)= Cob1.Text Then
For j = 0 To num1 If b = str1(i)Then
Text1.Text = str2(i): Text2.Text = str3(i)
'將起點(diǎn)站,終點(diǎn)站,發(fā)車(chē)時(shí)刻,到達(dá)時(shí)刻添入文本框中
Text3.Text = str4(i): Text4.Text = str5(i)
End If End Sub
我所遇到的二個(gè)問(wèn)題就是怎樣才能讓各項(xiàng)對(duì)齊,在網(wǎng)絡(luò)上找到了一段非常重要的代碼“List2.List(j)= str(m)+ Space(p)+ RTrim(Format(str(m + 1), “"))+ RTrim(Format(str(m + 2), ”“))”,和一些提示,以下代碼得以實(shí)現(xiàn):
If List1.ListIndex = List1.ListCount3 Step 3
Select Case Len(str(m))
'判斷站名長(zhǎng)度以便list2中各項(xiàng)對(duì)齊
Case Is = 2: p = 5
Case Is = 3: p = 3
Case Is = 4: p = 1
End Select
List2.List(j)= str(m)+ Space(p)+ RTrim(Format(str(m + 1), ”))+ RTrim(Format(str(m + 2), “"))
'對(duì)齊各項(xiàng)
j = j + 1
Next m
End If Next i End Sub 列車(chē)時(shí)刻查詢(xún)界面設(shè)計(jì):
一、系統(tǒng)登陸界面設(shè)計(jì)
二、查詢(xún)界面設(shè)計(jì)
源程序代碼
Public Class Form1
Dim Content(,)As String
Dim Detail(,)As String
Private Sub a()
FileOpen(1, Application.StartupPath & ”content.txt“, OpenMode.Input)
'content.txt有多少行
Dim Temporary1()As String
Dim x As Integer
Do Until EOF(1)
LineInput(1)
x += 1
Loop
FileClose(1)
FileOpen(1, Application.StartupPath & ”content.txt“, OpenMode.Input)
'將content.txt的文件寫(xiě)入Content二維數(shù)組
ReDim Temporary1(x1, 4)
For i = 0 To xUBound(Content)1, w)= Split(Temporary3(q), ”+“)(w)
Next
Next
For r = 0 To UBound(Content)
For t = 2 To UBound(Temporary4, 2)1, y)= Split(Temporary4(r, t), ”,“)(y)
Next
End If
Next
Next
FileClose(2)
For w = 0 To UBound(Content)
'將Detail數(shù)組內(nèi)容寫(xiě)入經(jīng)停車(chē)站下拉欄
For q = 1 To UBound(Detail, 2)
If Detail(w, q, 0)<> Nothing And Detail(w, q, 0)<> ”“ Then
If ViaStation.Items.Contains(Detail(w, q, 0))= False Then
ViaStation.Items.Add(Detail(w, q, 0))
End If
End If
Next
Next
End Sub
Private Sub ShowAllTrains_Click(sender As System.Object, e As System.EventArgs)Handles ShowAllTrains.Click
'顯示全部車(chē)次按鈕按下觸發(fā)的事件
a()
ViaStation.Text = ”“
ListBox1.Items.Clear()
For i = 0 To UBound(Content)
ListBox1.Items.Add(Content(i, 0)&)
Next
End Sub
Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As
System.EventArgs)Handles ListBox1.SelectedIndexChanged
'選定listbox某一項(xiàng)所觸發(fā)的事件
If ListBox1.SelectedIndex <>-1 Then
StartStation.Text = Content(ListBox1.SelectedIndex, 1)
DestinationStation.Text = Content(ListBox1.SelectedIndex, 2)
StartTime.Text = Content(ListBox1.SelectedIndex, 3)
ArriveTime.Text = Content(ListBox1.SelectedIndex, 4)
TxtDetail.Text = Nothing
For u = 1 To UBound(Detail, 2)
If Detail(Selection, u, 0)<> Nothing And Detail(Selection, u, 0)<> ”“ Then
If Detail(Selection, u, 1)= ”---“ Then
TxtDetail.Text &= Detail(Selection, u, 0)& Space(482 * Len(Detail(Selection, u, 1)))& Detail(Selection, u, 2)& vbCrLf
Else
TxtDetail.Text &= Detail(Selection, u, 0)& Space(555 * Len(Detail(Selection, u, 0)))& Detail(Selection, u, 1)& Space(502 * Len(Detail(Selection, u, 1)))& Detail(Selection, u, 2)& vbCrLf
End If
End If
Next
End If
End Sub
Private Sub ViaStation_SelectedIndexChanged(sender As System.Object, e As
System.EventArgs)Handles ViaStation.TextChanged
'經(jīng)停站輸入文字或下拉欄選中某項(xiàng)所觸發(fā)的事件
ListBox1.Items.Clear()
For z = 0 To UBound(Detail)
For c = 1 To UBound(Detail, 2)
If Detail(z, c, 0)= ViaStation.Text Then
If ListBox1.Items.Contains(Detail(z, 0, 0))= False Then
ListBox1.Items.Add(Detail(z, 0, 0))
End If
End If
Next
Next
End Sub
Function Selection()As Integer '根據(jù)Ylistbox選中項(xiàng),返回其在Detail數(shù)組中所在的位置
For q = 0 To UBound(Detail)
If Detail(q, 0, 0)= Replace(ListBox1.SelectedItem.ToString, ”次??“, ”")Then
Return q
Exit Function
End If
Next
Return-1
End Function
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load
End Sub End Class
總結(jié)及個(gè)人心得體會(huì)
綜合分析,本設(shè)計(jì)有四個(gè)難點(diǎn):
1.程序顯示的信息都是從content.txt和detail.txt兩個(gè)文件中讀取的。如果列車(chē)時(shí)刻沒(méi)有變化,只需修改這兩個(gè)文件的內(nèi)容即可,不必改動(dòng)程序。
2.Content.txt文件保存了各車(chē)次的概要信息,包括車(chē)次名,起點(diǎn)站,終點(diǎn)站,發(fā)車(chē)時(shí)刻,到達(dá)時(shí)刻,一個(gè)車(chē)次占一行。
3.Detail.txt文件中保存了所有車(chē)次??空镜脑敿?xì)信息。每個(gè)車(chē)次信息的保存方式都是相同的:首先一個(gè)星號(hào)“*”為一行:然后是車(chē)次名為一行:在后是??空镜恼久偷竭_(dá),發(fā)車(chē)時(shí)刻,每個(gè)站為一行。起點(diǎn)站的“到達(dá)時(shí)刻”和終點(diǎn)站的“發(fā)車(chē)時(shí)刻”均為“--”。因?yàn)槊看诬?chē)停靠站的數(shù)目不同,在讀取detail.txt文件時(shí),必須正確判斷星號(hào)“*”的位置。
4.程序應(yīng)在啟動(dòng)時(shí)將所有信息從文件讀入動(dòng)態(tài)數(shù)組中,從而不必在查詢(xún)過(guò)程中頻繁地讀取文件影響查詢(xún)速度。
存在的不足:
只能夠查詢(xún)信息,不能夠擴(kuò)充程序使之對(duì)列車(chē)信息進(jìn)行修改,添加和刪除操作。
心得及體會(huì):
通過(guò)這次的VB課程設(shè)計(jì),我學(xué)到了很多很多的東西,同時(shí)不僅可以鞏固了以前學(xué)過(guò)的知識(shí),而且學(xué)到了很多書(shū)本上所沒(méi)有學(xué)到的知識(shí)。通過(guò)這次課程設(shè)計(jì)是我懂得了理論與實(shí)踐相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。
在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)是困難重重,這畢竟是自己第一次做一個(gè)程序,難免會(huì)遇到各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解的不夠深刻,掌握的不夠牢固。通過(guò)這次課程設(shè)計(jì)之后,一定把以前所學(xué)的知識(shí)重新溫故。
程序設(shè)計(jì)師需要大量的時(shí)間去動(dòng)手練習(xí)才能體會(huì)到它的內(nèi)涵,同時(shí)還需要用心去投入,時(shí)間和感情花下去之后,的確慢慢的感受到有所收獲了,我也收獲到了一點(diǎn)點(diǎn)的樂(lè)趣??赡苁且粋€(gè)良性循環(huán)的開(kāi)始吧,相信以后會(huì)做的更好的。
參考文獻(xiàn)
[1].王棟,visual basic課程設(shè)計(jì),北京,清華大學(xué)出版社 [2].王棟,visual basic程序設(shè)計(jì)實(shí)用教程,北京,清華大學(xué)出版社
[3].陳銳,夏敏捷,趙琳編著,Visual Basic.NET經(jīng)典游戲編程開(kāi)發(fā),北京,科學(xué)出版社
第三篇:2014 vb課程設(shè)計(jì)報(bào)告
Visual Basic
課 程 設(shè) 計(jì) 報(bào) 告
所屬課程名稱(chēng):Visual Basic程序設(shè)計(jì) 課程設(shè)計(jì)題號(hào):
課程設(shè)計(jì)題目:
課程設(shè)計(jì)難度:?星
課程設(shè)計(jì)時(shí)間:2014.2.23 ~ 4.9 學(xué)號(hào):
姓名:
自評(píng)成績(jī):
二〇一四年三月
一、程序功能
簡(jiǎn)敘題目的功能要求,涉及的知識(shí)點(diǎn)等。
二、課程設(shè)計(jì)的詳細(xì)設(shè)計(jì)
1、總體設(shè)計(jì)思路
介紹程序的設(shè)計(jì)思路,給出程序結(jié)構(gòu)框圖。
2、界面設(shè)計(jì)
界面構(gòu)成及實(shí)現(xiàn)方法。
3、功能模塊設(shè)計(jì)
文字介紹程序主要功能的實(shí)現(xiàn)算法,盡量給出算法流程圖。
三、設(shè)計(jì)中遇到的問(wèn)題與解決辦法
【問(wèn)題1】:
【解決辦法】:
【問(wèn)題2】:
【解決辦法】:
【問(wèn)題3】:
【解決辦法】:
……
四、更上一層樓
描述增加的新功能、對(duì)程序的改進(jìn)等。
五、課程設(shè)計(jì)總結(jié)
列出程序功能未實(shí)現(xiàn)之處,程序運(yùn)行有問(wèn)題之處。
說(shuō)明這次課程設(shè)計(jì)的感想和心得體會(huì)、經(jīng)驗(yàn)教訓(xùn)等。
六、源程序代碼
源程序代碼要求縮進(jìn)書(shū)寫(xiě),強(qiáng)制變量聲明,變量名及對(duì)象名等的取名應(yīng)具有描述意義。代碼必須有注釋說(shuō)明,對(duì)每個(gè)模塊、函數(shù),要說(shuō)明其功能、算法等。
第四篇:VB 課程設(shè)計(jì)報(bào)告 (推薦)
長(zhǎng)江大學(xué)工程技術(shù)學(xué)院
機(jī)械設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)
(2012-2013學(xué)年 第二學(xué)期)
系(部)專(zhuān)業(yè)班級(jí) 學(xué)生姓名 學(xué)號(hào)/序號(hào) 完成時(shí)間
機(jī)械系 機(jī)電專(zhuān)61102班
李航 201162335/14 2013年7月10日 長(zhǎng)江大學(xué)工程技術(shù)學(xué)院
VB語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告
(2012-2013學(xué)年 第二學(xué)期)
系(部)專(zhuān)業(yè)班級(jí) 學(xué)生姓名 學(xué)號(hào)/序號(hào) 指導(dǎo)教師 完成時(shí)間
機(jī)械系 機(jī)電專(zhuān)61102班
/
張國(guó)英(講師)/劉懷海(講師)
2013年6月21日
圖書(shū)管理系統(tǒng)一、功能描述
實(shí)現(xiàn)對(duì)圖書(shū)的管理,在后臺(tái)使用數(shù)據(jù)記錄操作的數(shù)據(jù),依靠這些數(shù)據(jù)庫(kù)的管理系統(tǒng)的管理功能來(lái)整理數(shù)據(jù),實(shí)現(xiàn)對(duì)書(shū)籍信息表,書(shū)籍歸還表,書(shū)籍借出表的集中有序管理,從而達(dá)到減輕工作負(fù)擔(dān),也減少了借書(shū)者的不便
書(shū)籍信息表:實(shí)現(xiàn)對(duì)所有圖書(shū)的綜合管理,建立對(duì)圖書(shū)的圖書(shū)編號(hào),作者,出版社,數(shù)量,出版日期,價(jià)格的綜合信心
圖書(shū)歸還表:對(duì)所有借出的情況進(jìn)行有效的管理,建立歸還的資料,并可對(duì)未歸還或歸還的的圖書(shū)進(jìn)行查詢(xún),查詢(xún)是否損壞
圖書(shū)借出表:能夠?qū)栝唸D書(shū)的讀者進(jìn)行管理。建立讀者信息和讀者類(lèi)別的信息資料,能夠查詢(xún)讀者借出書(shū)籍的信息,并可分別按照?qǐng)D書(shū)編號(hào)、學(xué)號(hào)和圖書(shū)名查詢(xún)讀者的信息資料
●系統(tǒng)用戶(hù)的登錄:實(shí)現(xiàn)用戶(hù)通過(guò)用戶(hù)名和密碼進(jìn)行登錄的功能?!駡D書(shū)管理:實(shí)現(xiàn)對(duì)圖書(shū)的添加、查找、刪除和修改的功能?!窳魍ü芾恚簩?shí)現(xiàn)對(duì)圖書(shū)的借閱和歸還等功能?!裢顺鱿到y(tǒng):結(jié)束圖書(shū)管理系統(tǒng)。
二、概要設(shè)計(jì)
1、系統(tǒng)功能模塊框圖設(shè)計(jì)
根據(jù)功能描述,建立系統(tǒng)的體系結(jié)構(gòu),即將整個(gè)系統(tǒng)分解成若干子功能模塊,并用框圖表示各功能模塊之間的銜接關(guān)系,并簡(jiǎn)要說(shuō)明各模塊的功能。
程序流程框圖如圖所示:(僅供參考)
圖1 程序流程圖
通過(guò)登錄界面進(jìn)入圖書(shū)管理系統(tǒng),進(jìn)入界面選擇與之相匹配的表格,信息表實(shí)現(xiàn)對(duì)圖書(shū)的總管理,各種圖書(shū)信息的分類(lèi)和匯總,圖書(shū)歸還表實(shí)現(xiàn)對(duì)借出書(shū)籍歸還的管理,對(duì)歸還的書(shū)籍的情況進(jìn)行總結(jié),圖書(shū)借出表對(duì)圖書(shū)借出者的姓名,借出日期等等進(jìn)行記錄,以確保圖書(shū)的完整,在圖書(shū)信息表,圖書(shū)歸還表和圖書(shū)借出表里的各類(lèi)命令根據(jù)書(shū)籍的所需進(jìn)行整編和管理
2、數(shù)據(jù)庫(kù)設(shè)計(jì)
包括數(shù)據(jù)庫(kù)的組成說(shuō)明,數(shù)據(jù)庫(kù)中各表的結(jié)構(gòu)說(shuō)明(包括字段名、字段類(lèi)型等),可以包含圖片例如下表:
表1 學(xué)生信息表
三、詳細(xì)設(shè)計(jì) 詳細(xì)說(shuō)明主要窗體的實(shí)現(xiàn)過(guò)程,包括窗體的設(shè)計(jì)圖片及其上所包含的控件名和屬性設(shè)置;
詳細(xì)說(shuō)明主要操作的代碼實(shí)現(xiàn)過(guò)程,包括過(guò)程間的調(diào)用關(guān)系(注:在此給出不完全代碼)。如下所示:
1、賬號(hào)登錄
賬號(hào)登錄模塊中登錄與注冊(cè)兩按鈕,單擊注冊(cè)會(huì)進(jìn)入注冊(cè)模塊中,單擊登錄會(huì)進(jìn)入系統(tǒng)進(jìn)行下一步的操作,賬號(hào)文本框與數(shù)據(jù)庫(kù)相連接,當(dāng)在賬號(hào)文本框輸入賬號(hào)后點(diǎn)擊登錄按鈕后,會(huì)在數(shù)據(jù)庫(kù)中進(jìn)行查詢(xún)看數(shù)據(jù)庫(kù)中是否會(huì)有該賬號(hào),且該賬號(hào)的密碼是否與密碼框中輸入的相同,如果相同會(huì)進(jìn)入系統(tǒng),如果不存在該賬號(hào)或密碼與賬號(hào)不相匹配,則會(huì)提示“賬號(hào)或密碼錯(cuò)誤”,賬號(hào)文本框會(huì)得到焦點(diǎn),讓重新輸入。
(1)窗體截圖(如圖2)
圖2 注冊(cè)窗體
(2)功能實(shí)現(xiàn)
2、學(xué)生信息查詢(xún)窗體
圖3 查詢(xún)窗體
四、調(diào)試中存在的問(wèn)題及解決方法
包括調(diào)試過(guò)程中遇到的主要問(wèn)題及采取的解決方法。例如:
1、注冊(cè)賬號(hào)出現(xiàn)的錯(cuò)誤
數(shù)據(jù)庫(kù)中賬號(hào)被設(shè)為主鍵,當(dāng)注冊(cè)時(shí)的賬號(hào)與數(shù)局庫(kù)中的賬號(hào)有相同時(shí)就會(huì)出錯(cuò)。
2、解決方法:在寫(xiě)入數(shù)據(jù)庫(kù)前先進(jìn)行查詢(xún)數(shù)據(jù)庫(kù)
五、心得體會(huì)
本人在本次實(shí)習(xí)中取得的收獲、遇到的困難、如何面對(duì)和克服各種困難、本系統(tǒng)的不足之處,將要改進(jìn)的思想等。
六、參考文獻(xiàn)
[1] 羅朝盛.Visual Basic 6.0程序設(shè)計(jì)教程(第3版).人民郵電出版社,2009年2月
[2] [3]
七、附錄
包括全部源程序清單(程序中應(yīng)有足夠的注釋)。
第五篇:VB 課程設(shè)計(jì)
學(xué)生成績(jī)管理系統(tǒng)一、功能描述
首先簡(jiǎn)單地闡述本人所要實(shí)現(xiàn)系統(tǒng)的目的,然后應(yīng)較詳細(xì)的敘述本系統(tǒng)所要實(shí)現(xiàn)的功能。
************ *******
二、概要設(shè)計(jì)
1、系統(tǒng)功能模塊框圖設(shè)計(jì)
根據(jù)功能描述,建立系統(tǒng)的體系結(jié)構(gòu),即將整個(gè)系統(tǒng)分解成若干子功能模塊,并用框圖表示各功能模塊之間的銜接關(guān)系,并簡(jiǎn)要說(shuō)明各模塊的功能。
程序流程框圖如圖所示:(僅供參考)
圖1 程序流程圖
2、數(shù)據(jù)庫(kù)設(shè)計(jì)
包括數(shù)據(jù)庫(kù)的組成說(shuō)明,數(shù)據(jù)庫(kù)中各表的結(jié)構(gòu)說(shuō)明(包括字段名、字段類(lèi)型等),可以包含圖片例如下表:
表1 學(xué)生信息表
三、詳細(xì)設(shè)計(jì)
詳細(xì)說(shuō)明主要窗體的實(shí)現(xiàn)過(guò)程,包括窗體的設(shè)計(jì)圖片及其上所包含的控件名和屬性設(shè)置;
詳細(xì)說(shuō)明主要操作的代碼實(shí)現(xiàn)過(guò)程,包括過(guò)程間的調(diào)用關(guān)系(注:在此給出不完全代碼)。如下所示:
1、賬號(hào)登錄
帳號(hào)登錄模塊中登錄與注冊(cè)兩按鈕,單擊注冊(cè)會(huì)進(jìn)入注冊(cè)模塊中,單擊登錄會(huì)進(jìn)入系統(tǒng)進(jìn)行下一步的操作,帳號(hào)文本框與數(shù)據(jù)庫(kù)相連接,當(dāng)在帳號(hào)文本框輸入帳號(hào)后點(diǎn)擊登錄按鈕后,會(huì)在數(shù)據(jù)庫(kù)中進(jìn)行查詢(xún)看數(shù)據(jù)庫(kù)中是否會(huì)有該帳號(hào),且該帳號(hào)的密碼是否與密碼框中輸入的相同,如果相同會(huì)進(jìn)入系統(tǒng),如果不存在該賬號(hào)或密碼與帳號(hào)不相匹配,則會(huì)提示“帳號(hào)或密碼錯(cuò)誤”,帳號(hào)文本框會(huì)得到焦點(diǎn),讓重新輸入。
(1)窗體截圖(如圖2)
圖2 注冊(cè)窗體
(2)功能實(shí)現(xiàn)
2、學(xué)生信息查詢(xún)窗體
圖3 查詢(xún)窗體
四、調(diào)試中存在的問(wèn)題及解決方法
包括調(diào)試過(guò)程中遇到的主要問(wèn)題及采取的解決方法。例如:
1、注冊(cè)賬號(hào)出現(xiàn)的錯(cuò)誤
數(shù)據(jù)庫(kù)中帳號(hào)被設(shè)為主鍵,當(dāng)注冊(cè)時(shí)的帳號(hào)與數(shù)局庫(kù)中的帳號(hào)有相同時(shí)就會(huì)出錯(cuò)。
2、解決方法:在寫(xiě)入數(shù)據(jù)庫(kù)前先進(jìn)行查詢(xún)數(shù)據(jù)庫(kù)
五、心得體會(huì)
本人在本次實(shí)習(xí)中取得的收獲、遇到的困難、如何面對(duì)和克服各種困難、本系統(tǒng)的不足之處,將要改進(jìn)的思想等。
六、參考文獻(xiàn)
[1] 羅朝盛.Visual Basic 6.0程序設(shè)計(jì)教程(第3版).人民郵電出版社,2009年2月
[2] [3]
七、附錄
包括全部源程序清單(程序中應(yīng)有足夠的注釋)。