軟件工程綜合性實(shí)驗(yàn)報(bào)告_第1頁
軟件工程綜合性實(shí)驗(yàn)報(bào)告_第2頁
軟件工程綜合性實(shí)驗(yàn)報(bào)告_第3頁
軟件工程綜合性實(shí)驗(yàn)報(bào)告_第4頁
軟件工程綜合性實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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)目名稱:圖書管理系統(tǒng)指導(dǎo)教師:方英蘭組員:張士捷(039)徐 山(038)朱 寧(018)張 林(003)時(shí)間:2011年5月一、項(xiàng)目工作計(jì)劃書。包括項(xiàng)目階段劃分、任務(wù)分解、時(shí)間和人員安排、階段工作成果等。1、階段劃分A. 可行性分析:1天B. 需求分析:1天;C. 軟件設(shè)計(jì)(概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)):3天;D. 數(shù)據(jù)庫建立:2天;E. 單元測(cè)試:1天;F. 集成測(cè)試:1天;G. 驗(yàn)收測(cè)試:1天2、任務(wù)的分解和人員分工 任務(wù)姓名開發(fā)時(shí)間計(jì)劃開始時(shí)間可行性分析張士捷1天2011.05.15需求分析張士捷1天2011.05.16軟件設(shè)計(jì)徐山3天2011.05.17數(shù)據(jù)庫建立朱

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)度安排,具體安排見“PERT網(wǎng)絡(luò)圖”和“進(jìn)度計(jì)劃表”。4、“圖書管理系統(tǒng)”進(jìn)度計(jì)劃表“圖書管理系統(tǒng)”進(jìn)度計(jì)劃表活動(dòng)編號(hào)活動(dòng)任務(wù)名稱開始時(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ù)庫建立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ù)庫管理系統(tǒng):Microsoft Office Access三、細(xì)化的數(shù)據(jù)流程圖和圖解說明。圖書管理系統(tǒng)細(xì)化數(shù)據(jù)流程圖四、系統(tǒng)的數(shù)據(jù)字典。元素編號(hào)名稱類型說明IPO1查詢處理讀者查詢本人借還書記錄,圖書信息IPO2更新處罰規(guī)則處理處罰規(guī)則維護(hù)IPO3處罰處理根據(jù)處罰規(guī)則給以處罰,登記處罰款信息IPO4借書處理處理按讀者號(hào),圖書號(hào)進(jìn)行借書IPO5有效性檢查處理檢查讀者號(hào),圖書號(hào)的有效性IPO6圖書管理處理圖書的添加,修改,刪除IPO7還書處理根據(jù)書號(hào)還書處理DS1讀者記錄數(shù)據(jù)存儲(chǔ)保存讀者基本信息DS2圖書信息記錄數(shù)據(jù)存儲(chǔ)保存圖書基本信息DS3借還書記錄數(shù)據(jù)存儲(chǔ)保存借還書信息DS4處罰記錄數(shù)據(jù)存

5、儲(chǔ)保存罰款信息DS5處罰規(guī)則數(shù)據(jù)存儲(chǔ)記錄處罰規(guī)則五、IPO圖(至少三個(gè)處理過程)。IPO圖編號(hào):IPO2 名稱:更新處罰規(guī)則輸入處理說明輸出罰款金額/天1,修改罰款金額/天修改DS5處罰規(guī)則備注:編號(hào):IPO3 名稱:處罰輸入處理說明輸出(根據(jù)系統(tǒng)時(shí)間自動(dòng)計(jì)算)1,創(chuàng)建處罰記錄插入處罰記錄到DS4備注:編號(hào):IPO4 名稱:借書處理輸入處理說明輸出讀者編號(hào)圖書編號(hào)1,輸入讀者編號(hào)和圖書編號(hào)2,創(chuàng)建結(jié)束記錄,修改圖書在庫量修改DS2的在庫圖書量插入借書記錄到DS3備注:六、系統(tǒng)的ER圖。E-R圖七、需求說明規(guī)格說明書。7.1詳細(xì)需求在圖書管理系統(tǒng)中,管理員要為每個(gè)讀者建立借閱賬戶,并給讀者發(fā)放不

