收藏 分销(赏)

数据库系统原理课程设计报告-图书管理系统.doc

上传人:a199****6536 文档编号:1972420 上传时间:2024-05-13 格式:DOC 页数:22 大小:202KB 下载积分:10 金币
下载 相关 举报
数据库系统原理课程设计报告-图书管理系统.doc_第1页
第1页 / 共22页
数据库系统原理课程设计报告-图书管理系统.doc_第2页
第2页 / 共22页


点击查看更多>>
资源描述
数据库系统原理课程设计 学生学籍管理系统 数据库系统原理课程设计报告 设计题目: 图书管理系统 班 级: 学 号: 姓 名: 指导教师: 完成日期: 成绩: 摘要 在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,往往是投入了大量的人力和财力却得不到搞笑的管理效率。为了便于图书资料的管理需要有效的图书管理软件,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效,智能化管理,达到提高图书借阅信息管理效率的目的。采用数据库技术生成的的图书借阅管理系统将会极大的方便借阅者并简化图书管理人员和工作人员的劳动,使工作人员从繁忙,复杂的工作进入到一个简单,高效的工作中。基于这个问题,开发了大学图书管理系统。 目录 第一章 系统概述 1 第二章 系统数据库设计部分 2 2.1 需求分析 5 2.1.1 需求描述 5 2.1.2 数据流图 6 2.1.3 数据词典 8 2.2 数据库概念结构设计 9 2.2.1 E-R图 9 2.3 数据库逻辑结构设计 10 2.4 数据库物理结构设计 10 第三章 系统设计 12 第四章 总结 15 主要参考文献 17 附录一 17 数据库系统原理课程设计 学生学籍管理系统 第一章 系统概述 《数据库原理及应用》课程的学习,其主要的目标是能利用课程中学习到的数据库知识与技术较好地开发设计出数据库应用系统,去解决各行各业信息化处理的要求。本实验主要在于巩固学生对数据库的基本原理和基础理论的理解,掌握数据库应用系统的设计开发的基本方法,进一步提高学生的综合运用所学的知识能力。为了使数据库的应用系统开发设计合理、规范、有序、正确、高效进行,现在广泛采用的是工程化6阶段开发设计过程与方法,它们是需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施、数据库系统运行与维护阶段。我们按照以上几点开发了图书管理系统数据库。图书管理系统要求读者较好的正我数据库知识与技术外,还要求读者掌握某种客户端开发工具或语言。这里是利用dreamwave,myeclipse,tomcat开发工具来实现示例系统的。用 j s, angularjs控制前台页面逻辑数据库用postgres,将PostgresQL驱动放在tomcat lib库中即可。编写语言java ee,程序类型:web。 这次课程设计能顺利通过是老师的细心指导和我们小组团结一致、努力的结果。在这次课程设计中每位同学都积极参与各项环节的设计,但我们也有分工。初步列出如下:李高钢和吴捷担任的工作是对系统的需求分析、构思数据流图、把E-R图转化成关系模型并对其进行规范化处理、用SQL语言建表、视图以及文档的初步编写等。余立,杨豪和高凯伦的工作是负责画数据流图和E-R图,以及转化初始关系模型,和内容摘要等的编写。李高钢是我们组的组长,除对我们所制作单个模块审核外还担任了WORD文档的总结排版。这次数据库的课程设计让我们对数据库的操作有了进一步的了解,受益匪浅。 第二章 系统数据库设计部分 2.1 需求分析 2.1.1 需求描述 每个学校都有图书馆,最初由于图书数量和种类较少,人工手动管理比较方便和灵活。随着社会的发展,图书的数量和种类越来越多,人工手动管理会降低工作的效率,希望建立一个图书管理系统,是为了解决人工手动管理图书信息在实践的问题,从而达到系统化,规范化,标准化的水平。该系统不但给管理者带来了方便,也节省了工作时间从而提高了工作的效率。 2.1.2 数据流图 图书管理员 图书管理系统 管理人员 密码输入 管理人 员 保存退出 图书存量表 数据备份 查询操作 权限认证 修改操作 录入数目 删除书目 显示操作 2.1.3 数据字典 数据流名:图书 别 名:图书馆库存图书 组 成:书名+书名+作者+出版社+剩余数 备 注:无 插入函数 主菜单函数 文件读入函数 删除函数 退出程序 文件读出函数 查询函数 显示函数 修改函数 数据概念设计 E-R图 类别编号 书名 作者 图书编号 图书 出版时间 数量 出版社 价格 编号 书名 作者 出版社 图书搜索 代号 类别 出版日期 库存数量 编号 库存 数据库逻辑结构 图书( 图书编号,图书名,图书的类别,作者,出版社,出版日期 ) 图书管理员 (职工号 ,姓名,性别) 管理(图书编号,录入,删除,修改) 数据库物理机构 身份验证 退出程序 Y\N 主菜单 查找模块 删除模块 修改模块 显示模块 读入模块 备份模块 录 入 模 块 模块划分与功能需求关系 模块编号 模块名称 功能 M1 身份验证模块 输入验证信息 M2 主菜单模块 输入选择的功能 M3 录入模块 插入相关信息 M4 删除模块 删除指定信息 M5 查询模块 查询指定信息 M6 显示模块 以列表方式显示所有信息 M7 备份模块 备份文件信息 M8 退出模块 退出程序 保存文件 第三章 系统设计 1. 程序的功能; 1〉 图书信息录入,删除,修改,查询,功能 2〉 用postgres保存学生信息数据 用java ee技术实现数据库的操作 2. 输入输出的要求; 图书信息 图书编号,名称,价格,出版日期,出版单位…… 3. 测试数据 Book表 图书编号,名称,价格,出版日期,出版单位 "TS006";"Android";23.50;12;"2014-07-12";"四川大学出版社";"网站设计";5 "TS007";"windosphone";23.50;12;"2014-07-25";"四川大学出版社";"中国历史";4 "TS008";"Android";23.50;12;"2014-07-09";"四川大学出版社";"网站设计";5 "TS009";"老人与海";23.50;12;"2013-08-09";"四川大学出版社";"计算机编程";3 . 数据库设计: 设计表: 图书表book , 用户表:admin 程序设计: 交互界面采用jsp页面 用 j s, angularjs控制前台页面逻辑 数据库用postgres,将PostgresQL驱动放在tomcat lib库中即可 后端用jsp,servlet,Bean技术控制get,post,数据库的数据处理,表单的提交 用表格显示图书信息,表单控制图书的增,删,改,查 a> 1.一个登录界面 2. 表单 3.表格 Main()->登录界面 1.添加add() 2.查找search() 管理员-》主菜单 =》 3.修改 4.删除delete() 表格显示图书数据: 每个按钮对应一个post请求,用angularjs绑定元素实现 ng-click=add()提交事件,后端用servlet响应请求,再用Bean处理数据,通过servlet返回数据或页面到前端页面,显示更新信息(成功或失败)。 表格可用dreamwave等工具调整样式; 服务代码可用myeclipse工具编写 服务器用tomcat 用到的js库 angular.js 13 赵晓霞:学生学籍信息管理系统 第四章 总结 经过这些天的设计和开发,图书管理系统基本开发完毕。本系统基本能够完成学生图书的查询、录入、删除、修改等。这次的课程设计是分组讨论和制作的。在制作的过程中,我学到的不仅是知识,我还认识到许多事情。这次设计对我们的综合能力是一次很好的锻炼,使我的编程水平提高了一大步,同时也使我充分的认识到合作的可贵。 在我们所制作的学生学籍管理系统中,涉及到数据库、javaee等,交互界面采用jsp页面用 j s, angularjs控制前台页面逻辑数据库用postgres,将PostgresQL驱动放在tomcat lib库中即可。后端用jsp,servlet,Bean技术控制get,post,数据库的数据处理,表单的提交用表格显示图书信息,表单控制图书的增,删,改,查。 还有就是由于我们对数据库知识的掌握有限和不牢固,角色和视图的创建没有想象中的完美,备份和还原也只是初步的形成,以致学生学籍管理系统只是达到了基本要求,有待进一步改善,希望老师给予批评。 17 数据库系统原理课程设计 学生学籍管理系统 主要参考文献 javaweb实战1200例 Angularjs中文社区 15 数据库系统原理课程设计 学生学籍管理系统 附录 5、核心源程序清单和执行结果 源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。 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">数量</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>数量</td> <td>出版日期</td> <td>出版社</td> <td>类别</td> <td>书类代号</td> </tr> <% try{ ResultSet 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.java package 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 block e.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 } } 其中专业理论知识内容包括:保安理论知识、消防业务知识、职业道德、法律常识、保安礼仪、救护知识。作技能训练内容包括:岗位操作指引、勤务技能、消防技能、军事技能。 二.培训的及要求培训目的 安全生产目标责任书 为了进一步落实安全生产责任制,做到“责、权、利”相结合,根据我公司2015年度安全生产目标的内容,现与财务部签订如下安全生产目标: 一、目标值: 1、全年人身死亡事故为零,重伤事故为零,轻伤人数为零。 2、现金安全保管,不发生盗窃事故。 3、每月足额提取安全生产费用,保障安全生产投入资金的到位。 4、安全培训合格率为100%。 二、本单位安全工作上必须做到以下内容: 1、对本单位的安全生产负直接领导责任,必须模范遵守公司的各项安全管理制度,不发布与公司安全管理制度相抵触的指令,严格履行本人的安全职责,确保安全责任制在本单位全面落实,并全力支持安全工作。 2、保证公司各项安全管理制度和管理办法在本单位内全面实施,并自觉接受公司安全部门的监督和管理。 3、在确保安全的前提下组织生产,始终把安全工作放在首位,当“安全与交货期、质量”发生矛盾时,坚持安全第一的原则。 4、参加生产碰头会时,首先汇报本单位的安全生产情况和安全问题落实情况;在安排本单位生产任务时,必须安排安全工作内容,并写入记录。 5、在公司及政府的安全检查中杜绝各类违章现象。 6、组织本部门积极参加安全检查,做到有检查、有整改,记录全。 7、以身作则,不违章指挥、不违章操作。对发现的各类违章现象负有查禁的责任,同时要予以查处。 8、虚心接受员工提出的问题,杜绝不接受或盲目指挥; 9、发生事故,应立即报告主管领导,按照“四不放过”的原则召开事故分析会,提出整改措施和对责任者的处理意见,并填写事故登记表,严禁隐瞒不报或降低对责任者的处罚标准。 10、必须按规定对单位员工进行培训和新员工上岗教育; 11、严格执行公司安全生产十六项禁令,保证本单位所有人员不违章作业。 三、 安全奖惩: 1、对于全年实现安全目标的按照公司生产现场管理规定和工作说明书进行考核奖励;对于未实现安全目标的按照公司规定进行处罚。 2、每月接受主管领导指派人员对安全生产责任状的落 21
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服