圖書管理系統(tǒng)的設計與開發(fā)_第1頁
圖書管理系統(tǒng)的設計與開發(fā)_第2頁
圖書管理系統(tǒng)的設計與開發(fā)_第3頁
圖書管理系統(tǒng)的設計與開發(fā)_第4頁
圖書管理系統(tǒng)的設計與開發(fā)_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

學生實驗報告書實驗課程名稱電子商務應用技術開發(fā)開課學院經濟學院指導教師姓名傅魁學生姓名梁少晴 0121415710101姜雨竹 0121415710229阮筱鈺 0121415710230學生專業(yè)班級電商1401 電商1402目錄 一、系統(tǒng)概述(3)二、系統(tǒng)需求分析(3)三、系統(tǒng)總體設計(6)四、詳細設計(9)五、頁面設計及編碼實現(15)六、測試分析報告(50)七、結束語(56)圖書館管理系統(tǒng)一、 系統(tǒng)概述1.1 系統(tǒng)開發(fā)背景和意義 圖書管理是每個高校必須切實面對的工作,但如今許多高校的圖書館管理系統(tǒng)還停留在以CS為結構的系統(tǒng)上。隨著internet的應用日趨廣泛,以及高校內、高校與高校間信息的交流日趨密切,以CS為結構的信息管理系統(tǒng)以不能滿足需求,所以,高校圖書館管理系統(tǒng)必須通過更新換代,將BS為結構的系統(tǒng)改為以CS為結構的系統(tǒng),這樣會大大提高系統(tǒng)的維護性以及系統(tǒng)應用的廣泛性。由于圖書這用特殊的物品,其表現在數據量非常龐大,所以對數據庫的要求比較嚴格,由于oracle數據庫其檢索迅速、查找方便、可靠性高、保密性好,所以,選擇oracle數據庫為其存取數據。 隨著java技術在internet上的廣泛應用以及java安全性高、執(zhí)行效率高的優(yōu)點,同時,java可以在任意平臺上應用,所以可以任意組合硬件和操作系統(tǒng),既可以在windows下開發(fā),部署在linux下,極大了節(jié)省了操作系統(tǒng)的費用以及硬件的費用。 1.2 開發(fā)環(huán)境硬件環(huán)境: 服務器端/客戶端: 處理器:Inter Pentium3以上 內存:512M以上推薦1G或更高 硬盤空間:80G以上軟件環(huán)境: 服務器端/客戶端: 操作系統(tǒng):Windows XP/Linux 瀏覽器:Internet Explore7.0以上 開發(fā)工具:MyEclipse+Tomcat7.0+MySQL 在MyEclipse集成環(huán)境下進行圖書管理員系統(tǒng)的界面設計和程序開發(fā),在系統(tǒng)的后臺采用MySQL作為數據庫支持,使用時打開瀏覽器。在地址欄中輸入網址回車后即可進入圖書管理員系統(tǒng)的主頁,進行相應的操作。二、 系統(tǒng)需求分析2.1 任務概述1新書購進后,進行分類、同一編碼和入庫。2學生借閱圖書后,記錄相關信息。3. 學生歸還時,對比查看該書是否超期,超期后,按規(guī)定罰款。根據以上調查分析,給出業(yè)務流程圖,如圖:2.2 數據描述(數據流圖+數據字典) 經過調查,我們了解了基本的業(yè)務程序,接下來給出系統(tǒng)的邏輯模型。構造系統(tǒng)的邏輯模型的工具主要是數據流圖和數據字典,下面給出圖書館管理系統(tǒng)的基本模型,如圖: 根據基本模型,對其逐步細化,得到數據流圖,如圖:根據系統(tǒng)流程圖,通過數據字典對數據進一步描述:圖書:圖書表結構描述:記錄圖書的相關信息定義:圖書信息表 圖書編號、圖書名稱、ISBN號、作者、出版社、類型、價格、庫存量、副本存量、總量位置:LibWeb表空間借書登記:借書登記表結構描述:記錄圖書的借閱信息定義:借閱登記表 借閱編號、學生編號、圖書編號、借閱時間、歸還時間、是否歸還位置:LibWeb表空間學生信息:學生信息表結構描述:記錄學生信息定義:學生信息表 學生學號、學生姓名、性別、入校時間、畢業(yè)時間位置:LibWeb表空間歸還登記:歸還登記表結構描述:記錄所有已歸還圖書的借閱情況定義:歸還信息表 編號、圖書名稱、歸還時間、歸還學生編號、歸還學生姓名位置:LibWeb數據空間用戶信息:用戶表結構描述:記錄所有用戶定義:用戶信息表 賬號、真實姓名、密碼、描述位置:LibWeb數據空間角色信息:角色表結構描述:記錄所有角色定義:角色信息表 角色名稱、角色描述位置:LibWeb數據空間2.3 功能需求 經過以上詳細的調查和分析,在數據流程和數據分析的基礎上,確定達到的功能為一下幾點: 新書入庫登記:對與需求入庫的書籍,進行數據登記,確認后書籍入庫。 圖書信息的查詢和修改功能:當圖書資料發(fā)生變化、當圖書丟失,應立即修改信息。 圖書借閱和歸還登記:學生借閱圖書時需要登記,學生歸還圖書時也需要登記。 學生的增加、修改、刪除等:新生入學時的信息和直接導入。 用戶的增加、修改、刪除等:用戶可根據權限來操作。 2.4 性能需求為了保證系統(tǒng)能夠長期、高效、安全、穩(wěn)定、可靠的運行,圖書館管理系統(tǒng)應滿足一下性能需求:1.系統(tǒng)處理數據的準確性和及時性:系統(tǒng)處理的準確性和及時性是系統(tǒng)的必要性能。在系統(tǒng)設計階段,就應該充分考慮到,包括數據存儲量、訪問量等,是系統(tǒng)能夠滿足圖書管管理系統(tǒng)對數據的處理量。 2.系統(tǒng)的開放性和系統(tǒng)的可擴充性:可擴充性是系統(tǒng)健壯性的重要體現,系統(tǒng)開發(fā)中應充分考慮到系統(tǒng)的可擴充性??蓴U充性包括系統(tǒng)設計和測試階段的擴充以及系統(tǒng)使用后的擴充。任何系統(tǒng)在開發(fā)階段對需求都是完全明確的,即使系統(tǒng)交付使用后,用戶也會提出增加功能,所以,在系統(tǒng)設計階段就應該考慮到系統(tǒng)的可擴充性。3. 系統(tǒng)的易用性和易維護性:圖書館管理系統(tǒng)由圖書館管理員和學生使用,而使用者對系統(tǒng)結構并不了解,這就要求系統(tǒng)提供良好的用戶接口和友好的界面設計。要實現這一點,要求操作簡潔明了,數據校驗通俗易懂。4. 系統(tǒng)的響應速度:圖書管管理系統(tǒng)的響應速度要求比較高,這就需要從一下幾個方面入手解決:校園網的帶寬、數據庫的快速穩(wěn)定、SQL語句執(zhí)行的高效率、瀏覽器的選擇。無論是哪方面,都會影響系統(tǒng)的響應速度,所以,圖書館管理系統(tǒng)能夠擁有快速的響應速度,必須做好其中的沒一點。三、 系統(tǒng)總體設計系統(tǒng)架構設計:本系統(tǒng)的整體架構如圖所示,從邏輯上來看主要分為三層:模型層、控制層、視圖層。1.1 業(yè)務流程根據需求分析,以及反復的研究和探討,確認其流程圖如下:根據流程圖,現具體功能描述如下:1.用戶登錄:系統(tǒng)對用戶的合法性進行校驗,登錄后,系統(tǒng)會根據用戶所擁有的權限來分配權限。2.書籍入庫:填寫書籍信息,可通過excel批量導入到數據庫中。3.圖書借閱:對已經入庫的數據,學生可借閱。4.圖書歸還:對已經歸還的書籍進行登記。5.管理措施:對定義系統(tǒng)規(guī)定的超期時間、超期處罰辦法、丟失賠償辦法。3.2 系統(tǒng)功能模塊圖依據需求分析階段得到的數據流圖,在保證系統(tǒng)基本功能的前提下,結合系統(tǒng)設計流程,給出系統(tǒng)功能模塊圖,如圖:3.3 系統(tǒng)的流程圖 四、詳細設計4.1 程序流程圖該設計階段的任務是根據需求具體實現所需要的程序。經過這個階段的設計,應該得出目標系統(tǒng)的精確描述,從而在系統(tǒng)實現階段可以把這個描述直接翻譯某種程序設計語言書寫的程序??傮w來說就是把各個模塊的細節(jié)加以描述。由于本系統(tǒng)采用的是j2ee來設計程序,java是面向對象的變成語言,所以給出系統(tǒng)的主程序流程圖,如圖:4.2 程序輸入輸出描述4.2.1 用戶角色模塊 1.輸入項目:用戶相關信息、角色相關信息 2.輸出項目:相應的頁面4.2.2 學生管理模塊 1.輸入項目:用戶相關信息、角色相關信息 2.輸出項目:相應的頁面4.2.3 圖書管理模塊 1.輸入項目:圖書相關信息 2.輸出項目:圖書信息4.2.4 借閱管理模塊 1.輸入項目:學生學號、圖書編號 2.輸出項目:借閱信息頁面4.2.5 歸還管理模塊 1.輸入項目:學生學號、圖書編號 2.輸出項目:歸還信息頁面4.3 程序接口描述4.3.1 外部接口 由于該系統(tǒng)可以部署在任何操作系統(tǒng),且系統(tǒng)界面采用瀏覽器方式實現,所以該系統(tǒng)是跨平臺、跨操作系統(tǒng)的。4.3.2 內部接口通過面向對象程序設計模式實現低耦合高內聚的程序設計思想,通過與數據庫之間的數據交換,實現對數據的處理和保存。4.4 數據庫的設計4.4.1 數據庫的邏輯設計 在需求階段已經完成該系統(tǒng)所有的數據分析。根據該階段建立的概念模型,已經得出滿足系統(tǒng)設計要求的幾個關系描述,該階段的主要工作就是把前一階段的成果轉化為具體的數據庫。下面給出概念結構設計的E-R圖,如圖所示: 圖(一) 圖(二) 圖(三)實體:圖書(圖書編號,書名,作者,出版社,定價,圖書類別,圖書ISBN號,圖書存量)學生(學生學號,學生姓名,性別,入校時間,畢業(yè)時間)用戶(用戶名,真實姓名,密碼,描述)角色(角色名,角色描述)序號字段名稱字段說明類型位數屬性備注1ididnumber19非空1bookId編號varchar50非空2name名稱Varchar100非空3ISBNISBNvarchar50可為空4author作者varchar100可為空5publisher出版商varchar100可為空6type類型number2可為空和數據字典相關7price價格number10可為空8storeQuan存量number10可為空9leftQuan副本存量number10可為空10totleQuan總量number10可為空11createTime創(chuàng)建時間date非空12operateTime修改時間date可為空13creator創(chuàng)建者number19非空14operate操作人number19可為空15status狀態(tài)varchar1非空N or Y16version版本number非空 圖書信息表序號字段名稱字段說明類型位數屬性備注1id編號number10非空2userId用戶編號number10非空3bookId圖書編號varcher50非空4broTime結束時間date可為空5retime還書時間date可為空6ifReturn是否歸還number1非空7createTime創(chuàng)建時間date非空8operateTime修改時間date可為空9creator創(chuàng)建者number19非空10operate操作人number19可為空11status狀態(tài)varchar1非空N or Y12version 圖書歸還登記表序號字段名稱字段說明類型位數屬性備注1ididnumber19非空2createTime創(chuàng)建時間date非空3operateTime修改時間date可為空4creator創(chuàng)建者number19非空5operate操作人number19可為空6status狀態(tài)varchar1非空N or Y7version版本number非空8name用戶名varchar60非空9relName真實姓名varchar60可為空11password密碼varchar64非空12description描述varchar1024可為空 用戶表序號字段名稱字段說明類型位數屬性備注1ididnumber19非空2createTime創(chuàng)建時間date非空3operateTime修改時間date可為空4creator創(chuàng)建者number19非空5operate操作人number19可為空6status狀態(tài)varchar1非空N or Y7version版本number非空8name角色名varchar32非空12descriptionvarchar1024非空 角色表序號字段名稱字段說明類型位數屬性備注1ididnumber19非空2createTime創(chuàng)建時間date非空3operateTime修改時間date可為空4creator創(chuàng)建者number19非空5operate操作人number19可為空6status狀態(tài)varchar1非空N or Y7version版本number非空8stuId學生編號varchar50非空12name學生姓名varchar100非空8sex性別number1非空12addTime入學時間date非空12endTime畢業(yè)時間date非空 學生表 圖書表 用戶表五、頁面設計及編碼實現UI頁面設計系統(tǒng)登錄用戶注冊注冊成功圖書管理員登錄主界面編輯書目信息編輯書目信息刪除操作圖書管理參數維護主界面圖書管理參數編輯刪除操作圖書借閱審批主界面圖書借閱審批界面審批完成界面圖書類型管理主界面圖書類型編輯刪除操作圖書條碼管理主界面圖書條碼編輯刪除操作菜單管理主界面(系統(tǒng)管理)菜單編輯界面刪除操作角色管理主界面(系統(tǒng)管理)角色編輯界面刪除操作用戶管理主界面(系統(tǒng)管理)用戶編輯界面刪除操作用戶登錄圖書借閱查詢 1.系統(tǒng)的登錄設計與實現 基于系統(tǒng)的和數據的安全性考慮,所有用戶進入系統(tǒng)之前必須經過登錄頁面進行合法性驗證,身份驗證成功之后才能進入系統(tǒng)為每個用戶提供唯一的賬號和初始密碼,用戶輸入自己的用戶名和密碼之后,點擊【完成】按鈕登錄系統(tǒng)。系統(tǒng)后臺會對用戶輸入的登錄信息進行認證,如果用戶名或者密碼不合法時,后臺會返回錯誤信息并在前端頁面上進行顯示,提示用戶“用戶名或密碼不正確,請重新輸入!”注冊用戶,若信息已存在,注冊失敗,返回登錄頁面注冊用戶成功,返回登錄頁面登錄后主頁面示例代碼如下所示:1)注冊代碼:package servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import bean.userBean;import dao.user;public class ZhuceServlet extends HttpServlet /* * Constructor of the object. */public ZhuceServlet() super();/* * Destruction of the servlet. */public void destroy() super.destroy(); / Just puts destroy string in log/ Put your code here/* * The doGet method of the servlet. * * This method is called when a form has its tag value method equals to get. * * param request the request send by the client to the server * param response the response send by the server to the client * throws ServletException if an error occurred * throws IOException if an error occurred */public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException /* * The doPost method of the servlet. * * This method is called when a form has its tag value method equals to post. * * param request the request send by the client to the server * param response the response send by the server to the client * throws ServletException if an error occurred * throws IOException if an error occurred */public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String name=request.getParameter(name);String pwd=request.getParameter(pwd);user test=new user();try userBean user=test.check(name);if(user=null)userBean user1=new userBean(name,pwd);test.register(user1);response.sendRedirect(ZhuceSuccess.jsp);elseresponse.sendRedirect(ZhuceError.jsp); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();/* * Initialization of the servlet. * * throws ServletException if an error occurs */public void init() throws ServletException / Put your code here2)登陸代碼:package servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.SQLException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import dao.library;import dao.user;import bean.libraryBean;import bean.userBean;public class LoginServlet extends HttpServlet /* * */private static final long serialVersionUID = 1L;/* * Constructor of the object. */public LoginServlet() super();/* * Destruction of the servlet. */public void destroy() super.destroy(); / Just puts destroy string in log/ Put your code here/* * The doGet method of the servlet. * * This method is called when a form has its tag value method equals to get. * * param request the request send by the client to the server * param response the response send by the server to the client * throws ServletException if an error occurred * throws IOException if an error occurred */public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/html);String name=request.getParameter(name);String pwd=request.getParameter(pwd);/userBean user = new userBean(name,pwd);user test=new user();try userBean user = test.check(name); if (user!=null)if (pwd.equals(user.getPWD()library bookinfo=new library();/Dao涓殑libraryList list=bookinfo.selectall();request.getSession().setAttribute(list,list); /response.sendRedirect(request.getContextPath() + InfoServlet);request.getRequestDispatcher(InfoServlet).forward(request, response);elseresponse.sendRedirect(error.jsp); elseresponse.sendRedirect(error.jsp); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();/* * The doPost method of the servlet. * * This method is called when a form has its tag value method equals to post. * * param request the request send by the client to the server * param response the response send by the server to the client * throws ServletException if an error occurred * throws IOException if an error occurred */public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/html); doGet(request,response); /* * Initialization of the servlet. * * throws ServletException if an error occurs */public void init() throws ServletException / Put your code here2.系統(tǒng)首頁設計及實現登錄后主頁面3.圖書管理模塊設計及實現 圖書管理員登錄系統(tǒng)后可以進行圖書管理,圖書管理模塊包含了圖書增、刪、改、查管理和圖書管理參數等子功能。下面分別進行介紹: 圖書的增、刪、改、查管理截圖如下所示: 1) 添加圖書信息2)刪除圖書信息 3)以圖書類應編號為主鍵,修改圖書信息:4)輸入書名,查詢圖書信息:示例代碼如下所示:1) 增加代碼:package servlet;import java.io.IOException;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import bean.libraryBean;import dao.library;public class AddBookServlet extends HttpServlet /* * Constructor of the object. */public AddBookServlet() super();/* * Destruction of the servlet. */public void destroy() super.destroy(); / Just puts destroy string in log/ Put your code herepublic void doPost(HttpServletRequest request, HttpServletResponse response) library library = new library();libraryBean book = new libraryBean(request.getParameter(pubname),request.getParameter(bookname),Integer.parseInt(request.getParameter(typeid),request.getParameter(author), Integer.parseInt(request.getParameter(storage), Integer.parseInt(request.getParameter(borrownum);try library.add(book);request.getRequestDispatcher(InfoServlet).forward(request, response); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (Exception e) e.printStackTrace();/* * Initialization of the servlet. * * throws ServletException if an error occurs */public void init() throws ServletException / Put your code here2) 刪除代碼:package servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import dao.library;public class DeleteServlet extends HttpServlet /* * Constructor of the object. */public DeleteServlet() super();/* * Destruction of the servlet. */public void destroy() super.destroy(); / Just puts destroy string in log/ Put your code here/* * The doGet method of the servlet. * * This method is called when a form has its tag value method equals to get. * * param request the request send by the client to the server * param response the response send by the server to the client * throws ServletException if an error occurred * throws IOException if an error occurred */public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException library library = new library();int i = Integer.parseInt(request.getParameter(typeid);try library.delete(i);request.getRequestDispatcher(InfoServlet).forward(request, response); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException / TODO Auto-generated method stubsuper.doPost(req, resp);/* * Initialization of the servlet. * * throws ServletException if an error occurs */public void init() throws ServletException / Put your code here3) 修改代碼:package servlet;import java.sql.SQLException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import bean.libraryBean;import dao.library;SuppressWarnings(serial)public class UpDateServlet extends HttpServlet /* * Constructor of the object. */public UpDateServlet() super();/* * Destruction of the servlet. */public void destroy() super.destroy(); / Just puts destroy string in log/ Put your code herepublic void doGet(HttpServletRequest request, HttpServletResponse response)Integer id = Integer.parseInt(request.getParameter(typeid);library library = new library();try List book = library.getForValue(id);System.out.println(book);request.setAttribute(book, book);request.getRequestDispatcher(/UpDate.jsp).forward(request, response); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();/* * Initialization of the servlet. * * throws ServletException if an error occurs */public void init() throws ServletException / Put your code here4) 查詢代碼:package servlet;import java.io.IOException;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import bean.libraryBean;import dao.library;public class EditServlet extends HttpServlet /* * Constructor of the object. */public EditServlet() super();/* * Destruction of the servlet. */public void destroy() super.destroy(); / Just puts destroy string in log/ Put your code herepublic void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException library library = new library();libraryBean bo

溫馨提示

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

評論

0/150

提交評論