數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-通訊管理系統(tǒng)及數(shù)據(jù)結(jié)構(gòu)與算法b綜合課程設(shè)計-圖書館管理系統(tǒng)_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-通訊管理系統(tǒng)及數(shù)據(jù)結(jié)構(gòu)與算法b綜合課程設(shè)計-圖書館管理系統(tǒng)_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-通訊管理系統(tǒng)及數(shù)據(jù)結(jié)構(gòu)與算法b綜合課程設(shè)計-圖書館管理系統(tǒng)_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-通訊管理系統(tǒng)及數(shù)據(jù)結(jié)構(gòu)與算法b綜合課程設(shè)計-圖書館管理系統(tǒng)_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-通訊管理系統(tǒng)及數(shù)據(jù)結(jié)構(gòu)與算法b綜合課程設(shè)計-圖書館管理系統(tǒng)_第5頁
已閱讀5頁,還剩73頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

淮海工學(xué)院計算機工程學(xué)院課程設(shè)計報告設(shè)計名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計選題名稱:通訊錄管理系統(tǒng)姓名:學(xué)號:專業(yè)班級:系院):計算機工程學(xué)院設(shè)計時間:20XX.12.24~20XX.1.4設(shè)計地點:軟件工程實驗室、教室成績:指導(dǎo)教師評語:成績:簽名:年月日PAGE54PAGE53XXX公司人事管理系統(tǒng)實現(xiàn)—管理模塊1前言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)借閱高峰期時,排隊借書的場面屢見不鮮,這樣即耗費時間又使原本不太大的借書大廳擁擠不堪。圖書館管理系統(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)鍵字)進行的,所以要用對書號索引,以獲得高效率。系統(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è)置“使用說明”,介紹本軟件開發(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) 圖書管理系統(tǒng) 管理員學(xué)生管理員學(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圖書入庫輸入編采入庫圖書的書號,書名,著作,現(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ù)和方法的封裝??丶梢杂凶约旱膶傩院头椒ā傩允强丶?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ù)進行編輯,表格的模型功能強大,靈活并易于執(zhí)行3.7菜單組件(必須有菜單,在此講述菜單組件及其設(shè)計)窗口中的菜單條,菜單,菜單項是非常熟悉的組件,菜單放在菜單條里面,菜單項放在菜單里面

