圖書管理系統(tǒng)畢業(yè)設(shè)計(論文) 精品_第1頁
圖書管理系統(tǒng)畢業(yè)設(shè)計(論文) 精品_第2頁
圖書管理系統(tǒng)畢業(yè)設(shè)計(論文) 精品_第3頁
圖書管理系統(tǒng)畢業(yè)設(shè)計(論文) 精品_第4頁
圖書管理系統(tǒng)畢業(yè)設(shè)計(論文) 精品_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

畢業(yè)設(shè)計(論文)題

目:圖書管理系統(tǒng)I摘

要圖書館管理信息系統(tǒng)是對學(xué)校圖書進行全面信息管理的系統(tǒng)。該管理系統(tǒng)可以有效地管理學(xué)校圖書資源,記錄學(xué)校與讀者之間的使用書籍情況。此外,根據(jù)讀者的要求,實現(xiàn)書籍基本信息的輸入,查詢等幾個方面的功能。本系統(tǒng)可以作為獨立的系統(tǒng)使用,它包括借閱信息管理、書籍信息管理、讀者信息管理、系統(tǒng)管理四個主要的功能模塊。該管理系統(tǒng)力求給讀者方便快捷的途徑去及時了解書籍信息。針對各個模塊不同的數(shù)據(jù)表實現(xiàn)添加記錄、修改記錄、刪除記錄、以及查詢顯示記錄等功能,所有的操作方便而快捷,并全面實現(xiàn)了圖書館管理的各項功能。這篇論文主要講述關(guān)于圖書館管理信息系統(tǒng)的信息,特別是討論了關(guān)于設(shè)計該系統(tǒng)時的思想、方法和過程,以及在細(xì)節(jié)上分析函數(shù)和方法的實現(xiàn)思想。在本論文中講述的圖書館管理信息系統(tǒng)擁有一個交互式的界面、邏輯的數(shù)據(jù)庫結(jié)構(gòu)。并且在設(shè)計數(shù)據(jù)庫時還考慮到了實體完整性約束、參照完整性約束、及盡量減少數(shù)據(jù)的冗余,在數(shù)據(jù)庫里有包括表、過程、函數(shù)、觸發(fā)器等5個數(shù)據(jù)庫對象。許多涉及到圖書、讀者的信息的功能在本系統(tǒng)中都有實現(xiàn)。例如,你可以將新書的信息插入到數(shù)據(jù)庫的圖書基本情況表里;還可以對已經(jīng)插入的關(guān)于圖書的信息進行修改;更重要的是,讀者可以從圖書館里借閱書籍。經(jīng)過多次的測試和運行,本系統(tǒng)能實現(xiàn)其在設(shè)計時的所有功能。關(guān)鍵字:

讀者

管理系

數(shù)據(jù)目

錄第一章緒論II第二章系統(tǒng)需求分析2.1任務(wù)概述2.2數(shù)據(jù)描述(數(shù)據(jù)流圖+數(shù)據(jù)字典)2.3功能需求2.4性能需求2.5需求規(guī)定第三章系統(tǒng)總體設(shè)計3.1總體設(shè)計3.2運行環(huán)境..............................................................................................錯!未定書簽。3.3數(shù)據(jù)結(jié)構(gòu).............................................................................................錯!未定書簽。3.4輸入輸出設(shè)計第四章詳細(xì)設(shè)計4.1程序流程圖.........................................................................................................................114.2程序輸入輸出描述.............................................................................................................11主模塊........................................................................................................................學(xué)生管理模塊.圖書管理模塊.借閱管理模塊.歸還管理模塊.管理措施設(shè)置模塊.4.3程序接口描述外部接口.內(nèi)部接口.4.4數(shù)據(jù)庫的設(shè)計數(shù)據(jù)庫的邏輯設(shè)計.第五章編碼實現(xiàn)5.1程序編碼第六章測試分析報告III6.1測試計劃和要點主模塊測試要點.借閱模塊測試要點.學(xué)生查詢模塊測試要點.圖書查詢模塊測試要點.圖書歸還模塊測試要點.6.2測試用例主模塊測試用例.借閱模塊測試用例.學(xué)生查詢模塊測試用例.圖書查詢模塊測試用例.圖書歸還模塊測試用例.6.3測試結(jié)果及結(jié)論測試的結(jié)果.缺陷分析及改進.測試結(jié)論.總結(jié).致謝.參考文獻附錄.IV第一章緒論隨著計算機技術(shù)的高速發(fā)展和計算機應(yīng)用的日益普及,在現(xiàn)代化社會中,信息管理工作將發(fā)揮越來越重要的作用。學(xué)校是傳授知識的地方,一個學(xué)校的管理可以正確的反映它的價值,在信息飛速發(fā)展的當(dāng)今社會中,學(xué)校在科學(xué)技術(shù)的應(yīng)用是一個社會的體現(xiàn),學(xué)校應(yīng)該走在時代的最前沿。圖書管理是高校內(nèi)每一個系部或院部都必須切實面對的工作,但一直以來人們使用傳統(tǒng)的人工方式管理圖書資料。這種方式存在著許多缺點,如效率低、保密性差且較為繁瑣。另外,隨著圖書資料數(shù)量的增加,其工作量也將大大增加,這必將增加圖書資料管理者的工作量和勞動強度,這將給圖書資料信息的查找、更新和維護都帶來了很多困難。經(jīng)過詳細(xì)的調(diào)查,目前我國各類高等學(xué)校中有相當(dāng)一部分單位圖書資料管理還停留在人工管理的基礎(chǔ)上。這樣的管理機制已經(jīng)不能適應(yīng)時代的發(fā)展,其管理方法將浪費許多人力和物力。隨著科學(xué)技術(shù)的不斷提高,這種傳統(tǒng)的手工管理方法必然被以計算機為基礎(chǔ)的信息管理方法所取代。圖書管理作為計算機應(yīng)用的一個分支,有著手工管理無法比擬的優(yōu)點,如檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高圖書管理的效率。因此,開發(fā)一套能夠為用戶提供充足的信息和快捷的查詢手段的圖書管理系統(tǒng),將是非常必要的,也是十分及時的。第二章系統(tǒng)需求分析任概經(jīng)過對我校詳細(xì)調(diào)查,并多次與負(fù)責(zé)圖書管理的老師進行研討后,加深了對現(xiàn)行圖書管理業(yè)務(wù)的深刻了解,與此同時,將整個圖書管理的業(yè)務(wù)流程抽象描述如下:新的圖書購進后,分門別類地進行歸并并匯總,加以編號。新書編號后,上到書架以備學(xué)生借閱。如某學(xué)生需要借閱圖書則在其本人的借閱登記表上進行登記記錄相關(guān)借閱信息與借閱日期。學(xué)生借閱圖書后,應(yīng)及時歸還圖書,并在本人的借閱登記表上注明還書日期和時間。根據(jù)以上調(diào)查分析,可以給出其現(xiàn)行業(yè)務(wù)流程圖如圖所示。1新書

