數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計報告-圖書管理系統(tǒng)(共21頁)
精選優(yōu)質(zhì)文檔-傾情為你奉上 數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計報告設(shè)計題目: 圖書管理系統(tǒng) 班 級: 學(xué) 號: 姓 名: 指導(dǎo)教師: 完成日期: 成績: 專心-專注-專業(yè)摘要 在計算機日益普及的今天,對個人而言若采用一套行之有效的圖書管理系統(tǒng)來管理自己的書籍,會方便許多。對圖書管理部門而言,以前單一的手工檢索已不能滿足人們的要求,往往是投入了大量的人力和財力卻得不到搞笑的管理效率。為了便于圖書資料的管理需要有效的圖書管理軟件,減輕工作人員的工作量,方便工作人員對它的操作,提高管理的質(zhì)量和水平,做到高效,智能化管理,達(dá)到提高圖書借閱信息管理效率的目的。采用數(shù)據(jù)庫技術(shù)生成的的圖書借閱管理系統(tǒng)將會極大的方便借閱者并簡化圖書管理人員和工作人員的勞動,使工作人員從繁忙,復(fù)雜的工作進入到一個簡單,高效的工作中。基于這個問題,開發(fā)了大學(xué)圖書管理系統(tǒng)。目錄500第1章 系統(tǒng)概述數(shù)據(jù)庫原理及應(yīng)用課程的學(xué)習(xí),其主要的目標(biāo)是能利用課程中學(xué)習(xí)到的數(shù)據(jù)庫知識與技術(shù)較好地開發(fā)設(shè)計出數(shù)據(jù)庫應(yīng)用系統(tǒng),去解決各行各業(yè)信息化處理的要求。本實驗主要在于鞏固學(xué)生對數(shù)據(jù)庫的基本原理和基礎(chǔ)理論的理解,掌握數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計開發(fā)的基本方法,進一步提高學(xué)生的綜合運用所學(xué)的知識能力。為了使數(shù)據(jù)庫的應(yīng)用系統(tǒng)開發(fā)設(shè)計合理、規(guī)范、有序、正確、高效進行,現(xiàn)在廣泛采用的是工程化6階段開發(fā)設(shè)計過程與方法,它們是需求分析階段、概念結(jié)構(gòu)設(shè)計階段、邏輯結(jié)構(gòu)設(shè)計階段、物理結(jié)構(gòu)設(shè)計階段、數(shù)據(jù)庫實施、數(shù)據(jù)庫系統(tǒng)運行與維護階段。我們按照以上幾點開發(fā)了圖書管理系統(tǒng)數(shù)據(jù)庫。圖書管理系統(tǒng)要求讀者較好的正我數(shù)據(jù)庫知識與技術(shù)外,還要求讀者掌握某種客戶端開發(fā)工具或語言。這里是利用dreamwave,myeclipse,tomcat開發(fā)工具來實現(xiàn)示例系統(tǒng)的。用 j s, angularjs控制前臺頁面邏輯數(shù)據(jù)庫用postgres,將PostgresQL驅(qū)動放在tomcat lib庫中即可。編寫語言java ee,程序類型:web。這次課程設(shè)計能順利通過是老師的細(xì)心指導(dǎo)和我們小組團結(jié)一致、努力的結(jié)果。在這次課程設(shè)計中每位同學(xué)都積極參與各項環(huán)節(jié)的設(shè)計,但我們也有分工。初步列出如下:李高鋼和吳捷擔(dān)任的工作是對系統(tǒng)的需求分析、構(gòu)思數(shù)據(jù)流圖、把E-R圖轉(zhuǎn)化成關(guān)系模型并對其進行規(guī)范化處理、用SQL語言建表、視圖以及文檔的初步編寫等。余立,楊豪和高凱倫的工作是負(fù)責(zé)畫數(shù)據(jù)流圖和E-R圖,以及轉(zhuǎn)化初始關(guān)系模型,和內(nèi)容摘要等的編寫。李高鋼是我們組的組長,除對我們所制作單個模塊審核外還擔(dān)任了WORD文檔的總結(jié)排版。這次數(shù)據(jù)庫的課程設(shè)計讓我們對數(shù)據(jù)庫的操作有了進一步的了解,受益匪淺。第二章 系統(tǒng)數(shù)據(jù)庫設(shè)計部分2.1 需求分析2.1.1 需求描述 每個學(xué)校都有圖書館,最初由于圖書數(shù)量和種類較少,人工手動管理比較方便和靈活。隨著社會的發(fā)展,圖書的數(shù)量和種類越來越多,人工手動管理會降低工作的效率,希望建立一個圖書管理系統(tǒng),是為了解決人工手動管理圖書信息在實踐的問題,從而達(dá)到系統(tǒng)化,規(guī)范化,標(biāo)準(zhǔn)化的水平。該系統(tǒng)不但給管理者帶來了方便,也節(jié)省了工作時間從而提高了工作的效率。 2.1.2 數(shù)據(jù)流圖 圖書管理員圖書管理系統(tǒng) 管理人員 密碼輸入管理人 員 保存退出 圖書存量表 數(shù)據(jù)備份 查詢操作 權(quán)限認(rèn)證修改操作錄入數(shù)目刪除書目 顯示操作2.1.3 數(shù)據(jù)字典數(shù)據(jù)流名:圖書別 名:圖書館庫存圖書組 成:書名+書名+作者+出版社+剩余數(shù)備 注:無插入函數(shù) 主菜單函數(shù)文件讀入函數(shù)刪除函數(shù)退出程序文件讀出函數(shù)查詢函數(shù)顯示函數(shù)修改函數(shù) 數(shù)據(jù)概念設(shè)計E-R圖 類別編號 書名 作者 圖書編號 圖書 出版時間 數(shù)量 出版社 價格 編號 書名 作者 出版社 圖書搜索 代號 類別 出版日期 庫存數(shù)量 編號 庫存 數(shù)據(jù)庫邏輯結(jié)構(gòu) 圖書( 圖書編號,圖書名,圖書的類別,作者,出版社,出版日期 ) 圖書管理員 (職工號 ,姓名,性別) 管理(圖書編號,錄入,刪除,修改) 數(shù)據(jù)庫物理機構(gòu) 身份驗證退出程序YN 主菜單查找模塊刪除模塊修改模塊顯示模塊讀入模塊備份模塊錄入模塊模塊劃分與功能需求關(guān)系模塊編號模塊名稱功能M1身份驗證模塊輸入驗證信息M2主菜單模塊輸入選擇的功能M3錄入模塊插入相關(guān)信息M4刪除模塊刪除指定信息M5查詢模塊查詢指定信息M6顯示模塊以列表方式顯示所有信息M7備份模塊備份文件信息M8退出模塊退出程序 保存文件 第三章 系統(tǒng)設(shè)計1 程序的功能;1 圖書信息錄入,刪除,修改,查詢,功能2 用postgres保存學(xué)生信息數(shù)據(jù) 用java ee技術(shù)實現(xiàn)數(shù)據(jù)庫的操作2 輸入輸出的要求;圖書信息圖書編號,名稱,價格,出版日期,出版單位3 測試數(shù)據(jù)Book表圖書編號,名稱,價格,出版日期,出版單位"TS006""Android"23.50;12;"2014-07-12""四川大學(xué)出版社""網(wǎng)站設(shè)計"5"TS007""windosphone"23.50;12;"2014-07-25""四川大學(xué)出版社""中國歷史"4"TS008""Android"23.50;12;"2014-07-09""四川大學(xué)出版社""網(wǎng)站設(shè)計"5"TS009""老人與海"23.50;12;"2013-08-09""四川大學(xué)出版社""計算機編程"3 . 數(shù)據(jù)庫設(shè)計:設(shè)計表:圖書表book ,用戶表:admin程序設(shè)計:交互界面采用jsp頁面用 j s, angularjs控制前臺頁面邏輯數(shù)據(jù)庫用postgres,將PostgresQL驅(qū)動放在tomcat lib庫中即可后端用jsp,servlet,Bean技術(shù)控制get,post,數(shù)據(jù)庫的數(shù)據(jù)處理,表單的提交用表格顯示圖書信息,表單控制圖書的增,刪,改,查a> 1.一個登錄界面2. 表單3.表格 Main()->登錄界面 1添加add() 2.查找search()管理員-主菜單 =3.修改 4.刪除delete() 表格顯示圖書數(shù)據(jù):每個按鈕對應(yīng)一個post請求,用angularjs綁定元素實現(xiàn) ng-click=add()提交事件,后端用servlet響應(yīng)請求,再用Bean處理數(shù)據(jù),通過servlet返回數(shù)據(jù)或頁面到前端頁面,顯示更新信息(成功或失?。?。表格可用dreamwave等工具調(diào)整樣式;服務(wù)代碼可用myeclipse工具編寫服務(wù)器用tomcat用到的js庫 angular.js第四章 總結(jié)經(jīng)過這些天的設(shè)計和開發(fā),圖書管理系統(tǒng)基本開發(fā)完畢。本系統(tǒng)基本能夠完成學(xué)生圖書的查詢、錄入、刪除、修改等。這次的課程設(shè)計是分組討論和制作的。在制作的過程中,我學(xué)到的不僅是知識,我還認(rèn)識到許多事情。這次設(shè)計對我們的綜合能力是一次很好的鍛煉,使我的編程水平提高了一大步,同時也使我充分的認(rèn)識到合作的可貴。在我們所制作的學(xué)生學(xué)籍管理系統(tǒng)中,涉及到數(shù)據(jù)庫、javaee等,交互界面采用jsp頁面用 j s, angularjs控制前臺頁面邏輯數(shù)據(jù)庫用postgres,將PostgresQL驅(qū)動放在tomcat lib庫中即可。后端用jsp,servlet,Bean技術(shù)控制get,post,數(shù)據(jù)庫的數(shù)據(jù)處理,表單的提交用表格顯示圖書信息,表單控制圖書的增,刪,改,查。還有就是由于我們對數(shù)據(jù)庫知識的掌握有限和不牢固,角色和視圖的創(chuàng)建沒有想象中的完美,備份和還原也只是初步的形成,以致學(xué)生學(xué)籍管理系統(tǒng)只是達(dá)到了基本要求,有待進一步改善,希望老師給予批評。主要參考文獻(xiàn) javaweb實戰(zhàn)1200例 Angularjs中文社區(qū) 附錄5、核心源程序清單和執(zhí)行結(jié)果源程序要按照寫程序的規(guī)則來編寫。要結(jié)構(gòu)清晰,重點函數(shù)的重點變量,重點功能部分要加上清晰的程序注釋。Book.jsp<% page language="java" import="java.util.*" pageEncoding="utf-8"%><% page import="java.sql.*" %><% page import="java.io.*" %><jsp:useBean id="db" class="ligaogang.DB" scope="page"/><%String path = request.getContextPath();String basePath = request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/"%><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN"><html ng-app="bookModule"> <head> <base href="<%=basePath%>"> <title>My JSP 'book.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript" src="js/angular.min.js"></script><script type="text/javascript" src="js/bookModule.js"></script><link rel="stylesheet" type="text/css" href="css/styles.css"> </head> <body ng-controller="bookController"><center> <form action="searchResult.jsp" method="post"> <table width="80%" border="1" id="table1" style="border-color:#FFCCFF;"> <tbody> <tr> <td align="center" nowrap="nowrap">圖書編號</td> <td align="center"><input type="text" name="BookNo" ng-model="Book.Bookno"></td> <td align="center" nowrap="nowrap">價格</td> <td align="center"><input type="text" name="BookPrice"></td> <td align="center" nowrap="nowrap">類別</td><td align="center"><input type="text" name="BookType" ng-model="Book.BookType"></td> <td align="center" nowrap="nowrap">出版社</td> <td align="center"><input type="text" name="PublishHouse" ng-model="Book.PublishHouse"></td> </tr> <tr> <td align="center" nowrap="nowrap">圖書名</td> <td align="center"><input type="text" name="BookName" ng-model="Book.BookName"></td> <td align="center" nowrap="nowrap">數(shù)量</td> <td align="center"><input type="text" name="Count" ng-model="Book.Count"></td> <td align="center" nowrap="nowrap">書類代號</td><td align="center"><input type="text" name="BookTypeNo" ng-model="Book.BookTypeNo"></td> <td align="center" nowrap="nowrap">出版日期</td> <td align="center"><input type="date" name="PublishDate" ng-model="Book.PublishDate"></td> </tr> <tr> <td height="36" align="center" nowrap="nowrap">搜索條件</td> <td height="36"><select name="subsql" ng-model="Book.subsql"> <option value="bookName">圖書名</option> <option value="bookType">類別</option> <option value="publish">出版社</option> </select></td> <td height="36" align="center" nowrap="nowrap">條件值</td> <td height="36" colspan="2"><input type="text" name="subsqlvalue" ng-model="Book.subsqlvalue"></td> <td height="36" colspan="3" align="center" nowrap="nowrap"><button type="submit">查詢</button> <button type="button" ng-click="addBook(Book)">增加</button> <button type="button" id="modifyBook">修改</button> <button type="button" id="deleteBook">刪除</button> </td> </tr> </tbody></table></form></center></br><center><table border="1" width="80%" style="border-color:#FFCCFF;"><tr><td>圖書編號</td><td>圖書名</td><td>價格</td><td>數(shù)量</td><td>出版日期</td><td>出版社</td><td>類別</td><td>書類代號</td></tr><%tryResultSet rt =(ResultSet)session.getAttribute("resultset");while(rt.next()String barcode=rt.getString("barcode");String bookName=rt.getString("bookName");int bookType=rt.getInt("bookType");float price=rt.getFloat("price");int count=rt.getInt("count");java.util.Date publishDate=rt.getDate("publishDate");String publishName=rt.getString("publish");String introductionName=rt.getString("introduction"); %> <tr> <td><%=barcode%></td> <td><%=bookName%></td> <td><%=price%></td> <td><%=count%></td> <td><%=publishDate%></td> <td><%=publishName%></td> <td><%=introductionName%></td> <td><%=bookType%></td> </tr><%catch(Exception e)out.println(e); %></table></center> </body></html>Sevlet: addbook.javapackage ligaogang;import java.io.IOException;import java.io.PrintWriter;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class addBook extends HttpServlet /* * Constructor of the object. */public addBook() super();/* * Destruction of the servlet. <br> */public void destroy() super.destroy(); / Just puts "destroy" string in log/ Put your code here/* * The doGet method of the servlet. <br> * * 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");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN">");out.println("<HTML>");out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println(" <BODY>");out.print(" This is ");out.print(this.getClass();out.println(", using the GET method");out.println(" </BODY>");out.println("</HTML>");out.flush();out.close();/* * The doPost method of the servlet. <br> * * 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");PrintWriter out = response.getWriter();String BookNo=request.getParameter("BookNo");int BookPrice=Integer.parseInt(request.getParameter("BookPrice");int BookType=Integer.parseInt(request.getParameter("BookType");String PublishHouse=request.getParameter("PublishHouse");String BookName=request.getParameter("BookName");int Count=Integer.parseInt(request.getParameter("Count");SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");Date PublishDate = null;try PublishDate = df.parse(request.getParameter("PublishDate"); catch (ParseException e) / TODO Auto-generated catch blocke.printStackTrace();String BookTypeNo=request.getParameter("BookTypeNo");DB db=new DB();int state=db.insertBook( BookNo, BookName, BookPrice, Count, PublishDate, PublishHouse, BookTypeNo, BookType);if(state!=-1) out.println("success!");/* * Initialization of the servlet. <br> * * throws ServletException if an error occurs */public void init() throws ServletException / Put your code here