數(shù)據(jù)庫(kù)應(yīng)用開發(fā)課程設(shè)計(jì)PowerBuilder圖書管理系統(tǒng)_第1頁
數(shù)據(jù)庫(kù)應(yīng)用開發(fā)課程設(shè)計(jì)PowerBuilder圖書管理系統(tǒng)_第2頁
數(shù)據(jù)庫(kù)應(yīng)用開發(fā)課程設(shè)計(jì)PowerBuilder圖書管理系統(tǒng)_第3頁
數(shù)據(jù)庫(kù)應(yīng)用開發(fā)課程設(shè)計(jì)PowerBuilder圖書管理系統(tǒng)_第4頁
數(shù)據(jù)庫(kù)應(yīng)用開發(fā)課程設(shè)計(jì)PowerBuilder圖書管理系統(tǒng)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(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é)2010/2011學(xué)年第 一 學(xué)期“ 數(shù)據(jù)庫(kù)應(yīng)用開發(fā)”課程大型作業(yè)學(xué)號(hào) 2009214406 姓名uranus成績(jī) 說明:本程序?yàn)楠?dú)立完成。得 分評(píng)閱人一、概述(共10分)圖書管理系統(tǒng)是一種基于集中統(tǒng)一規(guī)劃的數(shù)據(jù)庫(kù)數(shù)據(jù)管理新模式。在對(duì)圖書、讀者的管理,其實(shí)是對(duì)圖書、讀者數(shù)據(jù)的管理。使用該系統(tǒng)之后,圖書館管理人員可以管理讀者的登記、圖書的購(gòu)入、借出、歸還以及注銷等;還可以查詢某位讀者、圖書的借閱情況,對(duì)當(dāng)前借閱情況給出一些統(tǒng)計(jì),給出統(tǒng)計(jì)圖,以全面掌握?qǐng)D書的流通情況。功能結(jié)構(gòu)圖:得 分評(píng)閱人二、 需求分析(共20分) 項(xiàng)目需求:根據(jù)圖書館工作的需要,圖書管理系統(tǒng)應(yīng)具備讀者的登記、圖書的

2、購(gòu)入、借出、歸還以及注銷;查詢某位讀者、圖書的借閱情況;對(duì)當(dāng)前借閱情況給出統(tǒng)計(jì)圖;出版社信息的管理;系統(tǒng)權(quán)限的設(shè)置;證件掛失、注銷;系統(tǒng)幫助等功能,以方便圖書館的日常管理。根據(jù)上述分析,設(shè)計(jì)程序功能如下。 系統(tǒng)功能:(1) 圖書信息的錄入和刪除;(2) 出版社信息管理;(3)圖書的檢索(包括按作者姓名、出版時(shí)間、出版社名稱、圖書類別、書名、關(guān)鍵字等);(4)圖書的租借(包括借書登記、限借數(shù)量控制、還書登記、過期罰款計(jì)算等);(5)借書證件的管理(包括辦新證件,掛失、注銷等)(6)系統(tǒng)設(shè)置(主要是不同類型證件的可借書的總量和借書時(shí)間等)(7)權(quán)限設(shè)置(包括登錄權(quán)限,賬號(hào)密碼管理等)(8)統(tǒng)計(jì)資料

3、(包括惜出數(shù)量與庫(kù)存數(shù)量的比例,各類圖書數(shù)量與總數(shù)量的比例,熱門圖書統(tǒng)計(jì)數(shù)據(jù)等各種信息資料的統(tǒng)計(jì));(9)圖書測(cè)覽(包括對(duì)圖書摘要的測(cè)覽和新書測(cè)覽);(10)幫助信息。得 分評(píng)閱人三、建模(共20分)用例圖:借/還書:書籍的借閱管理查詢圖書信息:根據(jù)作者、出版信息等方式查找圖書新書入庫(kù):錄入新書信息舊書銷毀:從數(shù)據(jù)庫(kù)刪除圖書信息證件管理:管理借書證的相關(guān)信息信息匯總:將借閱信息等內(nèi)容生成圖表,方便了解流通情況出版社信息管理:錄入、刪除出版社相關(guān)信息權(quán)限管理:設(shè)置登錄權(quán)限,修改賬號(hào)密碼;設(shè)置不同證件的借書量、借書期限等。 得 分評(píng)閱人四、數(shù)據(jù)庫(kù)分析(共10分)(一)e-r圖:(二)表的定義數(shù)據(jù)庫(kù)

