图书管理系统的设计与开发

上传人:无*** 文档编号:60764810 上传时间:2022-03-09 格式:DOC 页数:56 大小:5.40MB
收藏 版权申诉 举报 下载
图书管理系统的设计与开发_第1页
第1页 / 共56页
图书管理系统的设计与开发_第2页
第2页 / 共56页
图书管理系统的设计与开发_第3页
第3页 / 共56页
资源描述:

《图书管理系统的设计与开发》由会员分享,可在线阅读,更多相关《图书管理系统的设计与开发(56页珍藏版)》请在装配图网上搜索。

1、 学 生 实 验 报 告 书实验课程名称电子商务应用技术开发开 课 学 院经济学院指导教师姓名傅魁学 生 姓 名 梁少晴 0121415710101 姜雨竹 0121415710229 阮筱钰 0121415710230学生专业班级电商1401 电商1402 目 录 一、系统概述(3)二、系统需求分析(3)三、系统总体设计(6)四、详细设计(9)五、页面设计及编码实现(15)六、测试分析报告(50)七、结束语(56) 图书馆管理系统一、 系统概述1.1 系统开发背景和意义 图书管理是每个高校必须切实面对的工作,但如今许多高校的图书馆管理系统还停留在以CS为结构的系统上。随着internet的应

2、用日趋广泛,以及高校内、高校与高校间信息的交流日趋密切,以CS为结构的信息管理系统以不能满足需求,所以,高校图书馆管理系统必须通过更新换代,将BS为结构的系统改为以CS为结构的系统,这样会大大提高系统的维护性以及系统应用的广泛性。由于图书这用特殊的物品,其表现在数据量非常庞大,所以对数据库的要求比较严格,由于oracle数据库其检索迅速、查找方便、可靠性高、保密性好,所以,选择oracle数据库为其存取数据。 随着java技术在internet上的广泛应用以及java安全性高、执行效率高的优点,同时,java可以在任意平台上应用,所以可以任意组合硬件和操作系统,既可以在windows下开发,部

3、署在linux下,极大了节省了操作系统的费用以及硬件的费用。 1.2 开发环境硬件环境: 服务器端/客户端: 处理器:Inter Pentium3以上 内存:512M以上推荐1G或更高 硬盘空间:80G以上软件环境: 服务器端/客户端: 操作系统:Windows XP/Linux 浏览器:Internet Explore7.0以上 开发工具:MyEclipse+Tomcat7.0+MySQL 在MyEclipse集成环境下进行图书管理员系统的界面设计和程序开发,在系统的后台采用MySQL作为数据库支持,使用时打开浏览器。在地址栏中输入网址回车后即可进入图书管理员系统的主页,进行相应的操作。二、

4、 系统需求分析2.1 任务概述1新书购进后,进行分类、同一编码和入库。2学生借阅图书后,记录相关信息。3. 学生归还时,对比查看该书是否超期,超期后,按规定罚款。根据以上调查分析,给出业务流程图,如图:2.2 数据描述(数据流图+数据字典) 经过调查,我们了解了基本的业务程序,接下来给出系统的逻辑模型。构造系统的逻辑模型的工具主要是数据流图和数据字典,下面给出图书馆管理系统的基本模型,如图: 根据基本模型,对其逐步细化,得到数据流图,如图: 根据系统流程图,通过数据字典对数据进一步描述:图书:图书表结构描述:记录图书的相关信息定义:图书信息表 图书编号、图书名称、ISBN号、作者、出版社、类型

5、、价格、库存量、副本存量、总量位置:LibWeb表空间借书登记:借书登记表结构描述:记录图书的借阅信息定义:借阅登记表 借阅编号、学生编号、图书编号、借阅时间、归还时间、是否归还位置:LibWeb表空间学生信息:学生信息表结构描述:记录学生信息定义:学生信息表 学生学号、学生姓名、性别、入校时间、毕业时间位置:LibWeb表空间归还登记:归还登记表结构描述:记录所有已归还图书的借阅情况定义:归还信息表 编号、图书名称、归还时间、归还学生编号、归还学生姓名位置:LibWeb数据空间用户信息:用户表结构描述:记录所有用户定义:用户信息表 账号、真实姓名、密码、描述位置:LibWeb数据空间角色信息

6、:角色表结构描述:记录所有角色定义:角色信息表 角色名称、角色描述位置:LibWeb数据空间2.3 功能需求 经过以上详细的调查和分析,在数据流程和数据分析的基础上,确定达到的功能为一下几点: 新书入库登记:对与需求入库的书籍,进行数据登记,确认后书籍入库。 图书信息的查询和修改功能:当图书资料发生变化、当图书丢失,应立即修改信息。 图书借阅和归还登记:学生借阅图书时需要登记,学生归还图书时也需要登记。 学生的增加、修改、删除等:新生入学时的信息和直接导入。 用户的增加、修改、删除等:用户可根据权限来操作。 2.4 性能需求为了保证系统能够长期、高效、安全、稳定、可靠的运行,图书馆管理系统应满

