圖書管理系統項目系統編程文檔_第1頁
圖書管理系統項目系統編程文檔_第2頁
圖書管理系統項目系統編程文檔_第3頁
圖書管理系統項目系統編程文檔_第4頁
圖書管理系統項目系統編程文檔_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、圖書管理系統項目系統編程文檔題目: 圖書管理系統 班級: 08信息管理與信息系統本科班 姓名: 指導老師: 2009年12月28日版 本 歷 史版本/狀態(tài)作者參與者起止日期備注版本1祝靈葉祝靈葉、同學幫助加老師指導2009-12-102009-12-18完成基本界面的設置,實現不同身份登陸不同界面,能夠進行不同的操作版本2祝靈葉祝靈葉、同學幫助加老師指導2008-12-202009-12-24實現了各個按鈕的監(jiān)聽及頁面的跳轉版本3祝靈葉祝靈葉、同學幫助加老師指導2009-12-252010-12-28連接上了數據庫,實現了增刪改查基本功能,并且實現了界面的整體美化效果一、需求分析1.開發(fā)背景和

2、意義圖書管理是高校內每一個系部或院部都必須切實面對的工作,但一直以來人們使用傳統的人工方式管理圖書資料。這種方式存在著許多缺點,如效率低、保密性差且較為繁瑣。另外,隨著圖書資料數量的增加,其工作量也將大大增加,這必將增加圖書資料管理者的工作量和勞動強度,這將給圖書資料信息的查找、更新和維護都帶來了很多困難。經過詳細的調查,目前我國各類高等學校中有相當一部分單位圖書資料管理還停留在人工管理的基礎上。這樣的管理機制已經不能適應時代的發(fā)展,其管理方法將浪費許多人力和物力。隨著科學技術的不斷提高,這種傳統的手工管理方法必然被以計算機為基礎的信息管理方法所取代。圖書管理作為計算機應用的一個分支,有著手工

3、管理無法比擬的優(yōu)點,如檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高圖書管理的效率。因此,開發(fā)一套能夠為用戶提供充足的信息和快捷的查詢手段的圖書管理系統,將是非常必要的,也是十分及時的。2.系統需求概況2.1任務概述經過對我校圖書館詳細調查,加深了對現行圖書管理業(yè)務的深刻了解,與此同時,將整個圖書管理系統的業(yè)務流程抽象描述如下:1、新的圖書購進后,管理員對其分門別類地進行匯總、編號、上架,以備學生借閱。2、舊的圖書需要撤架,管理員對其信息刪除,以備館藏。3、如有圖書信息需要修改,管理員可以修改其相應的信息。4、管理員可以對有權借閱書籍的同學進行增加和

4、刪除。5、學生如需借書,則應在其借閱表上進行相應的登記。6、學生可以在一定的條件下續(xù)借一定的書籍。7、學生借閱圖書后,應及時歸還,并在借閱表中刪除相應的借閱信息。2.2 功能需求以下是圖書管理系統必須具備的功能:1.新進圖書的登記功能:對于購進的新書,系統必須具備圖書信息資料(編號、書名、圖書類型、出版社、作者、定價)的錄入功能。2.圖書的查詢修改功能:當圖書資料發(fā)生變化,如圖書丟失或有錯誤信息輸入時,則應能夠及時對數據進行修改和補充。3.圖書的刪除功能:當一部分圖書因受損嚴重時,需要對其信息刪除并進行館藏。3.借閱的登記、續(xù)借的登記及歸還的登記功能:系統的主要功能之一,供本校學生借閱圖書、續(xù)

5、借圖書和歸還圖書,并進行登記。4.學生信息的增加、刪除和修改功能:系統主要功能之一,建立學生信息,并對其進行維護。2.3性能需求為了保證系統能夠長期、安全、穩(wěn)定、可靠、高效的運行,圖書管理系統應該滿足以下的性能需求:1、系統處理的準確性和及時性系統處理的準確性和及時性是系統的必要性能。在系統設計和開發(fā)過程中,要充分考慮系統當前和將來可能承受的工作量,使系統的處理能力和響應時間能夠滿足學校對信息處理的需求。2、系統的開放性和系統的可擴充性圖書管理系統在開發(fā)過程中,應該充分考慮以后的可擴充性。例如用戶查詢的需求也會不斷的更新和完善。所有這些,都要求系統提供足夠的手段進行功能的調整和擴充。而要實現這

