版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、數(shù)學(xué)與計算機學(xué)院課程設(shè)計說明書課 程 名 稱:數(shù)據(jù)結(jié)構(gòu)與算法B綜合課程設(shè)計課 程 代 碼: 6013799 題 目: 圖書管理系統(tǒng) 年級/專業(yè)/班: 2011/計算機科學(xué)與技術(shù)/04班學(xué) 生 姓 名: 學(xué) 號: 開 始 時 間: 2011 年 12 月 08 日完 成 時 間: 2011 年 12 月 24 日課程設(shè)計成績:學(xué)習(xí)態(tài)度及平時成績(30)技術(shù)水平與實際能力(20)創(chuàng)新(5)說明書撰寫質(zhì)量(45)總 分(100)指導(dǎo)教師簽名: 年 月 日目 錄 摘要1 前言11.1 問題的提出11.2 任務(wù)與分析12.軟件總體設(shè)計32.1 開發(fā)工具32.2 系統(tǒng)框圖32.3 模塊功能5 2.3.1
2、圖書入庫.5 2.3.2 清楚圖書5 2.3.3 顯示庫存5 2.3.4 讀者借閱.5 2.3.5 讀者歸還.5 2.3.6 借閱查詢.53 軟件界面設(shè)計63.1 控件介紹63.2 窗體63.3 文本編輯框63.4 下拉列表框63.5 密碼框63.6 表格63.7 菜單欄組件74 功能詳細(xì)設(shè)計84.1 界面登陸84.2 新書錄入94.3 清楚圖書庫存104.4 圖書借閱114.5 圖書歸還134.6 借閱顯示154.7 軟件使用說明155 軟件測試17結(jié) 論28致 謝29參考文獻30摘 要隨著計算機及網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,Internet/Intranet應(yīng)用在全球范圍內(nèi)日益普及,當(dāng)今社會正快速
3、向信息化社會前進,信息自動化的作用也越來越大。從而使我們從繁雜的事務(wù)中解放出來,提高了我們的工作效率。目前學(xué)校圖書館的借閱工作部分還是手工管理,工作效率很低,并且不能及時了解圖書的種類和學(xué)生們比較需求的圖書等,不能更好的適應(yīng)當(dāng)前學(xué)生的借閱要求。手工管理還存在這許多弊端,由于不可避免的人為因素,造成數(shù)據(jù)的遺漏、誤報。計算機信息化管理有著儲存量大,速度快等許多優(yōu)點,提供給我們的處理信息及時快捷,因此我們利用計算機提供給我們的信息對學(xué)生們的借閱過程形成一整套動態(tài)的管理。本系統(tǒng)將會涉及到圖書館日常管理工作的基本常見細(xì)節(jié),諸如新圖書的入庫登記,圖書館所有書籍的分類管理,圖書的查詢,圖書的借閱、退還手續(xù)的
4、登記,費舊圖書的清理撤除等,本系統(tǒng)所要實現(xiàn)的這些功能基本上涵蓋了圖書館的日常管理工作,基本能夠滿足校園圖書館的工作人員的管理需要。在對本系統(tǒng)的具體開發(fā)過程當(dāng)中,將采用Java語言進行開發(fā),以文本文件實現(xiàn)后臺數(shù)據(jù)庫,本系統(tǒng)是完全基于圖形化用戶界面(GUI)的單機版本。關(guān)鍵詞:信息化 軟件工程 軟件生命周期 圖形化用戶界面AbstractThe full name of our System is: The Management Information System of Campuss Library. At present, the computer technology is develop
5、ing ever-growing, and the campuss information construction also have pushing on, by contrast, the method of management in many university library is still by man, the libraryworkers must face to the large number of books, and also face to fall into the trouble. Actually, the work can be done by the
6、computer which have a management information system. Then the heavy work will not be done by people, the libraryworkers can use computer to manage the books, and the everyday work will be easy.This is the goal which our system want to achieve finally.The principle of development to our system will b
7、e following with Software Engineering, we use the traditional model which be called Waterfall, and the course of development will be divided into six stage. We will develop the system in sequence.Our system contains many operations about librarys everyday work, such as Register New Books, Classify B
8、ooks according to their subjects, Find Books, Dispose old books, and so on, our system can finish all of the work, and can meet the requirements of the librarysworkers.During the development of our system, we use the tool of JAVA to develop it, our system is on the basis of the Access Database.1 前言
9、1.1 問題的提出首先,圖書館的管理直接關(guān)系到我們大學(xué)生如何更好的使用圖書,更充分的利用現(xiàn)有資源學(xué)習(xí),提高自身素質(zhì)。針對當(dāng)今的大學(xué)圖書館藏書越來越多,學(xué)生借書越來越頻繁,圖書管理較為繁瑣,圖書館管理工作人員付出的工作時間越來越多,得到的效率卻很低這個現(xiàn)狀。為提高工作效率,減輕圖書館工作人員的工作負(fù)擔(dān),決定開發(fā)學(xué)校圖書館管理系統(tǒng)軟件,以幫助更好的實現(xiàn)圖書館的管理,讓我們能更便捷的借閱圖書,讓老師能花最少的時間辦理好借閱圖書手續(xù)。開發(fā)此圖書館管理系統(tǒng)軟件,也是對實現(xiàn)數(shù)字化圖書館管理的支持,現(xiàn)今各大學(xué)普遍存在著一個現(xiàn)象,圖書的借閱手續(xù)都是由專門的老師來實現(xiàn)辦理的,每當(dāng)借閱高峰期時,排隊借書的場面屢見
10、不鮮,這樣即耗費時間又使原本不太大的借書大廳擁擠不堪。圖書館管理系統(tǒng)的實現(xiàn),可以著眼于數(shù)字化借閱,簡化學(xué)生圖書查詢流程,簡化圖書外借登記手續(xù),即提高借閱效率又可實現(xiàn)圖書借閱的完整進出記錄,保證圖書的合理使用,讓廣大師生受益。1.2 任務(wù)與分析本課題主要的任務(wù)是設(shè)計一個圖書管理系統(tǒng),實現(xiàn)對圖書的采編入庫,清除,查找,借閱,歸還以及顯示功能1.基于圖形用戶界面(GUI)的標(biāo)準(zhǔn)“Windows” 應(yīng)用程序。2.初始輸入數(shù)據(jù):自由輸入。3.基本要求: (1)每種書的登記內(nèi)容至少包括書號、書名、著者、現(xiàn)存量和總庫存量等五項。 (2)由于圖書管理的基本業(yè)務(wù)活動都是通過書號(即關(guān)鍵字)進行的,所以要用對書號
11、 索引,以獲得高效率。系統(tǒng)應(yīng)實現(xiàn)的基本功能有: (1)采編入庫:新購入一種書,經(jīng)分類和確定書號之后登記到圖書帳目中去。如果這兩種書在帳中已有,則只將總庫存量增加。 (2)清除庫存:某種書已無保留價值,將它從圖書帳目中注銷。 (3)借閱:如果一種書的現(xiàn)存量大于零,則借出一本,登記借閱者的圖書證號和歸還期限。 (4)歸還:注銷對借閱者的登記,改變該書的現(xiàn)存量。 (5)顯示:以凹入表的形式顯示B樹。這個操作是為了調(diào)試和維護的目的而設(shè)置的。4.界面設(shè)計總要求 (1)操作流程簡便合理,操作界面美觀自然,符合用戶一般操作習(xí)慣。 (2)界面簡潔美觀,配色和諧,比例合適,符合大多數(shù)人的審美趣向。5.菜單設(shè)置“
12、使用說明”,介紹本軟件開發(fā)者、特色、各項功能以及如何使用。2.系統(tǒng)總體設(shè)計2.1 開發(fā)工具eclipse優(yōu)點: 1,從編寫、查錯、編譯、幫助等等各方面為Java語言貼身定做。 2,可無限擴展的強大插件功能。 3,眾多公司、廠商、組織的鼎立支持。 4,開放,自由,免費。 開發(fā)環(huán)境:Win7運行環(huán)境:Win7。2.2 系統(tǒng)框圖(1)系統(tǒng)組成框圖:如圖2-1所示圖書管理系統(tǒng) 管理員 學(xué)生清除庫存新書入庫借閱查詢圖書歸還圖書借閱 圖2-1 系統(tǒng)組成框圖(2) 系統(tǒng)流程圖: 如圖2-2-1,圖2-2-2所示 圖2-2-1 系統(tǒng)流程圖 圖2-2-1 系統(tǒng)流程圖2.3 模塊功能2.3.1 圖書入庫輸入編采入
13、庫圖書的書號,書名,著作,現(xiàn)存量,以及總?cè)霂炝?入庫成功后,將其圖書信息保存在文本文檔中2.3.2 清除圖書輸入圖書的編號對其進行刪除,刪除成功后,將其文本文檔中的現(xiàn)存量和中庫存量置為02.3.3 顯示庫存羅列出所有庫存圖書的書號,書名,著作,現(xiàn)存量,以及總庫存量2.3.4 讀者借閱 輸入所需借閱圖書的編號,書名和借書日期,借閱成功后,將其借閱信息保存值文本文檔中2.3.5 讀者歸還 輸入所歸還圖書的書號,歸還成功后,將其以前借閱信息中的借閱日期置為0-0-02.3.5 借閱查詢 羅列出讀者所借閱圖書的記錄3 人機界面設(shè)計3.1 控件介紹 控件是對數(shù)據(jù)和方法的封裝??丶梢杂凶约旱膶傩院头椒ā?/p>
14、屬性是控件數(shù)據(jù)的簡單訪問者。事件則是控件的一些簡單而可見的功能。 所有的控件都有很多屬性,用于處理控件的操作 3.2 窗體(以下逐個闡述:你選用的控件的截圖、特點、選用理由) 窗口JFrame一個底層容器,其他組件必須添加到底層容器中,以便借助這個底層容器和操作系統(tǒng)進行信息交互. 使用了菜單條,菜單與菜單項,實現(xiàn)窗口間的切換.3.3 文本編輯框文本框特點是允許用戶在文本框中輸入單行文本3.4 密碼框文本密碼框允許用戶在密碼框內(nèi)輸入單行密碼,密碼框的回顯字符是*.3.5 按鈕與標(biāo)簽在按鈕上設(shè)置點擊事件.3.6 表格表格以行和列的形勢顯示數(shù)據(jù),允許對表格的數(shù)據(jù)進行編輯,表格的模型功能強大,靈活并易
15、于執(zhí)行3.7 菜單組件(必須有菜單,在此講述菜單組件及其設(shè)計)窗口中的菜單條,菜單,菜單項是非常熟悉的組件,菜單放在菜單條里面,菜單項放在菜單里面4 功能詳細(xì)設(shè)計4.1 登錄界面 用戶從登錄界面輸入用戶名與密碼,輸入管理員的用戶與密碼,并驗證密碼正確后,進入管理員管理板塊.輸入學(xué)生的用戶名與密碼,并驗證正確后,進入學(xué)生板塊.核心代碼: jbn2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) System.exit(0);); jbn1.addActionListener(
16、new ActionListener()public void actionPerformed(ActionEvent e) String usernameinput = jtf1.getText();String pwdstrinput = String.valueOf(jpf.getPassword();if (usernameinput.equals(username)&& (pwdstrinput.equals(pwdstr) && true=r1.isSelected() JOptionPane.showMessageDialog(null, &quo
17、t;登陸成功!");new ListenGUI2();setVisible(false);jtf1.grabFocus();jpf.grabFocus();return; else if (usernameinput.equals(username2)&& (pwdstrinput.equals(pwdstr2) && true=r2.isSelected() JOptionPane.showMessageDialog(null, "登陸成功!");new ListenGUI1();setVisible(false);jtf1.gr
18、abFocus();jpf.grabFocus();return;else if (pwdstrinput = null | "".equals(pwdstrinput) JOptionPane.showMessageDialog(null, "密碼不能為空");jpf.grabFocus();return; else if (pwdstrinput.length() < 6) JOptionPane.showMessageDialog(null, "密碼不能小于6位");jpf.grabFocus();return; else
19、 JOptionPane.showMessageDialog(null, "登陸失??!"); );4.2 新書的錄入 管理員輸入所需錄入新書的編號,書名,著作,現(xiàn)存量和中庫存量后,點擊錄入,則系統(tǒng)自動將錄入的新書信息保存在文本文檔中. 用文本文檔操作不方面管理員的后臺管理,查看書的信息不能直接打開文本文檔進行查看,而是必須進入管理界面才能進行查看.核心代碼:public void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif(f.exists()FileInputStream fi;tr
20、y fi = new FileInputStream(f);ObjectInputStream oi=new ObjectInputStream(fi); bookslist=(LinkedList<Books>)oi.readObject(); fi.close(); oi.close(); Books books=new Books(); String s1=no.getText(); String s2=name.getText(); String s3=actor.getText(); String s4=save.getText(); String s5=allsave.
21、getText(); while(i<bookslist.size() Books bo=(Books)bookslist.get(i); if(s1.equals(bo.getNo()&&s2.equals(bo.getName()&&s3.equals(bo.getActor() int a,b; a=Integer.parseInt(bo.getAllsave()+Integer.parseInt(s5); b=Integer.parseInt(bo.getSave()+Integer.parseInt(s5); bo.setAllsave(Stri
22、ng.valueOf(a); bo.setSave(String.valueOf(b); break; i+; if(i=bookslist.size() books.setNo(s1); books.setName(s2); books.setActor(s3); books.setSave(s4); books.setAllsave(s5); bookslist.add(books); FileOutputStream fo=new FileOutputStream(f); ObjectOutputStream out=new ObjectOutputStream(fo); out.wri
23、teObject(bookslist); out.close(); catch (Exception ee) elsetryf.createNewFile();Books books=new Books(); books.setNo(no.getText(); books.setName(name.getText();books.setActor(actor.getText();books.setSave(save.getText();books.setAllsave(allsave.getText();bookslist.add(books);FileOutputStream fo=new
24、FileOutputStream(f);ObjectOutputStream out=new ObjectOutputStream(fo);out.writeObject(bookslist);out.close();catch(Exception e1) 4.3 清除圖書庫存管理員輸入所需刪除圖書的編號,如庫存中有此編號的書,則將此書的現(xiàn)存量與總庫存量賦值為零.主要用到的數(shù)據(jù)結(jié)構(gòu)是鏈表,方便對其的刪除操作.其確實是從鏈表的頭依次遍歷,直到找到所需的圖書編號或者到鏈表尾部.這樣遍歷的時間效率比較低,對于大量的圖書需要遍歷的話,此算法的時間效率低核心代碼:public void actionPe
25、rformed(ActionEvent e) if(file.exists()try fi = new FileInputStream(file); ObjectInputStream oi=new ObjectInputStream(fi); bookslist1=(LinkedList<Books>)oi.readObject(); fi.close(); oi.close(); Books books=new Books(); String s=no.getText(); while(i<bookslist1.size() Books bo=(Books)booksli
26、st1.get(i); if(s.equals(bo.getNo() int a,b; a=0; b=0; bo.setAllsave(String.valueOf(a); bo.setSave(String.valueOf(b); JOptionPane.showMessageDialog(null, "刪除成功!"); break; i+; FileOutputStream fo=new FileOutputStream(file); ObjectOutputStream out=new ObjectOutputStream(fo); out.writeObject(b
27、ookslist1); fo.close(); out.close(); catch (Exception ee) 4.4 圖書的借閱學(xué)生輸入所需借閱圖書的編號,書名和借閱日期,如果此書的現(xiàn)存量大于零,則將其現(xiàn)存量減一,讀者借書成功.并且在讀者信息中記錄讀者借閱了此圖書,將借閱信息寫入文本文件.主要的數(shù)據(jù)結(jié)構(gòu)是鏈表,從鏈表的頭依次遍歷,直到找到所需的圖書編號或者到鏈表尾部.這樣遍歷的時間效率比較低,對于大量的圖書需要遍歷的話,此算法的時間效率低核心代碼:public void actionPerformed(ActionEvent e) try FileInputStream fi=new F
28、ileInputStream(file); ObjectInputStream oi=new ObjectInputStream(fi); bookslist1=(LinkedList<Books>)oi.readObject(); fi.close(); oi.close(); Books books=new Books(); books.setNo(rno.getText(); while(i<bookslist1.size() Books bo=(Books)bookslist1.get(i); if(books.getNo().equals(bo.getNo()&am
29、p;&Integer.parseInt(bo.getSave()>0) int a; a=Integer.parseInt(bo.getSave()-1; bo.setSave(String.valueOf(a); JOptionPane.showMessageDialog(null, "借閱成功!"); break; if(Integer.parseInt(bo.getSave()=m&&books.getNo().equals(bo.getNo() JOptionPane.showMessageDialog(null, "此書全部
30、借出!"); System.exit(0); i+; if(i=bookslist1.size() JOptionPane.showMessageDialog(null, "此書圖書館無庫存!"); System.exit(0); FileOutputStream fo=new FileOutputStream(file); ObjectOutputStream out=new ObjectOutputStream(fo); out.writeObject(bookslist1); out.close(); if(file1.exists() try FileIn
31、putStream fi1 = new FileInputStream(file1); ObjectInputStream oi1=new ObjectInputStream(fi1); readerlist1=(LinkedList<Reader>)oi1.readObject(); fi1.close(); oi1.close(); Reader readers=new Reader(); String s1=rno.getText(); String s2=rname.getText(); String s3=borrowdate.getText(); readers.set
32、Rno(s1); readers.setRname(s2); readers.setBorrowdate(s3); readerlist1.add(readers); FileOutputStream fo1=new FileOutputStream(file1);ObjectOutputStream out1=new ObjectOutputStream(fo1);out1.writeObject(readerlist1);out1.close(); catch(Exception ee) elsetryfile1.createNewFile(); Reader readers=new Re
33、ader(); String s1=rno.getText(); String s2=rname.getText(); String s3=borrowdate.getText(); readers.setRno(s1); readers.setRname(s2); readers.setBorrowdate(s3); readerlist1.add(readers); FileOutputStream fo1=new FileOutputStream(file1);ObjectOutputStream out1=new ObjectOutputStream(fo1);out1.writeOb
34、ject(readerlist1);out1.close();catch(Exception e1) catch(Exception ee)4.5 圖書的歸還學(xué)生輸入需要歸還圖書的編號,如果歸還成功則將讀者的借書日期置為0-0-0.主要的數(shù)據(jù)結(jié)構(gòu)是鏈表,從鏈表的頭依次遍歷,直到找到所需的歸還圖書的編號或者到鏈表尾部.這樣遍歷的時間效率比較低,對于大量的圖書需要遍歷的話,此算法的時間效率低核心代碼:public void actionPerformed(ActionEvent e) try FileInputStream fi=new FileInputStream(file); ObjectI
35、nputStream oi=new ObjectInputStream(fi); bookslist1=(LinkedList<Books>)oi.readObject(); fi.close(); oi.close(); Books books=new Books(); books.setNo(rno.getText(); while(i<bookslist1.size() Books bo=(Books)bookslist1.get(i); if(books.getNo().equals(bo.getNo() int a; a=Integer.parseInt(bo.ge
36、tSave()+1; bo.setSave(String.valueOf(a); JOptionPane.showMessageDialog(null, "歸還成功!"); i+; FileOutputStream fo=new FileOutputStream(file); ObjectOutputStream out=new ObjectOutputStream(fo); out.writeObject(bookslist1); out.close(); FileInputStream fi1 = new FileInputStream(file1);ObjectInp
37、utStream oi1=new ObjectInputStream(fi1); readerlist1=(LinkedList<Reader>)oi1.readObject(); fi1.close(); oi1.close(); Reader readers=new Reader(); readers.setRno(rno.getText(); while(j<readerlist1.size() Reader bo1=(Reader)readerlist1.get(j); if(readers.getRno().equals(bo1.getRno() bo1.setBo
38、rrowdate("0-0-0"); j+; FileOutputStream fo1=new FileOutputStream(file1);ObjectOutputStream out1=new ObjectOutputStream(fo1);out1.writeObject(readerlist1);out1.close(); catch(Exception ee)4.6 借閱顯示 顯示出所有學(xué)生借閱的書籍,并能得知這些書籍時候歸還. 核心代碼:public void actionPerformed(ActionEvent e) if(e.getSource()=顯示
39、) try FileInputStream fi=new FileInputStream(file); ObjectInputStream oi=new ObjectInputStream(fi); LinkedList<Reader> readerList=(LinkedList<Reader>)oi.readObject(); fi.close(); oi.close(); int length=readerList.size(); 表格單元=new Objectlength3; table=new JTable(表格單元,列名); pCenter.removeAl
40、l(); pCenter.add("顯示",new JScrollPane(table); pCenter.validate(); Iterator<Reader> iter=readerList.iterator(); int i=0; while(iter.hasNext() Reader read =iter.next(); 表格單元i0= read.getRno(); 表格單元i1=read.getRname(); 表格單元i2=read.getBorrowdate(); i+; table.repaint(); catch(Exception ee) 4.7 軟件使
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 綠城育華學(xué)校九年級上學(xué)期語文12月檢測試卷
- 廣水市九年級上學(xué)期語文期中考試試卷
- 八年級上學(xué)期語文9月月考試卷
- 高支模驗收申請1
- 窗花剪紙課件教學(xué)課件
- 置業(yè)類合同(2篇)
- 《數(shù)學(xué)物理方法》 測試題及答案匯 黃志祥 第1-8章
- 辯論英文課件教學(xué)課件
- 濟南的冬天說課稿14篇
- 南京航空航天大學(xué)《博弈與社會》2022-2023學(xué)年第一學(xué)期期末試卷
- 氯化鈉特性表
- 鉆井井架起升鋼絲繩管理臺賬
- 單片機原理與應(yīng)用說課
- 船舶租賃盡職調(diào)查
- GB/T 13912-2020金屬覆蓋層鋼鐵制件熱浸鍍鋅層技術(shù)要求及試驗方法
- 植物生理學(xué)-植物的逆境生理
- 2017大專病理課件4局部血液循環(huán)障礙l
- 小學(xué)英語人教新起點五年級上冊Unit3Animalsunit3storytime
- 醫(yī)療質(zhì)量管理與持續(xù)改進工作記錄
- 幼兒園突發(fā)事件應(yīng)急處置流程圖
- 小學(xué)《信息技術(shù)》考試試題及
評論
0/150
提交評論