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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  目錄</b></p><p><b>  1.前言</b></p><p><b>  2. 需求分析</b></p><p>  2.1 用戶定位分析</p><p>  2.2 功能需求分析</p><p>  2.3

2、性能需求分析</p><p><b>  3.系統(tǒng)分析</b></p><p>  3.1 環(huán)境平臺(tái)分析</p><p>  3.2 程序功能設(shè)計(jì)</p><p>  3.3 程序流程設(shè)計(jì)</p><p><b>  4. 詳細(xì)設(shè)計(jì)</b></p><p&

3、gt;  4.1 程序單元設(shè)計(jì)</p><p>  4.2 程序單元編碼</p><p><b>  4.3 集成開發(fā)</b></p><p><b>  前言</b></p><p>  根據(jù)自己的愛好和軟件編程的能力,我選擇用VB編寫網(wǎng)吧收費(fèi)系統(tǒng)的服務(wù)器端,只是編寫出了基本的功能,比現(xiàn)實(shí)生活中使

4、用的要粗略.但是這個(gè)系統(tǒng)只是自己的一次實(shí)踐,我會(huì)在以后的學(xué)習(xí)中繼續(xù)努力的</p><p>  編寫這個(gè)應(yīng)用程序其意義在于鍛煉了我的動(dòng)手能力和邏輯思維能力,而且以前也從來(lái)沒(méi)有嘗試過(guò)編寫這樣綜合性的程序,培養(yǎng)了對(duì)問(wèn)題考慮的全面性.</p><p>  為了編寫有實(shí)用價(jià)值的東西,我還參閱了大量的資料,包括網(wǎng)絡(luò)資料的選擇,當(dāng)然在程序完成只后,也不能只有編寫者才會(huì)用,所以要寫出對(duì)應(yīng)的幫助文擋,一般的

5、軟件都會(huì)有,這是我們生活中的常識(shí). 只是限于水平 ,只能編寫部分功能,數(shù)據(jù)庫(kù)安全方面也不可靠.一直在尋找解決辦法,如果能夠采用動(dòng)態(tài)數(shù)據(jù)庫(kù),這些問(wèn)題就能解決了.</p><p>  科學(xué)這東西講究的就是嚴(yán)謹(jǐn)?shù)膽B(tài)度,建立數(shù)學(xué)模型有助于完成設(shè)計(jì),在設(shè)計(jì)的時(shí)候避免出現(xiàn)思緒混亂,</p><p>  在經(jīng)過(guò)系統(tǒng)功能需求分析,在大腦中 已經(jīng)有很清晰的的目標(biāo),可以畫出要進(jìn)行的流程圖,比如先根據(jù)功能模塊確

6、定好選擇數(shù)據(jù)庫(kù),然后根據(jù)實(shí)際編寫數(shù)據(jù)庫(kù)表,完成數(shù)據(jù)庫(kù)表的關(guān)聯(lián),可以先保存后,等窗體確定完畢,再連接數(shù)據(jù)庫(kù).</p><p>  經(jīng)過(guò)代碼調(diào)試,確定能正常運(yùn)行.</p><p><b>  需求分析</b></p><p><b>  2.1用戶定位分析</b></p><p> ?。保侠淼墓ぞ咴O(shè)置

7、:用戶要求界面簡(jiǎn)潔 容易操作.于是可以使用工具條進(jìn)行設(shè)置,把經(jīng)常要使用的功能用工具條單獨(dú)羅列出來(lái),比直接在菜單中選擇效率要高.</p><p>  2.安全要求:為了避免意外事件或者是人為原因?qū)е聰?shù)據(jù)庫(kù)信息丟失,要做好數(shù)據(jù)庫(kù)的保秘和數(shù)據(jù)庫(kù)災(zāi)難性恢復(fù).</p><p>  3.簡(jiǎn)單的操作方式:因?yàn)樾枰械臅r(shí)候需要對(duì)客戶機(jī)進(jìn)行遠(yuǎn)程控制,這樣管理起來(lái)就輕松起來(lái) .</p><

8、p>  4.提供全面的數(shù)據(jù)查詢和統(tǒng)計(jì):可以任意選擇查詢條件,而且為了方便可以設(shè)置統(tǒng)計(jì)報(bào)表功能.</p><p>  5.報(bào)表打印導(dǎo)出功能:要隨時(shí)可以導(dǎo)出以報(bào)表格式存放,打印出來(lái)長(zhǎng)期備份.</p><p>  6.會(huì)員卡管理:會(huì)員卡較之現(xiàn)金交易比較方便管理,</p><p>  7.商品管理:能夠?qū)ι唐愤M(jìn)行銷售統(tǒng)計(jì),存儲(chǔ)查詢.</p><p&

9、gt;  8.網(wǎng)址限制:現(xiàn)在網(wǎng)絡(luò)病毒流行,尤其要注意一些不良網(wǎng)頁(yè)上隱藏病毒,所以要限制一些網(wǎng)站.</p><p><b> ?。?2功能需求分析</b></p><p>  主要功能: 對(duì)網(wǎng)吧的人員,資源進(jìn)行管理。公布網(wǎng)吧的通知公告等信息,發(fā)布網(wǎng)吧內(nèi)外新聞動(dòng)態(tài),提供上網(wǎng)人員的意見、建議反饋場(chǎng)所,管理網(wǎng)吧內(nèi)的計(jì)算機(jī),對(duì)上機(jī)用戶的情況進(jìn)行統(tǒng)計(jì),計(jì)時(shí)計(jì)費(fèi)等。</p&g

