图书管理系统详细设计

    1. 需求概述

按照需求分析文档中的规格要求,使用条形码扫描器进书、借书、还书,使得信息传递准确、流畅。同时,系统最大限度地实现易安装,易维护性,易操作性,运行稳定,安全可靠。

    1. 软件结构

系统由3大模块,6小模块组成:

序号 编号 名称

  1. 01 登陆模块

  2. 02 管理模块

  3. 031 图书信息查询模块

  4. 032 学生信息查询模块

  5. 021 入库管理模块

  6. 022 学生借书模块

  7. 023 学生还书模块

  8. 024 图书注销模块

  9. 040 基础信息设置

  10. 程序描述

    1. 01登陆模块

具体格式见下表:

|--------------|------------|--------------|--------------|------------|---------------|
| 功能编号 | 01 | 功能名称 | 登陆模块 | 内容 | 功能流程图 |
| 所属业务 | 图书馆管理 | | 所属项目 | 图书馆管理系统 | |
| 编写人 | 陈新光 | 完成时间 | 2007-11-26 | 页码 | 第5页 |

      1. 功能流程图

功能流程图如下图所示。

需要说明的问题:

  1. 录入项检测使用javascript实现(各项必须非空)
  2. 登陆.jsp页面也包含查询按钮,在此的登陆.jsp提交的数据只是用户名和密码。
    1.
    1. 功能描述
    2. 功能类型:查询数据
    3. 功能描述:提高系统的安全性
    4. 前提业务:无
    5. 后继业务:02 (管理模块)
    6. 功能约束:权限约束
    7. 约束描述:
    8. 操作权限:图书馆管理员
      1. 界面设计
      1. 基础信息处理

动作说明:

|--------------|--------------|--------------------------|
| 动作编号 | 动作名称 | 动作描述 |
| A01 | 登陆 | 点击登陆按钮 提交数据到登陆数据处理.jsp页面 |
| A02 | 重至 | 点击退重至按钮 将当前信息恢复原先状态 |
| A03 | 图书信息查询 | 点击 将页面转至到图书信息查询.jsp页面 |
| A04 | 学生信息查询 | 点击 将页面转至学生信息查询.jsp页面 |
| A05 | 基础信息 | 点击 将显示基础信息 |

      1. 数据要求
        1. 功能类型:数据查询
        2. 数据描述:

页面显示录入字段如下:

|---------------|------------|--------------|---------------|--------------|--------------|
| 字段名称 | 长度 | 录入方式 | 是否非空项 | 数据检验 | 默认显示 |
| 管理员ID | 10 | 文本框 | Y | N | |
| 管理员密码 | 15 | password | Y | N | |

      1. 登陆数据处理.jsp的内部逻辑

登陆数据处理:

关键点两点:1,数据库连接;2,记录登陆信息及信息处理;

  1. 数据库连接:

如下:

public class lib_system_Conn extends Object{

public lib_system_Conn(){

}

private Connection conn = null ;

private ResultSet rs;

String re = "";

//设置你的数据库ip

String dbip = "127.0.0.1";

//设置你的数据库用户名和密码:

String use = "root";

String pass = "860409";

//设置您的数据库名

String dbName = "lib_system";

public java.sql.Connection getConn(){

try {

Class.forName ("org.gjt.mm.mysql.Driver").newInstance();

String url ="jdbc:mysql://"+dbip+":3306/"+dbName+"?user="+use+"&password="+pass+"&useUnicode=true&characterEncoding=GBK" ;

conn= DriverManager.getConnection (url);

}

catch (Exception e){

e.printStackTrace();

}

return this .conn ;

}

}

//在Mysql建立lib_system数据库,之后将与数据操作相关数据与该数据库相连;

  1. 记录登陆信息及信息处理:

当用户点击"登陆"按钮之后,数据将提交到登陆数据处理.jsp页面。 取得帐号密码这两个从页面传入的值,然后跟数据库当中管理员表中的账号和密码比较。如果正确的话,在JSP的SESSION中存入一个标记属性,表示当前已经有管理员登陆了。处理完毕后,跳转到管理页面,如果失败,则提示登陆失败,并重新进入到登陆页面。

具体的逻辑如下:

<%

String username=ParamUtil.getString(request,"admin_ID");

//取得用户名

String password=ParamUtil.getString(request,"admin_password");

//取得密码

String erroMsg="";

//错误码

if(username!=null&&password!=null)

try