6、同類別的借閱卡(借閱卡可提供卡號(hào)、讀者姓名),賬戶內(nèi)存儲(chǔ)讀者的個(gè)人信息和借閱記錄信息。持有借閱卡的讀者可以通過管理員(作為讀者的代理人與系統(tǒng)交互)借閱、歸還圖書,不同類別的讀者可借閱圖書的范圍、數(shù)量和期限不同,可通過互聯(lián)網(wǎng)或圖書館內(nèi)查詢終端查詢圖書信息和個(gè)人借閱情況,以及續(xù)借圖書(系統(tǒng)審核符合續(xù)借條件)。借閱圖書時(shí),先輸入讀者的借閱卡號(hào),系統(tǒng)驗(yàn)證借閱卡的有效性和讀者是否可繼續(xù)借閱圖書,無效則提示其原因,有效則顯示讀者的基本信息,供管理員人工核對(duì)。然后輸入要借閱的書號(hào),系統(tǒng)查閱圖書信息數(shù)據(jù)庫,顯示圖書的基本信息,供管理員人工核對(duì)。最后提交借閱請(qǐng)求,若被系統(tǒng)接受則存儲(chǔ)借閱紀(jì)錄,并修改可借閱圖書的數(shù)

7、量。歸還圖書時(shí),輸入讀者借閱卡號(hào)和圖書號(hào)(或丟失標(biāo)記號(hào)),系統(tǒng)驗(yàn)證是否有此借閱紀(jì)錄以及是否超期借閱,無則提示,有則顯示讀者和圖書的基本信息供管理員人工審核。如果有超期借閱情況,先轉(zhuǎn)入過期罰款處理。圖書管理員定期或不定期對(duì)圖書信息進(jìn)行入庫、修改、刪除等圖書信息管理以及注銷(不外借),包括圖書類別和出版社管理。為系統(tǒng)維護(hù)人員提供權(quán)限管理、數(shù)據(jù)備份等通用功能。7.2性能需求由于此開發(fā)項(xiàng)目針對(duì)圖書館,使用頻度較高,使用性要求比較高。為防止對(duì)信息資料和管理程序的惡意破壞,要求有較為可靠的安全性能??傊?,要求穩(wěn)定、安全、便捷,易于管理和操作。² 查詢速度:不超過10秒;² 其它所有交互

8、功能反應(yīng)速度:不超過3秒;² 可靠性:平均故障間隔時(shí)間不低于200小時(shí)。7.3 其他需求能快速恢復(fù)系統(tǒng)和故障處理,方便系統(tǒng)升級(jí)和擴(kuò)充,故障恢復(fù)時(shí)間不超過5小時(shí)。八、設(shè)計(jì)工作計(jì)劃書。包括任務(wù)分解、時(shí)間和人員安排、階段工作成果等。任務(wù)的分解和人員分工 任務(wù)姓名開發(fā)時(shí)間計(jì)劃開始時(shí)間可行性分析張士捷1天2011.05.15需求分析張士捷1天2011.05.16軟件設(shè)計(jì)徐山3天2011.05.17數(shù)據(jù)庫建立朱寧2天2011.05.20單元測(cè)試張林   1天2011.05.22集成測(cè)試張林1天2011.05.23驗(yàn)收測(cè)試:張士捷1天2011.05.24“圖書管理系統(tǒng)”進(jìn)度表活