10、t;<p><b>  具體功能:</b></p><p>  被控制機(jī)有一個(gè)服務(wù)器,控制器集中在管理機(jī)上??梢钥刂频顷懀⑦M(jìn)行計(jì)時(shí),這是兩個(gè)基本功能;管理機(jī)還有上機(jī),下機(jī)結(jié)帳,開機(jī),關(guān)機(jī),重新啟動(dòng)等功能。 </p><p>  網(wǎng)絡(luò)管理、計(jì)費(fèi)系統(tǒng):本網(wǎng)站最重要和最復(fù)雜的功能。又分會(huì)員注冊(cè),登錄,以及會(huì)員的審核系統(tǒng),員工的管理,計(jì)時(shí)計(jì)費(fèi),計(jì)算機(jī)管理等小系

11、統(tǒng)。</p><p>  資源管理:分為流行歌曲,影視頻道,游戲推薦,動(dòng)漫Flash,精彩圖片幾個(gè)模塊。</p><p>  交流平臺(tái): 提供在線交流的平臺(tái),收集上網(wǎng)人員的相關(guān)的意見和建議,并及時(shí)處理,對(duì)有必要的問(wèn)題進(jìn)行回復(fù)。</p><p>  以上功能大部份為系統(tǒng)已實(shí)現(xiàn)的基本功能,在開發(fā)本系統(tǒng)時(shí)也為后繼系統(tǒng)擴(kuò)展開發(fā)留有接口,使系統(tǒng)更加方便地可以進(jìn)行升級(jí)和擴(kuò)展。&

12、lt;/p><p><b> ?。?3性能需求分析</b></p><p>  強(qiáng)大的安全保障:網(wǎng)絡(luò)通訊全面采用數(shù)字證書認(rèn)證體系,具有與網(wǎng)上銀行同等的安全級(jí)別;基于角色的權(quán)限管理允許靈活定制管理權(quán)限;具有完備的數(shù)據(jù)保密、備份、災(zāi)難恢復(fù)等機(jī)制,保證數(shù)據(jù)高度安全可靠。 </p><p>  嚴(yán)謹(jǐn)與高效的業(yè)務(wù)流程設(shè)計(jì):網(wǎng)吧計(jì)費(fèi)管理系統(tǒng)業(yè)務(wù)數(shù)據(jù)遵循財(cái)務(wù)準(zhǔn)則

13、設(shè)計(jì),嚴(yán)謹(jǐn)、規(guī)范;眾多獨(dú)到的設(shè)計(jì)不僅方便顧客使用也大大減輕了服務(wù)員的工作強(qiáng)度。 </p><p>  易于使用與維護(hù):網(wǎng)吧計(jì)費(fèi)管理系統(tǒng)充分考慮了不同層次使用者的接受能力,服務(wù)員經(jīng)過(guò)10分鐘簡(jiǎn)單培訓(xùn)就能掌握,管理人員則擁有眾多工具和方法用于簡(jiǎn)化管理與維護(hù)。此外,為了幫助用戶盡快熟練掌握網(wǎng)吧計(jì)費(fèi)管理系統(tǒng)的應(yīng)用,相關(guān)軟件公司還提供了多種方式的培訓(xùn)和技術(shù)支持。 </p><p>  集中管理能力:

14、將配置、升級(jí)等任務(wù)集中到服務(wù)器處理,使管理工作大量減少,變得高效。 </p><p><b>  系統(tǒng)分析</b></p><p><b>  3.1系統(tǒng)平臺(tái)分析</b></p><p>  系統(tǒng)的開發(fā)、運(yùn)行、測(cè)試環(huán)境均選用 Windows 系列的操作系統(tǒng),因?yàn)?Windows 系統(tǒng)是PC機(jī)上普及最廣泛的操作系統(tǒng),它的界面

15、友好、有高效的計(jì)算環(huán)境、對(duì)硬件的支持程度高、支持On-Now設(shè)備、有良好的可移植性和可伸縮性、系統(tǒng)運(yùn)行穩(wěn)定、可靠性好、維護(hù)方便、容易安裝;性能經(jīng)過(guò)優(yōu)化、安全性好、對(duì)網(wǎng)絡(luò)的支持程度好、使網(wǎng)絡(luò)應(yīng)用更為方便快捷。本系統(tǒng)可運(yùn)行于Windows 20000以上操作系統(tǒng),在這些操作系統(tǒng)上都必須安裝IIS,當(dāng)然最好是在Windows 2000 Advanced Server 上運(yùn)行,因?yàn)槲④涢_發(fā)的Windows 2000 Advanced Serve

16、r是專門用來(lái)提供網(wǎng)絡(luò)服務(wù)器的,有微軟這個(gè)強(qiáng)大的技術(shù)支持,并且系統(tǒng)運(yùn)行穩(wěn)定、維護(hù)方便、性能經(jīng)過(guò)優(yōu)化、對(duì)網(wǎng)絡(luò)的支持程度好、使網(wǎng)絡(luò)應(yīng)用更為方便快捷。</p><p>  考慮到Windows XP Professional是我們平時(shí)用得最多的操作系統(tǒng),比較熟悉,且足夠支持開發(fā)軟件VB和Microsoft SQL Server 2000。所以在此我選用了它作為開發(fā)環(huán)境、運(yùn)行環(huán)境以及測(cè)試環(huán)境.</p><