分類、編號

新書

學(xué)生借閱

新書

學(xué)生歸還圖書

新書歸還后的圖書圖現(xiàn)圖書管理業(yè)務(wù)流程圖數(shù)描(據(jù)圖+數(shù)據(jù)典)

新書經(jīng)過詳細(xì)的調(diào)查,我們已經(jīng)清楚了解了現(xiàn)行的業(yè)務(wù)流程,接下來給出系統(tǒng)的邏輯模型。構(gòu)造系統(tǒng)邏輯模型的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。根據(jù)現(xiàn)行圖書管理的業(yè)務(wù)流程,首先把數(shù)據(jù)流圖中的源點和終點都選定為學(xué)生,因此可以得到圖書管理系統(tǒng)的基本系統(tǒng)模型,如圖所示。圖書管理員

圖書借閱信息

圖書歸還信息

圖書管理員圖2.2圖書管理系統(tǒng)的基本系模型根據(jù)基本系統(tǒng)模型,對其逐步細(xì)化到描述邏輯系統(tǒng)細(xì)化后的數(shù)據(jù)流圖,如2.3所示。圖書息

D2圖書息登記

借閱息D3

借閱記

借閱果管員

圖書息

2圖管

學(xué)生閱圖

3借管理

歸還書

4歸管

學(xué)學(xué)生息

理1學(xué)管

歸還書

歸還果學(xué)生息

D1生信息

D4歸還登記圖2.3圖管系統(tǒng)數(shù)據(jù)流圖(頂層DFD圖)對頂層DFD圖中的一個加工“學(xué)生管理”進行展開,如圖2.4。2圖

閱管理員

圖書管理

生書

借閱理

歸還

學(xué)生生

理新學(xué)

還生

錄入

歸還登學(xué)生信

學(xué)生詢新息

生畢業(yè)生清圖細(xì)后數(shù)據(jù)流圖對頂層DFD圖中的一個加工“圖書管理”進行展開,如圖。

借閱登記

2.1

2.2學(xué)生借閱書

圖2.5“圖書管理”展開對第1層DFD圖中的加工進一步進行展開,如圖。學(xué)生借請求學(xué)生借閱結(jié)

借閱條借閱書

學(xué)生信圖書信圖書信

學(xué)生圖書3罰款r賠償理條

罰信還圖學(xué)生果

合法性檢查理條歸還書

息閱信息

學(xué)生圖書圖進步細(xì)化數(shù)據(jù)流圖有了系統(tǒng)的數(shù)據(jù)流圖后,還有相當(dāng)多的數(shù)據(jù)信息如圖書、借閱、歸還等信息需要進一步描述,這就是需要定義數(shù)據(jù)字典,才能把現(xiàn)有的系統(tǒng)描述清楚。圖2.7出了系統(tǒng)的主要數(shù)據(jù)字典。編號RS01RS02RS03RS04RS05RS06RS07RS08RS09RS10RS11RS12RS13RS14

基本數(shù)據(jù)項名稱讀者編號姓名性別年齡部門辦證日期圖書編號圖書名稱作者出版社單價總數(shù)庫存數(shù)圖書位置

數(shù)據(jù)類型字符型字符型字符型數(shù)值型字符型日期型字符型字符型字符型字符型數(shù)值型數(shù)值型數(shù)值型字符型

長度

小數(shù)位數(shù)——————————4RS15RS16RS17RS18RS19

類別簡介借閱日期還書日期備注

字符型備注型日期型日期型備注型

4

—————圖2.7系統(tǒng)主要數(shù)據(jù)字典功需經(jīng)過以上詳細(xì)的用戶調(diào)查,在現(xiàn)行業(yè)務(wù)流程和數(shù)據(jù)分析的基礎(chǔ)上,基本可以確定系統(tǒng)設(shè)計必須達(dá)到的目標(biāo)。以下是圖書管理系統(tǒng)必須具備的功能:1.新進圖書的登記功能:對于購進的新書,系統(tǒng)必須具備圖書信息資料的錄入功能。2.圖書的查詢修改功能:當(dāng)圖書資料發(fā)生變化,如圖書丟失或有錯誤信息輸入時,則應(yīng)能夠及時對數(shù)據(jù)進行修改和補充。借閱的登記,歸還的登記功能:系統(tǒng)的主要功能之一,供本校學(xué)生借閱圖書、歸還圖書,并進行登記。學(xué)生信息的增加、刪除和修改功能:系統(tǒng)主要功能之一,建立學(xué)生信息,并對其進行維護。性能求為了保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效的運行,圖書管理系統(tǒng)應(yīng)該滿足以下的性能需求:1、系統(tǒng)處理的準(zhǔn)確性和及時性系統(tǒng)處理的準(zhǔn)確性和及時性是系統(tǒng)的必要性能。在系統(tǒng)設(shè)計和開發(fā)過程中,要充分考慮系統(tǒng)當(dāng)前和將來可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時間能夠滿足學(xué)校對信息處理的需求。2、系統(tǒng)的開放性和系統(tǒng)的可擴充性圖書管理系統(tǒng)在開發(fā)過程中,應(yīng)該充分考慮以后的可擴充性。例如用戶查詢的需求也會不斷的更新和完善。3、系統(tǒng)的易用性和易維護性圖書管理系統(tǒng)是直接面對使用人員的,而使用人員往往對計算機并不時非常熟悉。這就要求系統(tǒng)能夠提供良好的用戶接口,易用的人機交互界面。要實現(xiàn)這一點,就要求系統(tǒng)應(yīng)該盡量使用用戶熟悉的術(shù)語和中文信息的界面;針對用戶可能出現(xiàn)的使用問題,要提供足夠的在線幫助,縮短用戶對系統(tǒng)熟悉的過程。4、系統(tǒng)的標(biāo)準(zhǔn)性5系統(tǒng)在設(shè)計開發(fā)使用過程中都要涉及到很多計算機硬件、軟件。所有這些都要符合主流國際、國家和行業(yè)標(biāo)準(zhǔn)。5、系統(tǒng)的先進性目前計算系統(tǒng)的技術(shù)發(fā)展相當(dāng)快,做為圖書管理系統(tǒng)工程,在系統(tǒng)的生命周期盡量做到系統(tǒng)的先進,充分完成企業(yè)信息處理的要求而不至于落后。這一方面通過系統(tǒng)的開放性和可擴充性,不斷改善系統(tǒng)的功能完成。另一方面,在系統(tǒng)設(shè)計和開發(fā)的過程中,應(yīng)在考慮成本的基礎(chǔ)上盡量采用當(dāng)前主流并先進且有良好發(fā)展前途的產(chǎn)品。6、系統(tǒng)的響應(yīng)速度圖書管理系統(tǒng)系統(tǒng)在日常處理中的響應(yīng)速度為秒級,達(dá)到實時要求,以及時反饋信息。在進行統(tǒng)計分析時,根據(jù)所需數(shù)據(jù)量的不同而從秒級到分鐘,原則是保證操作人員不會因為速度問題而影響工作效率。需求定對于新買進的書籍,一定要進行基本的信息錄入。如:圖書名稱、作者姓名、出版社、類別等。對于新來的讀者也一樣要有基本的信息錄入工作,如:讀者編號、讀者姓名、性別、年齡、住址、電話。在系統(tǒng)的運行過程中,系統(tǒng)的日期輸入格式為。在應(yīng)用‘借書’窗體時,各個書名的輸入一定要和書庫中的書名保持一致。(5)用戶修改密碼時,只可以修改正在使用的用戶名的密碼,無法修改其他用戶的個人使用密碼。(6)在應(yīng)用各種查詢功能時,要確保輸入的信息與書庫當(dāng)中或者與讀者的信息完全一致,否則可能就會有查詢不到的可能性。第三章系統(tǒng)總體設(shè)計總設(shè)圖書管理系統(tǒng)功能模塊圖如圖3-16系

