




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟件工程學(xué)綜合性實(shí)驗(yàn)報(bào)告項(xiàng)目名稱(chēng):圖書(shū)管理系統(tǒng)指導(dǎo)教師:方英蘭組員:張士捷(039)徐 山(038)朱 寧(018)張 林(003)時(shí)間:2011年5月一、項(xiàng)目工作計(jì)劃書(shū)。包括項(xiàng)目階段劃分、任務(wù)分解、時(shí)間和人員安排、階段工作成果等。1、階段劃分A. 可行性分析:1天B. 需求分析:1天;C. 軟件設(shè)計(jì)(概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)):3天;D. 數(shù)據(jù)庫(kù)建立:2天;E. 單元測(cè)試:1天;F. 集成測(cè)試:1天;G. 驗(yàn)收測(cè)試:1天2、任務(wù)的分解和人員分工 任務(wù)姓名開(kāi)發(fā)時(shí)間計(jì)劃開(kāi)始時(shí)間可行性分析張士捷1天2011.05.15需求分析張士捷1天2011.05.16軟件設(shè)計(jì)徐山3天2011.05.17數(shù)據(jù)庫(kù)建立朱
2、寧2天2011.05.20單元測(cè)試張林 1天2011.05.22集成測(cè)試張林1天2011.05.23驗(yàn)收測(cè)試:張士捷1天2011.05.243、進(jìn)度和完成的最后期限項(xiàng)目啟動(dòng)時(shí)間:2011-5-15項(xiàng)目交付時(shí)間:2011-5-24 進(jìn)度:包括可行性分析、需求分析、軟件概要設(shè)計(jì)、軟件詳細(xì)設(shè)計(jì)、編碼、測(cè)試、安裝、轉(zhuǎn)換、確認(rèn)、培訓(xùn)等階段活動(dòng)和任務(wù)的進(jìn)度安排,具體安排見(jiàn)“PERT網(wǎng)絡(luò)圖”和“進(jìn)度計(jì)劃表”。4、“圖書(shū)管理系統(tǒng)”進(jìn)度計(jì)劃表“圖書(shū)管理系統(tǒng)”進(jìn)度計(jì)劃表活動(dòng)編號(hào)活動(dòng)任務(wù)名稱(chēng)開(kāi)始時(shí)間結(jié)束時(shí)間持續(xù)時(shí)間(天)參加人員預(yù)算經(jīng)費(fèi)其它資源A可行性分析2011.05.152011.05.
3、151張士捷 B需求分析2011.05.162011.05.161張士捷C軟件設(shè)計(jì)2011.05.172011.05.193徐山D數(shù)據(jù)庫(kù)建立2011.05.202011.05.212朱寧E單元測(cè)試2011.05.222011.05.221張林 F集成測(cè)試2011.05.232011.05.231張林G驗(yàn)收測(cè)試:2011.05.242011.05.241張士捷二、系統(tǒng)流程圖和軟硬件設(shè)備清單表。u 硬件環(huán)境: (1) 處理器(CPU):1G以上 (2) 內(nèi)存容量(RAM):512M以上u 軟件環(huán)境 (1) 操作系統(tǒng):Microsoft Windows 2000或以上(2)
4、數(shù)據(jù)庫(kù)管理系統(tǒng):Microsoft Office Access三、細(xì)化的數(shù)據(jù)流程圖和圖解說(shuō)明。圖書(shū)管理系統(tǒng)細(xì)化數(shù)據(jù)流程圖四、系統(tǒng)的數(shù)據(jù)字典。元素編號(hào)名稱(chēng)類(lèi)型說(shuō)明IPO1查詢處理讀者查詢本人借還書(shū)記錄,圖書(shū)信息IPO2更新處罰規(guī)則處理處罰規(guī)則維護(hù)IPO3處罰處理根據(jù)處罰規(guī)則給以處罰,登記處罰款信息IPO4借書(shū)處理處理按讀者號(hào),圖書(shū)號(hào)進(jìn)行借書(shū)IPO5有效性檢查處理檢查讀者號(hào),圖書(shū)號(hào)的有效性IPO6圖書(shū)管理處理圖書(shū)的添加,修改,刪除IPO7還書(shū)處理根據(jù)書(shū)號(hào)還書(shū)處理DS1讀者記錄數(shù)據(jù)存儲(chǔ)保存讀者基本信息DS2圖書(shū)信息記錄數(shù)據(jù)存儲(chǔ)保存圖書(shū)基本信息DS3借還書(shū)記錄數(shù)據(jù)存儲(chǔ)保存借還書(shū)信息DS4處罰記錄數(shù)據(jù)存
5、儲(chǔ)保存罰款信息DS5處罰規(guī)則數(shù)據(jù)存儲(chǔ)記錄處罰規(guī)則五、IPO圖(至少三個(gè)處理過(guò)程)。IPO圖編號(hào):IPO2 名稱(chēng):更新處罰規(guī)則輸入處理說(shuō)明輸出罰款金額/天1,修改罰款金額/天修改DS5處罰規(guī)則備注:編號(hào):IPO3 名稱(chēng):處罰輸入處理說(shuō)明輸出(根據(jù)系統(tǒng)時(shí)間自動(dòng)計(jì)算)1,創(chuàng)建處罰記錄插入處罰記錄到DS4備注:編號(hào):IPO4 名稱(chēng):借書(shū)處理輸入處理說(shuō)明輸出讀者編號(hào)圖書(shū)編號(hào)1,輸入讀者編號(hào)和圖書(shū)編號(hào)2,創(chuàng)建結(jié)束記錄,修改圖書(shū)在庫(kù)量修改DS2的在庫(kù)圖書(shū)量插入借書(shū)記錄到DS3備注:六、系統(tǒng)的ER圖。E-R圖七、需求說(shuō)明規(guī)格說(shuō)明書(shū)。7.1詳細(xì)需求在圖書(shū)管理系統(tǒng)中,管理員要為每個(gè)讀者建立借閱賬戶,并給讀者發(fā)放不
6、同類(lèi)別的借閱卡(借閱卡可提供卡號(hào)、讀者姓名),賬戶內(nèi)存儲(chǔ)讀者的個(gè)人信息和借閱記錄信息。持有借閱卡的讀者可以通過(guò)管理員(作為讀者的代理人與系統(tǒng)交互)借閱、歸還圖書(shū),不同類(lèi)別的讀者可借閱圖書(shū)的范圍、數(shù)量和期限不同,可通過(guò)互聯(lián)網(wǎng)或圖書(shū)館內(nèi)查詢終端查詢圖書(shū)信息和個(gè)人借閱情況,以及續(xù)借圖書(shū)(系統(tǒng)審核符合續(xù)借條件)。借閱圖書(shū)時(shí),先輸入讀者的借閱卡號(hào),系統(tǒng)驗(yàn)證借閱卡的有效性和讀者是否可繼續(xù)借閱圖書(shū),無(wú)效則提示其原因,有效則顯示讀者的基本信息,供管理員人工核對(duì)。然后輸入要借閱的書(shū)號(hào),系統(tǒng)查閱圖書(shū)信息數(shù)據(jù)庫(kù),顯示圖書(shū)的基本信息,供管理員人工核對(duì)。最后提交借閱請(qǐng)求,若被系統(tǒng)接受則存儲(chǔ)借閱紀(jì)錄,并修改可借閱圖書(shū)的數(shù)
7、量。歸還圖書(shū)時(shí),輸入讀者借閱卡號(hào)和圖書(shū)號(hào)(或丟失標(biāo)記號(hào)),系統(tǒng)驗(yàn)證是否有此借閱紀(jì)錄以及是否超期借閱,無(wú)則提示,有則顯示讀者和圖書(shū)的基本信息供管理員人工審核。如果有超期借閱情況,先轉(zhuǎn)入過(guò)期罰款處理。圖書(shū)管理員定期或不定期對(duì)圖書(shū)信息進(jìn)行入庫(kù)、修改、刪除等圖書(shū)信息管理以及注銷(xiāo)(不外借),包括圖書(shū)類(lèi)別和出版社管理。為系統(tǒng)維護(hù)人員提供權(quán)限管理、數(shù)據(jù)備份等通用功能。7.2性能需求由于此開(kāi)發(fā)項(xiàng)目針對(duì)圖書(shū)館,使用頻度較高,使用性要求比較高。為防止對(duì)信息資料和管理程序的惡意破壞,要求有較為可靠的安全性能??傊?,要求穩(wěn)定、安全、便捷,易于管理和操作。² 查詢速度:不超過(guò)10秒;² 其它所有交互
8、功能反應(yīng)速度:不超過(guò)3秒;² 可靠性:平均故障間隔時(shí)間不低于200小時(shí)。7.3 其他需求能快速恢復(fù)系統(tǒng)和故障處理,方便系統(tǒng)升級(jí)和擴(kuò)充,故障恢復(fù)時(shí)間不超過(guò)5小時(shí)。八、設(shè)計(jì)工作計(jì)劃書(shū)。包括任務(wù)分解、時(shí)間和人員安排、階段工作成果等。任務(wù)的分解和人員分工 任務(wù)姓名開(kāi)發(fā)時(shí)間計(jì)劃開(kāi)始時(shí)間可行性分析張士捷1天2011.05.15需求分析張士捷1天2011.05.16軟件設(shè)計(jì)徐山3天2011.05.17數(shù)據(jù)庫(kù)建立朱寧2天2011.05.20單元測(cè)試張林 1天2011.05.22集成測(cè)試張林1天2011.05.23驗(yàn)收測(cè)試:張士捷1天2011.05.24“圖書(shū)管理系統(tǒng)”進(jìn)度表活
9、動(dòng)編號(hào)活動(dòng)任務(wù)名稱(chēng)開(kāi)始時(shí)間結(jié)束時(shí)間持續(xù)時(shí)間(天)參加人員階段工作成果A可行性分析2011.05.152011.05.151張士捷完成可行性分析B需求分析2011.05.162011.05.161張士捷完成需求分析C軟件設(shè)計(jì)2011.05.172011.05.193徐山完成軟件設(shè)計(jì)D數(shù)據(jù)庫(kù)建立2011.05.202011.05.212朱寧完成數(shù)據(jù)庫(kù)建立E單元測(cè)試2011.05.222011.05.221張林 完成單元測(cè)試F集成測(cè)試2011.05.232011.05.231張林完成集成測(cè)試G驗(yàn)收測(cè)試:2011.05.242011.05.241張士捷完成驗(yàn)收測(cè)試:九、對(duì)分析的
10、補(bǔ)充說(shuō)明(如果有的話),對(duì)分析的評(píng)分。我小組對(duì)分析的總體評(píng)分為:80分十、設(shè)計(jì)規(guī)格說(shuō)明書(shū)(包括概要設(shè)計(jì)說(shuō)明書(shū)和詳細(xì)設(shè)計(jì)說(shuō)明書(shū))(一)概要設(shè)計(jì)說(shuō)明書(shū)1、引言編寫(xiě)目的由前面的需求分析,得出了系統(tǒng)的基本需求,和基本的數(shù)據(jù)流圖,要實(shí)現(xiàn)整個(gè)系統(tǒng),需要對(duì)用戶的需求進(jìn)行設(shè)計(jì),概要設(shè)計(jì)主要是利用比較抽象的語(yǔ)言對(duì)整個(gè)需求進(jìn)行概括,確定對(duì)系統(tǒng)的物理配置,確定整個(gè)系統(tǒng)的處理流程和系統(tǒng)的數(shù)據(jù)結(jié)構(gòu),接口設(shè)計(jì),實(shí)現(xiàn)對(duì)系統(tǒng)的初步設(shè)計(jì)。項(xiàng)目背景根據(jù)XX學(xué)校希望能夠充分利用現(xiàn)代科技來(lái)提高圖書(shū)管理的效率,在原有的辦公系統(tǒng)基礎(chǔ)上進(jìn)行擴(kuò)展,將一些可以用計(jì)算機(jī)來(lái)管理的都進(jìn)行計(jì)算機(jī)化,使得圖書(shū)館管理人員工作更加方便,工作效率也更加的高。
11、定義ACCESS:數(shù)據(jù)庫(kù)管理軟件DBMS:數(shù)據(jù)庫(kù)管理系統(tǒng)Windows 2000/2003/XP:運(yùn)行環(huán)境VB :軟件開(kāi)發(fā)語(yǔ)言目標(biāo)通過(guò)該系統(tǒng)的實(shí)施,將圖書(shū)館管理等方面通過(guò)系統(tǒng)來(lái)實(shí)施,其中包括對(duì)學(xué)生借還讀書(shū)信息,員工信息,以及讀書(shū)信息等等,使得圖書(shū)館借還等管理業(yè)務(wù)和查詢業(yè)務(wù)運(yùn)轉(zhuǎn)周期縮短,來(lái)提高學(xué)校圖書(shū)館運(yùn)轉(zhuǎn)效率。運(yùn)行環(huán)境數(shù)據(jù)庫(kù)管理系統(tǒng)軟件:ACCESS運(yùn)行平臺(tái):Windows XP/Windows 2000/Windows 2003.分辨率:最佳效果1024x768像素需求概述按照需求分析文檔中的規(guī)格要求,使用條形碼掃描器進(jìn)書(shū)、借書(shū)、還書(shū),使得信息傳遞準(zhǔn)確、流暢。同時(shí),系統(tǒng)最大限度地實(shí)現(xiàn)易安裝,
12、易維護(hù)性,易操作性,運(yùn)行穩(wěn)定,安全可靠。條件與限制無(wú)2、總體設(shè)計(jì)數(shù)據(jù)流程及處理功能分配針對(duì)圖書(shū)管理系統(tǒng),可分為4大模塊,分別管理系統(tǒng)管理子系統(tǒng),圖書(shū)管理子系統(tǒng),借書(shū)子系統(tǒng),查詢子系統(tǒng)。3、接口設(shè)計(jì)外部接口1, 用戶接口:采用窗口化,菜單式進(jìn)行設(shè)計(jì),在操作時(shí)響應(yīng)熱鍵。2, 硬件接口:一卡通,掃描儀器3, 軟件接口/通過(guò)ADO對(duì)數(shù)據(jù)庫(kù)的連接內(nèi)部接口通過(guò)面向?qū)ο笳Z(yǔ)言設(shè)計(jì),模塊間實(shí)現(xiàn)嚴(yán)格封裝;4、數(shù)據(jù)庫(kù)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)物理結(jié)構(gòu)設(shè)計(jì)略(詳見(jiàn)12數(shù)據(jù)庫(kù)設(shè)計(jì))5、運(yùn)行設(shè)計(jì)運(yùn)行模塊的組合本程序主要是以一個(gè)窗口為模塊,一般一個(gè)窗口完成一個(gè)特定的功能,主窗口通過(guò)打開(kāi)另一個(gè)子窗口來(lái)實(shí)現(xiàn)個(gè)模塊之間不同功能的連接和組合
13、。各模塊之間相對(duì)獨(dú)立,程序的可移植性好。各模塊之間主要以傳遞數(shù)據(jù)項(xiàng)的引用來(lái)實(shí)現(xiàn)模塊之間的合作和數(shù)據(jù)共享。運(yùn)行控制只要符合操作說(shuō)明書(shū),用戶可自由控制運(yùn)行時(shí)間由用戶決定6、出錯(cuò)處理設(shè)計(jì)出錯(cuò)輸出信息本程序多處采用了異常處理的機(jī)制,當(dāng)遇到異常時(shí)不但能及時(shí)的處理,保證程序的安全性和穩(wěn)定性,而且各種出錯(cuò)信息能通過(guò)彈出對(duì)話框的形式,及時(shí)的告訴用戶出錯(cuò)的原因及解決的辦法,使用戶以后能夠減少錯(cuò)誤的發(fā)生。程序的大部分地方還采取了出錯(cuò)保護(hù),如輸入內(nèi)容的長(zhǎng)度和類(lèi)型等減少了用戶出錯(cuò)的可能。出錯(cuò)處理對(duì)策我們對(duì)于本程序的幾種可能的錯(cuò)誤進(jìn)行了分析,分別進(jìn)行了不同的處理。主要的錯(cuò)誤可能有:輸入錯(cuò)誤:這主要是用戶輸入不規(guī)范造成的
14、,我們?cè)诒M量減少用戶出錯(cuò)的條件的情況下,主要也是通過(guò)對(duì)話框,提醒用戶,然后再次操作。其他操作錯(cuò)誤:對(duì)于用戶的不正當(dāng)操作,有可能使程序發(fā)生錯(cuò)誤。我們主要是中止操作,并提醒用戶中止的原因和操作的規(guī)范。其他不可預(yù)知的錯(cuò)誤:程序也會(huì)有一些我們無(wú)法預(yù)知或沒(méi)考慮完全的錯(cuò)誤,我們對(duì)此不可能作出萬(wàn)全的異常處理,這時(shí)我們主要要保證數(shù)據(jù)的安全,所以要經(jīng)常的進(jìn)行數(shù)據(jù)庫(kù)備份,并能及時(shí)的和我們聯(lián)系,以逐步的完善我們的程序。(二)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)1、引言略2、總體設(shè)計(jì)2.1需求概述略(詳見(jiàn) 7 需求規(guī)格說(shuō)明)2.1軟件結(jié)構(gòu)略3、程序描述3.1系統(tǒng)管理模塊略3.2圖書(shū)管理模塊略3.3借還書(shū)模塊略3.4查詢模塊。略3.5接口設(shè)
15、計(jì)略3.6測(cè)試要點(diǎn)系統(tǒng)登錄測(cè)試信息檢索功能測(cè)試十一、系統(tǒng)軟件結(jié)構(gòu)圖。十二、數(shù)據(jù)庫(kù)設(shè)計(jì)(包括表名、字段名、字段類(lèi)型、字段大小、字段說(shuō)明)基本設(shè)置表(basicSet)字段類(lèi)型長(zhǎng)度格式約束采集方式借出冊(cè)數(shù)數(shù)字20主鍵,必須輸入人工采集罰款數(shù)字50必須輸入人工采集圖書(shū)信息表(bookInfo)字段類(lèi)型長(zhǎng)度格式約束采集方式書(shū)籍編號(hào)文本20主鍵,必須輸入圖書(shū)名稱(chēng)文本50必須輸入人工采集類(lèi)別代號(hào)文本20必須輸入人工采集出版社文本20人工采集作者姓名文本20人工采集書(shū)籍價(jià)格數(shù)字20人工采集書(shū)籍頁(yè)碼文本20人工采集登記日期時(shí)間/日期自動(dòng)采集是否借出是/否1自動(dòng)采集圖書(shū)種類(lèi)(bookType)字段類(lèi)型長(zhǎng)度格式約
16、束采集方式類(lèi)別代碼文本20主鍵,必須輸入書(shū)籍類(lèi)別文本20必須輸入人工采集借出天數(shù)數(shù)字20必須輸入自動(dòng)采集借閱信息表(lentInfo)字段類(lèi)型長(zhǎng)度格式約束采集方式讀者編號(hào)文本20主鍵,必須輸入人工采集書(shū)籍編號(hào)文本20主鍵,必須輸入人工采集借書(shū)日期日期/時(shí)間自動(dòng)采集還書(shū)日期日期/時(shí)間自動(dòng)采集超出天數(shù)數(shù)字20自動(dòng)采集罰款金額數(shù)字20自動(dòng)采集登錄信息表字段類(lèi)型長(zhǎng)度格式約束采集方式ID自動(dòng)編號(hào)20主鍵,必須輸入人工采集名稱(chēng)文本20必須輸入人工采集密碼文本20必須輸入人工采集書(shū)庫(kù)管理是/否1人工采集讀者管理是/否1人工采集圖書(shū)管理是/否1人工采集基本管理是/否1人工采集讀者信息表(rederInfo)字
17、段類(lèi)型長(zhǎng)度格式約束采集方式讀者編號(hào)文本20主鍵,必須輸入人工采集讀者姓名文本20人工采集讀者性別文本2男/女人工采集辦證日期日期/時(shí)間人工采集聯(lián)系電話文本20人工采集工作單位文本20人工采集家庭住址文本20人工采集十三、3個(gè)模塊的詳細(xì)設(shè)計(jì)說(shuō)明(以程序流程圖+文字說(shuō)明)。還書(shū)數(shù)據(jù)流程圖借書(shū)數(shù)據(jù)流程圖 圖書(shū)管理書(shū)籍流程圖十四、5個(gè)模塊的界面設(shè)計(jì)(可以用高級(jí)編程語(yǔ)言環(huán)境或其他任何工具設(shè)計(jì))。十五、系統(tǒng)主要功能的源代碼(包括注釋?zhuān)?(考核方式:提交文檔)主程序代碼:Private Sub chkQuery_Click()If chkQuery.Value = 1 Then txtQueryBookID
18、.Enabled = TrueElse txtQueryBookID.Enabled = FalseEnd IfEnd SubPrivate Sub cmdLendBook_Click()If txtReaderID.Text <> "" Then If lblRemain.Caption <> "0" Then '判斷是否已經(jīng)借滿 Set g_rs = g_db.OpenRecordset("lentInfo", dbOpenTable) With g_rs .AddNew .Fields("
19、;讀者編號(hào)") = txtReaderID.Text .Fields("書(shū)籍編號(hào)") = txtBookID.Text .Fields("借書(shū)日期") = dtpLendDate.Value .Update End With Set g_rs = Nothing '更新bookInfo表,設(shè)置該書(shū)是否借出屬性為"借出" g_strSql = "select * from bookInfo where 書(shū)籍編號(hào)='" & txtBookID.Text & "'
20、;" Set g_rs = g_db.OpenRecordset(g_strSql) g_rs.Edit g_rs.Fields("是否借出").Value = True g_rs.Update Set g_rs = Nothing MsgBox "借出完畢!", vbOKOnly, "提示" txtBookID.Text = "" txtBookName.Text = "" txtBookPrice.Text = "" txtBookLeibie.Text = &
21、quot;" txtBookConcern.Text = "" txtBookPage.Text = "" InitDataGrid (False) Else MsgBox "您的書(shū)已經(jīng)借滿,不能再借!", vbOKOnly, "提示" End IfElse MsgBox "請(qǐng)先輸入讀者編號(hào)!", vbOKOnly, "提示"End IfEnd SubPrivate Sub cmdOK_Click() g_strSql = "select * from l
22、entInfo where 書(shū)籍編號(hào)='" & txtBookIDRenew.Text & "' and 讀者編號(hào)='" & txtReaderIDRenew.Text & "' and 借書(shū)日期=#" & txtLendDate.Text & "#" Set g_rs = g_db.OpenRecordset(g_strSql) g_rs.Edit g_rs.Fields("借書(shū)日期").Value = dtpLendDat
23、eChange.Value g_rs.Update Set g_rs = Nothing Adodc1.Recordset.Update MsgBox "續(xù)借完畢!", vbOKOnly, "提示"End SubPrivate Sub cmdReturn_Click() g_strSql = "select * from lentInfo where 書(shū)籍編號(hào)='" & txtBookIDReturn.Text & "' and 讀者編號(hào)='" & txtReadID
24、Return.Text & "' and 借書(shū)日期=#" & txtLendDateReturn.Text & "#" Set g_rs = g_db.OpenRecordset(g_strSql) g_rs.Edit g_rs.Fields("還書(shū)日期").Value = txtReturnDate.Text g_rs.Fields("超出天數(shù)").Value = txtDayCount.Text g_rs.Fields("罰款金額").Value = txtF
25、akuan.Text g_rs.Update Set g_rs = Nothing g_strSql = "select * from bookInfo where 書(shū)籍編號(hào)='" & txtBookIDReturn.Text & "'" Set g_rs = g_db.OpenRecordset(g_strSql) g_rs.Edit g_rs.Fields("是否借出").Value = False g_rs.Update Set g_rs = Nothing txtBookIDReturn.Tex
26、t = "" txtBookNameReturn.Text = "" txtBookPriceReturn.Text = "" txtBookLeibieReturn.Text = "" txtBookPageReturn.Text = "" txtReadIDReturn.Text = "" txtReaderNameReturn.Text = "" txtLendDateReturn.Text = "" txtDay.Text =
27、"" txtReturnDate.Text = "" txtFactDay.Text = "" txtDayCount.Text = "" cmdReturn.Enabled = False MsgBox "歸還完畢!", vbOKOnly, "提示"End SubPrivate Sub Form_Load()dtpLendDate.Value = DatedtpLendDateChange.Value = Date Set g_ws = DBEngine.Workspace
28、s(0) Set g_db = g_ws.OpenDatabase(App.Path + "圖書(shū)館查詢管理系統(tǒng).mdb")End SubPrivate Sub Form_Unload(Cancel As Integer) g_db.Close Set g_db = Nothing g_ws.Close Set g_ws = Nothing EndEnd SubPrivate Sub mnuBookManage_Click()FrmBookManage.ShowEnd SubPrivate Sub mnuBookQuery_Click()FrmBookQuery.ShowEn
29、d SubPrivate Sub mnuLendQuery_Click()FrmLendQuery.ShowEnd SubPrivate Sub mnuSetBasic_Click()FrmSetBasic.ShowEnd SubPrivate Sub mnuSetBook_Click()FrmSetBook.ShowEnd SubPrivate Sub SSTab1_DblClick()End SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)'根據(jù)點(diǎn)擊工具欄按鈕的caption屬性值進(jìn)行不同
30、的操作Select Case Button.Caption Case "書(shū)庫(kù)管理" FrmBookManage.Show Case "新書(shū)" FrmAddnew.Show Case "借閱列表" FrmLendList.Show Case "書(shū)庫(kù)查詢" FrmBookQuery.Show Case "圖書(shū)類(lèi)別" FrmSetBook.Show Case "退出" Call Form_Unload(0)End SelectEnd SubPrivate Sub txtBookID
31、_KeyPress(KeyAscii As Integer)'判斷用戶按下回車(chē)鍵并且是否輸入讀者編號(hào)和書(shū)籍編號(hào)If KeyAscii = "13" And txtReaderID.Text <> "" And txtBookID.Text <> "" Then g_strSql = "select bookInfo.書(shū)籍名稱(chēng),bookInfo.書(shū)籍價(jià)格,bookInfo.出版社,bookInfo.書(shū)籍頁(yè)碼," _ & "bookInfo.是否借出,bookType.
32、書(shū)籍類(lèi)別 from bookInfo,bookType where 書(shū)籍編號(hào)='" & txtBookID.Text & "'" _ & " and bookInfo.類(lèi)別代碼=bookType.類(lèi)別代碼" Set g_rs = g_db.OpenRecordset(g_strSql) If Not g_rs.EOF Then txtBookName.Text = g_rs!書(shū)籍名稱(chēng) txtBookPrice.Text = g_rs!書(shū)籍價(jià)格 txtBookLeibie.Text = g_rs!書(shū)籍類(lèi)別
33、txtBookConcern.Text = g_rs!出版社 txtBookPage.Text = g_rs!書(shū)籍頁(yè)碼 If g_rs!是否借出 = True Then MsgBox "該書(shū)已經(jīng)借出,請(qǐng)選擇其它圖書(shū)!", vbOKOnly, "提示" cmdLendBook.Enabled = False Else cmdLendBook.Enabled = True End If Else MsgBox "沒(méi)有該書(shū)信息!", vbOKOnly, "提示" txtBookName.Text = "&quo
34、t; txtBookPrice.Text = "" txtBookLeibie.Text = "" txtBookConcern.Text = "" txtBookPage.Text = "" End If Set g_rs = Nothing ElseIf KeyAscii = "13" And txtReaderID.Text = "" Then MsgBox "請(qǐng)先輸入讀者編號(hào)", vbOKOnly, "提示"ElseIf Key
35、Ascii = "13" And txtReaderID.Text <> "" And txtBookID.Text = "" Then MsgBox "請(qǐng)先輸入書(shū)籍編號(hào)", vbOKOnly, "提示"End IfEnd SubPrivate Sub txtBookIDReturn_KeyPress(KeyAscii As Integer)Dim strSQL As String'判斷用戶按下回車(chē)鍵并且是否輸入讀者編號(hào)和書(shū)籍編號(hào) If KeyAscii = "13
36、" And txtBookIDReturn.Text <> "" Then strSQL = "select lentInfo.讀者編號(hào),readerInfo.讀者姓名,lentInfo.書(shū)籍編號(hào),bookInfo.書(shū)籍價(jià)格," _ & " bookInfo.書(shū)籍名稱(chēng),bookInfo.書(shū)籍頁(yè)碼,lentInfo.借書(shū)日期,bookType.書(shū)籍類(lèi)別,bookType.借出天數(shù)" _ & " from readerInfo,bookInfo,lentInfo,bookType where
37、 readerInfo.讀者編號(hào)=lentInfo.讀者編號(hào)" _ & " and bookInfo.書(shū)籍編號(hào)=lentInfo.書(shū)籍編號(hào) and bookInfo.書(shū)籍編號(hào)='" & txtBookIDReturn.Text & "'" _ & " and bookInfo.類(lèi)別代碼=bookType.類(lèi)別代碼" g_strSql = strSQL Set g_rs = g_db.OpenRecordset(g_strSql) If Not g_rs.EOF Then cmd
38、LendBook.Enabled = True txtBookNameReturn.Text = g_rs!書(shū)籍名稱(chēng) txtBookPriceReturn.Text = g_rs!書(shū)籍價(jià)格 txtBookLeibieReturn.Text = g_rs!書(shū)籍類(lèi)別 txtBookPageReturn.Text = g_rs!書(shū)籍頁(yè)碼 txtReadIDReturn.Text = g_rs!讀者編號(hào) txtReaderNameReturn.Text = g_rs!讀者姓名 txtLendDateReturn.Text = g_rs!借書(shū)日期 txtDay.Text = g_rs!借出天數(shù) txtR
39、eturnDate.Text = Date txtFactDay.Text = CStr(Date - g_rs!借書(shū)日期) If CInt(txtFactDay.Text) - CInt(txtDay.Text) > 0 Then txtDayCount.Text = CStr(CInt(txtFactDay.Text) - CInt(txtReturnDate.Text) Else txtDayCount.Text = "0" End If Set g_rs = Nothing g_strSql = strSQL Set g_rs = g_db.OpenRecor
40、dset("select * from basicSet") txtFakuan.Text = g_rs!罰款 * CInt(txtDayCount.Text) Set g_rs = Nothing cmdReturn.Enabled = True Else Set g_rs = Nothing MsgBox "沒(méi)有該書(shū)信息!", vbOKOnly, "提示" txtBookNameReturn.Text = "" txtBookPriceReturn.Text = "" txtBookLeib
41、ieReturn.Text = "" txtBookPageReturn.Text = "" txtReadIDReturn.Text = "" txtReaderNameReturn.Text = "" txtLendDateReturn.Text = "" txtDay.Text = "" txtReturnDate.Text = "" txtFactDay.Text = "" txtDayCount.Text = "&q
42、uot; cmdReturn.Enabled = False End If ElseIf KeyAscii = "13" And txtBookIDReturn.Text = "" Then MsgBox "請(qǐng)先輸入書(shū)籍編號(hào)", vbOKOnly, "提示"End IfEnd SubPrivate Sub txtReaderID_KeyPress(KeyAscii As Integer)'判斷用戶按下回車(chē)鍵并且是否輸入讀者編號(hào)If KeyAscii = "13" And txtReade
43、rID.Text <> "" Then '根據(jù)輸入的讀者編號(hào),查找讀者姓名 g_strSql = "select * from readerInfo where 讀者編號(hào)='" & txtReaderID.Text & "'" Set g_rs = g_db.OpenRecordset(g_strSql) '進(jìn)行數(shù)據(jù)庫(kù)的查詢 '判斷是否找到 If Not g_rs.EOF Then txtReaderName.Text = g_rs!讀者姓名 InitDataGrid
44、 (False) '初始化DataGrid控件信息 Else MsgBox "沒(méi)有該讀者信息!", vbOKOnly, "提示" txtReaderName.Text = "" End If Set g_rs = NothingElseIf KeyAscii = "13" And txtReaderID.Text = "" Then MsgBox "請(qǐng)先輸入讀者編號(hào)", vbOKOnly, "提示"End IfEnd SubPublic Funct
45、ion InitDataGrid(blnRenew As Boolean) '初始化DataGrid控件信息,其中得參數(shù)用來(lái)區(qū)分是正常借書(shū)頁(yè)面還是續(xù)借頁(yè)面Dim strDataSource As StringDim intCount As IntegerDim strReaderID As StringIf blnRenew = False Then strReaderID = txtReaderID.TextElse strReaderID = txtReaderIDRenew.TextEnd IfstrDataSource = "select lentInfo.讀者編號(hào),
46、readerInfo.讀者姓名,lentInfo.書(shū)籍編號(hào)," _ & " bookInfo.書(shū)籍名稱(chēng),bookType.書(shū)籍類(lèi)別,bookInfo.出版社,bookInfo.書(shū)籍頁(yè)碼,lentInfo.借書(shū)日期," _ & " lentInfo.還書(shū)日期,lentInfo.超出天數(shù),lentInfo.罰款金額 from readerInfo,bookInfo,lentInfo,bookType " _ & " where readerInfo.讀者編號(hào)=lentInfo.讀者編號(hào) and bookInfo.書(shū)
47、籍編號(hào)=lentInfo.書(shū)籍編號(hào) and " _ & " lentInfo.讀者編號(hào)='" & strReaderID & "' and bookType.類(lèi)別代碼=bookInfo.類(lèi)別代碼 and lentInfo.還書(shū)日期 is null"Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "圖書(shū)館查詢管理系統(tǒng).mdb;Persis
48、t Security Info=False"Adodc1.CursorLocation = adUseClientAdodc1.CommandType = adCmdTextAdodc1.RecordSource = strDataSourceAdodc1.RefreshIf blnRenew = False Then '如果是正常借書(shū)進(jìn)行如下操作 Set dtgrdLendBook.DataSource = Adodc1 dtgrdLendBook.Refresh '顯示一共借了多少書(shū) lblLendCount.Caption = "所借圖書(shū):"
49、 + CStr(Adodc1.Recordset.RecordCount) '顯示還能夠借多少書(shū) g_strSql = "select * from basicSet" Set g_rs = g_db.OpenRecordset(g_strSql) intCount = g_rs!借出冊(cè)數(shù) - Adodc1.Recordset.RecordCount lblRemain.Caption = CStr(intCount)Else Set dtgrdLendBookRenew.DataSource = Adodc1 dtgrdLendBookRenew.RefreshEnd IfEnd FunctionPrivate Sub txtReaderIDRenew_KeyPress(KeyAscii As Integer)'判斷用戶按下回車(chē)鍵并且是否輸入讀者編號(hào)If KeyAscii = "13" And txtReaderIDRenew.Text <> "" Then '根據(jù)輸入的讀者編號(hào),查找
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋中介公司雇傭合同
- 個(gè)人授信額度借款合同
- 個(gè)人房屋出租協(xié)議書(shū)
- 鋁合金方管施工方案
- 懸挑翼緣板施工方案
- 廠房照明施工方案
- 瓷磚干掛施工方案
- 海西輕鋼別墅施工方案
- 沈陽(yáng)地源熱泵井施工方案
- 河南省平頂山市汝州市2024-2025學(xué)年八年級(jí)上學(xué)期期末生物試題(原卷版+解析版)
- 2025年常州機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)參考答案
- 2025年安徽衛(wèi)生健康職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及參考答案1套
- 《澳大利亞》導(dǎo)學(xué)案
- 2025四川省安全員A證考試題庫(kù)附答案
- 課件-DeepSeek從入門(mén)到精通
- 17J008擋土墻(重力式、衡重式、懸臂式)圖示圖集
- 【MOOC】理解馬克思-南京大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- LS框架斷路器技術(shù)資料_圖文
- 品質(zhì)異常(8D)改善報(bào)告
- 彎頭重量和表面積明細(xì)表
- 第二章--美國(guó)學(xué)前教育--比較學(xué)前教育PPT
評(píng)論
0/150
提交評(píng)論