17、;p>  在選擇開發(fā)工具的時(shí)候,考慮到各種編程軟件,我選擇VB6.0主要 有其特點(diǎn)決定的,VB 6.0提供了各種豐富的通信接口,比較適合這種服務(wù)器-客戶端.</p><p>  在界面設(shè)置上,VB 提供可視化編程,可以避免大量的代碼編寫,需要什么樣子的窗口布局,可以直接在工具箱\里面選擇,然后調(diào)整布局.</p><p>  采用的是事件驅(qū)動(dòng)方式,代碼執(zhí)行的過(guò)程可以直接控制,很方便代碼

18、的調(diào)試和改寫.比起傳統(tǒng)的那些編程語(yǔ)言,代碼從開始執(zhí)行到代碼結(jié)涑</p><p><b>  3.2程序功能設(shè)計(jì)</b></p><p>  系統(tǒng)功能設(shè)計(jì):這一部分是整個(gè)系統(tǒng)最基本也是最重要的設(shè)置,其中系統(tǒng)設(shè)置至少包括以下幾方面的內(nèi)容:</p><p><b>  計(jì)算機(jī)設(shè)置:</b></p><p>

19、;<b>  管理員設(shè)置</b></p><p><b>  數(shù)據(jù)備份</b></p><p><b>  數(shù)據(jù)還原</b></p><p><b>  系統(tǒng)設(shè)置</b></p><p>  記費(fèi)用功能設(shè)計(jì):包括下面內(nèi)容</p><p&

20、gt;<b>  開始記費(fèi)</b></p><p><b>  限定時(shí)間</b></p><p><b>  結(jié)帳</b></p><p><b>  調(diào)換計(jì)算機(jī)</b></p><p><b>  選購(gòu)計(jì)算機(jī)</b></p&g

21、t;<p><b>  客戶機(jī)控制</b></p><p>  界面設(shè)置功能:主要是對(duì)運(yùn)行中的系統(tǒng)界面設(shè)置,不同的工作人員喜歡不同的背景或布局格式,對(duì)整個(gè)系統(tǒng)沒(méi)有太大的影響</p><p>  管理功能:包括商品資料管理,客戶管理,會(huì)員卡管理</p><p><b>  統(tǒng)計(jì)功能:</b></p>

22、<p>  日?qǐng)?bào)表統(tǒng)計(jì):商品統(tǒng)計(jì)和上機(jī)統(tǒng)計(jì)</p><p>  月報(bào)表統(tǒng)計(jì):商品統(tǒng)計(jì)和上機(jī)統(tǒng)計(jì)</p><p><b>  3.3程序流程設(shè)計(jì)</b></p><p>  數(shù)據(jù)庫(kù)設(shè)計(jì)(采用無(wú)源數(shù)據(jù)庫(kù)連接)</p><p>  無(wú)源數(shù)據(jù)庫(kù)”連接也并不是說(shuō)不需要數(shù)據(jù)源,如果沒(méi)有數(shù)據(jù)源則連接是紙上談兵,只是不需要

23、配置ODBC數(shù)據(jù)源,利用ADO就可通過(guò)代碼進(jìn)行連接。</p><p>  1.1 ADO(ActiveX Data Object)</p><p>  在Visual Basic6.0中,數(shù)據(jù)訪問(wèn)接口有三種:ActiveX數(shù)據(jù)對(duì)象(ADO)、遠(yuǎn)程數(shù)據(jù)對(duì)象(RDO)和數(shù)據(jù)訪問(wèn)對(duì)象(DAO)。這三種接口的每一種都分別代表該技術(shù)的不同發(fā)展階段,最新的是ADO,它比RDO和DAO更加簡(jiǎn)單,更加靈活

24、。對(duì)于新工程,應(yīng)使用ADO作為數(shù)據(jù)訪問(wèn)接口。</p><p>  ADO 是Microsoft 數(shù)據(jù)庫(kù)應(yīng)用程序開發(fā)的接口,是建立在OLE DB之上的高層數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)。它封裝了OLE DB所提供的接口,比起OLE DB提供者,ADO的接口可以使程序員在更高級(jí)別上進(jìn)行數(shù)據(jù)交互。ADO技術(shù)不僅可以應(yīng)用于關(guān)系數(shù)據(jù)庫(kù),也可以應(yīng)用于非關(guān)系數(shù)據(jù)庫(kù)??梢杂媒y(tǒng)一的方法對(duì)不同的文件系統(tǒng)進(jìn)行訪問(wèn),大大簡(jiǎn)化了程序編制,增加了程序的可移

25、植性。</p><p>  1.2 建立無(wú)源數(shù)據(jù)庫(kù)連接</p><p>  在連接數(shù)據(jù)庫(kù)前,首先要在Visual Basic 6.0菜單中“工程”—“引用”中選擇Microsoft ActiveX Data Objects 2.6 Library 和Microsoft ActiveX Data Objects Recordset 2.6 Library這兩個(gè)組件。</p>&

26、lt;p>  運(yùn)用ADO對(duì)象模型的主要元素:Connection(連接)中的ConnectionString屬性進(jìn)行連接, ConnectionString為可讀寫string類型,指定一個(gè)連接字符串,告訴ADO 如何連接數(shù)據(jù)庫(kù)。</p><p>  實(shí)例:以建立登陸系統(tǒng)為例,介紹無(wú)源數(shù)據(jù)庫(kù)連接。在Microsoft SQL Server 2000 中建立一個(gè)Student 的數(shù)據(jù)庫(kù),在Student數(shù)據(jù)庫(kù)