9、動(dòng)編號(hào)活動(dòng)任務(wù)名稱開始時(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ù)庫建立2011.05.202011.05.212朱寧完成數(shù)據(jù)庫建立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ǔ)充說明(如果有的話),對(duì)分析的評(píng)分。我小組對(duì)分析的總體評(píng)分為:80分十、設(shè)計(jì)規(guī)格說明書(包括概要設(shè)計(jì)說明書和詳細(xì)設(shè)計(jì)說明書)(一)概要設(shè)計(jì)說明書1、引言編寫目的由前面的需求分析,得出了系統(tǒng)的基本需求,和基本的數(shù)據(jù)流圖,要實(shí)現(xiàn)整個(gè)系統(tǒng),需要對(duì)用戶的需求進(jìn)行設(shè)計(jì),概要設(shè)計(jì)主要是利用比較抽象的語言對(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)代科技來提高圖書管理的效率,在原有的辦公系統(tǒng)基礎(chǔ)上進(jìn)行擴(kuò)展,將一些可以用計(jì)算機(jī)來管理的都進(jìn)行計(jì)算機(jī)化,使得圖書館管理人員工作更加方便,工作效率也更加的高。

11、定義ACCESS:數(shù)據(jù)庫管理軟件DBMS:數(shù)據(jù)庫管理系統(tǒng)Windows 2000/2003/XP:運(yùn)行環(huán)境VB :軟件開發(fā)語言目標(biāo)通過該系統(tǒng)的實(shí)施,將圖書館管理等方面通過系統(tǒng)來實(shí)施,其中包括對(duì)學(xué)生借還讀書信息,員工信息,以及讀書信息等等,使得圖書館借還等管理業(yè)務(wù)和查詢業(yè)務(wù)運(yùn)轉(zhuǎn)周期縮短,來提高學(xué)校圖書館運(yùn)轉(zhuǎn)效率。運(yùn)行環(huán)境數(shù)據(jù)庫管理系統(tǒng)軟件:ACCESS運(yùn)行平臺(tái):Windows XP/Windows 2000/Windows 2003.分辨率:最佳效果1024x768像素需求概述按照需求分析文檔中的規(guī)格要求,使用條形碼掃描器進(jìn)書、借書、還書,使得信息傳遞準(zhǔn)確、流暢。同時(shí),系統(tǒng)最大限度地實(shí)現(xiàn)易安裝,

12、易維護(hù)性,易操作性,運(yùn)行穩(wěn)定,安全可靠。條件與限制無2、總體設(shè)計(jì)數(shù)據(jù)流程及處理功能分配針對(duì)圖書管理系統(tǒng),可分為4大模塊,分別管理系統(tǒng)管理子系統(tǒng),圖書管理子系統(tǒng),借書子系統(tǒng),查詢子系統(tǒng)。3、接口設(shè)計(jì)外部接口1, 用戶接口:采用窗口化,菜單式進(jìn)行設(shè)計(jì),在操作時(shí)響應(yīng)熱鍵。2, 硬件接口:一卡通,掃描儀器3, 軟件接口/通過ADO對(duì)數(shù)據(jù)庫的連接內(nèi)部接口通過面向?qū)ο笳Z言設(shè)計(jì),模塊間實(shí)現(xiàn)嚴(yán)格封裝;4、數(shù)據(jù)庫設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)物理結(jié)構(gòu)設(shè)計(jì)略(詳見12數(shù)據(jù)庫設(shè)計(jì))5、運(yùn)行設(shè)計(jì)運(yùn)行模塊的組合本程序主要是以一個(gè)窗口為模塊,一般一個(gè)窗口完成一個(gè)特定的功能,主窗口通過打開另一個(gè)子窗口來實(shí)現(xiàn)個(gè)模塊之間不同功能的連接和組合