4功能詳細設(shè)計4.1登錄界面用戶從登錄界面輸入用戶名與密碼,輸入管理員的用戶與密碼,并驗證密碼正確后,進入管理員管理板塊.輸入學(xué)生的用戶名與密碼,并驗證正確后,進入學(xué)生板塊.核心代碼:jbn2.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ System.exit(0); } }); jbn1.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringusernameinput=jtf1.getText(); Stringpwdstrinput=String.valueOf(jpf.getPassword()); if((usernameinput.equals(username)) &&(pwdstrinput.equals(pwdstr))&&true==r1.isSelected()){ JOptionPane.showMessageDialog(null,"登陸成功!"); newListenGUI2(); setVisible(false); jtf1.grabFocus(); jpf.grabFocus(); return; } elseif((usernameinput.equals(username2)) &&(pwdstrinput.equals(pwdstr2))&&true==r2.isSelected()){ JOptionPane.showMessageDialog(null,"登陸成功!"); newListenGUI1(); setVisible(false); jtf1.grabFocus(); jpf.grabFocus(); return; } elseif(pwdstrinput==null||"".equals(pwdstrinput)){ JOptionPane.showMessageDialog(null,"密碼不能為空"); jpf.grabFocus(); return; }elseif(pwdstrinput.length()<6){ JOptionPane.showMessageDialog(null,"密碼不能小于6位"); jpf.grabFocus(); return; }else{ JOptionPane.showMessageDialog(null,"登陸失?。?); } } });4.2新書的錄入管理員輸入所需錄入新書的編號,書名,著作,現(xiàn)存量和中庫存量后,點擊錄入,則系統(tǒng)自動將錄入的新書信息保存在文本文檔中.用文本文檔操作不方面管理員的后臺管理,查看書的信息不能直接打開文本文檔進行查看,而是必須進入管理界面才能進行查看.核心代碼:publicvoidactionPerformed(ActionEvente){ //TODOAuto-generatedmethodstub if(f.exists()){ FileInputStreamfi; try{ fi=newFileInputStream(f); ObjectInputStreamoi=newObjectInputStream(fi); bookslist=(LinkedList<Books>)oi.readObject(); fi.close(); oi.close(); Booksbooks=newBooks(); Strings1=no.getText(); Strings2=name.getText(); Strings3=actor.getText(); Strings4=save.getText(); Strings5=allsave.getText(); while(i<bookslist.size()) { Booksbo=(Books)bookslist.get(i); if(s1.equals(bo.getNo())&&s2.equals(bo.getName())&&s3.equals(bo.getActor())) { inta,b; a=Integer.parseInt(bo.getAllsave())+Integer.parseInt(s5); b=Integer.parseInt(bo.getSave())+Integer.parseInt(s5); bo.setAllsave(String.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); } FileOutputStreamfo=newFileOutputStream(f); ObjectOutputStreamout=newObjectOutputStream(fo); out.writeObject(bookslist); out.close(); }catch(Exceptionee){} } else{ try{ f.createNewFile(); Booksbooks=newBooks(); books.setNo(no.getText()); books.setName(name.getText()); books.setActor(actor.getText()); books.setSave(save.getText()); books.setAllsave(allsave.getText()); bookslist.add(books); FileOutputStreamfo=newFileOutputStream(f); ObjectOutputStreamout=newObjectOutputStream(fo); out.writeObject(bookslist); out.close(); } catch(Exceptione1){} }4.3清除圖書庫存管理員輸入所需刪除圖書的編號,如庫存中有此編號的書,則將此書的現(xiàn)存量與總庫存量賦值為零.主要用到的數(shù)據(jù)結(jié)構(gòu)是鏈表,方便對其的刪除操作.其確實是從鏈表的頭依次遍歷,直到找到所需的圖書編號或者到鏈表尾部.這樣遍歷的時間效率比較低,對于大量的圖書需要遍歷的話,此算法的時間效率低核心代碼:publicvoidactionPerformed(ActionEvente){ if(file.exists()){ try{ fi=newFileInputStream(file); ObjectInputStreamoi=newObjectInputStream(fi); bookslist1=(LinkedList<Books>)oi.readObject(); fi.close(); oi.close(); Booksbooks=newBooks(); Strings=no.getText(); while(i<bookslist1.size()) { Booksbo=(Books)bookslist1.get(i); if(s.equals(bo.getNo())) { inta,b; a=0; b=0; bo.setAllsave(String.valueOf(a)); bo.setSave(String.valueOf(b)); JOptionPane.showMessageDialog(null,"刪除成功!"); break; } i++; } FileOutputStreamfo=newFileOutputStream(file); ObjectOutputStreamout=newObjectOutputStream(fo); out.writeObject(bookslist1); fo.close(); out.close(); }catch(Exceptionee){} }4.4圖書的借閱學(xué)生輸入所需借閱圖書的編號,書名和借閱日期,如果此書的現(xiàn)存量大于零,則將其現(xiàn)存量減一,讀者借書成功.并且在讀者信息中記錄讀者借閱了此圖書,將借閱信息寫入文本文件.主要的數(shù)據(jù)結(jié)構(gòu)是鏈表,從鏈表的頭依次遍歷,直到找到所需的圖書編號或者到鏈表尾部.這樣遍歷的時間效率比較低,對于大量的圖書需要遍歷的話,此算法的時間效率低核心代碼:publicvoidactionPerformed(ActionEvente){ try{ FileInputStreamfi=newFileInputStream(file); ObjectInputStreamoi=newObjectInputStream(fi); bookslist1=(LinkedList<Books>)oi.readObject(); fi.close(); oi.close(); Booksbooks=newBooks(); books.setNo(rno.getText()); while(i<bookslist1.size()) { Booksbo=(Books)bookslist1.get(i); if(books.getNo().equals(bo.getNo())&&Integer.parseInt(bo.getSave())>0) { inta; 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,"此書全部借出!"); System.exit(0); } i++; } if(i==bookslist1.size()) { JOptionPane.showMessageDialog(null,"此書圖書館無庫存!"); System.exit(0); } FileOutputStreamfo=newFileOutputStream(file); ObjectOutputStreamout=newObjectOutputStream(fo); out.writeObject(bookslist1); out.close(); if(file1.exists()) { try{ FileInputStreamfi1=newFileInputStream(file1); ObjectInputStreamoi1=newObjectInputStream(fi1); readerlist1=(LinkedList<Reader>)oi1.readObject(); fi1.close(); oi1.close(); Readerreaders=newReader(); Strings1=rno.getText(); Strings2=rname.getText(); Strings3=borrowdate.getText(); readers.setRno(s1); readers.setRname(s2); readers.setBorrowdate(s3); readerlist1.add(readers); FileOutputStreamfo1=newFileOutputStream(file1); ObjectOutputStreamout1=newObjectOutputStream(fo1); out1.writeObject(readerlist1); out1.close(); }catch(Exceptionee){} } else{ try{ file1.createNewFile(); Readerreaders=newReader(); Strings1=rno.getText(); Strings2=rname.getText(); Strings3=borrowdate.getText(); readers.setRno(s1); readers.setRname(s2); readers.setBorrowdate(s3); readerlist1.add(readers); FileOutputStreamfo1=newFileOutputStream(file1); ObjectOutputStreamout1=newObjectOutputStream(fo1); out1.writeObject(readerlist1); out1.close(); } catch(Exceptione1){} } }catch(Exceptionee){}}4.5圖書的歸還學(xué)生輸入需要歸還圖書的編號,如果歸還成功則將讀者的借書日期置為0-0-0.主要的數(shù)據(jù)結(jié)構(gòu)是鏈表,從鏈表的頭依次遍歷,直到找到所需的歸還圖書的編號或者到鏈表尾部.這樣遍歷的時間效率比較低,對于大量的圖書需要遍歷的話,此算法的時間效率低核心代碼:publicvoidactionPerformed(ActionEvente){ try{ FileInputStreamfi=newFileInputStream(file);ObjectInputStreamoi=newObjectInputStream(fi);bookslist1=(LinkedList<Books>)oi.readObject();fi.close();oi.close();Booksbooks=newBooks(); books.setNo(rno.getText()); while(i<bookslist1.size()) { Booksbo=(Books)bookslist1.get(i); if(books.getNo().equals(bo.getNo())) { inta; a=Integer.parseInt(bo.getSave())+1; bo.setSave(String.valueOf(a)); JOptionPane.showMessageDialog(null,"歸還成功!"); } i++; } FileOutputStreamfo=newFileOutputStream(file); ObjectOutputStreamout=newObjectOutputStream(fo); out.writeObject(bookslist1); out.close(); FileInputStreamfi1=newFileInputStream(file1); ObjectInputStreamoi1=newObjectInputStream(fi1); readerlist1=(LinkedList<Reader>)oi1.readObject(); fi1.close(); oi1.close(); Readerreaders=newReader(); readers.setRno(rno.getText()); while(j<readerlist1.size()) { Readerbo1=(Reader)readerlist1.get(j); if(readers.getRno().equals(bo1.getRno())) { bo1.setBorrowdate("0-0-0"); } j++; } FileOutputStreamfo1=newFileOutputStream(file1); ObjectOutputStreamout1=newObjectOutputStream(fo1); out1.writeObject(readerlist1); out1.close(); } catch(Exceptionee){} }4.6借閱顯示顯示出所有學(xué)生借閱的書籍,并能得知這些書籍時候歸還.核心代碼:publicvoidactionPerformed(ActionEvente){if(e.getSource()==顯示){try{FileInputStreamfi=newFileInputStream(file);ObjectInputStreamoi=newObjectInputStream(fi);LinkedList<Reader>readerList=(LinkedList<Reader>)oi.readObject();fi.close();oi.close();intlength=readerList.size();表格單元=newObject[length][3];table=newJTable(表格單元,列名);pCenter.removeAll();pCenter.add("顯示",newJScrollPane(table));pCenter.validate();Iterator<Reader>iter=readerList.iterator();inti=0;while(iter.hasNext()){Readerread=iter.next();表格單元[i][0]=read.getRno();表格單元[i][1]=read.getRname();表格單元[i][2]=read.getBorrowdate();i++;}table.repaint();}catch(Exceptionee){}}4.7軟件使用說明結(jié)

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論