27、中建立login_user(name,password)的數(shù)據(jù)表,Microsoft SQL Server服務(wù)器的名為data_server。代碼如下:</p><p>  Option Explicit</p><p>  Public LoginSucceeded As Boolean</p><p>  '引用Microsoft ActiveX Dat

28、a Objects 2.6 Library</p><p>  '定義連接對(duì)象和記錄集</p><p>  Dim conn As ADODB.Connection</p><p>  Dim rs As ADODB.Recordset</p><p>  '對(duì)取消按鈕單擊事件的響應(yīng)</p><p> 

29、 Private Sub cmdCancel_Click()</p><p>  '設(shè)置全局變量為 false</p><p><b>  '不提示失敗的登錄</b></p><p>  LoginSucceeded = False</p><p><b>  Me.Hide</b>

30、</p><p><b>  End Sub</b></p><p>  '對(duì)登錄按鈕單擊事件的響應(yīng)</p><p>  Private Sub cmdOK_Click()</p><p>  Set conn = New ADODB.Connection </p><p>  Set r

31、s = New ADODB.Recordset</p><p>  '建立無(wú)源數(shù)據(jù)庫(kù)連接</p><p>  conn.ConnectionString="driver={sql server};server=data_server;uid=sa;pwd=;Database=student"</p><p>  conn.Connecti

32、onTimeout = 50</p><p><b>  conn.Open</b></p><p>  Dim str As String</p><p><b>  '連接連接對(duì)象</b></p><p>  Set rs.ActiveConnection = conn</p>

33、;<p><b>  '設(shè)置游標(biāo)類型</b></p><p>  rs.CursorType = adOpenDynamic</p><p>  If Trim(txtUserName.Text = "") Then</p><p>  MsgBox "用戶名不能為空,請(qǐng)重新輸入用戶名!&qu

34、ot;, vbOKOnly + vbExclamation, "警告"</p><p>  txtUserName.SetFocus</p><p><b>  Else</b></p><p><b>  '設(shè)置查詢字符串</b></p><p>  str = &qu

35、ot;select * from login_user where name ='" & Trim(txtUserName.Text) & "'"</p><p>  rs.Open str</p><p>  If rs.EOF = True Then</p><p>  MsgBox "沒(méi)有

36、這個(gè)用戶,請(qǐng)重新輸入用戶名!", vbOKOnly + vbExclamation, "警告"</p><p>  txtUserName.SetFocus</p><p><b>  Else</b></p><p>  '登錄成功,連接主窗口</p><p>  If (Trim

37、(txtPassword.Text) = Trim(rs.Fields("password"))) Then</p><p>  LoginSucceeded = True</p><p><b>  Me.Hide</b></p><p><b>  main.Show</b></p>

38、<p><b>  Else</b></p><p>  MsgBox "密碼不正確,請(qǐng)重輸入密碼!", , "警告"</p><p>  txtPassword.SetFocus</p><p>  SendKeys "{Home}+{End}"</p>&l

39、t;p><b>  End If</b></p><p><b>  End If</b></p><p><b>  End If</b></p><p><b>  End Sub</b></p><p>  無(wú)源數(shù)據(jù)庫(kù)連接則不用配置ODBC環(huán)境

40、,可以省去手工設(shè)置DSN的麻煩,這種方法所編寫的軟件適應(yīng)性廣,又符合專業(yè)軟件的要求。</p><p>  DO封裝并且實(shí)現(xiàn)了Microsoft強(qiáng)大的數(shù)據(jù)訪問(wèn)接口OLE DB的所有功能,它具有通用性好,效率高的特點(diǎn)。通過(guò)ADO進(jìn)行無(wú)源數(shù)據(jù)庫(kù)連接,省去手工設(shè)置DSN的麻煩,使ADO對(duì)象模型獲得更大的靈活性.</p><p><b>  界面設(shè)置</b></p>

41、<p>  確定 應(yīng)用程序的功能后,從最基本的界面布局設(shè)置,這一步的關(guān)鍵就是熟悉VB控件的基本功能,包括常用控件和其它需要從部件里面添加的控件.界面設(shè)置要合理,美觀為好.</p><p><b>  代碼編輯</b></p><p>  VB 采用的是事件驅(qū)動(dòng)方式,可以直接選擇控件的事件和屬性,在編寫代碼的時(shí)候會(huì)自動(dòng)給予提示,這樣當(dāng)對(duì)一個(gè)事件進(jìn)行代碼編輯

42、的時(shí)候如果沒(méi)有給予格式提醒,這個(gè)時(shí)候要考慮是不是出錯(cuò)了,如果沒(méi)有這種功能,這種錯(cuò)誤只能到代碼編譯運(yùn)行的時(shí)候才會(huì)發(fā)現(xiàn),那個(gè)時(shí)候會(huì)浪費(fèi)很多時(shí)間來(lái)修改錯(cuò)誤代碼.</p><p><b>  模塊建立</b></p><p>  模塊一般是放全局公用的函數(shù)、過(guò)程、常數(shù)、自定義結(jié)構(gòu)、全局變量等等東西的地方,也就是公用部分的集中場(chǎng)所。當(dāng)然,模塊中也可以定義private 的函數(shù)