13、。各模塊之間相對(duì)獨(dú)立,程序的可移植性好。各模塊之間主要以傳遞數(shù)據(jù)項(xiàng)的引用來實(shí)現(xiàn)模塊之間的合作和數(shù)據(jù)共享。運(yùn)行控制只要符合操作說明書,用戶可自由控制運(yùn)行時(shí)間由用戶決定6、出錯(cuò)處理設(shè)計(jì)出錯(cuò)輸出信息本程序多處采用了異常處理的機(jī)制,當(dāng)遇到異常時(shí)不但能及時(shí)的處理,保證程序的安全性和穩(wěn)定性,而且各種出錯(cuò)信息能通過彈出對(duì)話框的形式,及時(shí)的告訴用戶出錯(cuò)的原因及解決的辦法,使用戶以后能夠減少錯(cuò)誤的發(fā)生。程序的大部分地方還采取了出錯(cuò)保護(hù),如輸入內(nèi)容的長(zhǎng)度和類型等減少了用戶出錯(cuò)的可能。出錯(cuò)處理對(duì)策我們對(duì)于本程序的幾種可能的錯(cuò)誤進(jìn)行了分析,分別進(jìn)行了不同的處理。主要的錯(cuò)誤可能有:輸入錯(cuò)誤:這主要是用戶輸入不規(guī)范造成的

14、,我們?cè)诒M量減少用戶出錯(cuò)的條件的情況下,主要也是通過對(duì)話框,提醒用戶,然后再次操作。其他操作錯(cuò)誤:對(duì)于用戶的不正當(dāng)操作,有可能使程序發(fā)生錯(cuò)誤。我們主要是中止操作,并提醒用戶中止的原因和操作的規(guī)范。其他不可預(yù)知的錯(cuò)誤:程序也會(huì)有一些我們無法預(yù)知或沒考慮完全的錯(cuò)誤,我們對(duì)此不可能作出萬全的異常處理,這時(shí)我們主要要保證數(shù)據(jù)的安全,所以要經(jīng)常的進(jìn)行數(shù)據(jù)庫備份,并能及時(shí)的和我們聯(lián)系,以逐步的完善我們的程序。(二)詳細(xì)設(shè)計(jì)說明書1、引言略2、總體設(shè)計(jì)2.1需求概述略(詳見 7 需求規(guī)格說明)2.1軟件結(jié)構(gòu)略3、程序描述3.1系統(tǒng)管理模塊略3.2圖書管理模塊略3.3借還書模塊略3.4查詢模塊。略3.5接口設(shè)

15、計(jì)略3.6測(cè)試要點(diǎn)系統(tǒng)登錄測(cè)試信息檢索功能測(cè)試十一、系統(tǒng)軟件結(jié)構(gòu)圖。十二、數(shù)據(jù)庫設(shè)計(jì)(包括表名、字段名、字段類型、字段大小、字段說明)基本設(shè)置表(basicSet)字段類型長(zhǎng)度格式約束采集方式借出冊(cè)數(shù)數(shù)字20主鍵,必須輸入人工采集罰款數(shù)字50必須輸入人工采集圖書信息表(bookInfo)字段類型長(zhǎng)度格式約束采集方式書籍編號(hào)文本20主鍵,必須輸入圖書名稱文本50必須輸入人工采集類別代號(hào)文本20必須輸入人工采集出版社文本20人工采集作者姓名文本20人工采集書籍價(jià)格數(shù)字20人工采集書籍頁碼文本20人工采集登記日期時(shí)間/日期自動(dòng)采集是否借出是/否1自動(dòng)采集圖書種類(bookType)字段類型長(zhǎng)度格式約

16、束采集方式類別代碼文本20主鍵,必須輸入書籍類別文本20必須輸入人工采集借出天數(shù)數(shù)字20必須輸入自動(dòng)采集借閱信息表(lentInfo)字段類型長(zhǎng)度格式約束采集方式讀者編號(hào)文本20主鍵,必須輸入人工采集書籍編號(hào)文本20主鍵,必須輸入人工采集借書日期日期/時(shí)間自動(dòng)采集還書日期日期/時(shí)間自動(dòng)采集超出天數(shù)數(shù)字20自動(dòng)采集罰款金額數(shù)字20自動(dòng)采集登錄信息表字段類型長(zhǎng)度格式約束采集方式ID自動(dòng)編號(hào)20主鍵,必須輸入人工采集名稱文本20必須輸入人工采集密碼文本20必須輸入人工采集書庫管理是/否1人工采集讀者管理是/否1人工采集圖書管理是/否1人工采集基本管理是/否1人工采集讀者信息表(rederInfo)字