二)系統(tǒng)模塊設(shè)計

圖3-1系模塊圖用戶登錄模塊:已經(jīng)在本程序中注冊的用戶進入系統(tǒng),必須先進行登錄,否則無法進入。系統(tǒng)維護模塊:已經(jīng)進入本系統(tǒng)的用戶,可以在注冊其他的用戶,可以修改本用戶的密碼,也可以注銷這個用戶。退出本系統(tǒng)。詳細(xì)管理模塊:用戶可以在這里為讀者辦理借閱圖書、歸還圖書。瀏覽所有的圖書目錄,為圖書目錄增加、刪除,修改記錄;也可以瀏覽所有讀者的基本信息,對讀者信息的增加、刪除、修改等的一系列的操作。相關(guān)查詢模塊‘借閱查詢中用戶可以查詢出任意一個讀者的圖書借閱情況;而在‘圖書查詢’中,用戶可以查詢出書庫當(dāng)中的任意一本圖書的借閱情況。統(tǒng)計內(nèi)容模塊:在‘讀者借閱情況統(tǒng)計’中,用戶可以統(tǒng)計出所有的讀者的基本信息和他借閱圖書的次數(shù);而在‘圖書借閱情況統(tǒng)計’中,則可以統(tǒng)計出被讀者借閱過的圖書的借閱次數(shù)。關(guān)于模塊:次模塊中是關(guān)于本系統(tǒng)的基本信息。運環(huán)(一)開發(fā)環(huán)境硬件環(huán)境:奔騰,內(nèi)存128M以上,800x600及以上分辨率的顯示器。軟件環(huán)境:Windows9x/2000/NT/XP,Office2000,VisualBasic6.0(二)運行環(huán)境硬件環(huán)境:同開發(fā)環(huán)境。軟件環(huán)境:Windows9x/2000/NT7數(shù)據(jù)結(jié)構(gòu)設(shè)1.圖書信息表:包括圖書編號、圖書名稱、作者姓名、出版社、出版日期、單價和類別等字段。表3-1圖書息結(jié)序

字名

圖書編號圖書名稱作者姓名出版社出版日期單價類別

字符型字符型字符型字符型字符型字符型字符型

圖書入庫時自動生成圖書的價格圖書屬于那一個種類2.讀者信息表:包括讀者編號、讀者姓名、性別、年齡、住址、電話、備注等字段。表3-2讀者息序

字名

讀者編號讀者姓名性別年齡住址電話備注

字符型字符型字符型字符型字符型字符型字符型

讀者注冊時系統(tǒng)自動讀者的真實姓名讀者的家庭住址能聯(lián)系到讀者的電話關(guān)于讀者的任何信息3.借閱信息表:包括編號、圖書1、圖書2、圖書、借閱時間、還書時間等。表3-3借閱息序

字名

編號圖書圖書圖書借閱時間還書時間

字符型字符型字符型字符型字符型字符型

讀者的借閱編號讀者借閱的第一本圖讀者借閱的第二本圖讀者借閱的第三本圖讀者借閱圖書的時間讀者歸還圖書的時間4.讀者借閱信息表:包括讀者編號和借閱次數(shù)兩個字段。表3-4讀者閱息序

字名

讀者編號借閱次數(shù)

字符型字符型

讀者的借閱編號讀者借閱一次此值加5.圖書借閱信息表:包括圖書編號和借閱次數(shù)兩個字段。8表3-5圖書閱息序

字名

圖書編號借閱次數(shù)

字符型字符型

圖書的借閱編號圖書被借閱一次此值6.圖書借閱情況信息表:包括圖書編號和借閱情況兩個字段。表3-6圖書閱況息序

字名

圖書編號借閱情況

字符型字符型

圖書的借閱編號表示圖書是否被借出7.用戶表:包括用戶名和密碼兩個字段。表戶序

字名

用戶名密碼

字符型字符型

用戶注冊時的名登錄系統(tǒng)是的密碼3.4入出計本系統(tǒng)中的圖書入庫數(shù)據(jù)是根據(jù)購書單來錄入的,所以購書單即為現(xiàn)行系統(tǒng)的圖書進貨單。同表3-1。表3-1

圖書購貨單日期11/23/05

圖書名稱防雷技術(shù)

作者林海

出版社電子出版社

單價23.5

類別電子技術(shù)

總數(shù)8本系統(tǒng)報表輸出格式設(shè)計成圖3-1形式。9第四章詳細(xì)設(shè)計程流圖依據(jù)軟件工程的基本原理,詳細(xì)設(shè)計階段的根本任務(wù)是確定應(yīng)該怎樣具體實現(xiàn)所要求的系統(tǒng),也就是說,經(jīng)過這個階段的設(shè)計工作,應(yīng)該得出對目標(biāo)系統(tǒng)的精確描述,從而在系統(tǒng)實現(xiàn)階段可以把這個描述直接翻譯成用某種程序設(shè)計語言書寫的程序。具體來說就是把經(jīng)過總體設(shè)計得到的各個模塊詳細(xì)的加以描述。由于本系統(tǒng)采用支持面向?qū)ο蟮腣isualBasic6.0為開發(fā)工具VisualBasic6.0采用事件驅(qū)動的編程機制,所以在此給出軟件系統(tǒng)的主程序流程圖,如圖4.1所示。Yes

圖主程序流程圖根據(jù)以上主程序的流程圖我們可以得出下面的關(guān)于各個模塊的程序流程圖如圖所示。10開始管理員登陸是否合法選擇

No學(xué)生信息表操作

圖書信息表操作

查詢信息

借閱圖書

歸還圖書

退出選擇

選擇查詢方式

讀入書號

讀入書號已借出

超期退出加除修改

書名書號作出版

No

NoNo

讀入學(xué)號

罰款

確認(rèn)更新

輸入所需記錄要查找記錄

確認(rèn)更新數(shù)據(jù)庫

No

更新數(shù)據(jù)庫繼續(xù)顯示記錄

No

繼續(xù)