{

SkinUtil.login(request,response,admin_ID,admin_password);

//在JSP的session中存如一个标记属性,表示当前已经有管理员登陆了

Session.setAttribute("admin_ID",admin_ID);

response.sendRedirect("login_process.jsp");

}

catch(UserNotFoundException e)

{

erroMsg="错误的用户名和密码";

response.sendRedirect("login_process.jsp?"+response.encodeURL(erroMsg));

}

else{

out.println("请填写好你的个人信息!");

}

%>

      1. 存储分配

管理员表:(admin)

|------------|-----------------------|------------|------------|------------|--------------|-------------|-------------|------------|------------|
| 序号 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 说明 |
| 1 | (admin_ID)管理员ID | Int | 10 | | | | | √ | |
| 2 | (admin_password)管理员密码 | Char | 15 | | | | | | |
| 3 | (admin_quanxian)权限 | Nvarchar | 15 | | | | | | |

    1. 02管理模块

具体格式见下表

|--------------|------------|--------------|--------------|------------|---------------|
| 功能编号 | 02 | 功能名称 | 管理模块 | 内容 | 功能流程图 |
| 所属业务 | 图书馆管理 | | 所属项目 | 图书馆管理系统 | |
| 编写人 | 陈新光 | 完成时间 | 2007-11-26 | 页码 | 第8页 |

      1. 功能流程图

功能流程图如下所示:

需要说明的问题:

在选择相应的业务时,需要在当前的页面显示;并且在管理页面内,默认显示图书查询页面。

      1. 功能描述
  1. 功能类型:其他
  2. 功能概述:总体归纳图书馆管理功能
  3. 前提业务:登陆模块(01)
  4. 后续业务:021,022,023,024,03
  5. 功能约束:权限约束
  6. 约束描述:
  7. 操作权限:图书馆管理人员
    1.
    1. 界面设计
    2. 基本信息处理

动作说明如下:

|--------------|--------------|----------------------|
| 动作编号 | 动作名称 | 动作描述 |
| A01 | 入库管理 | 点击按钮 将页面转至入库管理.jsp页面 |
| A02 | 学生借书 | 点击按钮 将页面转至学生借书.jsp页面 |
| A03 | 学生还书 | 点击按钮 将页面转至学生还书.jsp页面 |
| A04 | 图书注销 | 点击按钮 将页面转至图书注销.jsp页面 |
| A05 | 图书查询 | 点击按钮 将页面转至图书查询.jsp页面 |

    1. 数据要求

功能类型:其他

    1. 031图书信息查询模块

具体格式如下:

|--------------|-------------|--------------|------------------|------------|---------------|
| 功能编号 | 031 | 功能名称 | 图书信息查询模块 | 内容 | 功能流程图 |
| 所属业务 | 图书馆管理 | | 所属项目 | 图书馆管理系统 | |
| 编写人 | 陈新光 | 完成时间 | 2007-11-26 | 页码 | 第10页 |

      1. 功能流程图

功能流程图如下图:

需要说明的问题:

录入项检测使用javascript来实现(各项非空);

操作权限:面向所有用户

      1. 功能描述
  1. 功能类型:查询数据
  2. 功能概述:显示查询结果
  3. 前提业务:无
  4. 后继业务:
  5. 功能约束:没有约束;
  6. 约束描述:
  7. 操作权限:面向所有用户
    1.
    1. 界面设计
  1. 基础信息处理

下表是动作说明:

|--------------|--------------|--------------------------|
| 动作编号 | 动作名称 | 动作描述 |
| A01 | 确定 | 点击按钮 提交数据到图书查询数据处理.jsp页面 |
| A02 | 学生信息查询 | 点击按钮 将页面转至学生信息查询.jsp页面 |

  1. 数据要求
    1.
    1. 功能类型:数据查询
    2. 数据描述:

页面显示字段见下表:

|-----------------|------------|--------------|---------------|--------------|--------------|
| 字段名称 | 长度 | 录入方式 | 是否非空项 | 数据检验 | 默认显示 |
| 请选择查询类型 | 20 | 下拉列表 | Y | N | |
| 请输入查询内容 | 200 | 文本框 | Y | N | |

  1. 图书信息查询的输出项

