【文章內(nèi)容簡介】
會(huì)提醒,有助于我們記憶。右上角的返回按鈕可以隨時(shí)返回主界面上。“日常流水帳”進(jìn)入日常收支原始資料的主要輸入窗口。該窗口主要由“收入記賬”和“支出記賬”兩大部分組成。我設(shè)置了進(jìn)入窗體時(shí)列表框?yàn)榭?,以便于?duì)剛輸入的情況一目了然。這里面就涉及到了另一種新的控件,DTPicker控件的問題,這個(gè)控件使用起來極為方便,單擊即可彈出日期選擇框,且默認(rèn)當(dāng)天時(shí)間,簡明易懂。其中的列表框中的項(xiàng)目為參數(shù)設(shè)置所得,只需從中選擇即可。需要我們添加新的收支信息時(shí),我設(shè)定了備注為可有可無的輸入項(xiàng)但其他三個(gè)空如果有一個(gè)未填則會(huì)在單擊保存后彈出msgbox提示,否則則會(huì)在底部的列表框中每行顯示一個(gè)完整項(xiàng)。單擊取消按鈕則可以清空各個(gè)文本框中的內(nèi)容以便于重新輸入。添加完畢后單擊右上角的返回按鈕則回到主界面。本程序的重點(diǎn)和難點(diǎn)原先粗步估計(jì)集中在查詢統(tǒng)計(jì)這一窗體模塊中,所以采用了由易到難的策略。該窗體由三個(gè)選項(xiàng)卡組成,既可以選擇按類型查詢從而了解單獨(dú)的情況,也可以采用時(shí)間段的模式,從而宏觀大體的知道某個(gè)時(shí)間內(nèi)的情況。設(shè)定這兩種模式時(shí)需要通過單選框的改變來結(jié)合visible屬性。實(shí)際并非沒有想象中的困難,但是,因?yàn)榭蚣芸丶膯栴},我在這里還是繞了歧路最終放棄了控件數(shù)組,原本代碼可能會(huì)更簡明些。收入支出對(duì)比一項(xiàng)用于顯示某段時(shí)間內(nèi)總收入和總支出的量化對(duì)比,在輸入時(shí)間段后按確定按鈕即可顯示。返回按鈕同上述情況。,主要用于自定義數(shù)據(jù)類型中的使用。借用其配合,可使程序顯得更簡潔些。設(shè)計(jì)思路與總體方案(說明用到哪些控件并進(jìn)行難點(diǎn)分析,說明所使用到的模塊、過程、變量、數(shù)組、自定義數(shù)據(jù)類型及其相互關(guān)系,必要時(shí)給出系統(tǒng)結(jié)構(gòu)圖等圖表。對(duì)如下事項(xiàng)逐步進(jìn)行必要的分析、說明:l 程序設(shè)計(jì)的主要思想,程序功能是如何實(shí)現(xiàn)的?l 設(shè)計(jì)了幾個(gè)程序模塊(有幾個(gè)窗體模塊、幾個(gè)標(biāo)準(zhǔn)模塊),各個(gè)功能模塊的作者及想到之間的關(guān)系(模塊間是如何傳遞信息和數(shù)據(jù)的,采用什么方式,為什么?)?l 程序中定義了哪些主要的變量(分別定義了哪些過程級(jí)變量?模塊級(jí)變量和全局變量),這些變量起什么作用?是否全局變量? 這里不需要給出大段的源程序,只需要給出關(guān)鍵的實(shí)現(xiàn)代碼即可。) 窗體frm1 這是啟動(dòng)窗體,僅使用了兩個(gè)標(biāo)簽和一個(gè)文本框及兩個(gè)按鈕,但是要考慮的地方卻有很多。下面我配合圖和文字講述下加密的過程,及對(duì)于輸入字符時(shí)的對(duì)話框,還有累計(jì)三次時(shí)將自動(dòng)退出的設(shè)置。此處只有三個(gè)通用過程,分別為CmdCancel_Click,Cmdok_Click,txtpassword_KeyPress,難點(diǎn)集中在后兩者上,其中txtpassword_KeyPress在后面也會(huì)用到;Private Sub CmdCancel_Click()Unload Me End SubPrivate Sub Cmdok_Click()39。自行設(shè)計(jì)的簡易解密過程 Dim int1 As String Dim a As Long: Static b As Integer: Dim i As Integer If = “ Then 39。使用靜態(tài)變量三次來累計(jì) Exit Sub End If int1 = Open amp。 ”“ For Input As 1 Input 1, a Close 1 Do While i = 1 a = a1)Next jNext iClose End Sub下述一段代碼為讀入列表框時(shí)所使用。僅有一字符串變量來實(shí)現(xiàn) Private Sub Form_Load()Dim str1 As String Open amp。 ”“ For Input As 2Do While Not EOF(2)Input 2, str1List1(1).AddItem str139。讀文件進(jìn)入列表框LoopOpen amp。 ”“ For Input As 1Do While Not EOF(1)Input 1, str1List1(0).AddItem str1LoopClose End SubPrivate Sub Cancel_Click() = ”“: = ”“39。取消密碼輸入 End SubPrivate Sub cmdfh_Click(Index As Integer)39。返回按鈕 Unload frmcssz End SubPrivate Sub Cmdqx_Click(Index As Integer)39。取消按鈕 Dim m As Integer m = Index Text1(m).Text = ”“ End SubPrivate Sub Cmdsc_Click(Index As Integer)39。刪除按鈕Dim j As Integer: j = Index List1(j).RemoveItem List1(j).ListIndex Text1(j).Text = ”“ End SubPrivate Sub Cmdtj_Click(Index As Integer)39。添加按鈕 Dim m As Integerm = Index Text1(m).SetFocus Text1(m).Locked = False Text1(m).Text = ”“ End SubPrivate Sub List1_Click(Index As Integer)Dim j As Integer39。點(diǎn)擊列表框?qū)崿F(xiàn)兩鍵的去灰j = IndexCmdxg(j).Enabled = TrueCmdsc(j).Enabled = TrueText1(j).Text = List1(j).Text End SubPrivate Sub Cmdxg_Click(Index As Integer)39。修改按鈕。修改鍵解除文本框鎖定Dim j As Integerj = IndexText1(j).Locked = FalseText1(j).SetFocus End SubPrivate Sub Cmdqd_Click(Index As Integer)Dim int1 As Integer, k As Integer39。確定按鈕。對(duì)欄目的添加, 修改k = IndexIf List1(k).SelCount = 0 ThenList1(k).AddItem Text1(k).TextElseint1 = List1(k).ListIndexList1(k).List(int1)= Text1(k).TextEnd IfText1(k).Text = ”“: Text1(k).Locked = TrueCmdxg(k).Enabled = False: Cmdsc(k).Enabled = FalseCmdtj(k).SetFocus End Sub 后面一段當(dāng)時(shí)看來顯得很費(fèi)精力,因?yàn)樾枰孕性O(shè)定加密方法 Private Sub sure_click()Dim i As Integer, password As Long i = 1If ThenMsgBox ”兩次密碼不一樣(~?!?,請(qǐng)重新輸入“, 48, ”提示“ElseIf Len(Trim(np)) 8 ThenMsgBox ”請(qǐng)保證密碼不超過8位“, 48MsgBox ”密碼已修改,a請(qǐng)記住您的密碼哦!“, 64, ”溫馨提示“End If Do While i = 1 np = np + Asc(Mid(, i, 1))Loop Open amp。 ”“ For Output As 139。設(shè)置密碼Write 1, npClose 1End SubPrivate Sub np_KeyPress(KeyAscii As Integer)If KeyAscii 48 Or KeyAscii 57 ThenKeyAscii = 039。密碼含非數(shù)字字符,則顯示錯(cuò)誤MsgBox ”密碼應(yīng)當(dāng)為數(shù)字,請(qǐng)重新輸入“, , ”提示“End IfE