繼續(xù)

No管理員注銷結(jié)束圖程流程圖程輸輸描主模塊1.輸入項目:操作系統(tǒng)傳遞至的各種消息以及用戶的輸入數(shù)據(jù)。2.輸出項目:用戶界面顯示

。11學(xué)生管模塊1.輸入項目:與學(xué)生管理操作子對話框有關(guān)的用戶輸入及系統(tǒng)消息。2.輸出項目:操作結(jié)果顯示圖書管模塊1.輸入項目:用戶口令。2.輸出項目:相應(yīng)的界面。閱管理模塊

。1.輸入項目:學(xué)生學(xué)號、圖書編號。2.輸出項目:學(xué)生信息、相關(guān)借書信息歸還管模塊輸入項目:圖書編號。輸出項目:相關(guān)學(xué)生信息。管理措設(shè)置模塊

。輸入項目:用戶的輸入。輸出項目:根據(jù)用戶的輸入顯示相應(yīng)的對話框。程接描外部接按Windows用軟件用戶界面的規(guī)范來設(shè)計,使用以對話框為主的用戶界面,便于用戶使用。內(nèi)部接模塊間接口采用數(shù)據(jù)耦合方式,通過參數(shù)表傳送數(shù)據(jù),交換信息。12數(shù)庫設(shè)數(shù)據(jù)庫邏輯設(shè)計在需求分析階段已完成該系統(tǒng)所有的數(shù)據(jù)分析。根據(jù)該階段所建立的概念模型,已經(jīng)得出滿足系統(tǒng)設(shè)計要求的幾個關(guān)系描述,該階段的主要工作就是把前一階段的成果轉(zhuǎn)化為具體的數(shù)據(jù)庫。下面給出概念結(jié)構(gòu)設(shè)計得圖如圖4.3所示。性入時圖書ISBN號圖書名稱圖書編號圖書數(shù)量

學(xué)生畢時①圖書圖書類別②管理員

學(xué)姓學(xué)學(xué)圖書作者圖書出版社圖書編號③分E-R圖13管理員學(xué)管理

圖管理N

M

N

N學(xué)生

圖書M

借總E-R圖

N圖4.3概念結(jié)構(gòu)設(shè)計E-R圖實體:圖書(圖書編號,書名,作者,出版社,定價,圖書類別,圖ISBN號,圖書數(shù)量)學(xué)生(學(xué)生學(xué)號,學(xué)生姓名,性別,入校時間,畢業(yè)時間)管理員(編號,名字,密碼,加入時間)聯(lián)系:學(xué)生管理(圖書管理員,學(xué)生姓名,學(xué)生密碼)圖書管理(圖書管理員,借閱號,歸還號)查詢(圖書編號,借閱證號,圖書管理員,學(xué)生)第五章編碼實現(xiàn)程編登陸界面如圖5.1所示。圖5.1登陸界面14程序代碼如下:主界面如圖5.2所示

。圖程主界面操作員管理界面如圖5.3所示。15圖5.3操作員管理界面學(xué)生登記界面如圖5.4所示。圖學(xué)信息登記界面16圖書信息登記界面如圖5.5示。圖5.5圖書信息登記界面圖書查詢界面如圖5.6所示。圖5.6圖書信息查詢界面17第六章測試分析報告有兩種基本方法可以用來標(biāo)識測試用例,即功能測試(黑盒測試)和結(jié)構(gòu)測試(白盒測試本次測試我主要采用了功能測試。功能測試的基本觀點是,任何程序都可以看作是將輸入定義域取值映射到輸出值域的函數(shù)。測計和點軟件測試的本質(zhì)是針對要測試的內(nèi)容確定一組測試用例。在討論之前,我先把要測試各個模塊的計劃和要點列出:主模塊試要點數(shù)據(jù)庫連接情況:正常情況,數(shù)據(jù)庫文件缺少,外部系統(tǒng)異常。系統(tǒng)設(shè)置獲取:正常情況,外部系統(tǒng)異常。對用戶輸入的響應(yīng):合法輸入,能夠正常調(diào)用子模塊;非法輸入,系統(tǒng)能否辨別,并作出響應(yīng)(提出警告;子模塊的異常狀況,系統(tǒng)能否及時做出響應(yīng)。借閱模測試要點模塊正常運行流程用戶輸入數(shù)據(jù)檢查(學(xué)生學(xué)號、圖書書號),包括數(shù)據(jù)合理性檢查,以及合法性檢查數(shù)據(jù)庫操作數(shù)據(jù)庫連接異常時的響應(yīng)情況學(xué)生查模塊測試要點數(shù)據(jù)庫連接正常時輸入合理合法參數(shù)輸入?yún)?shù)不合理輸入?yún)?shù)不合法數(shù)據(jù)庫連接異常;數(shù)據(jù)庫數(shù)據(jù)異常(讀者姓名為空圖書查模塊測試要點數(shù)據(jù)庫連接正常數(shù)據(jù)庫數(shù)據(jù)正常輸入的書號合理合法18輸入的書號不合理輸入的書號不合法數(shù)據(jù)庫數(shù)據(jù)異常數(shù)據(jù)庫連接異常圖書歸模塊測試要點模塊正常工作流程對輸入的查驗,包括輸入值的合法性與合理性檢驗數(shù)據(jù)庫連接異常能否做出適當(dāng)處理數(shù)據(jù)庫數(shù)據(jù)異常時能否判斷并給予適當(dāng)處理測用測試用例是為了特定目的(如考察特定程序路徑或驗證是否符合特定的需求)而設(shè)計的測試數(shù)據(jù)及與之相關(guān)的測試規(guī)程的一個特定的集合,或稱為有效地發(fā)現(xiàn)軟件缺陷的最小測試執(zhí)行單元。根據(jù)上一節(jié)給出的測試要點,又因為測試是不可能窮舉的。所以我們采用等價劃分法來進行對圖書管理系統(tǒng)的測試。它將不能窮舉的測試過程進行合理分類,從而保證設(shè)計出來的測試用例具有代表性和完整性。主模塊試用例表6-1主模塊測試用例字段名稱標(biāo)識符測試項輸入標(biāo)準(zhǔn)輸出標(biāo)準(zhǔn)

描述C1主模塊中的“系統(tǒng)”菜單欄務(wù)”菜單欄的功能測試打開主模塊,沒有任何輸入字符,點擊相應(yīng)的菜單欄項目。在數(shù)據(jù)庫文件缺少的情況下,打開主模塊。模塊未做任何操作,單擊“系統(tǒng)”|退出”命令,能正常退出,無提示信息。在打開相應(yīng)的子窗體時,未做任何操作,單擊“系統(tǒng)”|“退出”命令,能正常退出,無提示信息。在打開相應(yīng)的子窗體時做相關(guān)的增刪或修改操作保存單“系統(tǒng)退出命令提“修改信息未保存存修改嗎?單“保存修改,正常退出,單擊“No”,保存修改,并退出。借閱模測試用例字段名稱

表6-2借閱模塊測試用例描述19標(biāo)識符測試項輸入標(biāo)準(zhǔn)輸出標(biāo)準(zhǔn)

C2借閱模塊的功能測試打開借閱模塊,沒有任何輸入字符,點擊相應(yīng)的項目。輸入一些正確的學(xué)號、圖書號、借閱號,點擊“登記輸入一些非法的學(xué)號、圖書號、借閱號,點擊“登記1.模塊未做任何操作,單擊“退出”命令,能正常退出,無提示信息。2.在打開借閱模塊,做相關(guān)的“借出”操作,未保存,單擊“退出”命令,提示“修改信息未保存,保存修改嗎?”單擊存修改,正常退出,單擊“No”,不保存修改,并退出。學(xué)生查模塊測試用例表6-3學(xué)生查詢模塊測試用例字段名稱標(biāo)識符測試項輸入標(biāo)準(zhǔn)輸出標(biāo)準(zhǔn)

描述C3學(xué)生查詢模塊的功能測試打開學(xué)生查詢模塊,沒有任何輸入字符,點擊相應(yīng)的項目。輸入一些正確的學(xué)號、姓名,點擊“確定輸入一些非法的學(xué)號、姓名,點擊“確定在選擇“按姓名查詢”單選時,輸入學(xué)號,點擊“確定在選擇“按學(xué)號查詢”單選時,輸入姓名,點擊“確定1.模塊未做任何操作,單擊“退出”命令,能正常退出,無提示信息。圖書查模塊測試用例表6-4圖書查詢模塊測試用例字段名稱標(biāo)識符測試項輸入標(biāo)準(zhǔn)輸出標(biāo)準(zhǔn)

描述C4圖書查詢模塊的功能測試打開圖書查詢模塊,沒有任何輸入字符,點擊相應(yīng)的項目。輸入一些正確的書名、作者、出版社,點擊“確定輸入一些非法的書名、作者、出版社,點擊“確定在選擇“按書名查詢”單選時,輸入作者或出版社,點擊“確定5.在選擇“按作者查詢”單選時,輸入書名或出版社,點擊“確定6.在選擇“按出版社查詢”單選時,輸入書名或作者,點擊“確定1.模塊未做任何操作,單擊“退出”命令,能正常退出,無提示信息。圖書歸模塊測試用例表6-5圖書歸還模塊測試用例字段名稱

描述20標(biāo)識符測試項輸入標(biāo)準(zhǔn)輸出標(biāo)準(zhǔn)

C5圖書歸還模塊的功能測試打開歸還模塊,沒有任何輸入字符,點擊相應(yīng)的項目。輸入一些正確的學(xué)號、圖書號,點擊“登記輸入一些非法的學(xué)號、圖書號,點擊“登記1.模塊未做任何操作,單擊“退出”命令,能正常退出,無提示信息。2.在打開借閱模塊,做相關(guān)的“借出”操作,未保存,單擊“退出”命令,提示“修改信息未保存,保存修改嗎?”單擊存修改,正常退出,單擊“No”,不保存修改,并退出。測結(jié)及論測試的果我們按照6.2節(jié)中給出的測試用例的順序來給出相應(yīng)的測試結(jié)果。表6-6主模塊測試結(jié)果標(biāo)識符C1測試結(jié)果正常操作無任何異常處理出現(xiàn)與預(yù)期的偏差無說明的問題主模塊通過了功能測試表6-7借閱模塊測試結(jié)果標(biāo)識符C2測試結(jié)果與預(yù)期的偏差

在輸入借閱號但是未輸入圖書號或?qū)W生學(xué)號時,系統(tǒng)也能給出正確的借閱成功信息應(yīng)該在借閱圖書時,輸入完整的借閱信息,包括借閱號、圖書號、學(xué)生學(xué)號和借閱時間說明的問題圖書借閱模塊的借閱功能有待改進表6-8學(xué)生查詢模塊測試結(jié)果標(biāo)識符C3測試結(jié)果與預(yù)期的偏差說明的問題