7、足一下性能需求:1.系统处理数据的准确性和及时性:系统处理的准确性和及时性是系统的必要性能。在系统设计阶段,就应该充分考虑到,包括数据存储量、访问量等,是系统能够满足图书管管理系统对数据的处理量。 2.系统的开放性和系统的可扩充性:可扩充性是系统健壮性的重要体现,系统开发中应充分考虑到系统的可扩充性。可扩充性包括系统设计和测试阶段的扩充以及系统使用后的扩充。任何系统在开发阶段对需求都是完全明确的,即使系统交付使用后,用户也会提出增加功能,所以,在系统设计阶段就应该考虑到系统的可扩充性。3. 系统的易用性和易维护性:图书馆管理系统由图书馆管理员和学生使用,而使用者对系统结构并不了解,这就要求系统

8、提供良好的用户接口和友好的界面设计。要实现这一点,要求操作简洁明了,数据校验通俗易懂。4. 系统的响应速度:图书管管理系统的响应速度要求比较高,这就需要从一下几个方面入手解决:校园网的带宽、数据库的快速稳定、SQL语句执行的高效率、浏览器的选择。无论是哪方面,都会影响系统的响应速度,所以,图书馆管理系统能够拥有快速的响应速度,必须做好其中的没一点。三、 系统总体设计系统架构设计:本系统的整体架构如图所示,从逻辑上来看主要分为三层:模型层、控制层、视图层。1.1 业务流程根据需求分析,以及反复的研究和探讨,确认其流程图如下:根据流程图,现具体功能描述如下:1.用户登录:系统对用户的合法性进行校验

9、,登录后,系统会根据用户所拥有的权限来分配权限。2.书籍入库:填写书籍信息,可通过excel批量导入到数据库中。3.图书借阅:对已经入库的数据,学生可借阅。4.图书归还:对已经归还的书籍进行登记。5.管理措施:对定义系统规定的超期时间、超期处罚办法、丢失赔偿办法。3.2 系统功能模块图依据需求分析阶段得到的数据流图,在保证系统基本功能的前提下,结合系统设计流程,给出系统功能模块图,如图:3.3 系统的流程图 四、详细设计4.1 程序流程图 该设计阶段的任务是根据需求具体实现所需要的程序。经过这个阶段的设计,应该得出目标系统的精确描述,从而在系统实现阶段可以把这个描述直接翻译某种程序设计语言书写

10、的程序。总体来说就是把各个模块的细节加以描述。由于本系统采用的是j2ee来设计程序,java是面向对象的变成语言,所以给出系统的主程序流程图,如图: 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.输出项目:归还信

11、息页面4.3 程序接口描述4.3.1 外部接口 由于该系统可以部署在任何操作系统,且系统界面采用浏览器方式实现,所以该系统是跨平台、跨操作系统的。4.3.2 内部接口通过面向对象程序设计模式实现低耦合高内聚的程序设计思想,通过与数据库之间的数据交换,实现对数据的处理和保存。4.4 数据库的设计4.4.1 数据库的逻辑设计 在需求阶段已经完成该系统所有的数据分析。根据该阶段建立的概念模型,已经得出满足系统设计要求的几个关系描述,该阶段的主要工作就是把前一阶段的成果转化为具体的数据库。下面给出概念结构设计的E-R图,如图所示: 图(一) 图(二) 图(三)实体:图书(图书编号,书名,作者,出版社,

12、定价,图书类别,图书ISBN号,图书存量)学生(学生学号,学生姓名,性别,入校时间,毕业时间)用户(用户名,真实姓名,密码,描述)角色(角色名,角色描述)序号字段名称字段说明类型位数属性备注1ididnumber19非空1bookId编号varchar50非空2name名称Varchar100非空3ISBNISBNvarchar50可为空4author作者varchar100可为空5publisher出版商varchar100可为空6type类型number2可为空和数据字典相关7price价格number10可为空8storeQuan存量number10可为空9leftQuan副本存量num

13、ber10可为空10totleQuan总量number10可为空11createTime创建时间date非空12operateTime修改时间date可为空13creator创建者number19非空14operate操作人number19可为空15status状态varchar1非空N or Y16version版本number非空 图书信息表序号字段名称字段说明类型位数属性备注1id编号number10非空2userId用户编号number10非空3bookId图书编号varcher50非空4broTime结束时间date可为空5retime还书时间date可为空6ifReturn是否归还

14、number1非空7createTime创建时间date非空8operateTime修改时间date可为空9creator创建者number19非空10operate操作人number19可为空11status状态varchar1非空N or Y12version 图书归还登记表序号字段名称字段说明类型位数属性备注1ididnumber19非空2createTime创建时间date非空3operateTime修改时间date可为空4creator创建者number19非空5operate操作人number19可为空6status状态varchar1非空N or Y7version版本numbe

