-
- 需求概述
按照需求分析文档中的规格要求,使用条形码扫描器进书、借书、还书,使得信息传递准确、流畅。同时,系统最大限度地实现易安装,易维护性,易操作性,运行稳定,安全可靠。
-
- 软件结构
系统由3大模块,6小模块组成:
序号 编号 名称
-
01 登陆模块
-
02 管理模块
-
031 图书信息查询模块
-
032 学生信息查询模块
-
021 入库管理模块
-
022 学生借书模块
-
023 学生还书模块
-
024 图书注销模块
-
040 基础信息设置
-
程序描述
- 01登陆模块
具体格式见下表:
|--------------|------------|--------------|--------------|------------|---------------|
| 功能编号 | 01 | 功能名称 | 登陆模块 | 内容 | 功能流程图 |
| 所属业务 | 图书馆管理 | | 所属项目 | 图书馆管理系统 | |
| 编写人 | 陈新光 | 完成时间 | 2007-11-26 | 页码 | 第5页 |
-
-
- 功能流程图
-
功能流程图如下图所示。
需要说明的问题:
- 录入项检测使用javascript实现(各项必须非空)
- 登陆.jsp页面也包含查询按钮,在此的登陆.jsp提交的数据只是用户名和密码。
1.- 功能描述
- 功能类型:查询数据
- 功能描述:提高系统的安全性
- 前提业务:无
- 后继业务:02 (管理模块)
- 功能约束:权限约束
- 约束描述:
- 操作权限:图书馆管理员
- 界面设计
-
-
- 基础信息处理
-
动作说明:
|--------------|--------------|--------------------------|
| 动作编号 | 动作名称 | 动作描述 |
| A01 | 登陆 | 点击登陆按钮 提交数据到登陆数据处理.jsp页面 |
| A02 | 重至 | 点击退重至按钮 将当前信息恢复原先状态 |
| A03 | 图书信息查询 | 点击 将页面转至到图书信息查询.jsp页面 |
| A04 | 学生信息查询 | 点击 将页面转至学生信息查询.jsp页面 |
| A05 | 基础信息 | 点击 将显示基础信息 |
-
-
- 数据要求
- 功能类型:数据查询
- 数据描述:
- 数据要求
-
页面显示录入字段如下:
|---------------|------------|--------------|---------------|--------------|--------------|
| 字段名称 | 长度 | 录入方式 | 是否非空项 | 数据检验 | 默认显示 |
| 管理员ID | 10 | 文本框 | Y | N | |
| 管理员密码 | 15 | password | Y | N | |
-
-
- 登陆数据处理.jsp的内部逻辑
-
登陆数据处理:
关键点两点:1,数据库连接;2,记录登陆信息及信息处理;
- 数据库连接:
如下:
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数据库,之后将与数据操作相关数据与该数据库相连;
- 记录登陆信息及信息处理:
当用户点击"登陆"按钮之后,数据将提交到登陆数据处理.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("请填写好你的个人信息!");
}
%>
-
-
- 存储分配
-
管理员表:(admin)
|------------|-----------------------|------------|------------|------------|--------------|-------------|-------------|------------|------------|
| 序号 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 说明 |
| 1 | (admin_ID)管理员ID | Int | 10 | | | | | √ | |
| 2 | (admin_password)管理员密码 | Char | 15 | | | | | | |
| 3 | (admin_quanxian)权限 | Nvarchar | 15 | | | | | | |
-
- 02管理模块
具体格式见下表
|--------------|------------|--------------|--------------|------------|---------------|
| 功能编号 | 02 | 功能名称 | 管理模块 | 内容 | 功能流程图 |
| 所属业务 | 图书馆管理 | | 所属项目 | 图书馆管理系统 | |
| 编写人 | 陈新光 | 完成时间 | 2007-11-26 | 页码 | 第8页 |
-
-
- 功能流程图
-
功能流程图如下所示:
需要说明的问题:
在选择相应的业务时,需要在当前的页面显示;并且在管理页面内,默认显示图书查询页面。
-
-
- 功能描述
-
- 功能类型:其他
- 功能概述:总体归纳图书馆管理功能
- 前提业务:登陆模块(01)
- 后续业务:021,022,023,024,03
- 功能约束:权限约束
- 约束描述:
- 操作权限:图书馆管理人员
1.- 界面设计
- 基本信息处理
动作说明如下:
|--------------|--------------|----------------------|
| 动作编号 | 动作名称 | 动作描述 |
| A01 | 入库管理 | 点击按钮 将页面转至入库管理.jsp页面 |
| A02 | 学生借书 | 点击按钮 将页面转至学生借书.jsp页面 |
| A03 | 学生还书 | 点击按钮 将页面转至学生还书.jsp页面 |
| A04 | 图书注销 | 点击按钮 将页面转至图书注销.jsp页面 |
| A05 | 图书查询 | 点击按钮 将页面转至图书查询.jsp页面 |
-
- 数据要求
功能类型:其他
-
- 031图书信息查询模块
具体格式如下:
|--------------|-------------|--------------|------------------|------------|---------------|
| 功能编号 | 031 | 功能名称 | 图书信息查询模块 | 内容 | 功能流程图 |
| 所属业务 | 图书馆管理 | | 所属项目 | 图书馆管理系统 | |
| 编写人 | 陈新光 | 完成时间 | 2007-11-26 | 页码 | 第10页 |
-
-
- 功能流程图
-
功能流程图如下图:
需要说明的问题:
录入项检测使用javascript来实现(各项非空);
操作权限:面向所有用户
-
-
- 功能描述
-
- 功能类型:查询数据
- 功能概述:显示查询结果
- 前提业务:无
- 后继业务:
- 功能约束:没有约束;
- 约束描述:
- 操作权限:面向所有用户
1.- 界面设计
- 基础信息处理
下表是动作说明:
|--------------|--------------|--------------------------|
| 动作编号 | 动作名称 | 动作描述 |
| A01 | 确定 | 点击按钮 提交数据到图书查询数据处理.jsp页面 |
| A02 | 学生信息查询 | 点击按钮 将页面转至学生信息查询.jsp页面 |
- 数据要求
1.- 功能类型:数据查询
- 数据描述:
页面显示字段见下表:
|-----------------|------------|--------------|---------------|--------------|--------------|
| 字段名称 | 长度 | 录入方式 | 是否非空项 | 数据检验 | 默认显示 |
| 请选择查询类型 | 20 | 下拉列表 | Y | N | |
| 请输入查询内容 | 200 | 文本框 | Y | N | |
- 图书信息查询的输出项
|------|
| 书名 |
| 图书类型 |
| 作者 |
| 译者 |
| ISBN |
| 出版社 |
| 价格 |
| 书架名称 |
| 现存量 |
| 简介 |
| 书名 |
| 图书类型 |
-
-
- 模块内部逻辑
-
- Search.jsp用于显示界面的内容,给用户显示一个查询接口
- Lib_query.jsp用来调度所有的页面,它根据传入的参数来决定包含哪一个jsp页面来显示内容;
在lib_query.jsp页面中,
它根据传入的参数来决定包含哪一个jsp页面来显示内容;则可以通过<jsp:include page="<%= ......%>"/>,利用jsp:include标签来被动态加载发送到相应页面;
- chuli.jsp 用来处理数据查询和显示查询到的结果列表。
在这个页面中,数据要求是以列表的形式显示到输出页面。
由于查询到的结果可能过多,所以采用分页形式显示;
对于分页功能的内部逻辑:
- View.jsp用来显示查询到的图书的各项属性。
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 | | | | √ | | | |
-
- 032学生信息查询模块
具体格式如下:
|--------------|-------------|--------------|------------------|------------|---------------|
| 功能编号 | 032 | 功能名称 | 学生信息查询模块 | 内容 | 功能流程图 |
| 所属业务 | 图书馆管理 | | 所属项目 | 图书馆管理系统 | |
| 编写人 | 陈新光 | 完成时间 | 2007-11-26 | 页码 | 第12页 |
-
-
- 功能流程图
-
功能流程图如下图:
需要说明的问题:
录入项检测使用javascript来实现(各项非空);
操作权限:面向所有用户
-
-
- 功能描述
-
- 功能类型:查询数据
- 功能概述:显示查询结果
- 前提业务:无
- 后继业务:
- 功能约束:没有约束;
- 约束描述:
- 操作权限:面向所有用户
1.- 界面设计
- 基础信息处理
下表是动作说明:
|--------------|--------------|--------------------------|
| 动作编号 | 动作名称 | 动作描述 |
| A01 | 确定 | 点击按钮 提交数据到图书查询数据处理.jsp页面 |
| A02 | 图书信息查询 | 点击按钮 将页面转至图书信息查询.jsp页面 |
- 数据要求
1.- 功能类型:数据查询
- 数据描述:
页面显示字段见下表:
|---------------|------------|--------------|---------------|--------------|--------------|
| 字段名称 | 长度 | 录入方式 | 是否非空项 | 数据检验 | 默认显示 |
| 请输入学号 | 10 | 文本框 | Y | N | |
- 学生信息查询的输出项
|------|
| 学生学号 |
| 姓名 |
| 性别 |
| 生日 |
| 证件号码 |
| 联系电话 |
| 登记日期 |
| 有效期至 |
| 已借书数 |
-
-
- 模块内部逻辑
-
- Search.jsp用于显示界面的内容,给用户显示一个查询接口
- Index.jsp用来调度所有的页面,它根据传入的参数来决定包含哪一个jsp页面来显示内容;
在index.jsp页面中,
它根据传入的参数来决定包含哪一个jsp页面来显示内容;则可以通过<jsp:include page="<%= ......%>"/>,利用jsp:include标签来被动态加载发送到相应页面;
-
List.jsp 用来显示查询到的结果列表。
-
View.jsp用来显示查询到的学生的各项属性。
★★注释:学生信息查询模块与图书查询模块属于同一类功能。实现可以完全类似。
-
-
- 存储分配
-
学生文件:
|---------------------|------------|-------------|------------|------------|------------|--------------|-------------|-------------|------------|------------|
| 序号 | 字段 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 说明 |
| 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 | | | | √ | | | |
其他的定制服务 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者