版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGEPAGEI山東職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)題目:圖書(shū)管理系統(tǒng)系別:信息工程系專業(yè):班級(jí):學(xué)生姓名:指導(dǎo)教師:完成日期:山東職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)任務(wù)書(shū)班級(jí)學(xué)生姓名指導(dǎo)教師設(shè)計(jì)(論文)題目圖書(shū)管理系統(tǒng)主要研究?jī)?nèi)容數(shù)據(jù)庫(kù)的設(shè)計(jì)原理軟件工程的基本觀念系統(tǒng)設(shè)計(jì)的基本流程系統(tǒng)設(shè)計(jì)的基本思想系統(tǒng)的安全性主要技術(shù)指標(biāo)或研究目標(biāo)軟件工程的設(shè)計(jì)過(guò)程系統(tǒng)框架規(guī)劃數(shù)據(jù)流程圖、數(shù)據(jù)字典、E-R圖前臺(tái)界面設(shè)計(jì)后臺(tái)數(shù)據(jù)庫(kù)設(shè)計(jì)系統(tǒng)功能的實(shí)現(xiàn)系統(tǒng)安全性的實(shí)現(xiàn)基本要求按照軟件工程中結(jié)構(gòu)化生命周期開(kāi)發(fā)方法開(kāi)發(fā)系統(tǒng)有完整的系統(tǒng)功能結(jié)構(gòu)圖、數(shù)據(jù)流程圖、數(shù)據(jù)字典擁有完善的后臺(tái)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的結(jié)構(gòu)(即字段)根據(jù)各自單位的實(shí)際情況自己確定(至少庫(kù)中有一表)。具備各項(xiàng)管理功能,至少應(yīng)包括信息錄入、修改、查找、刪除、統(tǒng)計(jì)、打印等功能。保證系統(tǒng)基本安全性的實(shí)現(xiàn)界面要求美觀、實(shí)用系統(tǒng)能夠脫離制作軟件環(huán)境運(yùn)行主要參考資料及文獻(xiàn)[1]張海藩.軟件工程導(dǎo)論(第四版).北京:清華大學(xué)出版社[2]朱少民.軟件測(cè)試方法和技術(shù).北京:清華大學(xué)出版社[3]PaulC.Jorgensen.軟件測(cè)試(第二版).北京:機(jī)械工業(yè)出版社[4]郭勝,夏邦貴.VisualBasic數(shù)據(jù)庫(kù)開(kāi)發(fā)入門與范例解析.北京:機(jī)械工業(yè)出版社[5]劉瑞新.VisualBasic管理信息系統(tǒng)開(kāi)發(fā)畢業(yè)設(shè)計(jì)指導(dǎo)及實(shí)例.北京:機(jī)械工業(yè)出版社[6]魏志強(qiáng)、王忠華、何敏、喬林,《數(shù)據(jù)庫(kù)應(yīng)用實(shí)務(wù)篇》,中國(guó)鐵道出版社[7]薩師煊、王珊,《數(shù)據(jù)庫(kù)系統(tǒng)概論》,高等教育出版社2000年第三版[8]李新樂(lè),《現(xiàn)代圖書(shū)館管理》,書(shū)目文獻(xiàn)出版社1989[9]譚浩強(qiáng),《C程序設(shè)計(jì)(第三版)》,清華大學(xué)出版社摘要圖書(shū)館管理信息系統(tǒng)是對(duì)學(xué)校圖書(shū)進(jìn)行全面信息管理的系統(tǒng)。該管理系統(tǒng)可以有效地管理學(xué)校圖書(shū)資源,記錄學(xué)校與讀者之間的使用書(shū)籍情況。此外,根據(jù)讀者的要求,實(shí)現(xiàn)書(shū)籍基本信息的輸入,查詢等幾個(gè)方面的功能。本系統(tǒng)可以作為獨(dú)立的系統(tǒng)使用,它包括借閱信息管理、書(shū)籍信息管理、讀者信息管理、系統(tǒng)管理四個(gè)主要的功能模塊。該管理系統(tǒng)力求給讀者方便快捷的途徑去及時(shí)了解書(shū)籍信息。針對(duì)各個(gè)模塊不同的數(shù)據(jù)表實(shí)現(xiàn)添加記錄、修改記錄、刪除記錄、以及查詢顯示記錄等功能,所有的操作方便而快捷,并全面實(shí)現(xiàn)了圖書(shū)館管理的各項(xiàng)功能。這篇論文主要講述關(guān)于圖書(shū)館管理信息系統(tǒng)的信息,特別是討論了關(guān)于設(shè)計(jì)該系統(tǒng)時(shí)的思想、方法和過(guò)程,以及在細(xì)節(jié)上分析函數(shù)和方法的實(shí)現(xiàn)思想。在本論文中講述的圖書(shū)館管理信息系統(tǒng)擁有一個(gè)交互式的界面、邏輯的數(shù)據(jù)庫(kù)結(jié)構(gòu)。并且在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)還考慮到了實(shí)體完整性約束、參照完整性約束、及盡量減少數(shù)據(jù)的冗余,在數(shù)據(jù)庫(kù)里有包括表、過(guò)程、函數(shù)、觸發(fā)器等5個(gè)數(shù)據(jù)庫(kù)對(duì)象。許多涉及到圖書(shū)、讀者的信息的功能在本系統(tǒng)中都有實(shí)現(xiàn)。例如,你可以將新書(shū)的信息插入到數(shù)據(jù)庫(kù)的圖書(shū)基本情況表里;還可以對(duì)已經(jīng)插入的關(guān)于圖書(shū)的信息進(jìn)行修改;更重要的是,讀者可以從圖書(shū)館里借閱書(shū)籍。經(jīng)過(guò)多次的測(cè)試和運(yùn)行,本系統(tǒng)能實(shí)現(xiàn)其在設(shè)計(jì)時(shí)的所有功能。關(guān)鍵字:圖書(shū)讀者管理系統(tǒng)數(shù)據(jù)庫(kù)目錄第一章系統(tǒng)概述 11.1系統(tǒng)開(kāi)發(fā)背景和意義 11.2開(kāi)發(fā)環(huán)境 1第二章系統(tǒng)需求分析 12.1任務(wù)概述 12.2數(shù)據(jù)描述(數(shù)據(jù)流圖+數(shù)據(jù)字典) 22.3功能需求 62.4性能需求 6第三章系統(tǒng)總體設(shè)計(jì) 73.1新的業(yè)務(wù)流程 73.2系統(tǒng)功能模塊圖 73.3系統(tǒng)的流程圖 8第四章詳細(xì)設(shè)計(jì) 104.1程序流程圖 104.2程序輸入輸出描述 114.2.1主模塊 114.2.1學(xué)生管理模塊 124.2.2圖書(shū)管理模塊 124.2.3借閱管理模塊 124.2.4歸還管理模塊 124.2.5管理措施設(shè)置模塊 124.3程序接口描述 124.3.1外部接口 124.3.2內(nèi)部接口 124.4數(shù)據(jù)庫(kù)的設(shè)計(jì) 134.4.1數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì) 13第五章編碼實(shí)現(xiàn) 145.1程序編碼 14第六章測(cè)試分析報(bào)告 176.1測(cè)試計(jì)劃和要點(diǎn) 176.1.1主模塊測(cè)試要點(diǎn) 176.1.2借閱模塊測(cè)試要點(diǎn) 186.1.3學(xué)生查詢模塊測(cè)試要點(diǎn) 186.1.4圖書(shū)查詢模塊測(cè)試要點(diǎn) 186.1.5圖書(shū)歸還模塊測(cè)試要點(diǎn) 186.2測(cè)試用例 186.2.1主模塊測(cè)試用例 196.2.2借閱模塊測(cè)試用例 196.2.3學(xué)生查詢模塊測(cè)試用例 196.2.4圖書(shū)查詢模塊測(cè)試用例 206.2.5圖書(shū)歸還模塊測(cè)試用例 206.3測(cè)試結(jié)果及結(jié)論 206.3.1測(cè)試的結(jié)果 206.3.2缺陷分析及改進(jìn) 216.3.3測(cè)試結(jié)論 21總結(jié) 23致謝 24參考文獻(xiàn) 25附錄 26第一章系統(tǒng)概述1.1系統(tǒng)開(kāi)發(fā)背景和意義圖書(shū)管理是高校內(nèi)每一個(gè)系部或院部都必須切實(shí)面對(duì)的工作,但一直以來(lái)人們使用傳統(tǒng)的人工方式管理圖書(shū)資料。這種方式存在著許多缺點(diǎn),如效率低、保密性差且較為繁瑣。另外,隨著圖書(shū)資料數(shù)量的增加,其工作量也將大大增加,這必將增加圖書(shū)資料管理者的工作量和勞動(dòng)強(qiáng)度,這將給圖書(shū)資料信息的查找、更新和維護(hù)都帶來(lái)了很多困難。經(jīng)過(guò)詳細(xì)的調(diào)查,目前我國(guó)各類高等學(xué)校中有相當(dāng)一部分單位圖書(shū)資料管理還停留在人工管理的基礎(chǔ)上。這樣的管理機(jī)制已經(jīng)不能適應(yīng)時(shí)代的發(fā)展,其管理方法將浪費(fèi)許多人力和物力。隨著科學(xué)技術(shù)的不斷提高,這種傳統(tǒng)的手工管理方法必然被以計(jì)算機(jī)為基礎(chǔ)的信息管理方法所取代。圖書(shū)管理作為計(jì)算機(jī)應(yīng)用的一個(gè)分支,有著手工管理無(wú)法比擬的優(yōu)點(diǎn),如檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高圖書(shū)管理的效率。因此,開(kāi)發(fā)一套能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄蔚膱D書(shū)管理系統(tǒng),將是非常必要的,也是十分及時(shí)的。1.2開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境的選擇會(huì)影響到數(shù)據(jù)庫(kù)的設(shè)計(jì),所以在這里給出圖書(shū)管理系統(tǒng)開(kāi)發(fā)與運(yùn)行環(huán)境的選擇如下:開(kāi)發(fā)環(huán)境:WindowsXP開(kāi)發(fā)工具:Myeclipse7.5+ visioc#數(shù)據(jù)庫(kù)系統(tǒng):MYSQL5.0sql2005web服務(wù)器:Tomcat6.0第二章系統(tǒng)需求分析2.1任務(wù)概述經(jīng)過(guò)對(duì)我校詳細(xì)調(diào)查,并多次與負(fù)責(zé)圖書(shū)管理的老師進(jìn)行研討后,加深了對(duì)現(xiàn)行圖書(shū)管理業(yè)務(wù)的深刻了解,與此同時(shí),將整個(gè)圖書(shū)管理的業(yè)務(wù)流程抽象描述如下:1.新的圖書(shū)購(gòu)進(jìn)后,分門別類地進(jìn)行歸并并匯總,加以編號(hào)。2.新書(shū)編號(hào)后,上到書(shū)架以備學(xué)生借閱。3.如某學(xué)生需要借閱圖書(shū),則在其本人的借閱登記表上進(jìn)行登記,記錄相關(guān)借閱信息與借閱日期。4.學(xué)生借閱圖書(shū)后,應(yīng)及時(shí)歸還圖書(shū),并在本人的借閱登記表上注明還書(shū)日期和時(shí)間。根據(jù)以上調(diào)查分析,可以給出其現(xiàn)行業(yè)務(wù)流程圖如圖2.1所示。圖2.1現(xiàn)行圖書(shū)管理業(yè)務(wù)流程圖2.2數(shù)據(jù)描述(數(shù)據(jù)流圖+數(shù)據(jù)字典)經(jīng)過(guò)詳細(xì)的調(diào)查,我們已經(jīng)清楚了解了現(xiàn)行的業(yè)務(wù)流程,接下來(lái)給出系統(tǒng)的邏輯模型。構(gòu)造系統(tǒng)邏輯模型的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。根據(jù)現(xiàn)行圖書(shū)管理的業(yè)務(wù)流程,首先把數(shù)據(jù)流圖中的源點(diǎn)和終點(diǎn)都選定為學(xué)生,因此可以得到圖書(shū)管理系統(tǒng)的基本系統(tǒng)模型,如圖2.2所示。圖2.2圖書(shū)管理系統(tǒng)的基本系統(tǒng)模型根據(jù)基本系統(tǒng)模型,對(duì)其逐步細(xì)化,得到描述邏輯系統(tǒng)細(xì)化后的數(shù)據(jù)流圖,如圖2.3所示。圖2.3圖書(shū)管理系統(tǒng)數(shù)據(jù)流圖(頂層DFD圖)對(duì)頂層DFD圖中的一個(gè)加工“學(xué)生管理”進(jìn)行展開(kāi),如圖2.4。圖2.4細(xì)化后數(shù)據(jù)流圖對(duì)頂層DFD圖中的一個(gè)加工“圖書(shū)管理”進(jìn)行展開(kāi),如圖2.5。圖2.5“圖書(shū)管理”展開(kāi)對(duì)第1層DFD圖中的加工進(jìn)一步進(jìn)行展開(kāi),如圖2.6。(1)(2)圖2.6進(jìn)一步細(xì)化數(shù)據(jù)流圖有了系統(tǒng)的數(shù)據(jù)流圖后,還有相當(dāng)多的數(shù)據(jù)信息如圖書(shū)、借閱、歸還等信息需要進(jìn)一步描述,這就是需要定義數(shù)據(jù)字典,才能把現(xiàn)有的系統(tǒng)描述清楚。圖2.7列出了系統(tǒng)的主要數(shù)據(jù)字典。PAGEPAGE60山東職業(yè)學(xué)院軟件0831畢業(yè)論文(設(shè)計(jì))圖書(shū)管理信息系統(tǒng)圖2.7系統(tǒng)主要數(shù)據(jù)字典2.3功能需求經(jīng)過(guò)以上詳細(xì)的用戶調(diào)查,在現(xiàn)行業(yè)務(wù)流程和數(shù)據(jù)分析的基礎(chǔ)上,基本可以確定系統(tǒng)設(shè)計(jì)必須達(dá)到的目標(biāo)。以下是圖書(shū)管理系統(tǒng)必須具備的功能:1.新進(jìn)圖書(shū)的登記功能:對(duì)于購(gòu)進(jìn)的新書(shū),系統(tǒng)必須具備圖書(shū)信息資料的錄入功能。2.圖書(shū)的查詢修改功能:當(dāng)圖書(shū)資料發(fā)生變化,如圖書(shū)丟失或有錯(cuò)誤信息輸入時(shí),則應(yīng)能夠及時(shí)對(duì)數(shù)據(jù)進(jìn)行修改和補(bǔ)充。3.借閱的登記,歸還的登記功能:系統(tǒng)的主要功能之一,供本校學(xué)生借閱圖書(shū)、歸還圖書(shū),并進(jìn)行登記。4.學(xué)生信息的增加、刪除和修改功能:系統(tǒng)主要功能之一,建立學(xué)生信息,并對(duì)其進(jìn)行維護(hù)。2.4性能需求為了保證系統(tǒng)能夠長(zhǎng)期、安全、穩(wěn)定、可靠、高效的運(yùn)行,圖書(shū)管理系統(tǒng)應(yīng)該滿足以下的性能需求:1、系統(tǒng)處理的準(zhǔn)確性和及時(shí)性系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能。在系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)過(guò)程中,要充分考慮系統(tǒng)當(dāng)前和將來(lái)可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時(shí)間能夠滿足學(xué)校對(duì)信息處理的需求。2、系統(tǒng)的開(kāi)放性和系統(tǒng)的可擴(kuò)充性圖書(shū)管理系統(tǒng)在開(kāi)發(fā)過(guò)程中,應(yīng)該充分考慮以后的可擴(kuò)充性。例如用戶查詢的需求也會(huì)不斷的更新和完善。3、系統(tǒng)的易用性和易維護(hù)性圖書(shū)管理系統(tǒng)是直接面對(duì)使用人員的,而使用人員往往對(duì)計(jì)算機(jī)并不時(shí)非常熟悉。這就要求系統(tǒng)能夠提供良好的用戶接口,易用的人機(jī)交互界面。要實(shí)現(xiàn)這一點(diǎn),就要求系統(tǒng)應(yīng)該盡量使用用戶熟悉的術(shù)語(yǔ)和中文信息的界面;針對(duì)用戶可能出現(xiàn)的使用問(wèn)題,要提供足夠的在線幫助,縮短用戶對(duì)系統(tǒng)熟悉的過(guò)程。4、系統(tǒng)的標(biāo)準(zhǔn)性系統(tǒng)在設(shè)計(jì)開(kāi)發(fā)使用過(guò)程中都要涉及到很多計(jì)算機(jī)硬件、軟件。所有這些都要符合主流國(guó)際、國(guó)家和行業(yè)標(biāo)準(zhǔn)。5、系統(tǒng)的先進(jìn)性目前計(jì)算系統(tǒng)的技術(shù)發(fā)展相當(dāng)快,做為圖書(shū)管理系統(tǒng)工程,在系統(tǒng)的生命周期盡量做到系統(tǒng)的先進(jìn),充分完成企業(yè)信息處理的要求而不至于落后。這一方面通過(guò)系統(tǒng)的開(kāi)放性和可擴(kuò)充性,不斷改善系統(tǒng)的功能完成。另一方面,在系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)的過(guò)程中,應(yīng)在考慮成本的基礎(chǔ)上盡量采用當(dāng)前主流并先進(jìn)且有良好發(fā)展前途的產(chǎn)品。6、系統(tǒng)的響應(yīng)速度圖書(shū)管理系統(tǒng)系統(tǒng)在日常處理中的響應(yīng)速度為秒級(jí),達(dá)到實(shí)時(shí)要求,以及時(shí)反饋信息。在進(jìn)行統(tǒng)計(jì)分析時(shí),根據(jù)所需數(shù)據(jù)量的不同而從秒級(jí)到分鐘級(jí),原則是保證操作人員不會(huì)因?yàn)樗俣葐?wèn)題而影響工作效率。第三章系統(tǒng)總體設(shè)計(jì)3.1新的業(yè)務(wù)流程根據(jù)需求分析的得到的現(xiàn)行業(yè)務(wù)處理流程,在用戶反復(fù)研究后,首先確定目標(biāo)系統(tǒng)的業(yè)務(wù)流程,其處理流程如圖3.1。圖3.1圖書(shū)管理系統(tǒng)的業(yè)務(wù)流程針對(duì)新的業(yè)務(wù)流程,現(xiàn)具體描述其功能如下:1.用戶登錄:系統(tǒng)對(duì)用戶合法性進(jìn)行檢查。2.圖書(shū)入庫(kù):對(duì)新購(gòu)進(jìn)的圖書(shū)分類進(jìn)行編號(hào),并把圖書(shū)基本信息錄入計(jì)算機(jī)。3.圖書(shū)借閱:對(duì)已入庫(kù)的圖書(shū),學(xué)生可以借閱,并進(jìn)行登記。4.圖書(shū)歸還:對(duì)學(xué)生已歸還的圖書(shū)進(jìn)行歸還登記。5.信息查詢:即對(duì)所有圖書(shū)的借閱情況,或?qū)W生的基本情況和借閱情況進(jìn)行查詢。6.管理措施:定義系統(tǒng)規(guī)定的借閱圖書(shū)超期時(shí)間、超期處罰辦法和丟失賠償辦法。3.2系統(tǒng)功能模塊圖依據(jù)需求分析階段得到的數(shù)據(jù)流圖,采用軟件工程中軟件設(shè)計(jì)的概念和原理,與用戶成分協(xié)商后,在保證系統(tǒng)基本功能要求的前提下,結(jié)合系統(tǒng)新的業(yè)務(wù)流程確定系統(tǒng)必須具備的所有功能,由此給出圖書(shū)管理系統(tǒng)的系統(tǒng)功能模塊圖如圖3.2所示。圖3.2圖書(shū)管理系統(tǒng)功能模塊圖3.3系統(tǒng)的流程圖依據(jù)軟件工程的基本原理,綜合以上分析給出系統(tǒng)流程圖如圖3.4所示。圖3.4系統(tǒng)流程圖第四章詳細(xì)設(shè)計(jì)4.1程序流程圖依據(jù)軟件工程的基本原理,詳細(xì)設(shè)計(jì)階段的根本任務(wù)是確定應(yīng)該怎樣具體實(shí)現(xiàn)所要求的系統(tǒng),也就是說(shuō),經(jīng)過(guò)這個(gè)階段的設(shè)計(jì)工作,應(yīng)該得出對(duì)目標(biāo)系統(tǒng)的精確描述,從而在系統(tǒng)實(shí)現(xiàn)階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語(yǔ)言書(shū)寫的程序。具體來(lái)說(shuō)就是把經(jīng)過(guò)總體設(shè)計(jì)得到的各個(gè)模塊詳細(xì)的加以描述。由于本系統(tǒng)采用支持面向?qū)ο蟮腣isualBasic6.0作為開(kāi)發(fā)工具,而VisualBasic6.0采用事件驅(qū)動(dòng)的編程機(jī)制,所以在此給出軟件系統(tǒng)的主程序流程圖,如圖4.1所示。圖4.1主程序流程圖根據(jù)以上主程序的流程圖,我們可以得出下面的關(guān)于各個(gè)模塊的程序流程圖,如圖4.2所示。圖4.2程序流程圖4.2程序輸入輸出描述4.2.1主模塊1.輸入項(xiàng)目:操作系統(tǒng)傳遞至的各種消息以及用戶的輸入數(shù)據(jù)。2.輸出項(xiàng)目:用戶界面顯示。4.2.1學(xué)生管理模塊1.輸入項(xiàng)目:與學(xué)生管理操作子對(duì)話框有關(guān)的用戶輸入及系統(tǒng)消息。2.輸出項(xiàng)目:操作結(jié)果顯示。4.2.2圖書(shū)管理模塊1.輸入項(xiàng)目:用戶口令。2.輸出項(xiàng)目:相應(yīng)的界面。4.2.3借閱管理模塊1.輸入項(xiàng)目:學(xué)生學(xué)號(hào)、圖書(shū)編號(hào)。2.輸出項(xiàng)目:學(xué)生信息、相關(guān)借書(shū)信息。4.2.4歸還管理模塊1.輸入項(xiàng)目:圖書(shū)編號(hào)。2.輸出項(xiàng)目:相關(guān)學(xué)生信息。4.2.5管理措施設(shè)置模塊1.輸入項(xiàng)目:用戶的輸入。2.輸出項(xiàng)目:根據(jù)用戶的輸入顯示相應(yīng)的對(duì)話框。4.3程序接口描述4.3.1外部接口按Windows應(yīng)用軟件用戶界面的規(guī)范來(lái)設(shè)計(jì),使用以對(duì)話框?yàn)橹鞯挠脩艚缑?,便于用戶使用?.3.2內(nèi)部接口模塊間接口采用數(shù)據(jù)耦合方式,通過(guò)參數(shù)表傳送數(shù)據(jù),交換信息。4.4數(shù)據(jù)庫(kù)的設(shè)計(jì)4.4.1數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)在需求分析階段已完成該系統(tǒng)所有的數(shù)據(jù)分析。根據(jù)該階段所建立的概念模型,已經(jīng)得出滿足系統(tǒng)設(shè)計(jì)要求的幾個(gè)關(guān)系描述,該階段的主要工作就是把前一階段的成果轉(zhuǎn)化為具體的數(shù)據(jù)庫(kù)。下面給出概念結(jié)構(gòu)設(shè)計(jì)得E-R圖如圖4.3所示。①②③(1)分E-R圖(2)總E-R圖圖4.3概念結(jié)構(gòu)設(shè)計(jì)E-R圖實(shí)體:圖書(shū)(圖書(shū)編號(hào),書(shū)名,作者,出版社,定價(jià),圖書(shū)類別,圖書(shū)ISBN號(hào),圖書(shū)數(shù)量)學(xué)生(學(xué)生學(xué)號(hào),學(xué)生姓名,性別,入校時(shí)間,畢業(yè)時(shí)間)管理員(編號(hào),名字,密碼,加入時(shí)間)聯(lián)系:學(xué)生管理(圖書(shū)管理員,學(xué)生姓名,學(xué)生密碼)圖書(shū)管理(圖書(shū)管理員,借閱號(hào),歸還號(hào))查詢(圖書(shū)編號(hào),借閱證號(hào),圖書(shū)管理員,學(xué)生)第五章編碼實(shí)現(xiàn)5.1程序編碼登陸界面如圖5.1所示。圖5.1登陸界面程序代碼如下:主界面如圖5.2所示。圖5.2程序主界面操作員管理界面如圖5.3所示。圖5.3操作員管理界面學(xué)生登記界面如圖5.4所示。圖5.4學(xué)生信息登記界面圖書(shū)信息登記界面如圖5.5所示。圖5.5圖書(shū)信息登記界面圖書(shū)查詢界面如圖5.6所示。圖5.6圖書(shū)信息查詢界面第六章測(cè)試分析報(bào)告有兩種基本方法可以用來(lái)標(biāo)識(shí)測(cè)試用例,即功能測(cè)試(黑盒測(cè)試)和結(jié)構(gòu)測(cè)試(白盒測(cè)試)。本次測(cè)試我主要采用了功能測(cè)試。功能測(cè)試的基本觀點(diǎn)是,任何程序都可以看作是將輸入定義域取值映射到輸出值域的函數(shù)。6.1測(cè)試計(jì)劃和要點(diǎn)軟件測(cè)試的本質(zhì)是針對(duì)要測(cè)試的內(nèi)容確定一組測(cè)試用例。在討論之前,我先把要測(cè)試各個(gè)模塊的計(jì)劃和要點(diǎn)列出:6.1.1主模塊測(cè)試要點(diǎn)數(shù)據(jù)庫(kù)連接情況:正常情況,數(shù)據(jù)庫(kù)文件缺少,外部系統(tǒng)異常。系統(tǒng)設(shè)置獲?。赫G闆r,外部系統(tǒng)異常。對(duì)用戶輸入的響應(yīng):合法輸入,能夠正常調(diào)用子模塊;非法輸入,系統(tǒng)能否辨別,并作出響應(yīng)(提出警告);子模塊的異常狀況,系統(tǒng)能否及時(shí)做出響應(yīng)。6.1.2借閱模塊測(cè)試要點(diǎn)模塊正常運(yùn)行流程用戶輸入數(shù)據(jù)檢查(學(xué)生學(xué)號(hào)、圖書(shū)書(shū)號(hào)),包括數(shù)據(jù)合理性檢查,以及合法性檢查數(shù)據(jù)庫(kù)操作數(shù)據(jù)庫(kù)連接異常時(shí)的響應(yīng)情況6.1.3學(xué)生查詢模塊測(cè)試要點(diǎn)數(shù)據(jù)庫(kù)連接正常時(shí)輸入合理合法參數(shù)輸入?yún)?shù)不合理輸入?yún)?shù)不合法數(shù)據(jù)庫(kù)連接異常;數(shù)據(jù)庫(kù)數(shù)據(jù)異常(讀者姓名為空)6.1.4圖書(shū)查詢模塊測(cè)試要點(diǎn)數(shù)據(jù)庫(kù)連接正常數(shù)據(jù)庫(kù)數(shù)據(jù)正常輸入的書(shū)號(hào)合理合法輸入的書(shū)號(hào)不合理輸入的書(shū)號(hào)不合法數(shù)據(jù)庫(kù)數(shù)據(jù)異常數(shù)據(jù)庫(kù)連接異常6.1.5圖書(shū)歸還模塊測(cè)試要點(diǎn)模塊正常工作流程對(duì)輸入的查驗(yàn),包括輸入值的合法性與合理性檢驗(yàn)數(shù)據(jù)庫(kù)連接異常能否做出適當(dāng)處理數(shù)據(jù)庫(kù)數(shù)據(jù)異常時(shí)能否判斷并給予適當(dāng)處理6.2測(cè)試用例測(cè)試用例是為了特定目的(如考察特定程序路徑或驗(yàn)證是否符合特定的需求)而設(shè)計(jì)的測(cè)試數(shù)據(jù)及與之相關(guān)的測(cè)試規(guī)程的一個(gè)特定的集合,或稱為有效地發(fā)現(xiàn)軟件缺陷的最小測(cè)試執(zhí)行單元。根據(jù)上一節(jié)給出的測(cè)試要點(diǎn),又因?yàn)闇y(cè)試是不可能窮舉的。所以我們采用等價(jià)劃分法來(lái)進(jìn)行對(duì)圖書(shū)管理系統(tǒng)的測(cè)試。它將不能窮舉的測(cè)試過(guò)程進(jìn)行合理分類,從而保證設(shè)計(jì)出來(lái)的測(cè)試用例具有代表性和完整性。6.2.1主模塊測(cè)試用例表6-1主模塊測(cè)試用例字段名稱描述標(biāo)識(shí)符C1測(cè)試項(xiàng)主模塊中的“系統(tǒng)”菜單欄,“業(yè)務(wù)”菜單欄的功能測(cè)試輸入標(biāo)準(zhǔn)1.打開(kāi)主模塊,沒(méi)有任何輸入字符,點(diǎn)擊相應(yīng)的菜單欄項(xiàng)目。2.在數(shù)據(jù)庫(kù)文件缺少的情況下,打開(kāi)主模塊。輸出標(biāo)準(zhǔn)1.模塊未做任何操作,單擊“系統(tǒng)”|“退出”命令,能正常退出,無(wú)提示信息。2.在打開(kāi)相應(yīng)的子窗體時(shí),未做任何操作,單擊“系統(tǒng)”|“退出”命令,能正常退出,無(wú)提示信息。3.在打開(kāi)相應(yīng)的子窗體時(shí),做相關(guān)的增刪或修改操作,未保存,單擊“系統(tǒng)”|“退出”命令,提示“修改信息未保存,保存修改嗎?”單擊“Yes”,保存修改,正常退出,單擊“No”,不保存修改,并退出。6.2.2借閱模塊測(cè)試用例表6-2借閱模塊測(cè)試用例字段名稱描述標(biāo)識(shí)符C2測(cè)試項(xiàng)借閱模塊的功能測(cè)試輸入標(biāo)準(zhǔn)1.打開(kāi)借閱模塊,沒(méi)有任何輸入字符,點(diǎn)擊相應(yīng)的項(xiàng)目。2.輸入一些正確的學(xué)號(hào)、圖書(shū)號(hào)、借閱號(hào),點(diǎn)擊“登記”。3.輸入一些非法的學(xué)號(hào)、圖書(shū)號(hào)、借閱號(hào),點(diǎn)擊“登記”。輸出標(biāo)準(zhǔn)1.模塊未做任何操作,單擊“退出”命令,能正常退出,無(wú)提示信息。2.在打開(kāi)借閱模塊,做相關(guān)的“借出”操作,未保存,單擊“退出”命令,提示“修改信息未保存,保存修改嗎?”單擊“Yes”,保存修改,正常退出,單擊“No”,不保存修改,并退出。6.2.3學(xué)生查詢模塊測(cè)試用例表6-3學(xué)生查詢模塊測(cè)試用例字段名稱描述標(biāo)識(shí)符C3測(cè)試項(xiàng)學(xué)生查詢模塊的功能測(cè)試輸入標(biāo)準(zhǔn)1.打開(kāi)學(xué)生查詢模塊,沒(méi)有任何輸入字符,點(diǎn)擊相應(yīng)的項(xiàng)目。2.輸入一些正確的學(xué)號(hào)、姓名,點(diǎn)擊“確定”。3.輸入一些非法的學(xué)號(hào)、姓名,點(diǎn)擊“確定”。4.在選擇“按姓名查詢”單選時(shí),輸入學(xué)號(hào),點(diǎn)擊“確定”。5.在選擇“按學(xué)號(hào)查詢”單選時(shí),輸入姓名,點(diǎn)擊“確定”。輸出標(biāo)準(zhǔn)1.模塊未做任何操作,單擊“退出”命令,能正常退出,無(wú)提示信息。6.2.4圖書(shū)查詢模塊測(cè)試用例表6-4圖書(shū)查詢模塊測(cè)試用例字段名稱描述標(biāo)識(shí)符C4測(cè)試項(xiàng)圖書(shū)查詢模塊的功能測(cè)試輸入標(biāo)準(zhǔn)1.打開(kāi)圖書(shū)查詢模塊,沒(méi)有任何輸入字符,點(diǎn)擊相應(yīng)的項(xiàng)目。2.輸入一些正確的書(shū)名、作者、出版社,點(diǎn)擊“確定”。3.輸入一些非法的書(shū)名、作者、出版社,點(diǎn)擊“確定”。4.在選擇“按書(shū)名查詢”單選時(shí),輸入作者或出版社,點(diǎn)擊“確定”。5.在選擇“按作者查詢”單選時(shí),輸入書(shū)名或出版社,點(diǎn)擊“確定”。6.在選擇“按出版社查詢”單選時(shí),輸入書(shū)名或作者,點(diǎn)擊“確定”。輸出標(biāo)準(zhǔn)1.模塊未做任何操作,單擊“退出”命令,能正常退出,無(wú)提示信息。6.2.5圖書(shū)歸還模塊測(cè)試用例表6-5圖書(shū)歸還模塊測(cè)試用例字段名稱描述標(biāo)識(shí)符C5測(cè)試項(xiàng)圖書(shū)歸還模塊的功能測(cè)試輸入標(biāo)準(zhǔn)1.打開(kāi)歸還模塊,沒(méi)有任何輸入字符,點(diǎn)擊相應(yīng)的項(xiàng)目。2.輸入一些正確的學(xué)號(hào)、圖書(shū)號(hào),點(diǎn)擊“登記”。3.輸入一些非法的學(xué)號(hào)、圖書(shū)號(hào),點(diǎn)擊“登記”。輸出標(biāo)準(zhǔn)1.模塊未做任何操作,單擊“退出”命令,能正常退出,無(wú)提示信息。2.在打開(kāi)借閱模塊,做相關(guān)的“借出”操作,未保存,單擊“退出”命令,提示“修改信息未保存,保存修改嗎?”單擊“Yes”,保存修改,正常退出,單擊“No”,不保存修改,并退出。6.3測(cè)試結(jié)果及結(jié)論6.3.1測(cè)試的結(jié)果我們按照6.2節(jié)中給出的測(cè)試用例的順序來(lái)給出相應(yīng)的測(cè)試結(jié)果。表6-6主模塊測(cè)試結(jié)果標(biāo)識(shí)符C1測(cè)試結(jié)果正常操作無(wú)任何異常處理出現(xiàn)與預(yù)期的偏差無(wú)說(shuō)明的問(wèn)題主模塊通過(guò)了功能測(cè)試表6-7借閱模塊測(cè)試結(jié)果標(biāo)識(shí)符C2測(cè)試結(jié)果在輸入借閱號(hào)但是未輸入圖書(shū)號(hào)或?qū)W生學(xué)號(hào)時(shí),系統(tǒng)也能給出正確的借閱成功信息與預(yù)期的偏差應(yīng)該在借閱圖書(shū)時(shí),輸入完整的借閱信息,包括借閱號(hào)、圖書(shū)號(hào)、學(xué)生學(xué)號(hào)和借閱時(shí)間說(shuō)明的問(wèn)題圖書(shū)借閱模塊的借閱功能有待改進(jìn)表6-8學(xué)生查詢模塊測(cè)試結(jié)果標(biāo)識(shí)符C3測(cè)試結(jié)果在單選“按姓名查詢”時(shí),輸入學(xué)生學(xué)號(hào)也能查詢到學(xué)生的相關(guān)信息。在單選“按學(xué)號(hào)查詢”時(shí),輸入學(xué)生姓名也能查詢到學(xué)生的相關(guān)信息。與預(yù)期的偏差應(yīng)該在單選按“姓名”或“學(xué)號(hào)”查,只能通過(guò)選中的方式查詢學(xué)生的相關(guān)信息。說(shuō)明的問(wèn)題學(xué)生查詢模塊的借閱功能有待改進(jìn)表6-9圖書(shū)查詢模塊測(cè)試結(jié)果標(biāo)識(shí)符C4測(cè)試結(jié)果正常操作無(wú)任何異常處理出現(xiàn)與預(yù)期的偏差無(wú)說(shuō)明的問(wèn)題圖書(shū)查詢模塊通過(guò)了功能測(cè)試表6-10圖書(shū)歸還模塊測(cè)試結(jié)果標(biāo)識(shí)符C5測(cè)試結(jié)果正常操作無(wú)任何異常處理出現(xiàn)與預(yù)期的偏差無(wú)說(shuō)明的問(wèn)題圖書(shū)歸還模塊通過(guò)了功能測(cè)試6.3.2缺陷分析及改進(jìn)本部分對(duì)上述缺陷和其他收集數(shù)據(jù)進(jìn)行綜合分析1.缺陷綜合分析缺陷發(fā)現(xiàn)效率=缺陷總數(shù)/執(zhí)行測(cè)試用時(shí)=2/(5天)=0.4/天用例質(zhì)量=缺陷總數(shù)/測(cè)試用例總數(shù)×100%=2/5×100%=40%2.對(duì)缺陷的改進(jìn)在測(cè)試用例C2和C3中,發(fā)現(xiàn)的缺陷,通過(guò)對(duì)相關(guān)功能編碼的改進(jìn),已經(jīng)使測(cè)試的結(jié)果和預(yù)期達(dá)到的效果一致。6.3.3測(cè)試結(jié)論1.測(cè)試目標(biāo)完成2.測(cè)試已經(jīng)通過(guò)3.可以進(jìn)入下一階段項(xiàng)目目標(biāo)總結(jié)這次軟件工程課程設(shè)計(jì),我主要采用VisualBasic作為前臺(tái)開(kāi)發(fā)工具,MicrosoftSQLSevere2000作為后臺(tái)數(shù)據(jù)庫(kù),結(jié)合軟件工程設(shè)計(jì)和數(shù)據(jù)庫(kù)編程的有關(guān)知識(shí),開(kāi)發(fā)了這個(gè)圖書(shū)管理系統(tǒng)。通過(guò)這次軟件工程課程設(shè)計(jì),我對(duì)于軟件工程設(shè)計(jì)的相關(guān)步驟和流程有了更深刻的理解,熟悉并掌握了MicrosoftSQLSevere2000和VB6.0的數(shù)據(jù)庫(kù)使用,另一方面,也對(duì)SQL語(yǔ)言作為嵌入式語(yǔ)言的功能有了更深刻的體會(huì)。同時(shí),我也發(fā)現(xiàn)自己對(duì)于軟件工程設(shè)計(jì)和數(shù)據(jù)庫(kù)設(shè)計(jì)的知識(shí)掌握的還不夠,設(shè)計(jì)和編程能力還有待于進(jìn)一步提高。這次課程設(shè)計(jì)給了我一個(gè)鍛煉自己,強(qiáng)化專業(yè)知識(shí)的機(jī)會(huì),通過(guò)這次課程設(shè)計(jì),我也得以一窺軟件工程設(shè)計(jì)的廣袤天地,我相信,只要認(rèn)真學(xué)習(xí),多借鑒別人的經(jīng)驗(yàn),多思考,多實(shí)踐,就一定能夠成為一個(gè)合格的軟件設(shè)計(jì)人員,能夠翱翔在軟件開(kāi)發(fā)的天地。致謝首先感謝山東職業(yè)學(xué)院給我們提供良好的學(xué)習(xí)設(shè)備,學(xué)習(xí)和生活環(huán)境,其次感謝老師三年來(lái)對(duì)我們的精心培育,再次感謝山東東方道邇數(shù)字?jǐn)?shù)據(jù)有限公司能給我提供實(shí)習(xí)的機(jī)會(huì)。我在公司中學(xué)到了書(shū)本中所學(xué)不到的知識(shí),并掌握了很多學(xué)習(xí),工作方法。三年的大學(xué)生活馬上就要結(jié)束了,三年的時(shí)間我學(xué)到了很多的知識(shí),懂得了很多道理,知道如何與人溝通、交流,讓自己盡快地適應(yīng)新的環(huán)境。開(kāi)發(fā)一個(gè)項(xiàng)目,需要的是團(tuán)隊(duì)的力量,團(tuán)隊(duì)的合作,溝通.在開(kāi)發(fā)此項(xiàng)目的過(guò)程中遇到很多的問(wèn)題,如:界面的設(shè)計(jì)、編碼問(wèn)題、用戶需求問(wèn)題等。在開(kāi)發(fā)的過(guò)程中我學(xué)習(xí)到了書(shū)本上所學(xué)不到的知識(shí)。讓我懂得了實(shí)踐是檢驗(yàn)真理的惟一標(biāo)準(zhǔn)的真正涵義。參考文獻(xiàn)[1]張海藩.軟件工程導(dǎo)論(第四版).北京:清華大學(xué)出版社,2003年12月[2]朱少民.軟件測(cè)試方法和技術(shù).北京:清華大學(xué)出版社,2005年7月[3]PaulC.Jorgensen.軟件測(cè)試(第二版).北京:機(jī)械工業(yè)出版社,2006年2月[4]郭勝,夏邦貴.VisualBasic數(shù)據(jù)庫(kù)開(kāi)發(fā)入門與范例解析.北京:機(jī)械工業(yè)出版社,2004年4月[5]劉瑞新.VisualBasic管理信息系統(tǒng)開(kāi)發(fā)畢業(yè)設(shè)計(jì)指導(dǎo)及實(shí)例.北京:機(jī)械工業(yè)出版社,2005年3月[6]魏志強(qiáng)、王忠華、何敏、喬林,《數(shù)據(jù)庫(kù)應(yīng)用實(shí)務(wù)篇》,中國(guó)鐵道出版社2000[7]齊治昌、譚慶平、寧洪,《軟件工程》,高等教育出版社1997年第一版[8]韓強(qiáng),《SQLSERVER2000程序員手冊(cè)》,機(jī)械工業(yè)出版社2000[9]薩師煊、王珊,《數(shù)據(jù)庫(kù)系統(tǒng)概論》,高等教育出版社2000年第三版[10]李新樂(lè),《現(xiàn)代圖書(shū)館管理》,書(shū)目文獻(xiàn)出版社1989[11]譚浩強(qiáng),《C程序設(shè)計(jì)(第三版)》,清華大學(xué)出版社2005年1月1日附錄FunctionCheck_Password(ByValUserNameAsString,ByValUserPasswordAsString)AsIntegerOnErrorGoToER2:IfConnectToServer=TrueThenSetobjRs=NewRecordsetStrSql="selectcOperatorPasswordfromtOperatorswherecOperatorName='"&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"UnloadMeElseintCheck=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=FalseEndIfLoadMainWinMainWin.ShowEndSelectEndIfEndSubOptionExplicitPrivateSubMDIForm_Activate()IfCurrentOpname="Admin"ThenStatusBar2.Panels(1).Text="管理員:"&CurrentOpnameToolbar1.Buttons(1).Visible=TrueToolbar1.Buttons(2).Visible=TrueElseStatusBar2.Panels(1).Text="操作員:"&CurrentOpnameToolbar1.Buttons(1).Visible=FalseToolbar1.Buttons(2).Visible=FalseEndIfEndSubPrivateSubMDIForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=vbRightButtonThenPopupMenumnuOperation'DesignpopupmenuEndIfEndSubPrivateSubMDIForm_Unload(CancelAsInteger)CheckConnect'ReferencefunctiontomakeobjconbreakifconnectionisopenEndSubPrivateSubmnuAbout_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.ShowEndSubPrivateSubmunReadRegist_Click()CheckConnect'ReferencefunctiontomakeobjconbreakifconnectionisopenLoadfrmReadRegistfrmReadRegist.ShowEndSubPrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)SelectCaseButton.KeyCase"operatorReg"CheckConnect'ReferencefunctiontomakeobjconbreakifconnectionisopenLoadfrmAdminfrmAdmin.ShowCase"vipReg"CheckConnect'ReferencefunctiontomakeobjconbreakifconnectionisopenLoadfrmVipRegfrmVipReg.ShowCase"vipQuery"CheckConnect'ReferencefunctiontomakeobjconbreakifconnectionisopenLoadfrmVipQueryfrmVipQuery.ShowCase"BookReg"CheckConnect'ReferencefunctiontomakeobjconbreakifconnectionisopenLoadfrmBookRegfrmBookReg.ShowCase"bookQuery"CheckConnect'ReferencefunctiontomakeobjconbreakifconnectionisopenLoadfrmBookQueryfrmBookQuery.ShowCase"readReg"CheckConnect'ReferencefunctiontomakeobjconbreakifconnectionisopenLoadfrmReadRegistfrmReadRegist.ShowCase"readQuery"CheckConnect'ReferencefunctiontomakeobjconbreakifconnectionisopenLoadfrmReadQueryfrmReadQuery.ShowEndSelectEndSubOptionExplicitSubSetTextEmpty()'ThisfunctionissetalltexttoemptytxtOpID.Text=""txtOpName.Text=""txtOpPwd.Text=""cboOpGrade.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=""txtOpID.SetFocus.Filter="cOperatorID<>''"cmdRefresh.Value=True'ToexecuterrefreshoncecheckAddNew=FalsecmdDel.Enabled=TruecmdModify.Enabled=TruecmdAdd.Caption="添加(&A)"txtOpID.Enabled=FalsecmdRefresh.Enabled=TruedgdOp.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=TruecmdAdd.Caption="添加"dgdOp.Enabled=True'YoucanusedatagridafteraddfinishEndIfEndIfEndSubPrivateSubcmdDel_Click()IfEmpty_Check=TrueThenExitSub'ReferencefunctiontocheckifyourdatabaseisnullIfNotobjRs.EOFAndobjRs.RecordCount>0ThenIfMsgBox("The:"&txtOpName&"'sdatawilldeletecontinue?",vbYesNo+vbInformation)=vbYesThenobjRs.DeleteEndIfEndIfEndSubPrivateSubcmdModify_Click()IfEmpty_Check=TrueThenExitSub'ReferencefunctiontocheckifyourdatabaseisnulldgdOp.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=TruecmdAdd.Enabled=TruedgdOp.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=objRscmdRefresh.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=""ThenMsgBox"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=FalsecmdRefresh.Enabled=TruedgdVip.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=TruedgdVip.Enabled=TrueEndIfEndIfEndSubPrivateSubcmdClose_Click()UnloadMeEndSubPrivateSubcmdDel_Click()IfEmpty_Check=TrueThenExitSub'ReferencefunctiontocheckifyourdatabaseisemptyCheckConnect'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'ExectuerefreshinordertolistdatawhenformloadColNamechange'ReferencefuctiontochangecolumnsnametochineseEndIfElseIfMsgBox(txtVipName&"'sdatawilldeleteareyousuretocontinue?",vbYesNo+vbInformation)=vbYesThenStrSql="deletefromtVipwherecVipID='"&Trim(txtVipID.Text)&"'"objCon.ExecuteStrSqlCheckConnect'TobreakobjrsifitisopenedIfConnectToServer=TrueThenSetobjRs=NewADODB.RecordsetStrSql="select*fromtvip"GetDataStrSql'ReferencefunctioninordertogetdataSetdgdVip.DataSource=objRscmdRefresh.Value=True'ExectuerefreshinordertolistdatawhenformloadColNamechange'ReferencefuctiontochangecolumnsnametochineseEndIfEndIfCheckConnect'TobreakobjrsifitisopenedIfConnectToServer=TrueThenSetobjRs=NewADODB.RecordsetStrSql="select*fromtvip"GetDataStrSql'ReferencefuctiontogetdataSetdgdVip.DataSource=objRscmdRefresh.Value=True'ExectuerefreshinordertolistdatawhenformloadColNamechange'ReferencefuctiontochangecolumnsnametochineseEndIfEndIfEndIfEndSubPrivateSubcmdModify_Click()IfEmpty_Check=TrueThenExitSub'ReferencefunctiontocheckisyourdatabaseisemptyIfTrim(txtVipID.Text)<>Trim(objRs.Fields(0).Value)ThenExitSub'TocheckvipIDIfcmdModify.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=TruecmdAdd.Enabled=TruecmdRefresh.Enabled=TrueEndIfEndIfEndSubPrivateSu
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版家畜養(yǎng)殖保險(xiǎn)產(chǎn)品定制及銷售合同3篇
- 2025年度智能門禁系統(tǒng)與消防報(bào)警系統(tǒng)聯(lián)動(dòng)合同4篇
- 二零二五版跨境電商運(yùn)營(yíng)服務(wù)戰(zhàn)略合作協(xié)議3篇
- 2025年度新型門窗及欄桿研發(fā)與生產(chǎn)合作協(xié)議4篇
- 2025年高端個(gè)人財(cái)富管理代客理財(cái)協(xié)議3篇
- 2025年度個(gè)人經(jīng)營(yíng)性貸款擔(dān)保保證合同3篇
- 2025版綠色建筑地坪材料供應(yīng)合同3篇
- 2025年度共享經(jīng)濟(jì)門面房租賃與平臺(tái)建設(shè)合同3篇
- 個(gè)人汽車購(gòu)買資助合同2024年模板版B版
- XX市重點(diǎn)蓄水池施工合作合同版
- 2025水利云播五大員考試題庫(kù)(含答案)
- 中藥飲片驗(yàn)收培訓(xùn)
- DB34T 1831-2013 油菜收獲與秸稈粉碎機(jī)械化聯(lián)合作業(yè)技術(shù)規(guī)范
- 創(chuàng)傷處理理論知識(shí)考核試題及答案
- 稅前工資反算表模板
- 2019級(jí)水電站動(dòng)力設(shè)備專業(yè)三年制人才培養(yǎng)方案
- 肝素誘導(dǎo)的血小板減少癥培訓(xùn)課件
- 抖音認(rèn)證承諾函
- 高等數(shù)學(xué)(第二版)
- 四合一體系基礎(chǔ)知識(shí)培訓(xùn)課件
- ICD-9-CM-3手術(shù)與操作國(guó)家臨床版亞目表
評(píng)論
0/150
提交評(píng)論