【文章內(nèi)容簡介】
date varchar 20 Yes 讀者證遺失日期 表 系統(tǒng)用戶信息表 列名(英文) 數(shù)據(jù)類型 寬度 小數(shù)位數(shù) 允許空 列描述 Username varchar 245 No 管理員名稱 Userpassword varchar 245 No 管理員密碼 Userclass int 2 Yes 管理員級別 (1一般管理 ,2最高管理 ) 8 Web系統(tǒng)開發(fā)綜合設(shè)計報告 第三章 圖書借閱系統(tǒng)的具體實現(xiàn) 借書、還書功能的實現(xiàn) 借書和還書是圖書借閱管理系統(tǒng)的一個最重要也是最基本功能。它在圖書 管工作人員的操作下 ,對本公司 (企業(yè) )員工的借還書情況進行錄入、修改、查詢等一系列的過程。在程序中 ,利用 vb script 腳本語言實現(xiàn)畫面的控制 ,利用 asp語言來實現(xiàn)對庫的操作和算法流程的控制。 借書功能的具體實現(xiàn) 借書是圖書管工作人員根據(jù)借閱者所借書籍的圖書編號(當 然這個編號于每一本圖書是唯一的)將該圖書登入借書表單,并對其借閱時間和借閱數(shù)量進行控制的過程。因為該系統(tǒng)是針對公司(企業(yè))的圖書館進行管理的,所以圖書借閱也僅對公司內(nèi)部人員進行開放,所以借閱者必須根據(jù)自己的工號(工作證編號)和其它一些在公司的相關(guān)信息辦理讀者證后,工作人員根據(jù)借閱者所持讀者證的讀者證號(該讀者的唯一標識)進行查詢,如果該讀者在讀者信息數(shù)據(jù)庫中有記錄,則調(diào)出該讀者個人信息和他(她)已借書籍的信息,如果讀者信息數(shù)據(jù)庫中無該讀者信息,則此人不能借閱書籍。具體的流程如下: 9 Web系統(tǒng)開發(fā)綜合設(shè)計報告 10 Web系統(tǒng)開發(fā)綜合設(shè)計報告 圖 借書程序流程圖 (a) 圖 借書程序流程圖 (b) 算法描述如下: 首先導入數(shù)據(jù)庫連接,以便對讀者信息表和圖書基本信息表進行查詢和修改: ! include file= 因為借書只能是擁有圖書館工作人員以上的權(quán)限的人才能進行的操作,所以 11 Web系統(tǒng)開發(fā)綜合設(shè)計報告 在程序開始部份還應(yīng)先判斷一下用戶的權(quán)限,如果沒有工作人員的權(quán)限,則要先 進行管理員登陸,即轉(zhuǎn)向登陸界面:(此處用到“ session“這個物件來 [4]存取一個變量記錄登陸的用戶名,它可以在 同一個客戶端多個打開的瀏覽器之間傳遞變量值,如果用戶能過了管理員登陸,則變量值不會為空,相反則為空: if session(user_name)= then 導向管理員登陸界面 end if 接下來就是借書操作了: //變量說明部分 //readerno 為讀者證號 //borrowno 為借書編號 //number 為是否標志是否查詢的讀者信息是否存在,初始為 1,表示有信息,如果輸入讀者證號后,沒有查到讀者信息,則更新為 0。 //clickselect 為是否 查詢過讀者信息,即是否點擊過讀者信息的“查詢“按扭 //booknumber 統(tǒng)計已借書籍的數(shù)據(jù)量,初始化設(shè)為 0,如果查到已借書籍大于或等于 3 時,該變量設(shè)為 3。 //count 統(tǒng)計過期第個讀者過期未還的書籍數(shù)目 先查詢讀者證號,如果讀者證號為空,提示要求輸入。這里可以放在讀者證“查詢”的單擊事件中: sub readerno_onclick //讀者證“查詢”的單擊事件 if readerno= then //如果讀者證號為空,提 示要求輸入 顯示 請輸入讀者證號 ! 將光標定位于讀者證號的輸入框 end if clickselect =1 //已查詢讀者信息 12 Web系統(tǒng)開發(fā)綜合設(shè)計報告 booknumber =0 //借閱書目初始化為 0 提交當前表單的信息 end sub 查詢了讀者信息后,如果該讀者在數(shù)據(jù)庫中有記錄,而且已借書籍沒有超過去 3 本,則可以借書,如果沒有記錄,則屏蔽“借書”的功能,要求用戶輸入正確的讀者證號: If readerno then 根據(jù) readerno 查詢讀者信息數(shù)據(jù)庫 readerinformation if 查詢的記錄數(shù) =0 then 提示用戶“無相應(yīng)記錄” number =0 將光標定位于讀者證號輸入框 結(jié)束后面的 ASP 程序的運行,即不再查詢已借書目信息 else 顯示讀者的個人信息 end if if readerno or borrowno then 根據(jù) readerno 將 book_input 與 reaerinformation 關(guān)聯(lián)起來 查詢 book_input 中 loaner(借閱者 )為 readerno 的所有圖書信息 if 查詢的記錄數(shù) =0 then 顯示“沒有借書記錄” else if 已借書記錄 =3 then 顯示 你的書已借滿 booknumber =3 end if If 已借書記錄 =3 and 已借書記錄 0 then For I=1 to 已借書記錄數(shù) 顯示已借的書目信息 dd=讀取數(shù)據(jù)庫中“借閱日期”字段 if dd then if 當前日期 當前讀取的借閱日期 60 then count=count+1 end if end if Next end if end if 13 Web系統(tǒng)開發(fā)綜合設(shè)計報告 if count0 then 提示 你有過期未還的書 ! 更新 book_input 中 剛查到的過期未還的書的 book_state 為 1 更新 readerinfomation 中該讀者的 reader_state 為 1 end if End if if booknumber= 3 or count0 then 屏蔽“借書“功能,即不顯示借書按扭 end if 若未屏蔽借書功能,則可以借書 先輸入借書編號,按下借書按扭,如果編號為空,要求輸入, 如果未查詢讀者證號就點擊借書按扭,則提示用戶先查詢讀者證號后,此段程序可放入借書按扭單擊事件中: sub borrowbook if readerno = then 顯示 請先查詢借書者的讀者證號 ! elseif borrowno= then 顯示 請輸入借書編號 end if 提交當前表單信息 end sub 提交信息后,除運行上面的程序外,還要執(zhí)行提交狀態(tài)后的程序: if borrowno then 查詢 book_input 中的 book_no 為 borrowno 記錄 if 查詢記錄數(shù) 0 if 是否已借字段內(nèi)容 =1 then 顯示 該書已借出 ! else 是否已借字段內(nèi)容 =1 14 Web系統(tǒng)開發(fā)綜合設(shè)計報告 借閱日期字段 =今天的日期 借閱者字段 =當前輸入的讀者證號 end if else 顯示 沒有這本書 ! end if end if 在借書這個程序中,我們利用讀者證號這個關(guān)鍵字,把讀者信息表和圖書基本信息表聯(lián)系起來,多方面考慮問題,把借書過程中可能出現(xiàn)的狀況,都要一一考慮進來,方便能工作人員和讀者。 還書功能的具體實現(xiàn) 還書是在借書的基礎(chǔ)上來操作的過程,總的原則是,沒有借書,就沒有還書,還書所要實現(xiàn)的功能,在某種程度上和借書是相似的,同樣要提示讀者是否有過期未還的書,此時也需要對庫中的信息進行更改。還書以后,也要即時的反潰當前的借書 狀況,以便讀者和工作人員知道“還書”是否操作成功。與借書相比,借書是通過讀者證號和圖書編號來登記,而還書只需要且必須要圖書編號來登記還書。當查到該編號的圖書 ,而且確實是未還圖書 ,則將顯示還書者的讀者信息和所有他 (她 )的已借書目信息 .我們要實現(xiàn)的目標是盡可能方便能的操作和盡可能直觀的反潰 !所以我們采用輸入圖書編號來還書的同時 ,查閱出借該書的讀者的所有借書記錄 ,只要點擊所列出的該讀者借書記錄中的某一條 ,就可以還這本書 .還有一點是還書需要處理的,那就是續(xù)借,如果讀者想要續(xù)借,應(yīng)該很方便的進行,與還書一樣,只要點擊 要續(xù)借的書按“續(xù)借”即可,但是要考慮如果該書已過期,則不能續(xù)借。具體程序流程圖如下 : 15 Web系統(tǒng)開發(fā)綜合設(shè)計報告 Web系統(tǒng)開發(fā)綜合設(shè)計報告 圖 還書程序流程圖 算法描述如下 : 首先導入數(shù)據(jù)庫連接,以便對讀者信息表和圖書基本信息表進行查詢和修改: !include file= 因為還書只能是擁有圖書館工作人員以上的權(quán)限的人才能進行的操作,所以在程序開始部份還應(yīng)先判斷一下用戶的權(quán)限,如果沒有工作人員的權(quán)限,則要先進行管理員登陸,即轉(zhuǎn)向登陸界面 ,這部分的操作和借書是一 樣的 : if session(user_name)= then 導向管理員登陸界面 end if 接下來是還書的操作 : //變量說明部分 // returnno 為還書編號 // state 表示當前有無可還書的記錄 //reloan 表示是否要續(xù)借 //step 表示是否提交過表單 ,1初始狀態(tài) ,2已經(jīng)提交