|------|
| 书名 |
| 图书类型 |
| 作者 |
| 译者 |
| ISBN |
| 出版社 |
| 价格 |
| 书架名称 |
| 现存量 |
| 简介 |
| 书名 |
| 图书类型 |

      1. 模块内部逻辑
  1. Search.jsp用于显示界面的内容,给用户显示一个查询接口
  2. Lib_query.jsp用来调度所有的页面,它根据传入的参数来决定包含哪一个jsp页面来显示内容;

在lib_query.jsp页面中,

它根据传入的参数来决定包含哪一个jsp页面来显示内容;则可以通过<jsp:include page="<%= ......%>"/>,利用jsp:include标签来被动态加载发送到相应页面;

  1. chuli.jsp 用来处理数据查询和显示查询到的结果列表。

在这个页面中,数据要求是以列表的形式显示到输出页面。

由于查询到的结果可能过多,所以采用分页形式显示;

对于分页功能的内部逻辑:

  1. View.jsp用来显示查询到的图书的各项属性。
    1.
    1. 存储分配

图书目录文件(Book):

|------------|-----------------|------------|------------|------------|--------------|-------------|-------------|------------|------------|
| 序号 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 说明 |
| 1 | (BookID)图书编号 | Int | 10 | | | 1 | | √ | 自动编号 |
| 2 | (TXM)条形码 | nvarchar | 20 | | | | | | |
| 3 | (Title)书名 | nvarchar | 200 | | | | | | |
| 4 | (TSLX)图书类型 | Nvarchar | 50 | | | | √ | | |
| 5 | (Author)作者 | Nvarchar | 20 | | | | √ | | |
| 6 | (Translator)译者 | Nvarchar | 20 | | | | √ | | |
| 7 | (ISBN)ISBN | Nvarchar | 20 | | | | | | |
| 8 | (CBS)出版社 | Nvarchar | 30 | | | | √ | | |
| 10 | (SJMC)书架名称 | Nvarchar | 20 | | | | √ | | |
| 11 | (XCL)现存量 | Smallint | 2 | | | | √ | | |
| 12 | (KCZL)库存总量 | Smallint | 2 | | | | √ | | |
| 13 | (RKSJ)入库时间 | Datatime | | | | | √ | | |
| 14 | (CZY)操作员 | Nvarchar | 10 | | | | √ | | |
| 15 | (JJ)简介 | Nvarchar | 200 | | | | √ | | |
| 16 | (JCCS)借出次数 | Smallint | 2 | | | | √ | | |
| 17 | (SFzhuxiao)是否注销 | Nvarchar | 2 | | | | √ | | |
| 18 | (BookZT)图书状态 | nvarchar | 50 | | | | √ | | |

借书文件表(JSWJB):

|------------|--------------|------------|------------|------------|--------------|-------------|-------------|------------|------------|------------|
| 序号 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 外键 | 说明 |
| 1 | (JYID)借阅编号 | Int | 10 | | | 1 | | √ | | 自动编号 |
| 2 | (BookID)图书编号 | Int | 10 | | | | | | √ | |
| 3 | (StuID)学生编号 | Int | 10 | | | | | | √ | |
| 4 | (JYSJ)借阅时间 | Datatime | 8 | | | | √ | | | |
| 5 | (DQSJ)到期时间 | Datatime | 8 | | | | √ | | | |
| 6 | (XJCS)续借次数 | Smallint | 2 | | | | √ | | | |
| 7 | (CZY)操作员 | Nvarchar | 10 | | | | √ | | | |
| 8 | (ZT)状态 | navarchar | 50 | | | | √ | | | |

    1. 032学生信息查询模块

具体格式如下:

|--------------|-------------|--------------|------------------|------------|---------------|
| 功能编号 | 032 | 功能名称 | 学生信息查询模块 | 内容 | 功能流程图 |
| 所属业务 | 图书馆管理 | | 所属项目 | 图书馆管理系统 | |
| 编写人 | 陈新光 | 完成时间 | 2007-11-26 | 页码 | 第12页 |

      1. 功能流程图

功能流程图如下图:

需要说明的问题:

录入项检测使用javascript来实现(各项非空);

操作权限:面向所有用户

      1. 功能描述
  1. 功能类型:查询数据
  2. 功能概述:显示查询结果
  3. 前提业务:无
  4. 后继业务:
  5. 功能约束:没有约束;
  6. 约束描述:
  7. 操作权限:面向所有用户
    1.
    1. 界面设计
  1. 基础信息处理

下表是动作说明:

|--------------|--------------|--------------------------|
| 动作编号 | 动作名称 | 动作描述 |
| A01 | 确定 | 点击按钮 提交数据到图书查询数据处理.jsp页面 |
| A02 | 图书信息查询 | 点击按钮 将页面转至图书信息查询.jsp页面 |

  1. 数据要求
    1.
    1. 功能类型:数据查询
    2. 数据描述:

页面显示字段见下表:

|---------------|------------|--------------|---------------|--------------|--------------|
| 字段名称 | 长度 | 录入方式 | 是否非空项 | 数据检验 | 默认显示 |
| 请输入学号 | 10 | 文本框 | Y | N | |

  1. 学生信息查询的输出项

|------|
| 学生学号 |
| 姓名 |
| 性别 |
| 生日 |
| 证件号码 |
| 联系电话 |
| 登记日期 |
| 有效期至 |
| 已借书数 |

      1. 模块内部逻辑
  1. Search.jsp用于显示界面的内容,给用户显示一个查询接口
  2. Index.jsp用来调度所有的页面,它根据传入的参数来决定包含哪一个jsp页面来显示内容;

在index.jsp页面中,

它根据传入的参数来决定包含哪一个jsp页面来显示内容;则可以通过<jsp:include page="<%= ......%>"/>,利用jsp:include标签来被动态加载发送到相应页面;

  1. List.jsp 用来显示查询到的结果列表。

  2. View.jsp用来显示查询到的学生的各项属性。

★★注释:学生信息查询模块与图书查询模块属于同一类功能。实现可以完全类似。

      1. 存储分配

学生文件:

|---------------------|------------|-------------|------------|------------|------------|--------------|-------------|-------------|------------|------------|
| 序号 | 字段 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 说明 |
| 1 | XSID | 学生编号 | Int | 10 | | | 1 | | √ | 自动编号 |
| 2 | Name | 姓名 | nvarchar | 10 | | | | | | |
| 3 | Sex | 性别 | nvarchar | 2 | | | | √ | | |
| 4 | ZJH | 证件号码 | nvarchar | 25 | | | | √ | | |
| 5 | LXDH | 联系电话 | nvarchar | 40 | | | | √ | | |
| 6 | DJRQ | 登记日期 | datetime | 8 | | | | √ | | |
| 7 | YXQZ | 有效期至 | datetime | 8 | | | | √ | | |
| 8 | YJSS | 已借书数 | smallint | 2 | | | | √ | | |
| 9 | RuleID | 学生规则ID | int | 10 | | | | | | |
| 1 0 | ZT | 是否挂失 | nvarchar | 2 | | | | √ | | |

借书文件:

|------------|-------------|------------|------------|------------|--------------|-------------|-------------|------------|------------|------------|
| 序号 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 外键 | 说明 |
| 1 | 借阅编号 | Int | 10 | | | 1 | | √ | | 自动编号 |
| 2 | 图书编号 | Int | 10 | | | | | | √ | |
| 3 | 学生编号 | Int | 10 | | | | | | √ | |
| 4 | 借阅时间 | Datatime | 8 | | | | √ | | | |
| 5 | 到期时间 | Datatime | 8 | | | | √ | | | |
| 6 | 续借次数 | Smallint | 2 | | | | √ | | | |
| 7 | 操作员 | Nvarchar | 10 | | | | √ | | | |
| 8 | 状态 | navarchar | 50 | | | | √ | | | |

其他的定制服务 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者

相关推荐
爱编程的鱼1 分钟前
OpenCV Python 绑定:原理与实战
c语言·开发语言·c++·python
这周也會开心8 分钟前
云服务器安装JDK、Tomcat、MySQL
java·服务器·tomcat
hrrrrb1 小时前
【Spring Security】Spring Security 概念
java·数据库·spring
小信丶1 小时前
Spring 中解决 “Could not autowire. There is more than one bean of type“ 错误
java·spring
sdgsdgdsgc1 小时前
Next.js企业级应用开发:SSR、ISR与性能监控方案
开发语言·前端·javascript
周杰伦_Jay2 小时前
【Java虚拟机(JVM)全面解析】从原理到面试实战、JVM故障处理、类加载、内存区域、垃圾回收
java·jvm
rit84324995 小时前
基于MATLAB的模糊图像复原
开发语言·matlab
fie88895 小时前
基于MATLAB的声呐图像特征提取与显示
开发语言·人工智能
程序员小凯6 小时前
Spring Boot测试框架详解
java·spring boot·后端
豐儀麟阁贵6 小时前
基本数据类型
java·算法