6、一點,應通過系統的開放性來完成,即系統應是一個開放系統,只要符合一定的規(guī)范,可以簡單的加入和減少系統的模塊,配置系統的硬件。通過軟件的修補、替換完成系統的升級和更新換代。3、系統的易用性和易維護性圖書管理系統是直接面對使用人員的,而使用人員往往對計算機并不時非常熟悉。這就要求系統能夠提供良好的用戶接口,易用的人機交互界面。要實現這一點,就要求系統應該盡量使用用戶熟悉的術語和中文信息的界面;針對用戶可能出現的使用問題,要提供足夠的在線幫助,縮短用戶對系統熟悉的過程。4、系統的標準性系統在設計開發(fā)使用過程中都要涉及到很多計算機硬件、軟件。所有這些都要符合主流國際、國家和行業(yè)標準。針對新的業(yè)務流程,

7、現具體描述其功能如下:1.用戶登錄:系統對用戶合法性進行檢查,并適合不同身份的人員進行登錄。2.圖書入庫:對新購進的圖書分類進行編號,并把圖書基本信息錄入計算機。3.圖書撤架:舊的圖書需要撤架,管理員對其信息刪除,以備館藏。4.圖書信息的修改:如有圖書信息需要修改,管理員可以修改其相應的信息。4.學生權限的修改:管理員可以對有權借閱書籍的同學進行增加和刪除。5.圖書借閱:對已入庫的圖書,學生可以借閱,并進行登記。6.圖書續(xù)借:對學生續(xù)借的圖書進行登記。7.圖書歸還:對學生已歸還的圖書進行相應的歸還登記。 8.信息查詢:即對所有圖書的借閱情況,或學生的基本情況和借閱情況進行查詢。二、概念結構設計

8、類型讀者讀者編號讀者姓名圖書借閱密碼家庭住址性別圖書編號圖書名稱圖書名稱出生年月出版社名圖書作者圖書編號讀者編號讀者姓名聯系電話借書量是否歸還價格入庫量三、邏輯結構設計轉換的原則將實體轉換成一個單個的表,實體的屬性轉換成關系的屬性如果是多對多的話,一定要把它轉換一個單獨的關系,關系的屬性是兩端實體的碼和自身所帶的屬性組成如果是一對多,則把它的任意一端合并到n端去如果是一對一則合并任意段即可將圖書管理系統的e-r圖轉換為關系數據庫的數據模型,其關系模式為(其中加下劃線的屬性為主碼):管理員信息表(編號、姓名、性別、出生年月、聯系電話、家庭住址、密碼);讀者信息表(讀者編號、讀者姓名、性別、出生年

9、月、聯系電話、家庭住址、密碼、借書量);圖書(圖書編號、圖書名稱、圖書作者、出版社名、定價、入庫量、類別、內容簡介、是否借出);借閱信息表(讀者編號、圖書編號、讀者姓名、圖書名稱、是否歸還);四、物理結構設計與實現(1)結構設計 物理結構主要是指數據庫的存儲記錄格式、存儲記錄的安排和存取方法。表結構設計:(各表字段名、類型長度、空否、說明)讀者信息表字段名數據類型可否為空說明uidchar(10)否讀者編號【主鍵】unamechar(10)否讀者姓名usexchar(10)否讀者性別birthdaychar(10)可空出生年月phonechar(15)可空聯系電話addressvarchar(

10、50)可空家庭住址passwordchar(10)否密碼sumbookchar(10)可空借書量圖書信息表字段名數據類型可否為空說明idchar(10)否圖書編號【主鍵】namechar(30)否圖書名稱authorchar(10)可空圖書作者publisherchar(30)可空出版社名pricechar(10)可空定價sumchar(10)可空入庫量sortchar(10)可空類別previewchar(50)可空內容簡介借閱信息表字段名數據類型可否為空說明uidchar(10)否讀者編號【主鍵】unamechar(10)可空讀者姓名idchar(10)否圖書編號【主鍵】namechar(

11、20)可空圖書名稱obkeepchar(10)否是否歸還管理員信息表字段名數據類型可否為空說明idchar(10)否編號namechar(10)否姓名sexchar(10)否性別birthdaychar(10)可空出生年月phonechar(15)可空聯系電話addressvarchar(50)可空家庭住址passwordchar(10)否密碼(2)建立數據庫1建立數據庫及其表(主要敘述如何建立)通過企業(yè)管理器,在圖書管理系統數據庫的圖書、讀者、管理員和借閱4張表中各輸入相應條數的紀錄。同時滿足數據的約束要求和表間關聯的紀錄。以實現對圖書管理系統數據庫的圖書、讀者、和借閱3張表中數據的插入、刪