在單選“按姓名查詢”時,輸入學(xué)生學(xué)號也能查詢到學(xué)生的相關(guān)信息。在單選“按學(xué)號查詢”時,輸入學(xué)生姓名也能查詢到學(xué)生的相關(guān)信息。應(yīng)該在單選按“姓名”或“學(xué)號”查,只能通過選中的方式查詢學(xué)生的相關(guān)信息。學(xué)生查詢模塊的借閱功能有待改進表6-9圖書查詢模塊測試結(jié)果標(biāo)識符C4測試結(jié)果與預(yù)期的偏差說明的問題

正常操作無任何異常處理出現(xiàn)無圖書查詢模塊通過了功能測試表6-10圖書歸還模塊測試結(jié)果21標(biāo)識符測試結(jié)果與預(yù)期的偏差說明的問題

C5正常操作無任何異常處理出現(xiàn)無圖書歸還模塊通過了功能測試缺陷分及改進本部分對上述缺陷和其他收集數(shù)據(jù)進行綜合分析1.缺陷綜合分析缺陷發(fā)現(xiàn)效率=缺陷總數(shù)/執(zhí)行測試用時=2/(5天)=0.4/天用例質(zhì)量=缺陷總數(shù)/測試用例總數(shù)×100%=2/5×100%=40%2.對缺陷的改進在測試用例C2和C3中,發(fā)現(xiàn)的缺陷,通過對相關(guān)功能編碼的改進,已經(jīng)使測試的結(jié)果和預(yù)期達(dá)到的效果一致。測試結(jié).測試目標(biāo)完成.測試已經(jīng)通過.可以進入下一階段項目目標(biāo)22總

