




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录第一章 绪论1第二章 需求分析22.1 总体需求分析2第三章 总体设计33.1 系统功能结构33.2系统流程图43.3安全设计5第四章 数据库设计64.1概念结构设计64.1.1图书档案实体64.1.2读者档案实体74.1.3借阅档案实体74.1.4归还档案实体84.2数据库物理结构设计84.2.1 图书信息表结构设计84.2.2 图书类型信息表结构设计94.2.3 读者信息表结构设计94.2.4 读者类型信息表结构设计104.2.5图书借阅信息表结构设计104.2.6 图书归还信息表结构设计114.2.7用户信息表结构设计114.2.8图书馆信息表结构设计124.2.9办证参数信息表结构设计12第五章 详细设计13第六章 编码146.1编写管理员模块的ActionForm类146.2编写管理员模块Action实现类156.3编写管理员ManagerDAO类206.4系统登录266.5查看管理员的实现过程266.6添加管理员的实现过程276.7设置管理员权限的实现过程27第七章 结论28心得体会29致谢30参考文献31第一章 绪论随着网络技术的发展、计算机应用水平的提高和扩大,原来系统的时效数据的正确操作的方便性上都存在不足,已影响到系统的的正常使用。经过考察和比较,决定对图书管理系统重新设计,使系统能利用软件开发技术的成果,方便图书的管理。图书管理系统是典型的信息管理系统。系统介绍了图书管理系统的开发过程,设计中遇到的问题及解决方法以及提高当前应用程序或系统开发进度和改善工作性能,利用其提供的各种面向对象的开发工具,首先在短时间内建立系统应用原型,然后,对初始原始系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。本次课程设计利用java开发工具myeclipes和mysql数据库来开发这个图书管理系统。该系统要解决的图书管理所要解决的问题,可以满足图书管理的基本要求,包括添加、管理等功能。该系统能根据用户的需求,快捷方便的为读者提供借阅服务。 全套设计加扣 3012250582第2章 需求分析2.1 总体需求分析长期以来,人们使用传统的人工方式管理图书馆的日常业务,其操作流程比较繁琐。在借书时读者首先将要借的书和借阅证交给工作人员,工作人员将每本书的信息卡片和读者的借阅证放在一个格栏里,然后再借阅证和每本书贴的借阅条上填写借阅信息。还书时,读者首先将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息。从上述的描述中可以发现传统的手工流程存在不足。首先处理借书,还书业务的流程效率很低;其次处理能力比较低,一段时间内,所能服务的读者人数是有限的。为此图书管理系统需要为图书馆解决上述问题,提高快速的图书信息检索能力,快捷的图书借阅和归还流程。第3章 总体设计3.1 系统功能结构图书馆信息退出系统更改口令图书续借借阅到期查询图书借阅图书归还图书借阅查询图书档案查询图书档案管理图书类型管理读者档案设置读者类型设置书架设置参数设置管理员设置系统查询图书借还图书管理读者设置系统设置图书管理系统根据图书管理系统的特点,可以将其分为系统设置,读者设置,图书管理,图书借还,系统查询5个部分,其中各个部分及其包括的具体功能模块如图3-1 系统功能结构图所示。图3-1 系统功能结构图3.2系统流程图图书馆管理系统流程图如图3-2系统流程图所示。图书归还档案说的根据读者信息获取借阅图书信息归还相关图书图书档案完成图书借阅完成图书续借图书借阅档案获取读者信息读者档案管理图书档案信息管理读者信息管理员图书借阅图书归还图书续借读者图3-2系统流程图3.3安全设计 由于该系统统计管理单位的各种书目,人员数据及出入库数据,因此需要保证数据的可靠性和安全性。对于软件方面,采用手动或定时对数据库采取备份,使由于数据破坏所产生的损失降到最低,同时便于恢复。第4章 数据库设计4.1概念结构设计4.1.1图书档案实体图书档案实体E-R图如图4-1图书档案实体E-R图所示。书架页码价格类型作者出版社编号条形码书名图书档案图4-1图书档案实体E-R图4.1.2读者档案实体读者档案实体E-R图如图4-2读者档案实体E-R图所示。 图4-2读者档案实体E-R图4.1.3借阅档案实体借阅档案实体E-R图如图4-3借阅档案实体E-R图所示。读者编号 图书编号借书时间编号应还时间借阅档案操作员是否归还图4-3借阅档案实体E-R图4.1.4归还档案实体归还档案实体E-R图如图4-4归还档案实体E-R图所示。读者编号图书编号 编号应还时间归还档案操作员是否归还图4-4归还档案实体E-R图4.2数据库物理结构设计4.2.1 图书信息表结构设计 图书信息表主要用于存储图书馆中所藏图书的相关信息,其中的相关信息是在图书入库时由操作员进行添加完善,此表主要用于读者和图书管理员对馆中图书的查询,系统用户根据图书的某个属性进行查询,便可得知图书的其他相关信息,其中图书所在书架属性是便于读者借阅时对图书的寻找,图书价格是在读者不慎将图书遗失时对遗失图书进行赔偿的依据。表的具体结果如下:表4-1图书信息表tb_bookinfo字段名称数据类型字段长度是否为空说明barcodevarchar30NoKeybooknamevarchar70No authorvarchar30Yes作者translatorvarchar30Yes译者ISBNvarchar20Nopricefloat8,2No 图书价格bookcasevarchar10No图书所在书架pressvarchar70No 出版社intimedateNo 图书入库时间operatorvarchar30No 操作员pageint10Yes 图书页码4.2.2 图书类型信息表结构设计该表的设计主要是方便对图书的分类,和对图书的查询,在实际应用中图书管理员就是根据图书类型的不同将之分列在不同的书架,以方便读者的借阅寻找,其中可借阅天数项设置了不同类型图书的借阅期限,可根据图书的具体情况进行不同的维护管理,表的具体结构设计如下:表4-2图书类型信息表tb_booktype字段名称数据类型字段长度是否为空说明ID int10NoKeybooknamevarchar30No daysint10No 可借阅天数4.2.3 读者信息表结构设计读者信息表的设计是为了图书馆管理员对读者进行管理,其中读者ID,不同类型证件的号码都是唯一的,是读者在借阅图书时需要输入对读者身份进行识别的信息,读者邮件电话等信息室为了与读者进行联系,读者类型信息决定了读者一次性可借阅的图书的数量,注册时间可用于查询计算读者身份有效的期限,操作员是为了便于对信息才操作的查询。表的具体结构设计如下:表4-3读者信息表tb_reader字段名称数据类型字段长度是否为空说明Idint10NoKeynamevarchar20No sexvarchar4No barcodevarchar30No readertypevarchar11No读者类型telvarchar20Yes 电话e-mailvarchar100Yes paperTypevarchar10No 证件类型PaperNO.Varchar20No 证件号码birthdaydateYes intimedateNo 登记时间operatorvarchar30No 操作员4.2.4 读者类型信息表结构设计此表的设计是为了对不同身份的读者进行分类方便读者的管理,其中可借阅图书数量的属性设定,是根据读者需求的不同对起权限进行的设置,用于规定不同类型读者一次可借阅的图书数量,表的具体结构设计如下:表4-4 读者类型信息表tb_readertype字段名称数据类型字段长度是否为空说明ID int10NoKeyreadernamevarchar50No numberint4No 可借图书本数4.2.5图书借阅信息表结构设计该表的设计是用于对读者借阅图书进行管理,表中图书ID属性是对借阅图书的唯一性识别标识,读者ID号记录借阅的相应读者,结出时间记录了相应的归还时间,以及归还时是否超时,操作员是对借阅进行操作的人员的记录方便日后的查询,是否归还标识可查询当起读书是否被归还,表的具体结构设计如下:表 4-5图书借阅信息表 tb_borrow字段名称数据类型字段长度是否为空说明ID int10NoKeyreaderIDvarchar10No bookIDint10No borrowTimedateNo 结出时间backTimedateNo 应归还时间operatorvarchar30No 操作员ifbacktinyint1No 是否归还4.2.6 图书归还信息表结构设计与图书借阅信息表形成对照的是图书归还信息表,该表的设计除了像上表一样把借阅的图书与相应的借阅者进行对应的联系以外还记录了读者应归还图书的时间,以此判断读者的借阅是否超时,表的具体结构设计如下:表 4-6图书归还信息表tb_giveback字段名称数据类型字段长度是否为空说明ID int10NoKeyreaderIDvarchar11No bookIDint11No backTimedateNo 归还时间operatorvarchar30No 操作员4.2.7用户信息表结构设计该表的设计用于记录图书管理系统用户的信息,方便对用户的管理,表中包括用户ID 和用户的登录密码,表的具体结构设计如下:表4-7系统用户信息表tb_user字段名称数据类型字段长度是否为空说明ID int10NoKeynamevarchar30No passwordvarchar30No 4.2.8图书馆信息表结构设计该表包含了图书馆的名称,地址,联系方式,建馆时间,简介等信息,是对图书馆基本属性信息的描述,方便外界读者对图书馆的了解,表的具体结构设计如下:表4-8图书馆信息表 tb_library字段名称数据类型字段长度是否为空说明ID int10NoKeylibrarynamevarchar50No curatorvarchar10No telvarchar20Yes 结出时间addressvarchar100No 应归还时间e-mailvarchar100No urlvarchar100No 图书馆网站createDatevarcharNo 创馆时间introducetextYes 图书馆简介4.2.9办证参数信息表结构设计该表是为校外人员设计的,对于需要到图书馆进行借阅的读者可办理临时的借阅证用于对图书的借阅凭证,表中包含了办证所需费用以及证件的有效期限,表的具体结果设计如下:表4-9图书证参数信息表tb_parameter字段名称数据类型字段长度是否为空说明ID int10NoKeyCostint10No 办证费用validityint10No 有效时间第五章 详细设计本次课程设计主要负责管理员模块。主要包括管理员登陆,查看管理员列表,添加管理员信息,管理员权限设置,管理员删除和口令能更改6个功能。管理员模块的框架如图5-2管理员模块框架图所示。开始 添加管理员更改口令删除管理员权限设置管理员列表是否通过验证管理员登录否是图5-2管理员模块框架图第六章 编码6.1编写管理员模块的ActionForm类在管理员模块中,涉及到的数据表是tb_manager和tb_purview,其中管理员信息表中保存的是管理员名称和密码等信息。权限表中保存的是各管理员的权限信息,这两个表通过各自的id字段相关联。通过这两个表可以获得完整的管理员信息,根据这些信息可以得出管理员模块的ActionForm类。管理员模块的ActionForm类的名称为ManagerFrom.java代码如下:package com.actionForm;import org.apache.struts.action.ActionForm;public class ManagerForm extends ActionForm private Integer id=new Integer(-1); /管理员ID号 private String name=; /管理员名称 private String pwd=; /管理员密码 private int sysset=0; /系统设置权限 private int readerset=0; /读者管理权限 private int bookset=0; /图书管理权限 private int borrowback=0; /图书借还权限 private int sysquery=0; /系统查询权限 public Integer getId() return id; public void setId(Integer id) this.id = id; public void setPwd(String pwd) this.pwd = pwd; public void setName(String name) = name;public String getName() return name; public String getPwd() return pwd; public void setSysset(int sysset) this.sysset=sysset;public int getSysset() return sysset; public int getReaderset() return readerset; public void setReaderset(int readerset) this.readerset=readerset; public void setBookset(int bookset) this.bookset=bookset; public int getBookset() return bookset; public void setBorrowback(int borrowback) this.borrowback=borrowback; public int getBorrowback() return borrowback; public void setSysquery(int sysquery) this.sysquery=sysquery; public int getSysquery() return sysquery; 6.2编写管理员模块Action实现类管理员功能模块的Action类实现类继承了Action类,在该类中,首先需要在该类的构造方法中实例化管理员模块的ManagerDAO类。Action实现类的主要方法是execute(),该方法会被自动执行,本身没有具体事务,是根据HttpservletRequest的个体Parameter()方法获取的action参数值执行相应方法的。package com.action;import org.apache.struts.action.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.actionForm.ManagerForm;import com.dao.ManagerDAO;import javax.servlet.http.HttpSession;public class Manager extends Action private ManagerDAO managerDAO = null;public Manager() this.managerDAO = new ManagerDAO();public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) String action = request.getParameter(action);System.out.println(获取的查询字符串: + action);if (action = null | .equals(action) return mapping.findForward(error); else if (login.equals(action) return managerLogin(mapping, form, request, response); else if (managerAdd.equals(action) return managerAdd(mapping, form, request, response); else if (managerQuery.equals(action) return managerQuery(mapping, form, request, response); else if (managerModifyQuery.equals(action) return managerModifyQuery(mapping, form, request, response); else if (managerModify.equals(action) return managerModify(mapping, form, request, response); else if (managerDel.equals(action) return managerDel(mapping, form, request, response); else if (querypwd.equals(action) return pwdQuery(mapping, form, request, response); else if (modifypwd.equals(action) return modifypwd(mapping, form, request, response);request.setAttribute(error, 操作失败!);return mapping.findForward(error);/ 管理员身份验证public ActionForward managerLogin(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) ManagerForm managerForm = (ManagerForm) form;managerForm.setName(managerForm.getName();managerForm.setPwd(managerForm.getPwd();int ret = managerDAO.checkManager(managerForm);System.out.print(验证结果ret的值: + ret);if (ret = 1) HttpSession session = request.getSession();session.setAttribute(manager, managerForm.getName();return mapping.findForward(managerLoginok); else request.setAttribute(error, 您输入的管理员名称或密码错误!);return mapping.findForward(error);/ 查询管理员信息private ActionForward managerQuery(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) String str = null;request.setAttribute(managerQuery, managerDAO.query(str);return mapping.findForward(managerQuery);/ 添加管理员信息private ActionForward managerAdd(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) ManagerForm managerForm = (ManagerForm) form;managerForm.setName(managerForm.getName(); / 获取设置管理员名称managerForm.setPwd(managerForm.getPwd(); / 获取并设置密码int ret = managerDAO.insert(managerForm); / 调用添加管理员信息if (ret = 1) return mapping.findForward(managerAdd); / 转到管理员信息添加成功页面 else if (ret = 2) request.setAttribute(error, 该管理员信息已经添加!); / 将错误信息保存到error参数中return mapping.findForward(error); / 转到错误提示页面 else request.setAttribute(error, 添加管理员信息失败!); / 将错误信息保存到error参数中return mapping.findForward(error); / 转到错误提示页面/ 查询修改管理员信息private ActionForward managerModifyQuery(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) ManagerForm managerForm = (ManagerForm) form;managerForm.setId(Integer.valueOf(request.getParameter(id);/获取并设置管理ID号System.out.print(查询到的id: + request.getParameter(id);request.setAttribute(managerQueryif, managerDAO.query_update(managerForm);return mapping.findForward(managerQueryModify);/转到权限设置成功页面/ 修改密码时查询private ActionForward pwdQuery(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) ManagerForm managerForm = (ManagerForm) form;HttpSession session = request.getSession();String manager = (String) session.getAttribute(manager);managerForm.setName(manager);System.out.print(查询到的manager: + manager);request.setAttribute(pwdQueryif, managerDAO.query_pwd(managerForm);return mapping.findForward(pwdQueryModify);/ 修改管理员信息private ActionForward managerModify(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) ManagerForm managerForm = (ManagerForm) form;managerForm.setId(managerForm.getId();/获取并设置管理员ID号managerForm.setName(managerForm.getName();/获取并设置管理员名称managerForm.setPwd(managerForm.getPwd();/获取并设置管理员密码managerForm.setSysset(managerForm.getSysset();/获取并设置系统设置权限managerForm.setReaderset(managerForm.getReaderset();/获取并设置读者管理权限managerForm.setBookset(managerForm.getBookset();/获取并设置图书管理权限managerForm.setBorrowback(managerForm.getBorrowback();/获取并设置图书借还权限managerForm.setSysquery(managerForm.getSysquery();/获取并设置系统查询权限int ret = managerDAO.update(managerForm);/调用设置管理员权限的方法if (ret = 0) request.setAttribute(error, 设置管理员权限失败!);/保存错误提示信息到error参数中return mapping.findForward(error);/转到错误提示页面 else return mapping.findForward(managerModify);/转到权限设置成功页面/ 删除管理员信息private ActionForward managerDel(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) ManagerForm managerForm = (ManagerForm) form;managerForm.setId(Integer.valueOf(request.getParameter(id);/获取并设置管理员ID号int ret = managerDAO.delete(managerForm);/调用删除信息的方法delete()if (ret = 0) request.setAttribute(error, 删除管理员信息失败!);/保存错误提示信息到error参数中return mapping.findForward(error);/转到错误提示页面 else return mapping.findForward(managerDel);/转到删除管理员信息成功页面/ 修改管理员密码private ActionForward modifypwd(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) ManagerForm managerForm = (ManagerForm) form;managerForm.setName(managerForm.getName();managerForm.setPwd(managerForm.getPwd();int ret = managerDAO.updatePwd(managerForm);if (ret = 0) request.setAttribute(error, 更改口令失败!);return mapping.findForward(error); else return mapping.findForward(pwdModify);6.3编写管理员ManagerDAO类 package com.dao;import com.core.*;import java.util.*;import com.actionForm.ManagerForm;import java.sql.*;import java.*;public class ManagerDAO private ConnDB conn = new ConnDB(); /查询数据 public Collection query(String queryif) ManagerForm managerForm = null; Collection managercoll = new ArrayList(); String sql = ; if (queryif = null | queryif = | queryif = all) /当参数queryif的值为null、all或空时查询全部数据 sql = select m.*,p.sysset,p.readerset,p.bookset,p.borrowback,p.sysquery from tb_manager m left join tb_purview p on m.id=p.id; else sql=select m.*,p.sysset,p.readerset,p.bookset,p.borrowback,p.sysquery from tb_manager m left join tb_purview p on m.id=p.id where =+queryif+;/此处需要应用左连接 ResultSet rs = conn.executeQuery(sql);/执行SQL语句 try /捕捉异常信息 while (rs.next() managerForm = new ManagerForm(); managerForm.setId(Integer.valueOf(rs.getString(1); managerForm.setName(rs.getString(2); managerForm.setPwd(rs.getString(3); managerForm.setSysset(rs.getInt(4); managerForm.setReaderset(rs.getInt(5); managerForm.setBookset(rs.getInt(6); managerForm.setBorrowback(rs.getInt(7); managerForm.setSysquery(rs.getInt(8); managercoll.add(managerForm);/将查询结果保存到Collection集合中 catch (SQLException e) return managercoll;/返回查询结果 /*/ /查询权限信息 public ManagerForm query_p(String str) ManagerForm managerForm1 = null; String sql = select m.*,p.sysset,p.readerset,p.bookset,p.borrowback,p.sysquery from tb_manager m left join tb_purview p on m.id=p.id where =+str+; ResultSet rs = conn.executeQuery(sql); try while (rs.next() managerForm1 = new ManagerForm(); managerForm1.setId(Integer.valueOf(rs.getString(1); managerForm1.setName(rs.getString(2); managerForm1.setPwd(rs.getString(3); managerForm1.setSysset(rs.getInt(4); managerForm1.setReaderset(rs.getInt(5); managerForm1.setBookset(rs.getInt(6); managerForm1.setBorrowback(rs.getInt(7); managerForm1.setSysquery(rs.getInt(8); catch (SQLException ex) ex.printStackTrace(); finally conn.close(); return managerForm1; /管理员身份验证 public int checkManager(ManagerForm mana
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年旋挖钻机考试题目及答案
- 2025年厂商培训试题及答案
- 2025年工业机器人维护保养实操技能测试试题及答案
- 2025年T电梯修理证考试题库及答案
- 外贸进口合同范本
- 缺氧性垂体功能紊乱-洞察及研究
- 安全员考试题及答案
- 高三音乐集训合同模板(3篇)
- 安全生产考试题及答案2025
- 高空外墙施工合同范本(3篇)
- 民用建筑供暖通风与空气调节设计规范-条文解释
- ICU抗凝药物合理应用
- 2024年院感安全注射培训
- 人工智能助力企业创新发展
- 微生物实验室病原微生物评估报告
- 穴位埋线疗法在代谢性疾病中的应用及效果评估
- 学校各功能室使用情况登记表
- 气瓶检验员考试题
- 室内设计施工图图例与规范-课件
- 22G101系列图集常用点全解读
- 外研版初中英语单词总表(7~9)年级
评论
0/150
提交评论