15、r非空8name用户名varchar60非空9relName真实姓名varchar60可为空11password密码varchar64非空12description描述varchar1024可为空 用户表序号字段名称字段说明类型位数属性备注1ididnumber19非空2createTime创建时间date非空3operateTime修改时间date可为空4creator创建者number19非空5operate操作人number19可为空6status状态varchar1非空N or Y7version版本number非空8name角色名varchar32非空12descriptionvar

16、char1024非空 角色表序号字段名称字段说明类型位数属性备注1ididnumber19非空2createTime创建时间date非空3operateTime修改时间date可为空4creator创建者number19非空5operate操作人number19可为空6status状态varchar1非空N or Y7version版本number非空8stuId学生编号varchar50非空12name学生姓名varchar100非空8sex性别number1非空12addTime入学时间date非空12endTime毕业时间date非空 学生表 图书表 用户表五、页面设计及编码实现UI页面

17、设计系统登录用户注册注册成功图书管理员登录主界面编辑书目信息编辑书目信息删除操作图书管理参数维护主界面图书管理参数编辑删除操作图书借阅审批主界面图书借阅审批界面审批完成界面图书类型管理主界面图书类型编辑删除操作图书条码管理主界面图书条码编辑删除操作菜单管理主界面(系统管理)菜单编辑界面删除操作角色管理主界面(系统管理)角色编辑界面删除操作用户管理主界面(系统管理)用户编辑界面删除操作用户登录图书借阅查询 1.系统的登录设计与实现 基于系统的和数据的安全性考虑,所有用户进入系统之前必须经过登录页面进行合法性验证,身份验证成功之后才能进入系统为每个用户提供唯一的账号和初始密码,用户输入自己的用户名

18、和密码之后,点击【完成】按钮登录系统。系统后台会对用户输入的登录信息进行认证,如果用户名或者密码不合法时,后台会返回错误信息并在前端页面上进行显示,提示用户“用户名或密码不正确,请重新输入!”注册用户,若信息已存在,注册失败,返回登录页面注册用户成功,返回登录页面登录后主页面示例代码如下所示:1)注册代码:package servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.SQLException;import javax.servlet.ServletException;import ja

19、vax.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.

20、*/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 respon

21、se 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 cal

22、led 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(HttpSer

23、vletRequest 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.

24、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)登陆代

25、码: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

26、.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.de

27、stroy(); / 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 cli

28、ent * 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.

29、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涓殑library List list=bookinfo.selectall(); request.getSession().setAttribute(list,list); / response.send

30、Redirect(request.getContextPath() + InfoServlet); request.getRequestDispatcher(InfoServlet).forward(request, response); else response.sendRedirect(error.jsp); else response.sendRedirect(error.jsp); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();/* * The doPost method of the

31、 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 occur

32、red */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 ServletEx

33、ception / Put your code here2.系统首页设计及实现登录后主页面3.图书管理模块设计及实现 图书管理员登录系统后可以进行图书管理,图书管理模块包含了图书增、删、改、查管理和图书管理参数等子功能。下面分别进行介绍: 图书的增、删、改、查管理截图如下所示: 1) 添加图书信息2)删除图书信息 3)以图书类应编号为主键,修改图书信息:4)输入书名,查询图书信息:示例代码如下所示:1) 增加代码: package servlet;import java.io.IOException;import java.sql.SQLException;import javax.servl

34、et.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() su

35、per();/* * 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(pu

36、bname),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

37、); 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 servl

38、et;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 e

39、xtends 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 v

40、alue 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, HttpServle

41、tResponse 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.printStackT

42、race();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 ServletEx

43、ception / 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;impor

44、t 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(HttpS

45、ervletRequest 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,

46、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

47、.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.

48、 */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 librar

49、y();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);System.out.println(book);tr

50、y library.update(book);request.getRequestDispatcher(InfoServlet).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

51、your code hereLibrarydao:package dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import DB.Dbconnection;import bean.libraryBean;public class library stat

52、ic Dbconnection db=new Dbconnection(); /* * 该方法向数据库中插入一条信息 * param book * throws Exception */public static void add(libraryBean book) throws ExceptionConnection con=db.getConnection();PreparedStatement ps=con.prepareStatement(insert into library values(?,?,?,?,?,?);ps.setString(1,book.getPubname();p

53、s.setString(2,book.getBookname();ps.setInt(3,book.getTypeid();ps.setString(4, book.getAuthor();ps.setInt(5, book.getStorage();ps.setInt(6, book.getBorrownum();ps.executeUpdate();ps.close();con.close();/* * 该方法删除数据库中指定信息 * param typeid * throws ClassNotFoundException * throws SQLException */public void delete(int typeid) throws Excepti

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!