4、中,部分表的結(jié)構(gòu)見表1表5。存放圖書信息的表bookinfo的結(jié)構(gòu)見表1。其中圖書編號(hào)具有惟一性,8位編碼中最高2位為圖書類型代碼,例如電子類、計(jì)算機(jī)類等,通過表4“bookclass”表進(jìn)行圖書類型的管理,其余6位為圖書順序號(hào)。表1 bookinfo表字段名意義數(shù)據(jù)類型寬度nullprimarykeybookid圖書編號(hào)numberic8noisbnisbn書號(hào)char30ysetitle書名char40ysepublish出版日期charyseauthor作者char30ysewords字?jǐn)?shù)(千字)integerysepublisherid出版社idnumeric4ysenumber印刷冊(cè)

5、數(shù)integeryseprice定價(jià)moneyysekeyword關(guān)鍵字char30yseabstract摘要varchar400yse表2 publisherlnfo表字段名意義數(shù)據(jù)類型寬度nullprimarykeypublisherid出版社idnumberic4nopublisher出版社名稱char30yesaddress出版社地址char0yestel電話char16yesfax傳真char16yespostcode郵政編碼numberic6yeshttp網(wǎng)址char16yes出版社id是代表出版社的代碼,它與圖書信息表(表1 bookinfo表)相關(guān)聯(lián)。圖書租借表(表 3 loa

6、n表)記錄了圖書租借情況,借書證書id與借書證表(表5 certificateinfo表)相關(guān)聯(lián)。表3 loan表字段名意義數(shù)據(jù)類型寬度nullprimarykeybookid圖書編號(hào)numric2nocert_id借書證書idnumric5noloandates借書日期dateyesreturndates還書日期dateyesflag標(biāo)記tinyintyes表 4 bookclass 字段名意義數(shù)據(jù)類型寬度nullprimarykeyclassid圖書分類代號(hào)numric2noclassname圖書分類名稱char30yes 表 5 certificateinfo字段名意義數(shù)據(jù)類型寬度nul

7、lprimarykeycert_id借書證書idnumric5nocert_name證件名稱char10yescert_value證件號(hào)碼numric18yesname姓名char8yesdepart所在部門char20yesflag標(biāo)記tinyintyes得 分評(píng)閱人五、界面設(shè)計(jì)和代碼實(shí)現(xiàn)(共30分)(1)程序主界面運(yùn)行程序后,見到如下界面:各模塊功能已在圖中標(biāo)注出。(2)系統(tǒng)登錄 在主界面上點(diǎn)擊“系統(tǒng)登錄”圖標(biāo),打開如下登陸界面:本系統(tǒng)將用戶權(quán)限分為三種:普通用戶、系統(tǒng)終端和系統(tǒng)管理員。普通用戶只具備最基本的查詢權(quán)限;系統(tǒng)終端可進(jìn)行新書入庫(kù),舊書注銷,圖書租借,證件管理,出版社信息管理等操