43、或者過(guò)程以便公用過(guò)程的內(nèi)部調(diào)用。類模塊是定義一個(gè)類,類模塊中的所有public成員必須在創(chuàng)建了累的實(shí)例以后才能夠調(diào)用,需要和標(biāo)準(zhǔn)模塊區(qū)分開來(lái)。好的編程習(xí)慣是把不同種類的功用模塊分類放在不同的標(biāo)準(zhǔn)模塊中,便于查閱,所以很多程序中會(huì)有多個(gè)標(biāo)準(zhǔn)模塊存在.</p><p>  類模塊和標(biāo)準(zhǔn)模塊的不同點(diǎn)在于存儲(chǔ)數(shù)據(jù)方法的不同。標(biāo)準(zhǔn)模塊的數(shù)據(jù)只有一個(gè)備份。這意味著標(biāo)準(zhǔn)模塊中一個(gè)公共變量的值改變以后,在后面的程序中再讀取該變量

44、時(shí),它將得到同一個(gè)值。 </p><p>  而類模塊的數(shù)據(jù),是相對(duì)于類實(shí)例(也就是,由類創(chuàng)建的每一對(duì)象)而獨(dú)立存在的。 </p><p>  同樣的,標(biāo)準(zhǔn)模塊中的數(shù)據(jù)在程序作用域內(nèi)存在,也就是說(shuō),它存在于程序的存活期中;而類實(shí)例中的數(shù)據(jù)只存在于對(duì)象的存活期,它隨對(duì)象的創(chuàng)建而創(chuàng)建,隨對(duì)象的撤消而消失。 </p><p>  最后,當(dāng)變量在標(biāo)準(zhǔn)模塊中聲明為 Publi

45、c 時(shí),則它在工程中任何地方都是可見的;而類模塊中的 Public 變量,只有當(dāng)對(duì)象變量含有對(duì)某一類實(shí)例的引用時(shí)才能訪問(wèn) </p><p><b>  運(yùn)行調(diào)試</b></p><p><b>  1.運(yùn)行程序 </b></p><p>  運(yùn)行程序,可用下列方法之一: </p><p>  (1)

46、選擇主窗口的“運(yùn)行"菜單的“啟動(dòng)”命令。 </p><p>  (2)按快捷鍵F5。 </p><p>  (3)選擇工具欄上的啟動(dòng)按鈕。 </p><p>  在程序運(yùn)行過(guò)程中,標(biāo)題欄顯示: </p><p>  工程1-Microsoft Visual Basic[運(yùn)行] </p><p>  表示進(jìn)入運(yùn)

47、行狀態(tài)。 </p><p><b>  2.暫停運(yùn)行 </b></p><p>  若程序有錯(cuò)誤,可用以下任一種方式進(jìn)入中斷狀態(tài),對(duì)程序進(jìn)行調(diào)試: </p><p>  (1)選擇“運(yùn)行"菜單的“中斷"命令。 </p><p>  (2)按Ctrl+Break鍵。 </p><p&

48、gt;  (3)選擇工具欄上的中斷圖標(biāo)。 </p><p>  進(jìn)人中斷狀態(tài),標(biāo)題欄顯示: </p><p>  工程1-Microsoft Visual Basic[break] </p><p>  若要繼續(xù)運(yùn)行,可直接按F5鍵,或選取“運(yùn)行”菜單的“繼續(xù)"命令。若要重新運(yùn)行,按 </p><p>  Shift+F5鍵或選擇“

49、運(yùn)行”菜單的“重新啟動(dòng)”命令。 </p><p><b>  3.結(jié)束程序運(yùn)行 </b></p><p>  結(jié)束程序運(yùn)行返回設(shè)計(jì)狀態(tài)的方法為: </p><p>  (1)選擇“運(yùn)行”菜單的“結(jié)束"命令。 </p><p>  (2)選擇工具欄上的結(jié)束圖標(biāo)。 </p><p>  (3

50、)按程序的結(jié)束按鈕或程序窗口的關(guān)閉按鈕</p><p><b>  詳細(xì)設(shè)計(jì)</b></p><p>  4.1程序單元設(shè)計(jì)</p><p>  登陸窗口設(shè)計(jì):登陸系統(tǒng)窗口界面要簡(jiǎn)單為好,需要兩個(gè)標(biāo)簽框用來(lái)標(biāo)明用戶名和密碼,兩個(gè)文本框用來(lái)輸入用戶名和密碼,還有兩個(gè)命令按扭用來(lái)實(shí)現(xiàn)登入和取消命令:</p><p>  根

51、據(jù)需要添加ACTIVE XActiveX控件數(shù)據(jù)輸入和函數(shù)功能執(zhí)行都必須通過(guò)容器,因此ActiveX控件和容器都必須支持一些特定的接口協(xié)議。根據(jù)Microsoft 相應(yīng)的規(guī)格標(biāo)準(zhǔn),ActiveX控件應(yīng)具備如下的性能機(jī)制。 屬性和方法:ActiveX控件必須提供屬性的名稱、方法的名稱及參數(shù),通過(guò)這項(xiàng)機(jī)制容器可以存取和改變ActiveX控件的屬性參數(shù)。 事件:ActiveX控件由這項(xiàng)機(jī)制通知容器在ActiveX控件中發(fā)生的事件,比如屬性參