17、段類型長(zhǎng)度格式約束采集方式讀者編號(hào)文本20主鍵,必須輸入人工采集讀者姓名文本20人工采集讀者性別文本2男/女人工采集辦證日期日期/時(shí)間人工采集聯(lián)系電話文本20人工采集工作單位文本20人工采集家庭住址文本20人工采集十三、3個(gè)模塊的詳細(xì)設(shè)計(jì)說明(以程序流程圖+文字說明)。還書數(shù)據(jù)流程圖借書數(shù)據(jù)流程圖 圖書管理書籍流程圖十四、5個(gè)模塊的界面設(shè)計(jì)(可以用高級(jí)編程語言環(huán)境或其他任何工具設(shè)計(jì))。十五、系統(tǒng)主要功能的源代碼(包括注釋)-(考核方式:提交文檔)主程序代碼: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("書籍編號(hào)") = txtBookID.Text .Fields("借書日期") = dtpLendDate.Value .Update End With Set g_rs = Nothing '更新bookInfo表,設(shè)置該書是否借出屬性為"借出" g_strSql = "select * from bookInfo where 書籍編號(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 "您的書已經(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 書籍編號(hào)='" & txtBookIDRenew.Text & "' and 讀者編號(hào)='" & txtReaderIDRenew.Text & "' and 借書日期=#" & txtLendDate.Text & "#" Set g_rs = g_db.OpenRecordset(g_strSql) g_rs.Edit g_rs.Fields("借書日期").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 書籍編號(hào)='" & txtBookIDReturn.Text & "' and 讀者編號(hào)='" & txtReadID

24、Return.Text & "' and 借書日期=#" & txtLendDateReturn.Text & "#" Set g_rs = g_db.OpenRecordset(g_strSql) g_rs.Edit g_rs.Fields("還書日期").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 書籍編號(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 + "圖書館查詢管理系統(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 "書庫管理" FrmBookManage.Show Case "新書" FrmAddnew.Show Case "借閱列表" FrmLendList.Show Case "書庫查詢" FrmBookQuery.Show Case "圖書類別" FrmSetBook.Show Case "退出" Call Form_Unload(0)End SelectEnd SubPrivate Sub txtBookID

31、_KeyPress(KeyAscii As Integer)'判斷用戶按下回車鍵并且是否輸入讀者編號(hào)和書籍編號(hào)If KeyAscii = "13" And txtReaderID.Text <> "" And txtBookID.Text <> "" Then g_strSql = "select bookInfo.書籍名稱,bookInfo.書籍價(jià)格,bookInfo.出版社,bookInfo.書籍頁碼," _ & "bookInfo.是否借出,bookType.

32、書籍類別 from bookInfo,bookType where 書籍編號(hào)='" & txtBookID.Text & "'" _ & " and bookInfo.類別代碼=bookType.類別代碼" Set g_rs = g_db.OpenRecordset(g_strSql) If Not g_rs.EOF Then txtBookName.Text = g_rs!書籍名稱 txtBookPrice.Text = g_rs!書籍價(jià)格 txtBookLeibie.Text = g_rs!書籍類別

33、txtBookConcern.Text = g_rs!出版社 txtBookPage.Text = g_rs!書籍頁碼 If g_rs!是否借出 = True Then MsgBox "該書已經(jīng)借出,請(qǐng)選擇其它圖書!", vbOKOnly, "提示" cmdLendBook.Enabled = False Else cmdLendBook.Enabled = True End If Else MsgBox "沒有該書信息!", 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)先輸入書籍編號(hào)", vbOKOnly, "提示"End IfEnd SubPrivate Sub txtBookIDReturn_KeyPress(KeyAscii As Integer)Dim strSQL As String'判斷用戶按下回車鍵并且是否輸入讀者編號(hào)和書籍編號(hào) If KeyAscii = "13