8、作;系統(tǒng)管理員擁有最高權(quán)限,可進(jìn)行包括上述功能在內(nèi)的所有操作。當(dāng)用戶做出超出當(dāng)前權(quán)限的操作時(shí),系統(tǒng)會(huì)給出越權(quán)提示。下面以系統(tǒng)管理員的身份進(jìn)行程序功能的說明。(3)新書入庫(kù)點(diǎn)擊主界面上的新書入庫(kù)圖標(biāo)或從圖書管理菜單中選取,打開新書入庫(kù)界面如下:將新書信息錄入后點(diǎn)擊保存即可將信息保存至數(shù)據(jù)庫(kù)。點(diǎn)擊新建將在打開新的錄入界面的同時(shí)保存當(dāng)前信息。上方的控制按鈕可用于一次性錄入多本書籍信息時(shí)的查看及修改。以下為保存按鈕的關(guān)鍵代碼:insert into bookinfo (bookid,title,author,isbn,publish,words,publisher,number,price,keywo

9、rd,abstract,class)/向bookinfo表中插入新信息values(:book_amount+1,:sle_title.text,:sle_author.text,:sle_isbn.text,:sle_publish.text,:sle_words.text,:sle_publisher.text:sle_number.text,:sle_price.text,:sle_keyword.text,:mle_abstract.text:ddlb_1.text);if sqlca.sqlcode<>0 thenmessagebox("保存失敗",&

10、quot;數(shù)據(jù)庫(kù)錯(cuò)誤代碼:"+string(sqlca.sqldbcode)&+"rn數(shù)據(jù)庫(kù)錯(cuò)誤信息:"+sqlca.sqlerrtext)/若保存出錯(cuò)給出提示rollback;end if其中紅色部分為保存時(shí)的錯(cuò)誤提示,程序中涉及數(shù)據(jù)庫(kù)操作的部分多處使用該段代碼,下文中將略去該段代碼。(4)舊書銷毀從圖書管理菜單中選擇舊書銷毀功能,打開界面如下:數(shù)據(jù)窗口輸入要?jiǎng)h除的書籍id后,點(diǎn)擊刪除記錄按鈕即可注銷該書信息。也可先查詢得到書籍id后再進(jìn)行刪除操作。以下為“刪除記錄”按鈕的關(guān)鍵代碼:delete from bookinfo/從bookinfo表刪除信息w

11、here bookid=:sle_delete.text;操作完成后系統(tǒng)會(huì)進(jìn)行相應(yīng)提示。(5)出版社信息管理圖書管理系統(tǒng)中應(yīng)有出版社信息管理的功能,包括出版社信息的查詢,錄入等功能,故設(shè)計(jì)界面如下:如圖所示,該界面既可用以錄入出版社信息,也可用以查找出版社信息,上方按鈕與新書入庫(kù)界面按鈕功能相似。保存按鈕代碼:insert into publisherinfo/向publisherinfo表添加信息(publisherid,publisher,address,tel,fax,postcode,http) values(:publisher_amount+1,:sle_publisher.tex

12、t,:sle_address.text,:sle _tel.text,:sle_fax.text,:sle_postcode.text,:sle_http.text); 新建按鈕代碼為在保存的基礎(chǔ)上增加清空輸入框的代碼。(6)書籍查詢圖書管理系統(tǒng)最重要的功能之一即為書籍信息的查詢功能,要求能以多種方式查詢書籍信息,如書名查找,作者查找等方式。同時(shí)還要求能夠?qū)崿F(xiàn)模糊查詢。查詢界面如下:通過查詢方式下拉框可實(shí)現(xiàn)查詢條件的設(shè)置,描述文本框中則輸入具體的查詢信息。點(diǎn)擊開始查找按鈕查詢結(jié)果將顯示在上方的數(shù)據(jù)窗口中。從圖中可見已實(shí)現(xiàn)模糊查找功能。當(dāng)查詢條件為日期時(shí),若輸入的數(shù)據(jù)格式與日期類型不符則會(huì)給出提

13、示。雙擊查詢結(jié)果可打開該書的詳細(xì)信息。若查詢結(jié)果為空則給出提示。當(dāng)查詢條件為出版時(shí)間段時(shí),主要代碼如下:dw_1.setsqlselect(ls_oldsql+"where"+temp+"between'"+sle_describe.text+"' and '"+sle_end_date.text+"'")/設(shè)置查詢條件 dw_1.settransobject(sqlca)/設(shè)置事務(wù)對(duì)象 dw_1.retrieve()其中l(wèi)s_oldsql由getsqlselect()得到。實(shí)現(xiàn)模糊