結(jié)這次軟件工程課程設(shè)計要采用VisualBasic為前臺開發(fā)工具MicrosoftSQLSevere2000為后臺數(shù)據(jù)庫,結(jié)合軟件工程設(shè)計和數(shù)據(jù)庫編程的有關(guān)知識,開發(fā)了這個圖書管理系統(tǒng)。通過這次軟件工程課程設(shè)計,我對于軟件工程設(shè)計的相關(guān)步驟和流程有了更深刻的理解,熟悉并掌握了MicrosoftSQLSevere2000和VB6.0的數(shù)據(jù)庫使用,同時,我也發(fā)現(xiàn)自己對于軟件工程設(shè)計和數(shù)據(jù)庫設(shè)計的知識掌握的還不夠,設(shè)計和編程能力還有待于進一步提高。這次課程設(shè)計給了我一個鍛煉自己,強化專業(yè)知識的機會,通過這次課程設(shè)計,我也得以一窺軟件工程設(shè)計的廣袤天地,我相信,只要認(rèn)真學(xué)習(xí),多借鑒別人的經(jīng)驗,多思考,多實踐,就一定能夠成為一個合格的軟件設(shè)計人員,能夠翱翔在軟件開發(fā)的天地。致謝首先感謝學(xué)院給我們提供良好的學(xué)習(xí)設(shè)備,學(xué)習(xí)和生活環(huán)境,其次感謝老師三年來對我們的精培育,我在公司中學(xué)到了書本中所學(xué)不到的知識,并掌握了很多學(xué)習(xí),工作方法。三年的大學(xué)生馬上就要結(jié)束了,三年的時間我學(xué)到了很多的知識懂了很多道理知道如何與人溝通、交流,讓自己盡快地適應(yīng)新的環(huán)境。開發(fā)一個項目,需要的是團隊的力量,團隊的合作,溝通.在開發(fā)此項目的過程遇到很多的問題,如:界面的設(shè)計、編碼問題、用戶需求問題等。在開發(fā)的過程中我學(xué)習(xí)到了書本上學(xué)不到的知識。讓我懂得了實踐是檢驗真理的惟一標(biāo)準(zhǔn)的真正涵義。23參考文獻[1]張海藩.軟件工程導(dǎo)論(第四版)北京:清華大學(xué)出版社,2003年12[2]朱少民.軟件測試方法和技術(shù)北京:清華大學(xué)出版社,2005年7月[3]PaulC.Jorgensen.軟件測試(第二版).北京:機械工業(yè)出版社,年2月[4]郭勝,夏邦貴.VisualBasic數(shù)據(jù)庫開發(fā)入門與范例解析北京:機械工業(yè)出版社,2004年4月[5瑞新.VisualBasic管理信息系統(tǒng)開發(fā)畢業(yè)設(shè)計指導(dǎo)及實例.北京械工業(yè)出版社,2005年3月[6]魏志強、王忠華、何敏、喬林?jǐn)?shù)據(jù)庫應(yīng)用實務(wù)篇國鐵道出版社2000[7]齊治昌、譚慶平、寧洪件工程等教育出版社年第一版[8]韓強SQLSERVER2000程序員手冊機械工業(yè)出版社2000[9]薩師煊、王珊據(jù)庫系統(tǒng)概論等教育出版社2000年第三版[10]李新樂代圖書館管理目文獻出版社1989[11]譚浩強程序設(shè)計(第三版大學(xué)出版社2005年1月124附錄FunctionCheck_Password(ByValUserNameAsString,ByValUserPasswordAsString)AsIntegerOnErrorGoToER2:IfConnectToServer=TrueThenSetobjRs=NewRecordsetStrSql="selectcOperatorPasswordfromwhere&Trim(cboName.Text)&"'"GetDataStrSql'ReferencefunctiontogetdataIfobjRs.EOFThenCheck_Password=0'ThisOperatornotexistElseIftxtPassword.Text<>Trim(objRs.Fields("cOperatorPassword").Value)ThenCheck_Password=1'passworderrorElseCheck_Password=2'passwordokCurrentOpname=Trim(cboName.Text)CurrentOppassword=objRs.Fields("cOperatorPassword").Value'HerecansaveaoperatorgradeforexpandEndIfEndIfobjCon.CloseExitFunctionER2:MsgBoxErr.DescriptionCheck_Password=255EndIfEndFunctionPrivateSubcmdCancel_Click()UnloadMeEndEndSubPrivateSubcmdOK_Click()DimintCheckAsInteger'StaticintLogTimestosaveuserlogintimesStaticintLogTimesAsIntegerintLogTimes=intLogTimes+1'SavelogintimesIfintLogTimes>MaxLogTimesThen'OverallowedlogintimesthenlistinformationMsgBox"Youhaveoverallowedloghintimes,loginfailure!",vbCritical,"LoginError"25UnloadMeElseintCheck=Check_Password(Trim(txtPassword),Trim(cboName))SelectCaseintCheckCase0MsgBox"Yourarenotasystemuser!",vbInformation+vbOKOnly,"LoginError"Case1MsgBox"Passworderror,pleasecheckyourpassword!",vbInformation+vbOKOnly,"LoginError"Case2UnloadMeIfCurrentOpname="Admin"AndCurrentOppassword="1"ThenMainWin.mnuOp.Visible=TrueElseMainWin.mnuOp.Visible=FalseEndIfoadMainWinainWin.ShowEndSelectEndIfEndSubptionExplicitrivateSubMDIForm_Activate()IfCurrentOpname="Admin"ThentatusBar2.Panels(1).Text="理員:"&CurrentOpnameToolbar1.Buttons(1).Visible=Trueoolbar1.Buttons(2).Visible=TrueElsetatusBar2.Panels(1).Text="作員:"&CurrentOpnameToolbar1.Buttons(1).Visible=Falseoolbar1.Buttons(2).Visible=FalseEndIfEndSubPrivateSubMDIForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=vbRightButtonThenPopupMenumnuOperation'DesignpopupmenuEndIfEndSubPrivateSubMDIForm_Unload(CancelAsInteger)CheckConnect'Referencefunctiontomakeobjconbreakifconnectionisopen26EndSubPrivateSubmnuAbout_Click()frmAbout.ShowEndSubPrivateSubmnuBookQuery_Click()CheckConnect'ReferencefunctiontomakeobjconbreakifconnectionisopenLoadfrmBookQueryfrmBookQuery.ShowEndSubPrivateSubmnuBookRegist_Click()CheckConnect'ReferencefunctiontomakeobjconbreakifconnectionisopenLoadfrmBookRegfrmBookReg.ShowEndSubPrivateSubmnuBorrowQuery_Click()CheckConnect'ReferencefunctiontomakeobjconbreakifconnectionisopenLoadfrmReadQueryfrmReadQuery.ShowEndSubPrivateSubmnuExit_Click()CheckConnect'ReferencefunctiontomakeobjconbreakifconnectionisopenUnloadMeEndEndSubPrivateSubmnuReLogin_Click()CheckConnect'ReferencefunctiontomakeobjconbreakifconnectionisopenUnloadMeLoadfrmLoginfrmLogin.ShowEndSubPrivateSubmnuVipQuery_Click()CheckConnect'ReferencefunctiontomakeobjconbreakifconnectionisopenLoadfrmVipQueryfrmVipQuery.ShowEndSubPrivateSubmnuVipRegist_Click()CheckConnect'ReferencefunctiontomakeobjconbreakifconnectionisopenLoadfrmVipRegfrmVipReg.ShowEndSub27PrivateSubmunReadRegist_Click()CheckConnect'ReferencefunctiontomakeobjconbreakifconnectionisopenLoadfrmReadRegistfrmReadRegist.ShowEndSubPrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)SelectCaseButton.KeyCase"operatorReg"CheckConnect'ReferencefunctiontomakeobjconbreakisopenLoadfrmAdminfrmAdmin.ShowCase"vipReg"CheckConnect'ReferencefunctiontomakeobjconbreakisopenLoadfrmVipRegfrmVipReg.ShowCase"vipQuery"CheckConnect'ReferencefunctiontomakeobjconbreakisopenLoadfrmVipQueryfrmVipQuery.ShowCase"BookReg"CheckConnect'ReferencefunctiontomakeobjconbreakisopenLoadfrmBookRegfrmBookReg.ShowCase"bookQuery"CheckConnect'ReferencefunctiontomakeobjconbreakisopenLoadfrmBookQueryfrmBookQuery.ShowCase"readReg"CheckConnect'ReferencefunctiontomakeobjconbreakisopenLoadfrmReadRegistfrmReadRegist.ShowCase"readQuery"CheckConnect'ReferencefunctiontomakeobjconbreakisopenLoadfrmReadQueryfrmReadQuery.ShowEndSelectEndSubOptionExplicitSubSetTextEmpty()'ThisfunctionissetalltexttoemptytxtOpID.Text=""txtOpName.Text=""txtOpPwd.Text=""28cboOpGrade.Text=""txtOpAddTime.Text=""EndSubSubRefreshOperator()'ThisfunctionistoRefreshtexttxtOpID.Text=objRs.Fields(0).ValuetxtOpName.Text=objRs.Fields(1).ValuetxtOpPwd.Text=objRs.Fields(2).ValuecboOpGrade.Text=objRs.Fields(3).Value'txtOpAddTime.Text=objRs.Fields(4).ValueEndSubPrivateSubcmdAdd_Click()txtOpID.Enabled=True'Youdon'tchangedatagriduntillyouadddatafinishdgdOp.Enabled=FalseIfcmdAdd.Caption="加"ThencmdAdd.Caption="定"SetTextEmpty'referencesettextemptyfounctiontosetemptycmdDel.Enabled=FalsecmdModify.Enabled=FalsecmdRefresh.Enabled=FalsetxtOpID.SetFocusElseIfTrim(txtOpName.Text)=""ThenMsgBox"Operatornamemustnotnull,pleaseinputoperatorname!",vbInformation+vbOKOnlytxtOpName.SetFocusExitSubElseIfTrim(txtOpID.Text)=""ThenMsgBox"OperatorIDmustnotnull,pleaseinputoperatorID!",vbInformation+vbOKOnlytxtOpID.SetFocusExitSubElseIfTrim(txtOpPwd.Text)=""ThenMsgBox"Operatorpasswordmustnotnull,pleaseinputoperatorpassword!",vbInformation+vbOKOnlytxtOpPwd.SetFocusExitSubElseWithobjRscheckAddNew=True.Filter="cOperatorID='"&Trim(txtOpID.Text)&"'"If.RecordCount>0ThenMsgBox"Thisoperatorhasbeenexist!"txtOpID.Text=""29txtOpID.SetFocus.Filter="cOperatorID<>''"cmdRefresh.Value=True'ToexecuterrefreshoncecheckAddNew=FalsecmdDel.Enabled=TruecmdModify.Enabled=TruecmdAdd.Caption="加(&A)"txtOpID.Enabled=FalseRefresh.Enabled=TrueOp.Enabled=TruecheckAddNew=FalseExitSubEndIfcheckAddNew=True.AddNew.Fields(0).Value=Trim(txtOpID.Text).Fields(1).Value=Trim(txtOpName.Text).Fields(2).Value=Trim(txtOpPwd.Text).Fields(3).Value=Trim(cboOpGrade.Text).Fields(4).Value=Trim(txtOpAddTime.Text).UpdateMsgBox"Operatoraddsuccess!",vbInformation+vbOKOnly.Filter="cOperatorID<>''"cmdRefresh.Value=True'ToexecuterrefreshonceEndWithcheckAddNew=False'----TherewillreferenceafounctiontosetemptytxtOpID.Enabled=FalsecmdDel.Enabled=TruecmdModify.Enabled=TruecmdRefresh.Enabled=TrueAdd.Caption="加"Op.Enabled=True'YoucanusedatagridafteraddfinishEndIfEndIfEndSubPrivateSubcmdDel_Click()If=TruetoifisnullIfNotobjRs.EOFAndobjRs.RecordCount>0ThenIfMsgBox("The:"&txtOpName&"'sdatawillcontinuevbYesNo+vbInformation)=vbYesThenobjRs.DeleteEndIf30EndIfEndSubPrivateSubcmdModify_Click()If=TrueExittoisnulldgdOp.Enabled=FalseIftxtOpID.Text<>objRs.Fields(0).ValueThenExitSub'TocheckoperatorIDIfcmdModify.Caption="改"ThencmdModify.Caption="定"cmdDel.Enabled=FalsecmdAdd.Enabled=FalseElseWithobjRs.Fields(0).Value=Trim(txtOpID.Text).Fields(1).Value=Trim(txtOpName.Text).Fields(2).Value=Trim(txtOpPwd.Text).Fields(3).Value=Trim(cboOpGrade.Text).UpdateEndWithcmdModify.Caption="改"cmdDel.Enabled=TrueAdd.Enabled=TrueOp.Enabled=TrueEndIfEndSubPrivateSubcmdExit_Click()UnloadMeEndSubPrivateSubcmdRefresh_Click()RefreshOperator'ReferencefunctionistoRefreshtextEndSubPrivateSubdgdOp_RowColChange(LastRowAsVariant,ByValLastColAsInteger)IfcheckAddNew=TrueThenExitSubcmdRefresh.Value=TrueEndSubPrivateSubForm_Activate()FormMiddlefrmAdmin'ReferencefunctiontomakeforminMDIForm'mddilecboOpGrade.ListIndex=1IfConnectToServer=TrueThenSetobjRs=NewADODB.RecordsetStrSql="select*fromtOperators"GetDataStrSql'ReferencefunctiontogetdataSetdgdOp.DataSource=objRs31cmdRefresh.Value=TrueEndIfEndSubPrivateSubtxtOpAddTime_KeyPress(KeyAsciiAsInteger)'CheckInputNum'ReferencefunctiontocheckinputIfNot(KeyAscii>=vbKey0AndKeyAscii<=vbKey9_OrKeyAscii=vbKeyBack_OrKeyAscii=Asc("-"))ThenKeyAscii=0EndIfEndSubPrivateSubtxtOpID_KeyPress(KeyAsciiAsInteger)IfNot(KeyAscii>=vbKey0AndKeyAscii<=vbKey9_OrKeyAscii=vbKeyBack)ThenKeyAscii=0EndIfEndSubPrivateSubcmdAdd_Click()dgdVip.Enabled=FalsecmdRefresh.Enabled=FalsetxtVipID.Enabled=TrueIfcmdAdd.Caption="加(&A)"ThencmdAdd.Caption="定"txtVipID.SetFocusSetTextEmpty'ReferenceafounctiontosetemptycmdDel.Enabled=FalsecmdModify.Enabled=FalsecmdRefresh.Enabled=FalseElse'ToProgressoptionDimvipsexAsStringIfVipMale.Value=TrueThenvipsex="男ElseIfVipFemale.Value=TrueThenvipsex=""Elsevipsex="Null"EndIfIftxtVipName.Text=""ThenMsgBox"Vipnamemustnotnull!"txtVipName.SetFocusExitSubElseIftxtVipID.Text=""Then32MsgBox"VipIDmustnotnull!"txtVipID.SetFocusExitSubElseWithobjRscheckAddNew=True.Filter="cVipID='"&Trim(txtVipID.Text)&"'"If.RecordCount>0ThenMsgBox"Thisviphasbeenexist!"txtVipID.Text=""txtVipID.SetFocus.Filter="cVipID<>''"cmdRefresh.Value=TruecheckAddNew=FalsecmdDel.Enabled=TruecmdModify.Enabled=TruecmdAdd.Caption="加(&A)"txtVipID.Enabled=FalseRefresh.Enabled=TrueVip.Enabled=TruecheckAddNew=FalseExitSubEndIfcheckAddNew=True.AddNew.Fields(0).Value=Trim(txtVipID).Fields(1).Value=Trim(txtVipName).Fields(2)=vipsex.Fields(3)=Trim(txtVipID_card.Text).Fields(4)=Trim(txtVipPhone.Text).Fields(5)=Trim(txtVipAddress.Text).Fields(6)=Trim(txtVipAddTime.Text).Fields(7)=Trim(txtVipEndTime.Text).UpdateMsgBox"Vipaddsuccess!",vbInformation+vbOKOnly.Filter="cVipID<>''"cmdRefresh.Value=TrueEndWithcheckAddNew=FalsecmdDel.Enabled=TruecmdModify.Enabled=TruecmdAdd.Caption="加(&A)"txtVipID.Enabled=FalsecmdRefresh.Enabled=True33dgdVip.Enabled=TrueEndIfEndIfEndSubPrivateSubcmdClose_Click()UnloadMeEndSubPrivateSubcmdDel_Click()If=TrueifisemptyCheckConnect'TobreakobjrsifitisopenedIfConnectToServer=TrueThenSetobjRs=NewADODB.RecordsetStrSql="select*fromtBorrowwherecVipID='"&Trim(txtVipID.Text)&"'andcReturnTime=''"'"GetDataStrSql'ReferencefunctiontogetdataIfobjRs.RecordCount>0ThenMsgBox"Heborrowedbooksyoudon'tdeletethisvip!",vbInformation+vbOKOnlyCheckConnect'TobreakobjrsifitisopenedIfConnectToServer=TrueThenSetobjRs=NewADODB.RecordsetStrSql="select*fromtvip"GetDataStrSql'ReferencefuctiontogetdataSetdgdVip.DataSource=objRscmdRefresh.Value=True'ExectuerefreshorderlistdataformloadColNamechange'ReferencefuctiontochangecolumnsnametochineseEndIfElseIf&"'ssurevbYesNo+vbInformation)=vbYesThenStrSql="deletefromtVipwherecVipID='"&Trim(txtVipID.Text)&"'"objCon.ExecuteStrSqlCheckConnect'TobreakobjrsifitisopenedIfConnectToServer=TrueThenSetobjRs=NewADODB.RecordsetStrSql="select*fromtvip"GetDataStrSql'ReferencefunctioninordertogetdataSetdgdVip.DataSource=objRscmdRefresh.Value='ExectuerefreshinordertodatawhenformloadColNamechange'Referencefuctiontochangecolumnsnameto34chineseEndIfEndIfCheckConnect'TobreakobjrsifitisopenedIfConnectToServer=TrueThenSetobjRs=NewADODB.RecordsetStrSql="select*fromtvip"GetDataStrSql'ReferencefuctiontogetdataSetdgdVip.DataSource=objRscmdRefresh.Value=True'ExectuerefreshorderlistdataformloadColNamechange'ReferencefuctiontochangecolumnsnametochineseEndIfEndIfEndIfEndSubPrivateSubcmdModify_Click()If=TruetoisisemptyIf<>Trim(objRs.Fields(0).Value)ThenvipIDIfcmdModify.Caption="改(&M)"ThencmdModify.Caption="定"cmdDel.Enabled=FalsecmdAdd.Enabled=FalsecmdRefresh.Enabled=FalseElseIfMsgBox("Areyousuretomodifythisrecord",vbYesNo+vbInformation)=vbYesThenWithobjRsIfNot.EOFAnd.RecordCount>0Then.Fields(0).Value=Trim(txtVipID.Text).Fields(1).Value=Trim(txtVipName.Text)'.Fields(2)=vipsex.Fields(3)=Trim(txtVipID_card.Text).Fields(4)=Trim(txtVipPhone.Text).Fields(5)=Trim(txtVipAddress.Text).Fields(6)=Trim(txtVipAddTime.Text).Fields(7)=Trim(txtVipEndTime.Text).UpdateEndIfEndWithcmdModify.Caption="改(&M)"cmdDel.Enabled=True35cmdAdd.Enabled=TruecmdRefresh.Enabled=TrueEndIfEndIfEndSubPrivateSubcmdRefresh_Click()RefreshVip'ReferencerefreshvipfunctiontorefreshEndSubPrivateSubdgdVip_RowColChange(LastRowAsVariant,ByValLastColAsInteger)IfcheckAddNew=TrueThenExitSubcmdRefresh.Value=TrueEndSubPrivateSubForm_Activate()FormMiddlefrmVipReg'ReferencefunctiontomakeforminMDIForm'mddileIfConnectToServer=TrueThenSetobjRs=NewADODB.RecordsetStrSql="select*fromtvip"GetDataStrSql'ReferencefunctioninordertogetdataSetdgdVip.DataSource=objRscmdRefresh.Value=True'ExectuerefreshinordertolistdatawhenformloadColNamechange'ReferencefuctiontochangecolumnsnametochineseEndIfEndSubPrivateSubcmdQuery_Click()CheckConnect'IfobjRsisopenthencloseitIfConnectToServer=TrueThenSetobjRs=NewADODB.RecordsetIfoptCheck(0).Value=TrueThen'ThisischeckifyourquerybyisnullIfTrim(txtbookID.Text)=""ThenMsgBox"PleaseinputbookIDinordertoquery!",vbInformation+vbOKOnlytxtbookID.SetFocusExitSubEndIfStrSql="select*fromtBookswherecBooksID='"&Trim(txtbookID)&"'"GetDataStrSql'ReverencefunctiontogerdataIfobjRs.RecordCount=0ThenMsgBox"Thisbookdonotexist,pleaseanotherIDorchoose36anotherqueryway!",vbInformation+vbOKOnlytxtbookID.Text=""optCheck(0).Value=FalseEnabledSet'ReferencefunctiontosetcheckboxenabledCheckConnect'ReferencefunctionifobjrsisopenthencloseitExitSubEndIfoptCheck(0).Value=FalseElseIfoptCheck(1).Value=TrueThen'ThisischeckifyourquerywayisnullIfTrim(txtBookName.Text)=""ThenMsgBox"Pleaseinputbooknameinordertoquery!",vbInformation+vbOKOnlytxtBookName.SetFocusExitSubEnd

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論