图书管理系统详细设计

    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 | | | | √ | | | |

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

相关推荐
C-SDN花园GGbond38 分钟前
【探索数据结构与算法】插入排序:原理、实现与分析(图文详解)
c语言·开发语言·数据结构·排序算法
迷迭所归处2 小时前
C++ —— 关于vector
开发语言·c++·算法
架构文摘JGWZ2 小时前
Java 23 的12 个新特性!!
java·开发语言·学习
leon6252 小时前
优化算法(一)—遗传算法(Genetic Algorithm)附MATLAB程序
开发语言·算法·matlab
拾光师3 小时前
spring获取当前request
java·后端·spring
aPurpleBerry3 小时前
neo4j安装启动教程+对应的jdk配置
java·neo4j
锦亦之22333 小时前
QT+OSG+OSG-earth如何在窗口显示一个地球
开发语言·qt
我是苏苏3 小时前
Web开发:ABP框架2——入门级别的增删改查Demo
java·开发语言
姜太公钓鲸2333 小时前
c++ static(详解)
开发语言·c++
菜菜想进步3 小时前
内存管理(C++版)
c语言·开发语言·c++