12、除和修改操作。2.創(chuàng)建約束、默認和規(guī)則通過對表結構的設計,對圖書管理系統數據庫的圖書、讀者和借閱3張表內的屬性進行恰當的完整性約束、默認和規(guī)則。以達到列級完整性的約束條件。二、功能描述1. 登錄模塊程序名稱圖書管理系統功能描述實現了圖書管理系統的登錄界面,包括學生和管理員不同身份實現功能的主界面。開發(fā)者祝靈葉起止日期2009-12-102009-12-131. 登陸界面: 2. 學生功能的主界面: 3. 管理員功能的主界面: 4.在實現不同用戶身份登錄的時候,由于不會設約束,就直接從兩張表里查詢實現登錄。核心的sql語句如下: conndb db = conndb.createinstance

13、();string sql1; system.out.println(tfusername.gettext()+tfpassword.gettext();try sql1 = select * from users where uid=? and password=?;db.setps(sql1);db.getps().setstring(1, tfusername.gettext();db.getps().setstring(2, tfpassword.gettext();db.setrs(db.getps().executequery();string sql2 = select * fr

14、om manager where id=? and password=?;db.setps(sql2);db.getps().setstring(1, tfusername.gettext();db.getps().setstring(2, tfpassword.gettext();resultset rs = db.getps().executequery();if(db.getrs().next()/成功登錄后,顯示讀者界面login.this.setvisible(false);login.this.dispose();new readers(圖書管理系統);else if(rs.nex

15、t() /成功登錄后,顯示管理員界面 login.this.setvisible(false); login.this.dispose(); new manager(圖書管理系統);elsejoptionpane.showoptiondialog(login.this,用戶名或密碼有誤,請重新輸入!,登錄錯誤, joptionpane.default_option, joptionpane.information_message,null, null, null); catch (sqlexception e1) e1.printstacktrace();問題1:不知道怎么實現不同的身份登錄不

16、同的界面。對策:在連接數據庫的表中,設置兩張表,使用不同的sql語句進行查詢,從而實現了不同身份用戶的登錄。在一開始的時候,我把不同用戶的登錄想的比較簡單,以為只是在數據庫里設置一種約束就行,但事實并非如此,這種約束并不是那么好設。最后,我選擇了通過在數據庫中調用兩張表實現了此功能。啟發(fā):做事不能鉆牛角尖,要學會變通,要學會知識的靈活掌握,不拘泥于課本,一切知識要源于課本并且高于課本。2. 增加功能模塊程序名稱圖書管理系統功能描述實現了讀者和圖書的增加功能開發(fā)者祝靈葉起止日期2008-12-132009-12-151.新書入庫的界面:實現監(jiān)聽的核心代碼如下:btnsubmit.addactio

17、nlistener(new actionlistener()public void actionperformed(actionevent e) /如果以上驗證均通過則開始添加新數據int num = 0;conndb db = conndb.createinstance();string id = txtid.gettext();string name = txtname.gettext();string author = txtauthor.gettext();string publisher = txtpublisher.gettext();string price = txtprice

18、.gettext();string sum = txtsum.gettext();string cbsort = (string)cbsort.getselecteditem();system.out.println(cbsort);string preview = txtpreview.gettext();string sql = insert into books values (+id+,+name+,+author+,+publisher+,+price+,+sum+,+cbsort+,+preview+);db.update1(sql); );2.添加新讀者的界面:實現監(jiān)聽的核心代碼

19、如下:btnsubmit.addactionlistener(new actionlistener()public void actionperformed(actionevent e) if (txtid.gettext().equals()|txtname.gettext().equals() |txtbirthday.gettext().equals()| cblsex.getselecteditem().equals() |txtphone.gettext().equals() | txtaddress.gettext().equals() ) javax.swing.joptionp

20、ane.showmessagedialog(addreader.this, 各欄均不能為空!); else conndb db = conndb.createinstance(); string id = txtid.gettext();string name = txtname.gettext();string birthday = txtbirthday.gettext();string sex = (string)cblsex.getselecteditem();string phone = txtphone.gettext();string address = txtaddress.g

21、ettext(); string sql1 = insert users values (+id+,+name+,+sex+,+birthday+,+phone+,+address+,+id+,0); db.update1(sql1); string sql = select uid from users where uname = +txtname.gettext() + + order by uregtime desc; db.setps(sql); resultset rs = db.getrs(); string ids = null; try if(rs.next() ids = r

22、s.getstring(uid); javax.swing.joptionpane.showmessagedialog(addreader.this,讀者添加成功!讀者編號為: + id + 請牢記!); else javax.swing.joptionpane.showmessagedialog(addreader.this,讀者添加失??!請重試。); catch (sqlexception ex1) javax.swing.joptionpane.showmessagedialog(addreader.this,ex1.getmessage().tostring(); );由于數據庫學的不

23、是很好,所以開始的時候一些增、刪、改、查的sql語句弄得我焦頭爛額,在同學的幫助下,這部分終于成功了。啟發(fā):在遇到困難的時候,如果自己故居奮戰(zhàn)不能把問題解決,那么就要求救于人或是上網查些資料,不要自己死摳,以免鉆入死胡同,有時候還是集體的智慧比較厲害。3. 刪除功能模塊程序名稱圖書管理系統功能描述實現了讀者和圖書的刪除功能開發(fā)者祝靈葉起止日期2009-12-152010-12-181.舊書撤出的界面: 實現監(jiān)聽的核心代碼如下: btnsubmit.addactionlistener(new actionlistener()public void actionperformed(actionev

24、ent e) / todo 自動生成方法存根string id = txtid.gettext().trim();string sql = delete from books where id=+id+;db = conndb.createinstance();/連接數據庫db.update1(sql);string sql1 = select * from books where id=+id+;db.setps(sql1);db.query1(sql1);try if(!db.getrs().next()joptionpane.showoptiondialog(deletebook.thi

25、s,刪除成功,提示框, joptionpane.default_option, joptionpane.information_message,null, null, null); elsejoptionpane.showoptiondialog(deletebook.this,刪除不成功,提示框, joptionpane.default_option, joptionpane.information_message,null, null, null); catch (headlessexception e1) / todo auto-generated catch blocke1.print

26、stacktrace(); catch (sqlexception e1) / todo auto-generated catch blocke1.printstacktrace();2.刪除讀者的界面: 實現監(jiān)聽的核心代碼如下: btnsubmit.addactionlistener(new actionlistener()public void actionperformed(actionevent e) if (txtid.gettext().equals() | cblsex.getselecteditem().equals() |txtphone.gettext().equals()

27、 | txtaddress.gettext().equals() | txtname.gettext().equals()| txtbirthday.gettext().equals() javax.swing.joptionpane.showmessagedialog(deletereader.this, 各欄位不能為空,請重填!); else conndb db = conndb.createinstance(); string readid = txtid.gettext().trim(); string sql = delete from users where uid=+readid

28、+; db.update1(sql); string sql1 = select * from books where id=+readid+;db.setps(sql1);db.query1(sql1); try if (!db.getrs().next() javax.swing.joptionpane.showmessagedialog(deletereader.this,編號為 + readid + 的讀者已被成功刪除!); else javax.swing.joptionpane.showmessagedialog(deletereader.this, 刪除失敗!請再試。); cat

29、ch (headlessexception e1) / todo auto-generated catch blocke1.printstacktrace(); catch (sqlexception e1) / todo auto-generated catch blocke1.printstacktrace(); );.由于數據庫學的不是很好,所以開始的時候一些增、刪、改、查的sql語句弄得我焦頭爛額,在同學的幫助下,這部分終于成功了。啟發(fā):在遇到困難的時候,如果自己故居奮戰(zhàn)不能把問題解決,那么就要求救于人或是上網查些資料,不要自己死摳,以免鉆入死胡同,有時候還是集體的智慧比較厲害。4.

30、更新功能模塊程序名稱圖書管理系統功能描述實現了讀者和圖書的更新功能開發(fā)者祝靈葉起止日期2009-12-182010-12-201.圖書信息更新的界面: 實現監(jiān)聽的核心代碼如下: btnsure.addactionlistener(new actionlistener() public void actionperformed(actionevent e) conndb db = conndb.createinstance(); string sql = update books set id = + txtbid.gettext() +,name = + txtbname.gettext()

31、+,author = + txtbauthor.gettext() + ,publisher = + txtpublisher.gettext() +,price = + double.parsedouble(txtprice.gettext() + ,sums = +txtbsum.gettext() + ,sort = + (string) cbsort.getselecteditem() +,preview = +txtbpreview.gettext() + where id =+id+ ; db.update1(sql); javax.swing.joptionpane.showme

32、ssagedialog(updatebook.this, 圖書信息修改成功!); );2.讀者信息更新的界面: 實現監(jiān)聽的核心代碼如下: btnsure.addactionlistener(new actionlistener()public void actionperformed(actionevent e) conndb db = conndb.createinstance();string sql = update users set uname=+txtuname.gettext().trim()+,phone= + txtphone.gettext().trim() +,addre

33、ss= + txtaddress.gettext().trim() +,usex= + txtusex.gettext().trim() +,birthday= + txtbirthday.gettext().trim()+ where uid = + id.trim()+;db.update1(sql);javax.swing.joptionpane.showmessagedialog(updatereader.this, 信息修改成功!););由于數據庫學的不是很好,所以開始的時候一些增、刪、改、查的sql語句弄得我焦頭爛額,在同學的幫助下,這部分終于成功了。啟發(fā):在遇到困難的時候,如果自

34、己故居奮戰(zhàn)不能把問題解決,那么就要求救于人或是上網查些資料,不要自己死摳,以免鉆入死胡同,有時候還是集體的智慧比較厲害。5.查詢功能模塊程序名稱圖書管理系統功能描述實現了讀者和圖書的查詢功能開發(fā)者祝靈葉起止日期2009-12-212010-12-231. 圖書信息查詢的界面: 實現監(jiān)聽的核心代碼如下: btnfind.addactionlistener(new actionlistener()public void actionperformed(actionevent e) if (txtwhat.gettext().equals() javax.swing.joptionpane.show

35、messagedialog(bookmanage.this, 請輸入查詢信息!); return; conndb db = conndb.createinstance(); string sql = ; if (string) cbway.getselecteditem().equals(圖書編號) /integer.parseint(txtwhat.gettext(); sql = select * from books where id = +txtwhat.gettext()+; else if (string) cbway.getselecteditem().equals(圖書名稱)

36、sql = select * from books where name = + txtwhat.gettext() +; else if (string) cbway.getselecteditem().equals(類別) sql = select * from books where sort = + txtwhat.gettext() + ; else if (string) cbway.getselecteditem().equals(圖書作者) sql = select * from books where author = + txtwhat.gettext() +; else

37、sql = select * from books where publisher = + txtwhat.gettext() +; jtable table = inittable(sql); jscrollpane jsp = new jscrollpane(table); jsp.setbounds(20, 150, 650, 250); / p1.add(jsp); panel.add(jsp);bookmanage.this.setvisible(true);db.closeall(););2.讀者信息查詢的界面: 實現監(jiān)聽的核心代碼如下: btnfind.addactionlist

38、ener(new actionlistener()public void actionperformed(actionevent e) if (txtwhat.gettext().equals() javax.swing.joptionpane.showmessagedialog(readermanage.this, 請輸入查詢信息!); return; conndb db =conndb.createinstance(); string sql = ; if (string) cbway.getselecteditem().equals(讀者編號) sql = select * from u

39、sers where uid = +integer.parseint(txtwhat.gettext(); else sql = select * from users where uname = + txtwhat.gettext() + ; /開始查詢 db.setps(sql); db.query1(sql); resultset rs = db.getrs(); int count = 0; try /count用于查詢共有多少條包含指定條件的信息 while (rs.next() count+; rs.close(); catch (sqlexception ex1) javax.s

40、wing.joptionpane.showmessagedialog(readermanage.this,ex1.getmessage().tostring(); object cells = new objectcount9; try int i = 0; while (rs.next() cellsi = new object rs.getstring(1),rs.getstring(2), rs.getstring(3),rs.getstring(4), rs.getstring(5), rs.getstring(6); i+; string colnames = 讀者編號, 讀者姓名,

41、 性別, 出生年月, 聯系電話, 家庭住址; jtable1 = new jtable(cells, colnames); jscrollpane1.getviewport().add(jtable1); rs.close(); catch (sqlexception ex) javax.swing.joptionpane.showmessagedialog(readermanage.this,ex.getmessage().tostring(); );由于數據庫學的不是很好,所以開始的時候一些增、刪、改、查的sql語句弄得我焦頭爛額,在同學的幫助下,這部分終于成功了。啟發(fā):在遇到困難的時候,

42、如果自己故居奮戰(zhàn)不能把問題解決,那么就要求救于人或是上網查些資料,不要自己死摳,以免鉆入死胡同,有時候還是集體的智慧比較厲害。6.圖書借閱、續(xù)借及歸還功能模塊程序名稱圖書管理系統功能描述實現了讀者的借閱、續(xù)借和歸還功能開發(fā)者祝靈葉起止日期2009-12-232010-12-251.圖書借閱的界面: 實現監(jiān)聽的核心代碼如下: btnsure.addactionlistener(new actionlistener()public void actionperformed(actionevent e) if (tfbooknumber.gettext().equals() | tfusernumb

43、er.gettext().equals()javax.swing.joptionpane.showmessagedialog(borrow.this, 各欄位不能為空!); else /更新相關數據并將該書庫存量減1 conndb db = conndb.createinstance(); string sqls = select uname from users where uid=+tfusernumber.gettext()+; db.setps(sqls); db.query1(sqls); / string username;try if(db.getrs().next()usern

44、ame = db.getrs().getstring(1);system.out.println(username); catch (sqlexception e1) / todo auto-generated catch blocke1.printstacktrace();string sqlsb = select name,sums from books where id=+tfbooknumber.gettext()+; db.setps(sqlsb); db.query1(sqlsb); / string bookname;try if(db.getrs().next()booknam

45、e = db.getrs().getstring(1).trim();sums = integer.parseint(db.getrs().getstring(2);system.out.println(bookname+sums); catch (sqlexception e1) / todo auto-generated catch blocke1.printstacktrace(); string sql1 = insert into borrow values (+tfbooknumber.gettext()+,+username+,+tfbooknumber.gettext()+,+bookname+,否); db.update1(sql1); string sql2 = update books set sums=+(sums-1)+ where id=+tfbooknumber.gettext()+; db.update1(sql2); javax.swing.joptionpane.showmessagedialog(borrow.this, 借書成功!); );2.圖書續(xù)借的界面: 實

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論