36、" And txtBookIDReturn.Text <> "" Then strSQL = "select lentInfo.讀者編號(hào),readerInfo.讀者姓名,lentInfo.書籍編號(hào),bookInfo.書籍價(jià)格," _ & " bookInfo.書籍名稱,bookInfo.書籍頁碼,lentInfo.借書日期,bookType.書籍類別,bookType.借出天數(shù)" _ & " from readerInfo,bookInfo,lentInfo,bookType where

37、 readerInfo.讀者編號(hào)=lentInfo.讀者編號(hào)" _ & " and bookInfo.書籍編號(hào)=lentInfo.書籍編號(hào) and bookInfo.書籍編號(hào)='" & txtBookIDReturn.Text & "'" _ & " and bookInfo.類別代碼=bookType.類別代碼" 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!書籍名稱 txtBookPriceReturn.Text = g_rs!書籍價(jià)格 txtBookLeibieReturn.Text = g_rs!書籍類別 txtBookPageReturn.Text = g_rs!書籍頁碼 txtReadIDReturn.Text = g_rs!讀者編號(hào) txtReaderNameReturn.Text = g_rs!讀者姓名 txtLendDateReturn.Text = g_rs!借書日期 txtDay.Text = g_rs!借出天數(shù) txtR

39、eturnDate.Text = Date txtFactDay.Text = CStr(Date - g_rs!借書日期) 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 "沒有該書信息!", 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)先輸入書籍編號(hào)", vbOKOnly, "提示"End IfEnd SubPrivate Sub txtReaderID_KeyPress(KeyAscii As Integer)'判斷用戶按下回車鍵并且是否輸入讀者編號(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ù)庫的查詢 '判斷是否找到 If Not g_rs.EOF Then txtReaderName.Text = g_rs!讀者姓名 InitDataGrid

44、 (False) '初始化DataGrid控件信息 Else MsgBox "沒有該讀者信息!", 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ù)用來區(qū)分是正常借書頁面還是續(xù)借頁面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.書籍編號(hào)," _ & " bookInfo.書籍名稱,bookType.書籍類別,bookInfo.出版社,bookInfo.書籍頁碼,lentInfo.借書日期," _ & " lentInfo.還書日期,lentInfo.超出天數(shù),lentInfo.罰款金額 from readerInfo,bookInfo,lentInfo,bookType " _ & " where readerInfo.讀者編號(hào)=lentInfo.讀者編號(hào) and bookInfo.書

47、籍編號(hào)=lentInfo.書籍編號(hào) and " _ & " lentInfo.讀者編號(hào)='" & strReaderID & "' and bookType.類別代碼=bookInfo.類別代碼 and lentInfo.還書日期 is null"Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "圖書館查詢管理系統(tǒng).mdb;Persis

48、t Security Info=False"Adodc1.CursorLocation = adUseClientAdodc1.CommandType = adCmdTextAdodc1.RecordSource = strDataSourceAdodc1.RefreshIf blnRenew = False Then '如果是正常借書進(jìn)行如下操作 Set dtgrdLendBook.DataSource = Adodc1 dtgrdLendBook.Refresh '顯示一共借了多少書 lblLendCount.Caption = "所借圖書:"

49、 + CStr(Adodc1.Recordset.RecordCount) '顯示還能夠借多少書 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)'判斷用戶按下回車鍵并且是否輸入讀者編號(hào)If KeyAscii = "13" And txtReaderIDRenew.Text <> "" Then '根據(jù)輸入的讀者編號(hào),查找

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論