52、數(shù)的改變,用戶按下鼠標(biāo)左鍵等。 存儲(chǔ):容器由這項(xiàng)機(jī)制通知ActiveX控件存儲(chǔ)和提取有關(guān)信息數(shù)據(jù)等。   ActiveX控件只要在Windows的Registry數(shù)據(jù)庫(kù)中注冊(cè)后,就可以像其他Windows應(yīng)用程序一樣發(fā)揮各自的功能。   ActiveX控件是一個(gè)模塊化的靈活對(duì)象,如果某個(gè)應(yīng)用程序或網(wǎng)頁(yè)需要增加一項(xiàng)特殊的功能,無(wú)須重寫整個(gè)程序,只要靈活地插入一個(gè)具有此項(xiàng)功能的ActiveX控件即可實(shí)現(xiàn)。ActiveX的優(yōu)勢(shì)還在于它的動(dòng)態(tài)可

53、交互性,用戶可以動(dòng)態(tài)地在使用過(guò)程中,通過(guò)改變它的屬性和參數(shù),在應(yīng)用程序中實(shí)現(xiàn)自己的特殊要求。   也許有的讀者會(huì)問(wèn):目</p><p>  \ 4.2.程序單元編碼</p><p><b>  登陸窗口代碼:</b></p><p>  rivate Sub cmdOK_Click()</p><p><b>

54、  '檢查正確的密碼</b></p><p>  With frmMain.Data8.Recordset</p><p>  .MoveFirst</p><p>  For i = 1 To .RecordCount</p><p>  If Combo1.Text = .Fields("用戶名稱"

55、) And txtPassword = .Fields("用戶密碼") Then</p><p>  LoginSucceeded = True</p><p>  UserName = .Fields("用戶名稱")</p><p>  UserPass = .Fields("權(quán)限")</p>

56、<p><b>  Exit For</b></p><p><b>  End If</b></p><p><b>  .MoveNext</b></p><p><b>  Next i</b></p><p>  If LoginSu

57、cceeded Then</p><p>  '將代碼放在這里傳遞</p><p>  '成功到 calling 函數(shù)</p><p>  '設(shè)置全局變量時(shí)最容易的</p><p><b>  Unload Me</b></p><p><b>  Else<

58、;/b></p><p>  MsgBox "無(wú)效的密碼,請(qǐng)重試!", , "登錄"</p><p>  txtPassword.SetFocus</p><p>  SendKeys "{Home}+{End}"</p><p><b>  End If</b

59、></p><p><b>  End With</b></p><p><b>  End Sub</b></p><p>  Private Sub Form_Load()</p><p>  On Error Resume Next</p><p>  With

60、frmMain.Data8.Recordset</p><p>  .MoveFirst</p><p>  For i = 1 To .RecordCount</p><p>  Combo1.AddItem .Fields("用戶名稱")</p><p>  Combo1.ItemData(Combo1.NewInde

61、x) = .AbsolutePosition</p><p><b>  .MoveNext</b></p><p><b>  Next i</b></p><p><b>  End With</b></p><p><b>  管理員模塊代碼</b>

62、</p><p>  Dim aa As Long</p><p>  Private Sub Combo1_Click()</p><p>  Command4.Enabled = True</p><p><b>  End Sub</b></p><p>  Private Sub Comm

63、and1_Click()</p><p><b>  '添加用戶</b></p><p>  On Error Resume Next</p><p>  If Command1.Caption = "添加用戶" Then</p><p>  ListView1.Visible = False

64、</p><p>  Frame1.Visible = True</p><p>  Text1.Text = ""</p><p>  Text2.Text = ""</p><p>  Text3.Text = ""</p><p>  Text4.Tex

65、t = ""</p><p>  Combo1.Text = Combo1.List(0)</p><p>  Command2.Enabled = False</p><p>  Command3.Enabled = False</p><p>  Command4.Enabled = True</p>&

66、lt;p>  Command1.Caption = "放棄添加"</p><p><b>  Else</b></p><p>  ListView1.Visible = True</p><p>  Frame1.Visible = False</p><p>  Command2.Enabl

67、ed = True</p><p>  Command3.Enabled = True</p><p>  Command4.Enabled = False</p><p>  Command1.Caption = "添加用戶"</p><p><b>  End If</b></p>

68、<p><b>  End Sub</b></p><p>  Private Sub Command2_Click()</p><p><b>  '編輯用戶</b></p><p>  On Error Resume Next</p><p>  With frmMain.Da

69、ta8.Recordset</p><p>  Text1.Text = .Fields("用戶名稱")</p><p>  Select Case .Fields("權(quán)限")</p><p><b>  Case "A"</b></p><p>  Combo

70、1.Text = Combo1.List(0)</p><p>  Text2.PasswordChar = ""</p><p>  Text3.PasswordChar = ""</p><p>  Text4.PasswordChar = ""</p><p>  Text2.

71、Text = .Fields("用戶密碼")</p><p>  Text3.Text = .Fields("用戶密碼")</p><p>  Text4.Text = .Fields("用戶密碼")</p><p><b>  Case "B"</b></p

72、><p>  Combo1.Text = Combo1.List(1)</p><p>  Text2.PasswordChar = ""</p><p>  Text3.PasswordChar = ""</p><p>  Text4.PasswordChar = ""</p&

73、gt;<p>  Text2.Text = .Fields("用戶密碼")</p><p>  Text3.Text = .Fields("用戶密碼")</p><p>  Text4.Text = .Fields("用戶密碼")</p><p><b>  Case "C

74、"</b></p><p>  Combo1.Text = Combo1.List(2)</p><p>  Text2.PasswordChar = ""</p><p>  Text3.PasswordChar = ""</p><p>  Text4.PasswordChar

