【正文】
returnno 為還書編號 // state 表示當前有無可還書的記錄 //reloan 表示是否要續(xù)借 //step 表示是否提交過表單,1初始狀態(tài),2已經(jīng)提交 //reader_no 表示還書者讀者編號 //book_no 表示當前要還的或要續(xù)借的圖書編號 //count 表示當前有沒有過期未還的書 sub return //還書按扭單擊事件 if returnno = then 顯示 請輸入還書編號! 光標定位到輸入還書編號欄 else step=1 帶上還書編號提交表單 end if接下是查詢該還書編號的書 第 3 章 圖書借閱管理系統(tǒng)的具體實現(xiàn)22If request(returnno) then在數(shù)據(jù)庫中查詢該編號的圖書if 查詢的記錄數(shù)=0 and reader_no= then 提示“可能輸入了無效的圖書編號或該書沒有借出,請重輸!”結(jié)束程序的繼續(xù)執(zhí)行else 對將要顯示的當前所要還的書籍的表格中的借閱者,書籍編號,書名,作者,借閱日期單元格的內(nèi)容填值if 當前日期借閱日期60 then 更改讀者信息表中的 reader_state 為 1 提示用戶“你的書已過期!” end if //根據(jù)借閱者的讀者證號查詢該讀者的相關(guān)信息sqlstr2=select * from book_readerinfo where reader_no=39。amp。loaneramp。39。 對要顯示讀者信息的欄位賦值 end if 如果找到了要還的書,便可以還書或續(xù)借了 if returnno = then 顯示 請先輸入還書編號 光標定位于還書編號exit sub end if if state =no then 光標定位于還書編號 exit sub end if if book_no = then 顯示 請選擇要還的書! exit sub 湖南師范大學(xué)本科畢業(yè)論文23 end if //提交當前表單 *****以上這段程序可以放在借書按的單擊事件中 *****以下是續(xù)借按扭的單擊事件的算法sub contiborrow //續(xù)借按扭單擊事件 if book_no = then 顯示 請選擇要續(xù)借的書! exit sub end if reloan =yes 提交表單end sub提交表單后,要對庫中的數(shù)據(jù)表進行還書和續(xù)借的操作了從提交的表單中提取所有的讀者信息和當前所要還的圖書編號 count=0 //設(shè)當前無過期書籍if book_no and reader_no thenif 當前日期借閱日期60 then if reloan=yes then 提示 書已過期,不能續(xù)借! 不再做任何更改庫中記錄的操作,所回續(xù)借前的狀態(tài) 結(jié)束 ASP 程序的運行end ifend if if reloan=yes then 將當前書籍的借閱日期減一個月,因為續(xù)借只能是一個月 else 還原當前所還書籍的借閱者,借閱日期,是否借閱為初始狀態(tài)。 //再一次查找當前還書者的所有借書情況sqlstr3=select * from book_input where isloan=1 and 第 3 章 圖書借閱管理系統(tǒng)的具體實現(xiàn)24loaner=39。amp。reader_noamp。39。 if 查詢記錄數(shù)0 thenfor i=1 to 查詢記錄數(shù)//查找在還了當前所要還的書以后是否還有過期未還的書if 當前借閱日期60 then count=count+1 end ifnextif count=0 then 將當前的還書者的狀態(tài) reader_state 還原為 0end ifelse //如果已經(jīng)沒有要還的書籍將當前的還書者的狀態(tài) reader_state 還原為 0end ifend if 異常處理 遺失書籍處理的具體實現(xiàn) 在圖書管理系統(tǒng)中,讀者遺失書籍的狀況是極有可能發(fā)生的,所以系統(tǒng)一定要有相應(yīng)的處理措施,方便工作人員對書籍的管理。在這個處理過程中,我們根據(jù)要辦理遺失處理的讀者的讀者證號來查找該讀者所借閱的所有書籍,如果該讀者沒有借閱的書籍,或該讀者根本不存在,也就無需也不能進行書籍遺失處理。如果經(jīng)過查詢,有借閱記錄,則在選擇要辦理遺失的書籍后(在每條借書記錄后有 checkbox 多選框) ,點擊“掛失“即可。而取消掛失只需要選中羅列出來的所有遺失的書籍記錄的某一條或多條,點擊“取消遺失”即可。這塊功能的實現(xiàn)總共由三個程序共同來完成,分別為。當用戶需要辦湖南師范大學(xué)本科畢業(yè)論文25理遺失時,首先運行 ,進入該模塊的主界面,在這個界面中,我們會把所有已辦理遺失的書籍列出來,如果要對書籍辦理遺失,則點擊“遺失辦理” ,此時會調(diào)用另一個程序 來處理,如果是要取消遺失,就直接在第一個主界面列出的已遺失書籍的記錄中查找,可以點擊“查找”按扭來確定用戶要對哪一本遺失的書“取消遺失” ,然后選取中它,進行取消。具體程序流程如下:第 3 章 圖書借閱管理系統(tǒng)的具體實現(xiàn)26圖 遺失書籍處理程序流程圖湖南師范大學(xué)本科畢業(yè)論文27算法描述如下:首先當然還是打開數(shù)據(jù)庫連接:! include file= 在驗證了管理員身份后,可以進行遺失處理了//變量說明//flag 判斷當前操作(取消遺失,辦理遺失,查詢)//n 當前選擇的取消遺失書籍的記錄數(shù)//loststr 所有要取消遺失的書籍的圖書編號if flag =select_book //如果當前操作為查詢轉(zhuǎn)入查詢頁面 //查詢算法在前面已描述,不再重復(fù) if 查詢的條件不為空 then select * from book_input where book_state=39。239。 amp。selectvalue //按當前查詢條件查詢滿足條件的所有已遺失的書籍 提交表單end ifend ifif flag =set_lost //如果當前操作為辦理遺失 轉(zhuǎn)向執(zhí)行程序 end ifif flag=”nolost” //如果當前操作為取消遺失if n=0 then顯示 請選擇要取消遺失的記錄!end iffor i=1 to n取得所有要取消遺失的書籍的 book_no next if 您確實要取消這些書籍的遺失 then第 3 章 圖書借閱管理系統(tǒng)的具體實現(xiàn)28 loststr1=所有要取消遺失的書籍的編號 提交表單end sub表單提交后:flag=request(flag) //獲取當前的操作狀態(tài)if flag=unlost then // 如果當前是取消遺失 loststr=獲取所有要取消遺失的書籍的編號 分別對當前收集的記錄中的圖書取消遺失 //用 SQL 語言end ifif flag= select_book 執(zhí)行當前的查詢條件 if sqlstr= then //如果當前查詢條件為空sqlstr=select * from book_input where book_state=39。239。 //查詢所有已遺失的記錄end ifif 如果當前查詢結(jié)果不為空 then 分頁顯示所有查詢記錄 else 顯示“沒有遺失書籍的記錄!” end if當進入辦理遺失的程序 后,//變量說明//readerno 當前輸入的讀者證號//size 當前查到的借書記錄,初始為 0//flag 當前處于何種操作狀態(tài)// varb 當前遺失書籍是否要還掉,記錄具體操作的 SQL 語句由于要先查詢讀者證號,確認讀者存在,且有借書記錄,才可以進行書的遺失處理。sub //此段程序可以放在讀者證號查詢的單擊事件(sub)湖南師范大學(xué)本科畢業(yè)論文29if readerno = thenmsgbox 請輸入讀者證號!exit subend ifend sub表單提交后,查詢當前的讀者證號if 0 then顯示讀者個人信息查詢該讀者的借書信息if 0 then顯示所有借書記錄size=當前借書記錄數(shù) else 顯示沒有借書記錄end ifelse顯示 沒有相應(yīng)的讀者 顯示 沒有相應(yīng)的借書記錄end ifsub setlost(n) //此段程序是掛失的單擊事件flag =set //當前處于掛失狀態(tài)if n=0 thenmsgbox 沒有要掛失的書籍!exit subend if第 3 章 圖書借閱管理系統(tǒng)的具體實現(xiàn)30 for i=1 to nloststr1=所有要掛失的記錄的書籍編號 end if next if loststr1= then msgbox 請選擇要掛失的記錄 exit sub end if if 您確實要掛失這些記錄 then //提示遺失書籍要罰款,如果現(xiàn)在不交費 if msgbox(遺失書籍要以兩倍單價罰款,交費否?,1)1 then //僅更改當前遺失書籍的狀態(tài)為“遺失” ,并不為借書者還掉此書, 以便能下次還書提醒交費varb=update book_input set book_state=2,book_memo=39。被遺失39。 where book_no in(amp。loststr1amp。)else //如果現(xiàn)在就交費 //還掉該書,并將書籍加上遺失標志,借書者的借書信息中不再有此書:varb=update book_input set book_state=2,loaner=39。amp。39。,isloan=0,loandate=39。amp。39。 where book_no in (amp。loststr1amp。)end if 提交表單end sub表單提交后:%readerno=獲得當前的讀者證號if flag=set then //如果現(xiàn)在是掛失操作 varb=request(varb) 修改庫記錄end if湖南師范大學(xué)本科畢業(yè)論文31 讀者證掛失處理的具體實現(xiàn)因為有讀者證的辦理,所以讀者遺失讀者證也就必須有掛失處理,在本系統(tǒng)中讀者證的掛失也是異常處理的一個項目。當讀者發(fā)現(xiàn)讀者證丟失后,要及時進行掛失,但是如果該讀者有書未還,那么應(yīng)該先把書還掉才可以掛失。讀者可以通過像遺失書籍處理中一樣,點選需要掛失或需要取消掛失的讀者信息,來完成操作。整個功能也由三個程序構(gòu)成:,,首先執(zhí)行的是 ,如果要辦理掛失,則點擊頁面的“掛失辦理” ,調(diào)用,進入掛失的界面,此時,會顯示所有未辦理掛失的讀者信息,為了避免誤操作,必須定位需要掛失的讀者方可進行掛失,工作人員可以通過界面的“查找”按扭,此時會調(diào)用 ,在所有未辦理掛失的讀者證信息中定們需要記錄,然后選中它, “掛失”即可。如果要取消掛失,則只要在首頁面查找要進行取消的讀者信息,此時也會調(diào)用,進入查找界面,查找完畢后,在主界面顯示出查找結(jié)果,然后點選要辦理取消的讀者,取消掛失。具體的程序流程圖如下:第 3 章 圖書借閱管理系統(tǒng)的具體實現(xiàn)32圖 讀者掛失處理流程圖湖南師范大學(xué)本科畢業(yè)論文33算法描述如下:變量說明://value 存放查詢中查找記錄的 SQL 語名//reconum 當前顯示的記錄數(shù)//sqlstr 當前運行的 SQL 語句在讀者證掛出失這個部分,關(guān)于辦理掛失,特別是取消掛失的處理過程和書籍遺失的處理過程相似,只是在讀者證掛失這個部分加入了對讀者是否有書未還的判斷,因此在顯示讀者信息后,在點擊掛失,取得當前的讀者證號,判斷在book_input 這個庫中有沒有該讀者的借書記錄,如果有,則要求先還書再掛失。在查詢過程中,為了方便在轉(zhuǎn)頁時仍顯示的是當前查詢的結(jié)果,而不是開始顯示的記錄頁面,在程序員中用到了 value 這個變量來存儲當前查詢的 SQL 語句。而同時