版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 肅聿蒁薂羈肈薃螇袆?wù)仄M薀螂肆蒞螆蚈肅蒈薈羇膅膇螄袃膄艿薇蝿膃蒂螂螅膂薄蚅肄膁芄蒈羀膀莆蚃袆腿蒈蒆螂艿膈螞蚈羋芀蒄羆芇莃蝕袂芆薅蒃袈芅芅螈螄芄莇薁肅芃葿螆罿芃薂蕿裊莂芁螅螁羈莄薈蚇羇蒆螃羅羇膅薆羈羆莈袁袇羅蒀蚄螃羄薂蕆肂羃節(jié)螞羈羂莄蒅襖肁蕆蟻螀肁膆蒄蚆肀荿蠆肅聿蒁薂羈肈薃螇袆?wù)仄M薀螂肆蒞螆蚈肅蒈薈羇膅膇螄袃膄艿薇蝿膃蒂螂螅膂薄蚅肄膁芄蒈羀膀莆蚃袆腿蒈蒆螂艿膈螞蚈羋芀蒄羆芇莃蝕袂芆薅蒃袈芅芅螈螄芄莇薁肅芃葿螆罿芃薂蕿裊
2、莂芁螅螁羈莄薈蚇羇蒆螃羅羇膅薆羈羆莈袁袇羅蒀蚄螃羄薂蕆肂羃節(jié)螞羈羂莄蒅襖肁蕆蟻螀肁膆蒄蚆肀荿蠆肅聿蒁薂羈肈薃螇袆?wù)仄M薀螂肆蒞螆蚈肅蒈薈羇膅膇螄袃膄艿薇蝿膃蒂螂螅膂薄蚅肄膁芄蒈羀膀莆蚃袆腿蒈蒆螂艿膈螞蚈羋芀蒄羆芇莃蝕袂芆薅蒃袈芅芅螈螄芄莇薁肅芃葿螆罿芃薂蕿裊莂芁螅螁羈莄薈蚇羇蒆螃羅羇膅薆羈羆莈袁袇羅蒀蚄螃羄薂蕆肂羃節(jié)螞羈羂莄蒅襖肁蕆蟻螀肁膆蒄蚆肀荿蠆肅聿蒁薂羈肈薃螇袆?wù)仄M薀螂肆蒞螆蚈肅蒈薈羇膅膇螄袃膄艿薇蝿膃蒂螂螅膂薄蚅肄膁芄蒈羀膀莆蚃袆
3、腿蒈蒆螂艿膈螞蚈羋芀蒄羆芇莃蝕袂芆薅蒃袈芅芅螈螄芄莇薁肅芃葿螆罿芃薂蕿裊莂芁螅螁羈莄薈蚇羇蒆螃羅羇膅薆羈羆莈袁袇羅蒀蚄螃羄薂蕆肂羃節(jié)螞羈羂莄蒅</p><p> 題 目: (服務(wù)器端)</p><p> 姓 名: 陳 寶 忠</p><p> 系 別: 計算機工程系</p><p> 指導(dǎo)教師: 鐘 文
4、龍</p><p> 重慶電子職業(yè)技術(shù)學(xué)院</p><p><b> 二00八年三月</b></p><p><b> 摘要</b></p><p> 計算機日益普及的今天,我國網(wǎng)民數(shù)量日益增多.其中網(wǎng)吧是網(wǎng)民集中的場所,在利益的驅(qū)使下,越來越多的網(wǎng)吧成立.網(wǎng)吧的管理也成了一 個新的問題,一
5、方面是硬件的安裝與維修,網(wǎng)絡(luò)安全的組建.還有一方面就是網(wǎng)吧收費.網(wǎng)吧這樣的公眾場所,人員流動性大,不可能完全靠人力 去解決,而且管理者和工作人員之間也要有帳目的清算.</p><p> 而且為了節(jié)約成本,網(wǎng)吧的工作人員也不會有太多,如何達(dá)到這樣的目的,信息化的時代還是 要靠科技.面對這樣的現(xiàn)實,一款應(yīng)用軟件就能把這些問題解決,軟件該怎么做,需要什么功能我們自然不能靠簡單的理論分析,有機會 還是要到實際的生活中去
6、了解,只有這樣才能保證做 出的系統(tǒng)有較高的使用價值.</p><p> 在開發(fā)圖書管理的過程,在實際調(diào)查后確定開發(fā)流程,基本功能設(shè)計,文檔研究方案.</p><p> 現(xiàn)在網(wǎng)吧不單是靠提供計算機給網(wǎng)民上網(wǎng)服務(wù),還加有商品的銷售,商品銷售如果只是靠人員來記錄消費情況,會提高出錯的概率,而且在人員換班的時候 帳目清算是件很麻煩的事情. 如果把商品 的銷售也加進這個系統(tǒng)中,工作人員只是輸入
7、商品的編號,帳目就有系統(tǒng)自動結(jié)算.</p><p> 還要考慮到系統(tǒng)實際運行執(zhí)行代碼的效率,功能模塊很多的時候,運行速度就成了新的問題,如何解決,讓起流暢運行呢?</p><p> 數(shù)據(jù)庫安全的問題,計算機畢竟只是機器而已,受外界環(huán)境影響很大,所以也要考慮備份數(shù)據(jù)庫.</p><p> 這次開發(fā)只是開發(fā)了收費系統(tǒng)的服務(wù)器端,還要開發(fā)出對應(yīng)的客戶端與服務(wù)器連接起
8、來才可以正常使用.</p><p> 問題的提出:講清所研究的問題“是什么”。</p><p> 選題背景及意義:講清為什么選擇這個題目來研究,即闡述該研究對學(xué)科發(fā)展的貢獻、對國計民生的理論與現(xiàn)實意義等。</p><p> 文獻綜述:對本研究主題范圍內(nèi)的文獻進行詳盡的綜合述評,“述”的同時一定要有“評”,指出現(xiàn)有研究成果的不足,講出自己的改進思路。 研究方法
9、:講清論文所使用的科學(xué)研究方法。 </p><p><b> 目錄</b></p><p><b> 1.前言</b></p><p><b> 2. 需求分析</b></p><p> 2.1 用戶定位分析</p><p> 2.2 功能需求
10、分析</p><p> 2.3 性能需求分析</p><p><b> 3.系統(tǒng)分析</b></p><p> 3.1 環(huán)境平臺分析</p><p> 3.2 程序功能設(shè)計</p><p> 3.3 程序流程設(shè)計</p><p><b> 4. 詳細(xì)設(shè)
11、計</b></p><p> 4.1 程序單元設(shè)計</p><p> 4.2 程序單元編碼</p><p><b> 4.3 集成開發(fā)</b></p><p><b> 5. 系統(tǒng)實現(xiàn)</b></p><p><b> 5.1 系統(tǒng)模塊一<
12、;/b></p><p><b> 6 結(jié)論與展望</b></p><p><b> 參考文獻</b></p><p><b> 前言</b></p><p> 根據(jù)自己的愛好和軟件編程的能力,我選擇用VB編寫網(wǎng)吧收費系統(tǒng)的服務(wù)器端,只是編寫出了基本的功能,比現(xiàn)實
13、生活中使用的要粗略.但是這個系統(tǒng)只是自己的一次實踐,我會在以后的學(xué)習(xí)中繼續(xù)努力的</p><p> 編寫這個應(yīng)用程序其意義在于鍛煉了我的動手能力和邏輯思維能力,而且以前也從來沒有嘗試過編寫這樣綜合性的程序,培養(yǎng)了對問題考慮的全面性.</p><p> 為了編寫有實用價值的東西,我還參閱了大量的資料,包括網(wǎng)絡(luò)資料的選擇,當(dāng)然在程序完成只后,也不能只有編寫者才會用,所以要寫出對應(yīng)的幫助文擋
14、,一般的軟件都會有,這是我們生活中的常識. 只是限于水平 ,只能編寫部分功能,數(shù)據(jù)庫安全方面也不可靠.一直在尋找解決辦法,如果能夠采用動態(tài)數(shù)據(jù)庫,這些問題就能解決了.</p><p> 科學(xué)這東西講究的就是嚴(yán)謹(jǐn)?shù)膽B(tài)度,建立數(shù)學(xué)模型有助于完成設(shè)計,在設(shè)計的時候避免出現(xiàn)思緒混亂,</p><p> 在經(jīng)過系統(tǒng)功能需求分析,在大腦中 已經(jīng)有很清晰的的目標(biāo),可以畫出要進行的流程圖,比如先根據(jù)功
15、能模塊確定好選擇數(shù)據(jù)庫,然后根據(jù)實際編寫數(shù)據(jù)庫表,完成數(shù)據(jù)庫表的關(guān)聯(lián),可以先保存后,等窗體確定完畢,再連接數(shù)據(jù)庫.</p><p> 經(jīng)過代碼調(diào)試,確定能正常運行.</p><p><b> 需求分析</b></p><p><b> 2.1用戶定位分析</b></p><p> ?。保侠淼?/p>
16、工具設(shè)置:用戶要求界面簡潔 容易操作.于是可以使用工具條進行設(shè)置,把經(jīng)常要使用的功能用工具條單獨羅列出來,比直接在菜單中選擇效率要高.</p><p> 2.安全要求:為了避免意外事件或者是人為原因?qū)е聰?shù)據(jù)庫信息丟失,要做好數(shù)據(jù)庫的保秘和數(shù)據(jù)庫災(zāi)難性恢復(fù).</p><p> 3.簡單的操作方式:因為需要有的時候需要對客戶機進行遠(yuǎn)程控制,這樣管理起來就輕松起來 .</p>
17、<p> 4.提供全面的數(shù)據(jù)查詢和統(tǒng)計:可以任意選擇查詢條件,而且為了方便可以設(shè)置統(tǒng)計報表功能.</p><p> 5.報表打印導(dǎo)出功能:要隨時可以導(dǎo)出以報表格式存放,打印出來長期備份.</p><p> 6.會員卡管理:會員卡較之現(xiàn)金交易比較方便管理,</p><p> 7.商品管理:能夠?qū)ι唐愤M行銷售統(tǒng)計,存儲查詢.</p>&l
18、t;p> 8.網(wǎng)址限制:現(xiàn)在網(wǎng)絡(luò)病毒流行,尤其要注意一些不良網(wǎng)頁上隱藏病毒,所以要限制一些網(wǎng)站.</p><p><b> ?。?2功能需求分析</b></p><p> 主要功能: 對網(wǎng)吧的人員,資源進行管理。公布網(wǎng)吧的通知公告等信息,發(fā)布網(wǎng)吧內(nèi)外新聞動態(tài),提供上網(wǎng)人員的意見、建議反饋場所,管理網(wǎng)吧內(nèi)的計算機,對上機用戶的情況進行統(tǒng)計,計時計費等。<
19、/p><p><b> 具體功能:</b></p><p> 被控制機有一個服務(wù)器,控制器集中在管理機上。可以控制登陸,并進行計時,這是兩個基本功能;管理機還有上機,下機結(jié)帳,開機,關(guān)機,重新啟動等功能。 </p><p> 網(wǎng)絡(luò)管理、計費系統(tǒng):本網(wǎng)站最重要和最復(fù)雜的功能。又分會員注冊,登錄,以及會員的審核系統(tǒng),員工的管理,計時計費,計算機管
20、理等小系統(tǒng)。</p><p> 資源管理:分為流行歌曲,影視頻道,游戲推薦,動漫Flash,精彩圖片幾個模塊。</p><p> 交流平臺: 提供在線交流的平臺,收集上網(wǎng)人員的相關(guān)的意見和建議,并及時處理,對有必要的問題進行回復(fù)。</p><p> 以上功能大部份為系統(tǒng)已實現(xiàn)的基本功能,在開發(fā)本系統(tǒng)時也為后繼系統(tǒng)擴展開發(fā)留有接口,使系統(tǒng)更加方便地可以進行升級和
21、擴展。</p><p><b> ?。?3性能需求分析</b></p><p> 強大的安全保障:網(wǎng)絡(luò)通訊全面采用數(shù)字證書認(rèn)證體系,具有與網(wǎng)上銀行同等的安全級別;基于角色的權(quán)限管理允許靈活定制管理權(quán)限;具有完備的數(shù)據(jù)保密、備份、災(zāi)難恢復(fù)等機制,保證數(shù)據(jù)高度安全可靠。 </p><p> 嚴(yán)謹(jǐn)與高效的業(yè)務(wù)流程設(shè)計:網(wǎng)吧計費管理系統(tǒng)業(yè)務(wù)數(shù)據(jù)遵循
22、財務(wù)準(zhǔn)則設(shè)計,嚴(yán)謹(jǐn)、規(guī)范;眾多獨到的設(shè)計不僅方便顧客使用也大大減輕了服務(wù)員的工作強度。 </p><p> 易于使用與維護:網(wǎng)吧計費管理系統(tǒng)充分考慮了不同層次使用者的接受能力,服務(wù)員經(jīng)過10分鐘簡單培訓(xùn)就能掌握,管理人員則擁有眾多工具和方法用于簡化管理與維護。此外,為了幫助用戶盡快熟練掌握網(wǎng)吧計費管理系統(tǒng)的應(yīng)用,相關(guān)軟件公司還提供了多種方式的培訓(xùn)和技術(shù)支持。 </p><p> 集中管
23、理能力:將配置、升級等任務(wù)集中到服務(wù)器處理,使管理工作大量減少,變得高效。 </p><p><b> 系統(tǒng)分析</b></p><p><b> 3.1系統(tǒng)平臺分析</b></p><p> 系統(tǒng)的開發(fā)、運行、測試環(huán)境均選用 Windows 系列的操作系統(tǒng),因為 Windows 系統(tǒng)是PC機上普及最廣泛的操作系統(tǒng),
24、它的界面友好、有高效的計算環(huán)境、對硬件的支持程度高、支持On-Now設(shè)備、有良好的可移植性和可伸縮性、系統(tǒng)運行穩(wěn)定、可靠性好、維護方便、容易安裝;性能經(jīng)過優(yōu)化、安全性好、對網(wǎng)絡(luò)的支持程度好、使網(wǎng)絡(luò)應(yīng)用更為方便快捷。本系統(tǒng)可運行于Windows 20000以上操作系統(tǒng),在這些操作系統(tǒng)上都必須安裝IIS,當(dāng)然最好是在Windows 2000 Advanced Server 上運行,因為微軟開發(fā)的Windows 2000 Advanced S
25、erver是專門用來提供網(wǎng)絡(luò)服務(wù)器的,有微軟這個強大的技術(shù)支持,并且系統(tǒng)運行穩(wěn)定、維護方便、性能經(jīng)過優(yōu)化、對網(wǎng)絡(luò)的支持程度好、使網(wǎng)絡(luò)應(yīng)用更為方便快捷。</p><p> 考慮到Windows XP Professional是我們平時用得最多的操作系統(tǒng),比較熟悉,且足夠支持開發(fā)軟件VB和Microsoft SQL Server 2000。所以在此我選用了它作為開發(fā)環(huán)境、運行環(huán)境以及測試環(huán)境.</p>
26、<p> 在選擇開發(fā)工具的時候,考慮到各種編程軟件,我選擇VB6.0主要 有其特點決定的,VB 6.0提供了各種豐富的通信接口,比較適合這種服務(wù)器-客戶端.</p><p> 在界面設(shè)置上,VB 提供可視化編程,可以避免大量的代碼編寫,需要什么樣子的窗口布局,可以直接在工具箱\里面選擇,然后調(diào)整布局.</p><p> 采用的是事件驅(qū)動方式,代碼執(zhí)行的過程可以直接控制,很
27、方便代碼的調(diào)試和改寫.比起傳統(tǒng)的那些編程語言,代碼從開始執(zhí)行到代碼結(jié)涑</p><p><b> 3.2程序功能設(shè)計</b></p><p> 系統(tǒng)功能設(shè)計:這一部分是整個系統(tǒng)最基本也是最重要的設(shè)置,其中系統(tǒng)設(shè)置至少包括以下幾方面的內(nèi)容:</p><p><b> 計算機設(shè)置:</b></p><
28、p><b> 管理員設(shè)置</b></p><p><b> 數(shù)據(jù)備份</b></p><p><b> 數(shù)據(jù)還原</b></p><p><b> 系統(tǒng)設(shè)置</b></p><p> 記費用功能設(shè)計:包括下面內(nèi)容</p>&l
29、t;p><b> 開始記費</b></p><p><b> 限定時間</b></p><p><b> 結(jié)帳</b></p><p><b> 調(diào)換計算機</b></p><p><b> 選購計算機</b><
30、/p><p><b> 客戶機控制</b></p><p> 界面設(shè)置功能:主要是對運行中的系統(tǒng)界面設(shè)置,不同的工作人員喜歡不同的背景或布局格式,對整個系統(tǒng)沒有太大的影響</p><p> 管理功能:包括商品資料管理,客戶管理,會員卡管理</p><p><b> 統(tǒng)計功能:</b></p
31、><p> 日報表統(tǒng)計:商品統(tǒng)計和上機統(tǒng)計</p><p> 月報表統(tǒng)計:商品統(tǒng)計和上機統(tǒng)計</p><p><b> 3.3程序流程設(shè)計</b></p><p> 數(shù)據(jù)庫設(shè)計(采用無源數(shù)據(jù)庫連接)</p><p> 無源數(shù)據(jù)庫”連接也并不是說不需要數(shù)據(jù)源,如果沒有數(shù)據(jù)源則連接是紙上談兵,只
32、是不需要配置ODBC數(shù)據(jù)源,利用ADO就可通過代碼進行連接。</p><p> 1.1 ADO(ActiveX Data Object)</p><p> 在Visual Basic6.0中,數(shù)據(jù)訪問接口有三種:ActiveX數(shù)據(jù)對象(ADO)、遠(yuǎn)程數(shù)據(jù)對象(RDO)和數(shù)據(jù)訪問對象(DAO)。這三種接口的每一種都分別代表該技術(shù)的不同發(fā)展階段,最新的是ADO,它比RDO和DAO更加簡單,
33、更加靈活。對于新工程,應(yīng)使用ADO作為數(shù)據(jù)訪問接口。</p><p> ADO 是Microsoft 數(shù)據(jù)庫應(yīng)用程序開發(fā)的接口,是建立在OLE DB之上的高層數(shù)據(jù)庫訪問技術(shù)。它封裝了OLE DB所提供的接口,比起OLE DB提供者,ADO的接口可以使程序員在更高級別上進行數(shù)據(jù)交互。ADO技術(shù)不僅可以應(yīng)用于關(guān)系數(shù)據(jù)庫,也可以應(yīng)用于非關(guān)系數(shù)據(jù)庫。可以用統(tǒng)一的方法對不同的文件系統(tǒng)進行訪問,大大簡化了程序編制,增加了程
34、序的可移植性。</p><p> 1.2 建立無源數(shù)據(jù)庫連接</p><p> 在連接數(shù)據(jù)庫前,首先要在Visual Basic 6.0菜單中“工程”—“引用”中選擇Microsoft ActiveX Data Objects 2.6 Library 和Microsoft ActiveX Data Objects Recordset 2.6 Library這兩個組件。</p>
35、;<p> 運用ADO對象模型的主要元素:Connection(連接)中的ConnectionString屬性進行連接, ConnectionString為可讀寫string類型,指定一個連接字符串,告訴ADO 如何連接數(shù)據(jù)庫。</p><p> 實例:以建立登陸系統(tǒng)為例,介紹無源數(shù)據(jù)庫連接。在Microsoft SQL Server 2000 中建立一個Student 的數(shù)據(jù)庫,在Studen
36、t數(shù)據(jù)庫中建立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
37、 Data Objects 2.6 Library</p><p> '定義連接對象和記錄集</p><p> Dim conn As ADODB.Connection</p><p> Dim rs As ADODB.Recordset</p><p> '對取消按鈕單擊事件的響應(yīng)</p><p&
38、gt; Private Sub cmdCancel_Click()</p><p> '設(shè)置全局變量為 false</p><p><b> '不提示失敗的登錄</b></p><p> LoginSucceeded = False</p><p><b> Me.Hide</b
39、></p><p><b> End Sub</b></p><p> '對登錄按鈕單擊事件的響應(yīng)</p><p> Private Sub cmdOK_Click()</p><p> Set conn = New ADODB.Connection </p><p> S
40、et rs = New ADODB.Recordset</p><p> '建立無源數(shù)據(jù)庫連接</p><p> conn.ConnectionString="driver={sql server};server=data_server;uid=sa;pwd=;Database=student"</p><p> conn.Conn
41、ectionTimeout = 50</p><p><b> conn.Open</b></p><p> Dim str As String</p><p><b> '連接連接對象</b></p><p> Set rs.ActiveConnection = conn</
42、p><p><b> '設(shè)置游標(biāo)類型</b></p><p> rs.CursorType = adOpenDynamic</p><p> If Trim(txtUserName.Text = "") Then</p><p> MsgBox "用戶名不能為空,請重新輸入用戶名
43、!", vbOKOnly + vbExclamation, "警告"</p><p> txtUserName.SetFocus</p><p><b> Else</b></p><p><b> '設(shè)置查詢字符串</b></p><p> str =
44、 "select * from login_user where name ='" & Trim(txtUserName.Text) & "'"</p><p> rs.Open str</p><p> If rs.EOF = True Then</p><p> MsgBox &quo
45、t;沒有這個用戶,請重新輸入用戶名!", vbOKOnly + vbExclamation, "警告"</p><p> txtUserName.SetFocus</p><p><b> Else</b></p><p> '登錄成功,連接主窗口</p><p> If (
46、Trim(txtPassword.Text) = Trim(rs.Fields("password"))) Then</p><p> LoginSucceeded = True</p><p><b> Me.Hide</b></p><p><b> main.Show</b></p&g
47、t;<p><b> Else</b></p><p> MsgBox "密碼不正確,請重輸入密碼!", , "警告"</p><p> txtPassword.SetFocus</p><p> SendKeys "{Home}+{End}"</p>
48、<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> 無源數(shù)據(jù)庫連接則不用配置OD
49、BC環(huán)境,可以省去手工設(shè)置DSN的麻煩,這種方法所編寫的軟件適應(yīng)性廣,又符合專業(yè)軟件的要求。</p><p> DO封裝并且實現(xiàn)了Microsoft強大的數(shù)據(jù)訪問接口OLE DB的所有功能,它具有通用性好,效率高的特點。通過ADO進行無源數(shù)據(jù)庫連接,省去手工設(shè)置DSN的麻煩,使ADO對象模型獲得更大的靈活性.</p><p><b> 界面設(shè)置</b></p
50、><p> 確定 應(yīng)用程序的功能后,從最基本的界面布局設(shè)置,這一步的關(guān)鍵就是熟悉VB控件的基本功能,包括常用控件和其它需要從部件里面添加的控件.界面設(shè)置要合理,美觀為好.</p><p><b> 代碼編輯</b></p><p> VB 采用的是事件驅(qū)動方式,可以直接選擇控件的事件和屬性,在編寫代碼的時候會自動給予提示,這樣當(dāng)對一個事件進行
51、代碼編輯的時候如果沒有給予格式提醒,這個時候要考慮是不是出錯了,如果沒有這種功能,這種錯誤只能到代碼編譯運行的時候才會發(fā)現(xiàn),那個時候會浪費很多時間來修改錯誤代碼.</p><p><b> 模塊建立</b></p><p> 模塊一般是放全局公用的函數(shù)、過程、常數(shù)、自定義結(jié)構(gòu)、全局變量等等東西的地方,也就是公用部分的集中場所。當(dāng)然,模塊中也可以定義private
52、 的函數(shù)或者過程以便公用過程的內(nèi)部調(diào)用。類模塊是定義一個類,類模塊中的所有public成員必須在創(chuàng)建了累的實例以后才能夠調(diào)用,需要和標(biāo)準(zhǔn)模塊區(qū)分開來。好的編程習(xí)慣是把不同種類的功用模塊分類放在不同的標(biāo)準(zhǔn)模塊中,便于查閱,所以很多程序中會有多個標(biāo)準(zhǔn)模塊存在.</p><p> 類模塊和標(biāo)準(zhǔn)模塊的不同點在于存儲數(shù)據(jù)方法的不同。標(biāo)準(zhǔn)模塊的數(shù)據(jù)只有一個備份。這意味著標(biāo)準(zhǔn)模塊中一個公共變量的值改變以后,在后面的程序中再讀
53、取該變量時,它將得到同一個值。 </p><p> 而類模塊的數(shù)據(jù),是相對于類實例(也就是,由類創(chuàng)建的每一對象)而獨立存在的。 </p><p> 同樣的,標(biāo)準(zhǔn)模塊中的數(shù)據(jù)在程序作用域內(nèi)存在,也就是說,它存在于程序的存活期中;而類實例中的數(shù)據(jù)只存在于對象的存活期,它隨對象的創(chuàng)建而創(chuàng)建,隨對象的撤消而消失。 </p><p> 最后,當(dāng)變量在標(biāo)準(zhǔn)模塊中聲明為 P
54、ublic 時,則它在工程中任何地方都是可見的;而類模塊中的 Public 變量,只有當(dāng)對象變量含有對某一類實例的引用時才能訪問 </p><p><b> 運行調(diào)試</b></p><p><b> 1.運行程序 </b></p><p> 運行程序,可用下列方法之一: </p><p>
55、 (1)選擇主窗口的“運行"菜單的“啟動”命令。 </p><p> (2)按快捷鍵F5。 </p><p> (3)選擇工具欄上的啟動按鈕。 </p><p> 在程序運行過程中,標(biāo)題欄顯示: </p><p> 工程1-Microsoft Visual Basic[運行] </p><p> 表
56、示進入運行狀態(tài)。 </p><p><b> 2.暫停運行 </b></p><p> 若程序有錯誤,可用以下任一種方式進入中斷狀態(tài),對程序進行調(diào)試: </p><p> (1)選擇“運行"菜單的“中斷"命令。 </p><p> (2)按Ctrl+Break鍵。 </p>&l
57、t;p> (3)選擇工具欄上的中斷圖標(biāo)。 </p><p> 進人中斷狀態(tài),標(biāo)題欄顯示: </p><p> 工程1-Microsoft Visual Basic[break] </p><p> 若要繼續(xù)運行,可直接按F5鍵,或選取“運行”菜單的“繼續(xù)"命令。若要重新運行,按 </p><p> Shift+F5鍵
58、或選擇“運行”菜單的“重新啟動”命令。 </p><p><b> 3.結(jié)束程序運行 </b></p><p> 結(jié)束程序運行返回設(shè)計狀態(tài)的方法為: </p><p> (1)選擇“運行”菜單的“結(jié)束"命令。 </p><p> (2)選擇工具欄上的結(jié)束圖標(biāo)。 </p><p>
59、 (3)按程序的結(jié)束按鈕或程序窗口的關(guān)閉按鈕</p><p><b> 詳細(xì)設(shè)計</b></p><p> 4.1程序單元設(shè)計</p><p> 登陸窗口設(shè)計:登陸系統(tǒng)窗口界面要簡單為好,需要兩個標(biāo)簽框用來標(biāo)明用戶名和密碼,兩個文本框用來輸入用戶名和密碼,還有兩個命令按扭用來實現(xiàn)登入和取消命令:</p><p>
60、; 根據(jù)需要添加ACTIVE XActiveX控件數(shù)據(jù)輸入和函數(shù)功能執(zhí)行都必須通過容器,因此ActiveX控件和容器都必須支持一些特定的接口協(xié)議。根據(jù)Microsoft 相應(yīng)的規(guī)格標(biāo)準(zhǔn),ActiveX控件應(yīng)具備如下的性能機制。 屬性和方法:ActiveX控件必須提供屬性的名稱、方法的名稱及參數(shù),通過這項機制容器可以存取和改變ActiveX控件的屬性參數(shù)。 事件:ActiveX控件由這項機制通知容器在ActiveX控件中發(fā)生的事件,比
61、如屬性參數(shù)的改變,用戶按下鼠標(biāo)左鍵等。 存儲:容器由這項機制通知ActiveX控件存儲和提取有關(guān)信息數(shù)據(jù)等。 ActiveX控件只要在Windows的Registry數(shù)據(jù)庫中注冊后,就可以像其他Windows應(yīng)用程序一樣發(fā)揮各自的功能。 ActiveX控件是一個模塊化的靈活對象,如果某個應(yīng)用程序或網(wǎng)頁需要增加一項特殊的功能,無須重寫整個程序,只要靈活地插入一個具有此項功能的ActiveX控件即可實現(xiàn)。ActiveX的優(yōu)勢還在于它
62、的動態(tài)可交互性,用戶可以動態(tài)地在使用過程中,通過改變它的屬性和參數(shù),在應(yīng)用程序中實現(xiàn)自己的特殊要求。 也許有的讀者會問:目</p><p><b> 設(shè)計完成效果圖</b></p><p><b> ?。玻鹘缑嬖O(shè)計</b></p><p> 4.2.程序單元編碼</p><p><b
63、> 登陸窗口代碼:</b></p><p> rivate Sub cmdOK_Click()</p><p><b> '檢查正確的密碼</b></p><p> With frmMain.Data8.Recordset</p><p> .MoveFirst</p>
64、<p> For i = 1 To .RecordCount</p><p> If Combo1.Text = .Fields("用戶名稱") And txtPassword = .Fields("用戶密碼") Then</p><p> LoginSucceeded = True</p><p> Use
65、rName = .Fields("用戶名稱")</p><p> UserPass = .Fields("權(quán)限")</p><p><b> Exit For</b></p><p><b> End If</b></p><p><b>
66、.MoveNext</b></p><p><b> Next i</b></p><p> If LoginSucceeded Then</p><p> '將代碼放在這里傳遞</p><p> '成功到 calling 函數(shù)</p><p> '設(shè)
67、置全局變量時最容易的</p><p><b> Unload Me</b></p><p><b> Else</b></p><p> MsgBox "無效的密碼,請重試!", , "登錄"</p><p> txtPassword.SetFocus
68、</p><p> SendKeys "{Home}+{End}"</p><p><b> End If</b></p><p><b> End With</b></p><p><b> End Sub</b></p><p
69、> Private Sub Form_Load()</p><p> On Error Resume Next</p><p> With frmMain.Data8.Recordset</p><p> .MoveFirst</p><p> For i = 1 To .RecordCount</p><
70、p> Combo1.AddItem .Fields("用戶名稱")</p><p> Combo1.ItemData(Combo1.NewIndex) = .AbsolutePosition</p><p><b> .MoveNext</b></p><p><b> Next i</b>
71、;</p><p><b> End With</b></p><p><b> 管理員模塊代碼</b></p><p> Dim aa As Long</p><p> Private Sub Combo1_Click()</p><p> Command4.En
72、abled = True</p><p><b> End Sub</b></p><p> Private Sub Command1_Click()</p><p><b> '添加用戶</b></p><p> On Error Resume Next</p>&l
73、t;p> If Command1.Caption = "添加用戶" Then</p><p> ListView1.Visible = False</p><p> Frame1.Visible = True</p><p> Text1.Text = ""</p><p> Text2
74、.Text = ""</p><p> Text3.Text = ""</p><p> Text4.Text = ""</p><p> Combo1.Text = Combo1.List(0)</p><p> Command2.Enabled = False</p
75、><p> Command3.Enabled = False</p><p> Command4.Enabled = True</p><p> Command1.Caption = "放棄添加"</p><p><b> Else</b></p><p> ListVi
76、ew1.Visible = True</p><p> Frame1.Visible = False</p><p> Command2.Enabled = True</p><p> Command3.Enabled = True</p><p> Command4.Enabled = False</p><p&
77、gt; Command1.Caption = "添加用戶"</p><p><b> End If</b></p><p><b> End Sub</b></p><p> Private Sub Command2_Click()</p><p><b>
78、'編輯用戶</b></p><p> On Error Resume Next</p><p> With frmMain.Data8.Recordset</p><p> Text1.Text = .Fields("用戶名稱")</p><p> Select Case .Fields(&qu
79、ot;權(quán)限")</p><p><b> Case "A"</b></p><p> Combo1.Text = Combo1.List(0)</p><p> Text2.PasswordChar = ""</p><p> Text3.PasswordChar
80、 = ""</p><p> Text4.PasswordChar = ""</p><p> Text2.Text = .Fields("用戶密碼")</p><p> Text3.Text = .Fields("用戶密碼")</p><p> Text
81、4.Text = .Fields("用戶密碼")</p><p><b> Case "B"</b></p><p> Combo1.Text = Combo1.List(1)</p><p> Text2.PasswordChar = ""</p><p&g
82、t; Text3.PasswordChar = ""</p><p> Text4.PasswordChar = ""</p><p> Text2.Text = .Fields("用戶密碼")</p><p> Text3.Text = .Fields("用戶密碼")</
83、p><p> Text4.Text = .Fields("用戶密碼")</p><p><b> Case "C"</b></p><p> Combo1.Text = Combo1.List(2)</p><p> Text2.PasswordChar = "&qu
84、ot;</p><p> Text3.PasswordChar = ""</p><p> Text4.PasswordChar = ""</p><p> Text2.Text = .Fields("用戶密碼")</p><p> Text3.Text = .Fields(
85、"用戶密碼")</p><p> Text4.Text = .Fields("用戶密碼")</p><p><b> Case "D"</b></p><p> Text2.PasswordChar = "*"</p><p> Te
86、xt3.PasswordChar = "*"</p><p> Text4.PasswordChar = "*"</p><p> Text2.Text = ""</p><p> Text3.Text = ""</p><p> Text4.Text =
87、 ""</p><p> Combo1.Text = Combo1.List(3)</p><p> End Select</p><p><b> End With</b></p><p> If Command2.Caption = "修改用戶" Then</p&
88、gt;<p> ListView1.Visible = False</p><p> Frame1.Visible = True</p><p> Command1.Enabled = False</p><p> Command3.Enabled = False</p><p> Command4.Enabled =
89、 False</p><p> Command2.Caption = "放棄修改"</p><p><b> Else</b></p><p> ListView1.Visible = True</p><p> Frame1.Visible = False</p><p&
90、gt; Command1.Enabled = True</p><p> Command3.Enabled = True</p><p> Command4.Enabled = False</p><p> Command2.Caption = "修改用戶"</p><p><b> End If<
91、;/b></p><p><b> End Sub</b></p><p> Private Sub Command3_Click()</p><p><b> '刪除用戶</b></p><p> On Error Resume Next</p><p&g
92、t; With frmMain.Data8.Recordset</p><p> If MsgBox("確實要刪除用戶:" & .Fields("用戶名稱") & " 嗎?", vbYesNo + vbQuestion) = vbYes Then</p><p> If Err <> 0 Then
93、 Exit Sub</p><p> If .Fields("權(quán)限") = "D" Then</p><p> mm = InputBox("請輸入密碼:")</p><p> If mm = .Fields("用戶密碼") And .Fields("用戶名稱"
94、) <> UserName Then</p><p><b> .Delete</b></p><p> ListView1.ListItems.Clear</p><p><b> Form_Load</b></p><p><b> Else</b>&l
95、t;/p><p> MsgBox "不能刪除用戶!", vbCritical</p><p><b> End If</b></p><p><b> Else</b></p><p><b> .Delete</b></p><p&
96、gt; ListView1.ListItems.Clear</p><p><b> Form_Load</b></p><p><b> End If</b></p><p><b> End If</b></p><p><b> End With<
97、;/b></p><p><b> End Sub</b></p><p> Private Sub Command4_Click()</p><p><b> '保存設(shè)置</b></p><p> On Error Resume Next</p><p&g
98、t; If Trim(Text1.Text) = "" Then</p><p> MsgBox "用戶名錯誤!", vbCritical</p><p> Text1.SetFocus</p><p><b> Exit Sub</b></p><p><b>
99、 End If</b></p><p> With frmMain.Data8.Recordset</p><p> If Text3.Text <> Text4.Text Then</p><p> MsgBox "前后密碼設(shè)置不一至,請重新輸入!", vbCritical</p><p>
100、; Text3.Text = ""</p><p> Text4.Text = ""</p><p> Text3.SetFocus</p><p><b> Exit Sub</b></p><p><b> End If</b></p>
101、;<p> aa = .AbsolutePosition</p><p> .MoveFirst</p><p> For i = 1 To .RecordCount</p><p> If .Fields("用戶名稱") = Text1.Text Then</p><p> If .Absolut
102、ePosition <> aa Then</p><p> MsgBox "用戶名已經(jīng)存在了,請你再換一個!", vbExclamation</p><p> .MoveFirst</p><p><b> .Move aa</b></p><p> Text1.SetFocus&
103、lt;/p><p> Text1.SelStart = 0</p><p> Text1.SelLength = Len(Text1.Text)</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p><b
104、> End If</b></p><p><b> .MoveNext</b></p><p><b> Next i</b></p><p> .MoveFirst</p><p><b> .Move aa</b></p><
105、p> If Command1.Caption = "放棄添加" Then</p><p><b> .AddNew</b></p><p><b> Else</b></p><p> If Text2.Text <> .Fields("用戶密碼") The
106、n</p><p> MsgBox "密碼錯誤,請重新輸入!", vbCritical</p><p> Text2.Text = ""</p><p> Text3.Text = ""</p><p> Text4.Text = ""</p>
107、<p> Text2.SetFocus</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p><b> .Edit</b></p><p><b> End If</b>
108、</p><p> .Fields("用戶名稱") = Text1.Text</p><p> .Fields("用戶密碼") = Text3.Text</p><p> .Fields("權(quán)限") = Left(Combo1.Text, 1)</p><p><b>
109、; .Update</b></p><p><b> End With</b></p><p> If Err <> 0 Then MsgBox Error: Exit Sub</p><p> ListView1.Visible = True</p><p> Frame1.Visib
110、le = False</p><p> Command1.Enabled = True</p><p> Command2.Enabled = True</p><p> Command3.Enabled = True</p><p> Command4.Enabled = False</p><p> Co
111、mmand1.Caption = "添加用戶"</p><p> Command2.Caption = "修改用戶"</p><p> ListView1.ListItems.Clear</p><p><b> Form_Load</b></p><p><b>
112、 End Sub</b></p><p> Private Sub Command5_Click()</p><p><b> Unload Me</b></p><p><b> End Sub</b></p><p> Private Sub Form_Load()<
113、/p><p> On Error Resume Next</p><p> With frmMain.Data8.Recordset</p><p> aa = .AbsolutePosition</p><p> .MoveFirst</p><p> For i = 1 To .RecordCount<
114、/p><p> ListView1.ListItems.Add i, , .Fields("用戶名稱")</p><p> ' ListView1.ListItems(i).SubItems(1) = .Fields("用戶密碼")</p><p> ListView1.ListItems(i).SubItems(1
115、) = "********"</p><p> Select Case .Fields("權(quán)限")</p><p><b> Case "A"</b></p><p> ListView1.ListItems(i).SubItems(2) = "A—記費員"&
116、lt;/p><p><b> Case "B"</b></p><p> ListView1.ListItems(i).SubItems(2) = "B—操作員"</p><p><b> Case "C"</b></p><p> L
117、istView1.ListItems(i).SubItems(2) = "C—管理員"</p><p><b> Case "D"</b></p><p> ListView1.ListItems(i).SubItems(2) = "D—超級管理員"</p><p> End S
118、elect</p><p><b> .MoveNext</b></p><p><b> Next i</b></p><p> .MoveFirst</p><p><b> .Move aa</b></p><p><b> E
119、nd With</b></p><p><b> End Sub</b></p><p> Private Sub Form_Resize()</p><p> On Error Resume Next</p><p> ListView1.Move 30, 10, Me.Width - 150, M
120、e.Height - 1200</p><p> Picture1.Top = ListView1.Top + ListView1.Height + 100</p><p> Picture1.Left = (Me.Width - Picture1.Width) / 2</p><p><b> End Sub</b></p>
121、<p> Private Sub Label5_Click()</p><p><b> End Sub</b></p><p> Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)</p><p><b> '</
122、b></p><p> On Error Resume Next</p><p> With frmMain.Data8.Recordset</p><p> .MoveFirst</p><p> .Move Item.Index - 1</p><p><b> End With</
123、b></p><p><b> End Sub</b></p><p> Private Sub Text1_Change()</p><p> Command4.Enabled = True</p><p><b> End Sub</b></p><p>
124、 Private Sub Text2_Change()</p><p> Command4.Enabled = True</p><p><b> End Sub</b></p><p> Private Sub Text3_Change()</p><p> Command4.Enabled = True<
125、;/p><p><b> End Sub</b></p><p> Private Sub Text4_Change()</p><p> Command4.Enabled = True</p><p><b> End Sub</b></p><p><b>
126、 4.3集成開發(fā)</b></p><p> 窗體與代碼都設(shè)置完畢,就可以運行調(diào)試了,當(dāng)然有共同點的窗體可以借用模塊來設(shè)計.這里設(shè)置兩個模塊來節(jié)省代碼執(zhí)行時間,并不會影響到系統(tǒng)本身的功能:</p><p> 打開VB 程序菜單下的 工具→模塊,打開創(chuàng)建模塊窗體,名字為MODULE1,可以使用默認(rèn)的名稱.</p><p> 模塊其實也就是代碼窗體,只
127、不過這個窗體是功用的,涉及其它窗體的功能,</p><p> 這樣在出現(xiàn)錯誤的時候代碼改寫很方便.</p><p><b> 模塊代碼:</b></p><p> Public UserName As String</p><p> Public UserPass As String</p><
128、;p> Public Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long</p><p> 'Public Declare Functi
129、on 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) As Long</p><p> Public
130、Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long</p><p> Type Lwi
131、nsock</p><p> Ip As String</p><p> Index As Long</p><p> JSJ As Long</p><p><b> End Type</b></p><p> Public IndexSock() As Lwinsock</p&
132、gt;<p> Type lChatUser</p><p> Name As String</p><p> Sex As String</p><p> Used As Boolean</p><p><b> End Type</b></p><p> Public
133、 IChatUser() As lChatUser</p><p> Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long</p>
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計--《網(wǎng)吧收費系統(tǒng)》
- 網(wǎng)吧收費管理系統(tǒng)畢業(yè)設(shè)計
- vb畢業(yè)設(shè)計--《網(wǎng)吧收費系統(tǒng)》
- java畢業(yè)設(shè)計--網(wǎng)吧收費管理系統(tǒng)
- 畢業(yè)設(shè)計---網(wǎng)吧管理系統(tǒng)
- 網(wǎng)吧管理系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---網(wǎng)吧計費管理系統(tǒng)
- 畢業(yè)設(shè)計----超市收費系統(tǒng)
- 網(wǎng)吧網(wǎng)絡(luò)規(guī)劃畢業(yè)設(shè)計
- 門診收費管理系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---網(wǎng)吧組網(wǎng)與管理
- 學(xué)校用電收費管理系統(tǒng)畢業(yè)設(shè)計
- 門診收費管理系統(tǒng)畢業(yè)設(shè)計畢業(yè)論文
- 畢業(yè)設(shè)計-小型網(wǎng)吧局域網(wǎng)設(shè)計
- 畢業(yè)設(shè)計---收費站智能管理系統(tǒng)
- 醫(yī)院門診收費系統(tǒng)畢業(yè)設(shè)計(論文)
- 畢業(yè)設(shè)計停車場收費管理系統(tǒng)
- 計算機畢業(yè)設(shè)計65delphi通用網(wǎng)吧管理系統(tǒng)設(shè)計
- 計算機畢業(yè)設(shè)計65delphi通用網(wǎng)吧管理系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計---有線電視收費管理系統(tǒng)設(shè)計
評論
0/150
提交評論