75、 = ""</p><p>  Text2.Text = .Fields("用戶密碼")</p><p>  Text3.Text = .Fields("用戶密碼")</p><p>  Text4.Text = .Fields("用戶密碼")</p><p>&

76、lt;b>  Case "D"</b></p><p>  Text2.PasswordChar = "*"</p><p>  Text3.PasswordChar = "*"</p><p>  Text4.PasswordChar = "*"</p>

77、<p>  Text2.Text = ""</p><p>  Text3.Text = ""</p><p>  Text4.Text = ""</p><p>  Combo1.Text = Combo1.List(3)</p><p>  End Select<

78、;/p><p><b>  End With</b></p><p>  If Command2.Caption = "修改用戶" Then</p><p>  ListView1.Visible = False</p><p>  Frame1.Visible = True</p><

79、;p>  Command1.Enabled = False</p><p>  Command3.Enabled = False</p><p>  Command4.Enabled = False</p><p>  Command2.Caption = "放棄修改"</p><p><b>  Else

80、</b></p><p>  ListView1.Visible = True</p><p>  Frame1.Visible = False</p><p>  Command1.Enabled = True</p><p>  Command3.Enabled = True</p><p>  Com

81、mand4.Enabled = False</p><p>  Command2.Caption = "修改用戶"</p><p><b>  End If</b></p><p><b>  End Sub</b></p><p>  Private Sub Command3_

82、Click()</p><p><b>  '刪除用戶</b></p><p>  On Error Resume Next</p><p>  With frmMain.Data8.Recordset</p><p>  If MsgBox("確實(shí)要?jiǎng)h除用戶:" & .Fields(

83、"用戶名稱") & " 嗎?", vbYesNo + vbQuestion) = vbYes Then</p><p>  If Err <> 0 Then Exit Sub</p><p>  If .Fields("權(quán)限") = "D" Then</p><p>

84、  mm = InputBox("請(qǐng)輸入密碼:")</p><p>  If mm = .Fields("用戶密碼") And .Fields("用戶名稱") <> UserName Then</p><p><b>  .Delete</b></p><p>  List

85、View1.ListItems.Clear</p><p><b>  Form_Load</b></p><p><b>  Else</b></p><p>  MsgBox "不能刪除用戶!", vbCritical</p><p><b>  End If<

86、;/b></p><p><b>  Else</b></p><p><b>  .Delete</b></p><p>  ListView1.ListItems.Clear</p><p><b>  Form_Load</b></p><p&g

87、t;<b>  End If</b></p><p><b>  End If</b></p><p><b>  End With</b></p><p><b>  End Sub</b></p><p>  Private Sub Command4_

88、Click()</p><p><b>  '保存設(shè)置</b></p><p>  On Error Resume Next</p><p>  If Trim(Text1.Text) = "" Then</p><p>  MsgBox "用戶名錯(cuò)誤!", vbCriti

89、cal</p><p>  Text1.SetFocus</p><p><b>  Exit Sub</b></p><p><b>  End If</b></p><p>  With frmMain.Data8.Recordset</p><p>  If Text3

90、.Text <> Text4.Text Then</p><p>  MsgBox "前后密碼設(shè)置不一至,請(qǐng)重新輸入!", vbCritical</p><p>  Text3.Text = ""</p><p>  Text4.Text = ""</p><p>  T

91、ext3.SetFocus</p><p><b>  Exit Sub</b></p><p><b>  End If</b></p><p>  aa = .AbsolutePosition</p><p>  .MoveFirst</p><p>  For i =

92、1 To .RecordCount</p><p>  If .Fields("用戶名稱") = Text1.Text Then</p><p>  If .AbsolutePosition <> aa Then</p><p>  MsgBox "用戶名已經(jīng)存在了,請(qǐng)你再換一個(gè)!", vbExclamation&

93、lt;/p><p>  .MoveFirst</p><p><b>  .Move aa</b></p><p>  Text1.SetFocus</p><p>  Text1.SelStart = 0</p><p>  Text1.SelLength = Len(Text1.Text)<

94、/p><p><b>  Exit Sub</b></p><p><b>  End If</b></p><p><b>  End If</b></p><p><b>  .MoveNext</b></p><p><b&

95、gt;  Next i</b></p><p>  .MoveFirst</p><p><b>  .Move aa</b></p><p>  If Command1.Caption = "放棄添加" Then</p><p><b>  .AddNew</b>&

96、lt;/p><p><b>  Else</b></p><p>  If Text2.Text <> .Fields("用戶密碼") Then</p><p>  MsgBox "密碼錯(cuò)誤,請(qǐng)重新輸入!", vbCritical</p><p>  Text2.Text

97、= ""</p><p>  Text3.Text = ""</p><p>  Text4.Text = ""</p><p>  Text2.SetFocus</p><p><b>  Exit Sub</b></p><p>&l

