




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
題目:圖書館管理系統總體設計與部分代碼設計專業:學號:姓名:成績:指導教師:目錄TOC\o"1-3"\h\u8728一.總體設計3158411.設計過程3136442、設計原理3264731、工具word繪圖+代碼流程圖分析工具424043Bookadd.java54613Bookdelete.java613376Bookquery.java716807BookUpdata.java928187Borrow,java106130Login.java1217731ReaderAdd.java1321375Readerdelete.java1425137Readerquery.java1522042ReaderUpdata.java1630159ShowMian.java1721009UpdataPassword.java1716921Book.java1832459Bookselect.java194297GlobalVar.java1930526IfBorrowBack.java1920610DbOp.java2014595Reader.java215126ReaderSelect.java2112567二.部分代碼2219590a.書籍歸還//Back.java2227525三.感想體會28一.總體設計1.設計過程a、系統應該如何實現?將劃分出組成系統的物理元素,例如程序、文件、數據庫等。數據庫有圖書,讀者,用戶信息。程序有用戶登錄程序,修改密碼程序;讀者查詢程序;圖書添加,刪除,修改,查詢;讀者信息添加,刪除,修改,借書,還書。b、設計軟件的總體結構,即確定系統中的每個程序是有哪些模塊組成的,每個模塊的功能以與模塊和模塊之間的借口、調用關系等。但所以這些都不要求涉與模塊部過程的細節。用戶登錄模塊由修改密碼模塊,登錄界面模塊組成,可調用讀者模塊,圖書模塊進行查詢。圖書模塊由查詢,添加,刪除,修改組成,可調用讀者模塊進行查詢是否可借書,是否還書。讀者模塊由讀者信息添加,刪除,修改,借書,還書組成,可調用圖書模塊。2、設計原理基于Java語言、Access數據庫的開發軟件。Java是一種編程語言,擁有跨平臺、面向對象、泛型編程的特性。Java編程語言的風格十分接近C++語言。繼承了C++語言面向對象技術的核心,java舍棄了C++語言中容易引起錯誤的指針,改以引用取代,同時移除原C++與原理運算符重載,也移除多重繼承特性,改用接口取代,增加垃圾回收器功能。在JavaSE1.5版本中引入了泛型編程、類型安全的枚舉、不定長參數和自動裝/拆箱特性。所以Java編程語言是個簡單、面向對象、分布式、解釋性、健壯、安全與系統無關、可移植、高性能、多線程和動態的語言MicrosoftOfficeAccess(前名MicrosoftAccess)是微軟發布的關系數據庫管理系統。通過使用AccessBasic可以增加應用程序的執行速度,減少編碼量,同時也減少在為MicrosoftWindows應用程序接口編程時、在開發應用程序中遇到的問題的技術。謹慎地使用變量和它所占用的存儲空間能有效地減少一個應用程序所消耗的資源,同時也全面提高了它的性能。因java可跨平臺的特性,access的簡單易用,本系統使用java,access進行開發圖書管理,將上述所有模塊進行實現。以下數據流程圖劃分模塊的功能。工具word繪圖+代碼流程圖分析工具Back.java創建日期變量,其內容為當前日期,使還書按鈕有效,填寫還書記錄如果圖書編號或讀者編號兩者均為空,或者有一個為空,則返回按編號查詢圖書,結果存入book對象中按編號查詢讀者,結果存入reader對象中查詢指定讀者是否借閱過指定圖書,且未歸還如果查詢到結果,將其顯示在各文本框中如果查詢到結果,將其顯示在各文本框中創建日期變量,其內容為當前日期,使還書按鈕有效,填寫還書記錄如果圖書編號或讀者編號兩者均為空,或者有一個為空,則返回按編號查詢圖書,結果存入book對象中按編號查詢讀者,結果存入reader對象中查詢指定讀者是否借閱過指定圖書,且未歸還如果查詢到結果,將其顯示在各文本框中如果查詢到結果,將其顯示在各文本框中Bookadd.java異常出版時間格式錯誤異常庫存數量和價格錯誤,應為數字清空全部文本框異常無法正常讀取數據庫判斷Book表中是否存在指定編號的圖書,如果存在,返回true,否則,返回false圖書添加成功清空全部文本框檢查日期是否有效。如果日期無效,則會產生ParseException異常將記錄保存到book表中如果圖書編號重復,則記錄無效,需修改圖書編號如果圖書編號為空,則終止保存記錄操作異常出版時間格式錯誤異常庫存數量和價格錯誤,應為數字清空全部文本框異常無法正常讀取數據庫判斷Book表中是否存在指定編號的圖書,如果存在,返回true,否則,返回false圖書添加成功清空全部文本框檢查日期是否有效。如果日期無效,則會產生ParseException異常將記錄保存到book表中如果圖書編號重復,則記錄無效,需修改圖書編號如果圖書編號為空,則終止保存記錄操作Bookdelete.java圖書編號有誤,查無此書清空全部文本框如果查詢到結果,將其顯示在各文本框中按編號查詢圖書,結果存入book對象中如果圖書編號為空,則查詢操作終止圖書編號不能為空提示圖書信息刪除成功圖書信息刪除失敗如果圖書編號為空,則刪除操作終止圖書編號有誤,查無此書清空全部文本框如果查詢到結果,將其顯示在各文本框中按編號查詢圖書,結果存入book對象中如果圖書編號為空,則查詢操作終止圖書編號不能為空提示圖書信息刪除成功圖書信息刪除失敗如果圖書編號為空,則刪除操作終止Bookquery.java如果不空,生成sql3字句如果書名和作者有一項不為空如果出版日期不空,生成sql4字句如果書名、作者或有一項不為空如果作者不空,生成sql2字句如果書名不為空創建一條基本的SQL語句,表示選出表中全部記錄如果書名不空,生成sql1字句如果不空,生成sql3字句如果書名和作者有一項不為空如果出版日期不空,生成sql4字句如果書名、作者或有一項不為空如果作者不空,生成sql2字句如果書名不為空創建一條基本的SQL語句,表示選出表中全部記錄如果書名不空,生成sql1字句創建一個表格出版時間格式錯誤數據庫不存在,或存在錯誤將查詢結果賦予Book數組執行查詢如果已設置任意一項條件,則修改SQL語句創建一個表格出版時間格式錯誤數據庫不存在,或存在錯誤將查詢結果賦予Book數組執行查詢如果已設置任意一項條件,則修改SQL語句為了便于調試程序,特別創建main方法為了便于調試程序,特別創建main方法BookUpdata.java清空全部文本框出版時間格式錯誤價格或庫存數量錯誤,應為數字數據有誤,圖書信息修改失敗圖書信息修改成功清空全部文本框程序用于檢查日期是否有效如果查詢到結果,將其顯示在各文本框中保存修改的記錄如果圖書編號為空,則終止保存記錄操作圖書編號有誤,查無此書按編號查詢圖書,結果存入book對象中如果圖書編號為空,則查詢操作終止清空全部文本框出版時間格式錯誤價格或庫存數量錯誤,應為數字數據有誤,圖書信息修改失敗圖書信息修改成功清空全部文本框程序用于檢查日期是否有效如果查詢到結果,將其顯示在各文本框中保存修改的記錄如果圖書編號為空,則終止保存記錄操作圖書編號有誤,查無此書按編號查詢圖書,結果存入book對象中如果圖書編號為空,則查詢操作終止Borrow,java統計讀者所借圖書數量查詢指定讀者是否已借過指定圖書且未歸還讀者編號有誤,查無此人按編號查詢讀者,結果存入reader對象中如果查詢到結果,將其顯示在各文本框中圖書已無庫存,無法借閱重新初始化各參數并禁止借出按鈕圖書編號有誤,查無此書按編號查詢圖書,結果存入book對象中如果查詢到結果,將其顯示在各文本框中圖書和讀者查詢如果圖書編號或讀者編號兩者均為空,或者有一個為空,則返回統計讀者所借圖書數量查詢指定讀者是否已借過指定圖書且未歸還讀者編號有誤,查無此人按編號查詢讀者,結果存入reader對象中如果查詢到結果,將其顯示在各文本框中圖書已無庫存,無法借閱重新初始化各參數并禁止借出按鈕圖書編號有誤,查無此書按編號查詢圖書,結果存入book對象中如果查詢到結果,將其顯示在各文本框中圖書和讀者查詢如果圖書編號或讀者編號兩者均為空,或者有一個為空,則返回初始化各參數項并禁止借出按鈕增加main()方法,主要為了調試程序界面數據庫統計失敗填寫借出圖書記錄統計某個讀者當前已借圖書且未歸還的數量該讀者借書過多,無法繼續借閱如果讀者已借圖書尚未超出其允許最大借書量,則允許其繼續借閱所選圖書初始化各參數項并禁止借出按鈕增加main()方法,主要為了調試程序界面數據庫統計失敗填寫借出圖書記錄統計某個讀者當前已借圖書且未歸還的數量該讀者借書過多,無法繼續借閱如果讀者已借圖書尚未超出其允許最大借書量,則允許其繼續借閱所選圖書Login.java記錄登錄的用戶名調用主程序只有管理員才能使用"基礎管理"和"借閱管理"菜單釋放登錄窗體如果此用戶存在,則記錄其狀態(否:不是管理員,是:是管理員)核對用戶名和密碼如果用戶名或密碼任一為空,則終止后續操作記錄登錄的用戶名調用主程序只有管理員才能使用"基礎管理"和"借閱管理"菜單釋放登錄窗體如果此用戶存在,則記錄其狀態(否:不是管理員,是:是管理員)核對用戶名和密碼如果用戶名或密碼任一為空,則終止后續操作異常異常用戶數據庫有誤ReaderAdd.java判斷Reader表中是否存在指定編號的讀者,如果存在,返回true,否則,返回false異常;最大可借天數錯誤,應為整數讀者添加成功;清空全部文本框讀者編號重復如果讀者編號重復,則記錄無效,需修改讀者編號如果讀者編號為空,則終止保存記錄操作判斷Reader表中是否存在指定編號的讀者,如果存在,返回true,否則,返回false異常;最大可借天數錯誤,應為整數讀者添加成功;清空全部文本框讀者編號重復如果讀者編號重復,則記錄無效,需修改讀者編號如果讀者編號為空,則終止保存記錄操作清空全部文本框清空全部文本框Readerdelete.java清空全部文本框異常讀者編號有誤,查無此人按編號查詢讀者,結果存入reader對象中如果查詢到結果,將其顯示在各文本框中讀者編號不能為空異常讀者編號有誤,查無此人讀者信息刪除成功清空全部文本框如果讀者編號為空,則終止刪除操作清空全部文本框異常讀者編號有誤,查無此人按編號查詢讀者,結果存入reader對象中如果查詢到結果,將其顯示在各文本框中讀者編號不能為空異常讀者編號有誤,查無此人讀者信息刪除成功清空全部文本框如果讀者編號為空,則終止刪除操作Readerquery.java如果已設置任意一項條件,則修改SQL語句執行查詢將查詢結果賦予Book數組創建一個表格異常:數據庫不存在,或存在錯誤如果作者不空,生成sql2字句如果讀者XX不空,生成sql1字句創建一條基本的SQL語句,表示選出表中全部記錄如果已設置任意一項條件,則修改SQL語句執行查詢將查詢結果賦予Book數組創建一個表格異常:數據庫不存在,或存在錯誤如果作者不空,生成sql2字句如果讀者XX不空,生成sql1字句創建一條基本的SQL語句,表示選出表中全部記錄ReaderUpdata.java清空全部文本框如果讀者編號為空,則終止保存記錄操作修改讀者信息最大可借數或最大可借如果讀者編號為空,則終止查詢操作按編號查詢讀者,結果存入reader對象中如果查詢到結果,將其顯示在各文本框中清空全部文本框如果讀者編號為空,則終止保存記錄操作修改讀者信息最大可借數或最大可借如果讀者編號為空,則終止查詢操作按編號查詢讀者,結果存入reader對象中如果查詢到結果,將其顯示在各文本框中ShowMian.java如果不是管理員,則禁止用戶維護圖書信息和讀者信息以與禁止進行借閱管理,即只能查詢如果不是管理員,則禁止用戶維護圖書信息和讀者信息以與禁止進行借閱管理,即只能查詢UpdataPassword.java修改密碼如果兩個密碼輸入框中輸入的內容不一致,則顯示錯誤提示信息并返回如果兩個密碼輸入框中有一個為空,則顯示錯誤提示信息并返回修改密碼如果兩個密碼輸入框中輸入的內容不一致,則顯示錯誤提示信息并返回如果兩個密碼輸入框中有一個為空,則顯示錯誤提示信息并返回Book.java獲得書的ID號獲得書的書名獲得書的類型獲得書的作者獲得書的翻譯者獲得書的獲得書的發行日期獲得書的股價獲得書的價格并全部返回獲得書的ID號獲得書的書名獲得書的類型獲得書的作者獲得書的翻譯者獲得書的獲得書的發行日期獲得書的股價獲得書的價格并全部返回Bookselect.java異常無法正常讀取數據庫按圖書編號查詢,查詢結果保存在Book類的對象中異常無法正常讀取數據庫按圖書編號查詢,查詢結果保存在Book類的對象中GlobalVar.java保存登錄用戶名保存登錄用戶名IfBorrowBack.java查指定讀者是否借過指定圖書且未歸還查指定讀者是否借過指定圖書且未歸還DbOp.java關閉數據庫執行數據庫更新操作。如果有問題,則返回-1執行數據庫查詢工作。如果出現異常,返回null構造方法。如果數據庫未打開,則通過創建連接打開數據庫關閉數據庫執行數據庫更新操作。如果有問題,則返回-1執行數據庫查詢工作。如果出現異常,返回null構造方法。如果數據庫未打開,則通過創建連接打開數據庫Reader.java獲得讀者的ID號獲得讀者的名字獲得讀者的類型獲得讀者的性別獲得讀者最大借書數獲得讀者的還書日期獲得讀者的ID號獲得讀者的名字獲得讀者的類型獲得讀者的性別獲得讀者最大借書數獲得讀者的還書日期并全部返回ReaderSelect.java按讀者編號查詢,結果保存在Reader類的對象中按讀者編號查詢,結果保存在Reader類的對象中部分代碼a.書籍歸還//Back.javapackageMainPro;importjava.awt.*;importjava.awt.event.*;importjava.text.SimpleDateFormat;importjava.util.Date;importjavax.swing.JOptionPane;importPublicModule.*;publicclassBackextendsFrame{privatestaticfinallongserialVersionUID=-79L;StringSepLine="";Labellbbookid=newLabel("圖書編號");Labellbreaderid=newLabel("讀者編號");TextFieldtf_bookid=newTextField();TextFieldtf_readerid=newTextField();ButtonqueryBtn=newButton("查詢");Labellbbookinfo=newLabel(SepLine+"圖書信息"+SepLine);Labellbbookname=newLabel("圖書名稱:");Labeltf_bookname=newLabel("xx");Labellbauthor=newLabel("");Labeltf_author=newLabel("xx");Labellbpublisher=newLabel(":");Labeltf_publisher=newLabel("xx");Labellbpublish_time=newLabel("出版時間:");Labeltf_publish_time=newLabel("xx");Labellbprice=newLabel("定價:");Labeltf_price=newLabel("xx");Labellbstock=newLabel("庫存數量:");Labeltf_stock=newLabel("xx");Labellbreaderinfo=newLabel(SepLine+"讀者信息"+SepLine);Labellbreadername=newLabel("讀者:");Labeltf_readername=newLabel("xx");Labellbreadertype=newLabel("讀者類型:");Labeltf_readertype=newLabel("xx");Labellbmax_num=newLabel("最大可借數:");Labeltf_max_num=newLabel("xx");Labellbdays_num=newLabel("最大可借天數:");Labeltf_days_num=newLabel("xx");Labellbbackinfo=newLabel(SepLine+"還書信息"+SepLine);Labellbback_date=newLabel("還書日期:");Labeltf_back_date=newLabel("xx");ButtonbackBtn=newButton("還書");ButtoncloseBtn=newButton("關閉");publicBack(){ setLayout(null); setTitle("還回圖書"); setSize(500,310);this.setForeground(Color.BLACK);//設置前景色為黑色 lbbookid.setBounds(30,40,50,20);//圖書編號 tf_bookid.setBounds(90,40,90,20); lbreaderid.setBounds(200,40,50,20);//讀者編號 tf_readerid.setBounds(260,40,90,20); queryBtn.setBounds(370,40,80,20);//查詢按鈕 lbbookinfo.setBounds(30,70,440,20);//圖書信息提示條 lbbookname.setBounds(30,90,60,20);//圖書名稱 tf_bookname.setBounds(90,90,200,20); lbauthor.setBounds(310,90,60,20);//作者 tf_author.setBounds(370,90,90,20); lbpublisher.setBounds(30,110,60,20);// tf_publisher.setBounds(90,110,200,20); lbpublish_time.setBounds(310,110,60,20);//出版時間 tf_publish_time.setBounds(370,110,90,20); lbprice.setBounds(30,130,60,20);//定價 tf_price.setBounds(90,130,200,20); lbstock.setBounds(310,130,60,20);//庫存數量 tf_stock.setBounds(370,130,90,20); lbreaderinfo.setBounds(30,150,440,20);//讀者信息提示條 lbreadername.setBounds(30,170,60,20);//讀者 tf_readername.setBounds(90,170,90,20); lbreadertype.setBounds(310,170,60,20);//讀者類型 tf_readertype.setBounds(370,170,90,20); lbmax_num.setBounds(30,190,75,20);//最大可借數 tf_max_num.setBounds(105,190,90,20); lbdays_num.setBounds(310,190,85,20);//最大可借天數 tf_days_num.setBounds(395,190,70,20); lbbackinfo.setBounds(30,210,440,20);//還書信息提示條 lbback_date.setBounds(30,230,60,20);//還書日期 tf_back_date.setBounds(90,230,100,20); backBtn.setBounds(160,260,80,25);//還書按鈕 backBtn.setEnabled(false);//開始時禁用還書按鈕 closeBtn.setBounds(260,260,80,25);//關閉按鈕 queryBtn.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){ btn_querywActionPerformed(e); } }); backBtn.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){ btn_backActionPerformed(e); } }); closeBtn.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){ setForeground(Color.BLACK);//設置前景色為黑色 dispose();//關閉窗體 } });/*關閉窗口*/this.addWindowListener(newWindowAdapter(){//重寫windowClosing()方法publicvoidwindowClosing(WindowEvente){ setForeground(Color.BLACK);//設置前景色為黑色 dispose();//關閉窗體 } }); add(lbbookid); add(lbreaderid); add(queryBtn); add(lbbookinfo); add(lbbookname); add(lbauthor); add(lbpublisher); add(lbpublish_time); add(lbprice); add(lbstock); add(lbreaderinfo); add(lbreadername); add(lbreadertype); add(lbmax_num); add(lbdays_num); add(lbbackinfo); add(lbback_date); add(backBtn); add(closeBtn); setLocationRelativeTo(null);//使窗體在屏幕上居中放置 setVisible(true);//使窗體可見 setForeground(Color.RED);//設置前景色為紅色 add(tf_bookid); add(tf_readerid); add(tf_bookname); add(tf_author); add(tf_publisher); add(tf_publish_time); add(tf_price); add(tf_stock); add(tf_readername); add(tf_readertype); add(tf_max_num); add(tf_days_num); add(tf_back_date); }//圖書和讀者查詢privatevoidbtn_querywActionPerformed(ActionEvente){Stringbookid=tf_bookid.getText();Stringreaderid=tf_readerid.getText();//如果圖書編號或讀者編號兩者均為空,或者有一個為空,則返回if(bookid.equals("")||readerid.equals("")){ JOptionPane.showMessageDialog(null,"圖書編號和讀者編號均不能為空!"); init();//重新初始化各參數并禁止還書按鈕return; }//按編號查詢圖書,結果存入book對象中 Bookbook=BookSelect.SelectBookById(bookid);//如果查詢到結果,將其顯示在各文本框中if(book!=null){ tf_bookname.setText(book.getBookname()); tf_author.setText(book.getAuthor()); tf_publisher.setText(book.getPublisher()); tf_publish_time.setText(book.getPublish_time().toString()); tf_price.setText(String.valueOf((book.getPrice()))); tf_stock.setText(String.valueOf(book.getStock())); }else{ JOptionPane.showMessageDialog(null,"圖書編號有誤,查無此書!"); init();//重新初始化各參數并禁止還書按鈕return; }//按編號查詢讀者,結果存入reader對象中 Readerreader=ReaderSelect.selectReaderById(readerid);//如果查詢到結果,將其顯示在各文本框中if(reader!=null){ tf_readername.setText(reader.getReadername()); tf_readertype.setText(reader.getReadertype()); tf_max_num.setText(String.valueOf(reader.getMax_num())); tf_days_num.setText(String.valueOf(reader.getDays_num())); }else{ JOptionPane.showMessageDialog(null,"讀者編號有誤,查無此人!"); init();//重新初始化各參數并禁止還書按鈕return; }//查詢指定讀者是否借閱過指定圖書,且未歸還if(!IfBorrowBack.findbook(bookid,readerid)){ JOptionPane.showMessageDialog(null,"該讀者沒有借過此種圖書!"); init();//重新初始化各參數并禁止還書按鈕return; }SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");//創建日期變量,其容為當前日期Datecurrentdate=newDate();//將日期按指定格式輸出Stringborrowdate=sdf.format(currentdate); tf_back_date.setText(borrowdate); backBtn.setEnabled(true);//使還書按鈕有效 }//填寫還書記錄priva
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合川區初中“七校聯盟”2025年春期半期質量檢測七年級 英語試題
- 投資基金合同履約金的管理
- 《Python程序設計基礎》課件 第7、8章 面向對象編程;文件與異常
- 《Python程序設計基礎》課件 第5-8章 函數與模塊-文件與異常
- 鐵路工程安全技術石家莊鐵路35課件
- 《GB 18399-2001棉花加工機械安全要求》(2025版)深度解析
- ARM Cortex-M3嵌入式開發及應用教與學 課件 第12、13章 信號量與互斥信號量;消息郵箱與消息隊列
- 大學生職業規劃大賽《英語專業》生涯發展展示
- 簡單版度個人耕地承包協議
- 農產品購銷合作協議
- 中考語文名著導讀紅巖復習資料
- 小學生天文知識競賽復習題庫及答案
- 土方填筑碾壓試驗方案(完整版)
- 往日時光(原版)鋼琴雙手簡譜_鋼琴譜_鋼琴簡譜
- RCS-985說明書V300
- Mayo肘關節功能評分
- 2014—2015—2《刑法總論》教學大綱(修正版)
- 《焦慮癥基礎知識》PPT課件.ppt
- 基于鉆石模型的南通紡織產業競爭力分析
- 華銳SL1500風機發電機及水冷系統故障及解決對策
- 發電廠電氣一次部分設計—2×300+2×200MW
評論
0/150
提交評論