14、查詢的代碼如下:dw_1.setsqlselect(ls_oldsql+"where"+temp+"like'%"+sle_describe.text+"%'") dw_1.settransobject(sqlca) dw_1.retrieve()其他查詢條件代碼與以上類似,不一一例舉。雙擊查看書籍信息的代碼:if row > 0 thentitle_temp=dw_1.getitemstring(row,"title")/得到點(diǎn)擊行對(duì)應(yīng)書名open(w_detail)end if其中titl

15、e_temp為該行對(duì)應(yīng)書名。(7)圖書租借圖書租借作為圖書管理系統(tǒng)最重要的一個(gè)部分,應(yīng)當(dāng)具有以下功能:1. 圖書租借信息的記錄2. 證件有效性的驗(yàn)證3. 超期罰款的繳納本程序的圖書租借界面如下:借書與還書操作共用一個(gè)界面。輸入借書證號(hào)后,系統(tǒng)會(huì)判斷該證件是否存在,是否掛失或有超期書目未歸還,若有超期書目未歸還則無法進(jìn)行租借操作。若證件有效則證件信息會(huì)顯示在右邊方框中,借書記錄中則會(huì)顯示出該證件上還未歸還的書籍信息,同時(shí)會(huì)檢驗(yàn)是否達(dá)到管理員規(guī)定的數(shù)量上限。輸入圖書編號(hào)及借書/還書日期后(日期由系統(tǒng)自動(dòng)獲?。c(diǎn)擊確認(rèn)即可實(shí)現(xiàn)借/還書操作。若有超期未還的書籍需先在還書界面中繳納罰款方可繼續(xù)借書。相關(guān)

16、關(guān)鍵代碼:if mark=1 then/判斷證件是否有效messagebox("提示","該證件已掛失")elseif mark=2 and gb_title.text="借書信息" thenmessagebox("提示","該證件有超期書籍未歸還")elseselect name,depart/查詢證件信息into :sle_name.text,:sle_depart.textfrom certificateinfowhere cert_id=:sle_cert_id.text;if sle_

17、name.text='' and sle_cert_id.text<>'' thenmessagebox("提示","無效的證件號(hào)")end ifif mark=0 and sle_name.text<>'' then/判斷證件狀態(tài)sle_flag.text='正常'elseif mark=1 thensle_flag.text='掛失'elseif mark=2 thensle_flag.text='超期未還'forfeit=day_

18、forfeit*daysafter(loandates,today)messagebox("圖書超期未還","須繳納"+string(forfeit)+"元罰款")end ifif sle_cert_id.text<>'' thendw_1.setsqlselect("select bookinfo.bookid,bookinfo.title,bookinfo.author,bookinfo.publisher,loan.loandates from bookinfo,loan where boo

19、kinfo.bookid=loan.bookid and loan.returndates is null and loan.cert_id="+sle_cert_id.text)/設(shè)置查詢條件dw_1.settransobject(sqlca)dw_1.retrieve()if dw_1.rowcount()=book_limit and dw_1.rowcount()<>0 and gb_title.text="借書信息" then/計(jì)算數(shù)據(jù)窗口中行數(shù)messagebox("提示","該借閱證最多只可借閱"+

20、string(dw_1.rowcount()+"本書")end ifend ifend if(8)閱讀導(dǎo)航閱讀導(dǎo)航包括閱讀摘要和新書預(yù)覽兩項(xiàng)功能,分別實(shí)現(xiàn)書籍摘要閱覽及查看近半年出版的新書信息的功能。效果如下:新書預(yù)覽實(shí)際上使用了查詢界面的時(shí)間段查詢功能。打開查詢窗口的同時(shí)自動(dòng)設(shè)置查詢時(shí)間段為最近半年,其余部分與前面相同。下面主要給出摘要界面的代碼:if row > 0 thentitle_temp=dw_1.getitemstring(row,"title")/獲得點(diǎn)擊行對(duì)應(yīng)標(biāo)題select abstract/查詢摘要信息into :mle_ab

21、stract.textfrom bookinfowhere title=:title_temp;end if(9)統(tǒng)計(jì)資料該菜單主要實(shí)現(xiàn)的功能為數(shù)據(jù)的統(tǒng)計(jì)匯總,包括各類圖書比例,借出與庫(kù)存比例,熱門書統(tǒng)計(jì)功能。通過使用游標(biāo)等方式獲取相關(guān)數(shù)據(jù)并將之顯示為餅狀圖或柱狀圖,相當(dāng)直觀。具體實(shí)現(xiàn)效果如下:實(shí)現(xiàn)上述功能的關(guān)鍵代碼為:gr_graphic.graphtype=pie3d!/設(shè)置圖表樣式int class,num,temp,ord=1select count(distinct class)/查詢不同書的總數(shù)into :classfrom bookinfo;declare book_cur cu

22、rsor for/將每種書的數(shù)量存入數(shù)組select count(class)from bookinfogroup by bookinfo.class;open book_cur;fetch book_cur into :temp;do while sqlca.sqlcode=0numord=tempord=ord+1fetch book_cur into :temp;loopclose book_cur;string temp2,nameord=1declare book_cur2 cursor for/將每種書的借出數(shù)量存入數(shù)組select distinct classfrom booki

23、nfo;open book_cur2;fetch book_cur2 into :temp2;do while sqlca.sqlcode=0nameord=temp2ord=ord+1fetch book_cur2 into :temp2;loopclose book_cur2;gr_graphic.addseries("")for ord=1 to class/將數(shù)據(jù)傳遞給圖表控件gr_graphic.addcategory(nameord)gr_graphic.adddata(1,numord,nameord)next通過游標(biāo)的使用統(tǒng)計(jì)數(shù)據(jù)能夠?qū)崿F(xiàn)實(shí)時(shí)更新,顯示出最新

24、的統(tǒng)計(jì)結(jié)果。(10)權(quán)限設(shè)置該操作必須具備系統(tǒng)管理員權(quán)限方可進(jìn)行。其功能為管理賬戶信息,設(shè)置不同類型證件可借閱的數(shù)量及超期罰款等。相關(guān)功能主要由兩個(gè)數(shù)據(jù)窗口實(shí)現(xiàn),如下圖:其中新增按鈕的代碼為:temp=dw_2.rowcount()dw_2.insertrow(temp+1)/新增一行確定按鈕代碼為:dw_1.update()/作出修改dw_2.update()if sqlca.sqlcode<>0 thenmessagebox("保存失敗","數(shù)據(jù)庫(kù)錯(cuò)誤代碼:"+string(sqlca.sqldbcode)&+"rn數(shù)據(jù)

25、庫(kù)錯(cuò)誤信息:"+sqlca.sqlerrtext)rollback;elsecommit;messagebox("修改成功","所作修改已成功存儲(chǔ)")close(parent)end if(11)證件管理圖書管理系統(tǒng)中需要有借書證信息管理功能,此處即為實(shí)現(xiàn)該功能。此界面能實(shí)現(xiàn)新證件的等級(jí),證件的掛失、注銷以及證件信息的查找功能。查詢的代碼為:if ddlb_condition.text='借書證號(hào)' then/判斷查詢條件select cert_id,cert_name,cert_value,name,depart,flagin

26、to :sle_cert_id.text,:sle_cert_name.text,:sle_cert_value.text,:sle_name.text,:ddlb_depart.text,:sle_flag.textfrom certificateinfowhere cert_id=:sle_condition.text;/查詢證件信息elseif ddlb_condition.text='身份證號(hào)' thenselect cert_id,cert_name,cert_value,name,depart,flaginto :sle_cert_id.text,:sle_cert

27、_name.text,:sle_cert_value.text,:sle_name.text,:ddlb_depart.text,:sle_flag.textfrom certificateinfowhere cert_value=:sle_condition.text;end ifif sle_flag.text='0' then/顯示證件狀態(tài)sle_flag.text='正常'elseif sle_flag.text='1' thensle_flag.text='掛失'elseif sle_flag.text='2' thensle_flag.text='超期未還'end if掛失的代碼為:update c

溫馨提示

  • 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論