98、t;b>  End If</b></p><p><b>  .Edit</b></p><p><b>  End If</b></p><p>  .Fields("用戶名稱") = Text1.Text</p><p>  .Fields("用戶

99、密碼") = Text3.Text</p><p>  .Fields("權(quán)限") = Left(Combo1.Text, 1)</p><p><b>  .Update</b></p><p><b>  End With</b></p><p>  If Err

100、<> 0 Then MsgBox Error: Exit Sub</p><p>  ListView1.Visible = True</p><p>  Frame1.Visible = False</p><p>  Command1.Enabled = True</p><p>  Command2.Enabled = Tr

101、ue</p><p>  Command3.Enabled = True</p><p>  Command4.Enabled = False</p><p>  Command1.Caption = "添加用戶"</p><p>  Command2.Caption = "修改用戶"</p>

102、;<p>  ListView1.ListItems.Clear</p><p><b>  Form_Load</b></p><p><b>  End Sub</b></p><p>  Private Sub Command5_Click()</p><p><b>

103、  Unload Me</b></p><p><b>  End Sub</b></p><p>  Private Sub Form_Load()</p><p>  On Error Resume Next</p><p>  With frmMain.Data8.Recordset</p>

104、<p>  aa = .AbsolutePosition</p><p>  .MoveFirst</p><p>  For i = 1 To .RecordCount</p><p>  ListView1.ListItems.Add i, , .Fields("用戶名稱")</p><p>  '

105、; ListView1.ListItems(i).SubItems(1) = .Fields("用戶密碼")</p><p>  ListView1.ListItems(i).SubItems(1) = "********"</p><p>  Select Case .Fields("權(quán)限")</p><p&

106、gt;<b>  Case "A"</b></p><p>  ListView1.ListItems(i).SubItems(2) = "A—記費(fèi)員"</p><p><b>  Case "B"</b></p><p>  ListView1.ListItem

107、s(i).SubItems(2) = "B—操作員"</p><p><b>  Case "C"</b></p><p>  ListView1.ListItems(i).SubItems(2) = "C—管理員"</p><p><b>  Case "D&qu

108、ot;</b></p><p>  ListView1.ListItems(i).SubItems(2) = "D—超級(jí)管理員"</p><p>  End Select</p><p><b>  .MoveNext</b></p><p><b>  Next i</b

109、></p><p>  .MoveFirst</p><p><b>  .Move aa</b></p><p><b>  End With</b></p><p><b>  End Sub</b></p><p>  Private Sub

110、 Form_Resize()</p><p>  On Error Resume Next</p><p>  ListView1.Move 30, 10, Me.Width - 150, Me.Height - 1200</p><p>  Picture1.Top = ListView1.Top + ListView1.Height + 100</p>

111、;<p>  Picture1.Left = (Me.Width - Picture1.Width) / 2</p><p><b>  End Sub</b></p><p>  Private Sub Label5_Click()</p><p><b>  End Sub</b></p>

112、<p>  Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)</p><p><b>  '</b></p><p>  On Error Resume Next</p><p>  With frmMain.Data8.Recordset&

113、lt;/p><p>  .MoveFirst</p><p>  .Move Item.Index - 1</p><p><b>  End With</b></p><p><b>  End Sub</b></p><p>  Private Sub Text1_Chang

114、e()</p><p>  Command4.Enabled = True</p><p><b>  End Sub</b></p><p>  Private Sub Text2_Change()</p><p>  Command4.Enabled = True</p><p><b&

115、gt;  End Sub</b></p><p>  Private Sub Text3_Change()</p><p>  Command4.Enabled = True</p><p><b>  End Sub</b></p><p>  Private Sub Text4_Change()</

116、p><p>  Command4.Enabled = True</p><p><b>  End Sub</b></p><p><b>  4.3集成開發(fā)</b></p><p>  窗體與代碼都設(shè)置完畢,就可以運(yùn)行調(diào)試了,當(dāng)然有共同點(diǎn)的窗體可以借用模塊來(lái)設(shè)計(jì).這里設(shè)置兩個(gè)模塊來(lái)節(jié)省代碼執(zhí)行時(shí)間,并

117、不會(huì)影響到系統(tǒng)本身的功能:</p><p>  打開VB 程序菜單下的 工具→模塊,打開創(chuàng)建模塊窗體,名字為MODULE1,可以使用默認(rèn)的名稱.</p><p>  模塊其實(shí)也就是代碼窗體,只不過(guò)這個(gè)窗體是功用的,涉及其它窗體的功能,</p><p>  這樣在出現(xiàn)錯(cuò)誤的時(shí)候代碼改寫很方便.</p><p><b>  模塊代碼:&

118、lt;/b></p><p>  Public UserName As String</p><p>  Public UserPass As String</p><p>  Public Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsD

119、irectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long</p><p>  'Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X A

120、s Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long</p><p>  Public Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVa

121、l lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long</p><p>  Type Lwinsock</p><p>  Ip As String</p><p>  Index As Long</p><p>  J

122、SJ As Long</p><p><b>  End Type</b></p><p>  Public IndexSock() As Lwinsock</p><p>  Type lChatUser</p><p>  Name As String</p><p>  Sex As Str

123、ing</p><p>  Used As Boolean</p><p><b>  End Type</b></p><p>  Public IChatUser() As lChatUser</p><p>  Declare Function GetWindowText Lib "user32"

124、; Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long</p><p>  Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lPar

125、am As Long) As Long</p><p>  Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long</p>

126、<p>  Declare Function BringWindowToTop Lib "user32" (ByVal hWnd As Long) As Long</p><p>  Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExis

127、tingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long</p><p>  Public Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long<

128、/p><p>  Declare Function SystemParametersInfoByRef Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long&

129、lt;/p><p>  Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) A

130、s Long</p><p>  Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long,

131、ByVal ySrc As Long, ByVal dwRop As Long) As Long</p><p>  Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long</p><p>  Declare Function ReleaseDC Lib "user32" (B

132、yVal hWnd As Long, ByVal hdc As Long) As Long</p><p>  Public IsupperMsg As Integer</p><p>  Public Const LB_SETHORIZONTALEXTENT = &H194</p><p>  Declare Function SendMessage Li

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論