图书管理系统详细设计

news2024/10/2 6:29:10
    1. 需求概述

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

    1. 软件结构

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

序号 编号 名称

  1. 01     登陆模块
  2. 02     管理模块
  3. 031 图书信息查询模块
  4. 032 学生信息查询模块
  5. 021 入库管理模块
  6. 022 学生借书模块
  7. 023 学生还书模块
  8. 024 图书注销模块
  9. 040 基础信息设置


  1. 程序描述
    1.  01登陆模块

具体格式见下表:

功能编号

01

功能名称

登陆模块

内容

功能流程图

所属业务

图书馆管理

所属项目

图书馆管理系统

编写人

陈新光

完成时间

2007-11-26

页码

第5页

      1. 功能流程图

功能流程图如下图所示。

需要说明的问题:

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

动作说明如下:

动作编号

动作名称

动作描述

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. 基础信息处理

下表是动作说明:

动作编号

动作名称

动作描述

A01

确定

点击按钮 提交数据到图书查询数据处理.jsp页面

A02

学生信息查询

点击按钮 将页面转至学生信息查询.jsp页面

  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. 存储分配

图书目录文件(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. 基础信息处理

下表是动作说明:

动作编号

动作名称

动作描述

A01

确定

点击按钮 提交数据到图书查询数据处理.jsp页面

A02

图书信息查询

点击按钮 将页面转至图书信息查询.jsp页面

  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 用来显示查询到的结果列表。

  1. 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

10

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2065598.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何让虚拟机识别到宿主机的USB设备

我的实验环境&#xff1a; Windows宿主机VirtualBox虚拟化软件一个Linux虚机一个8G的USB磁盘 首先要让虚拟机能看到宿主机的USB设备&#xff0c;这是在VirtualBox中设置的。 选中虚机&#xff0c;右键选择“设置”菜单&#xff0c;再单击“USB设备”&#xff1a; 选中“启用…

Python | Leetcode Python题解之第365题水壶问题

题目&#xff1a; 题解&#xff1a; class Solution:def canMeasureWater(self, x: int, y: int, z: int) -> bool:if x y < z:return Falseif x 0 or y 0:return z 0 or x y zreturn z % math.gcd(x, y) 0

Alembic:python中数据库迁移的瑞士军刀

Alembic 简介 Alembic 是由 SQLAlchemy 的创始人 Mike Bayer 设计的一个数据库迁移工具。它不仅支持自动迁移脚本生成&#xff0c;还允许开发者手动编辑迁移脚本来满足特定的需求。Alembic 通过提供一个环境来跟踪数据库模式的变更历史&#xff0c;确保数据库的版本与应用代码…

推荐一个完全自由的目录设计网站

引言 如果我们能通过网站出一本书&#xff0c;这将是一件很酷的事。 事实上&#xff0c;我们通过网站发布知识&#xff0c;最常见的是写博客。 这二者有什么区别呢&#xff1f; 书本的知识内容有很强的逻辑性、系统性。而博客是随心所欲的&#xff0c;一时灵感来了就写一篇…

关闭Chrome快捷键

chrome是没办法改变快捷键以及屏蔽快捷键的&#xff0c;需要安装插件&#xff1a;shortkey 保证插件是开启的 不用做其他设置所有快捷键已被关闭

OAPT:用于双JPEG伪影去除的偏移感知分区的Transformer

OAPT: Offset-Aware Partition Transformer for Double JPEG Artifacts Removal https://github.com/QMoQ/OAPT 2408.11480 (arxiv.org) 基于深度学习的方法在去除单个JPEG伪影任务中表现出了显著的性能。然而&#xff0c;现有方法在处理双重JPEG图像时往往会退化&#xff0c…

127-隧道搭建穿透上线FRPNPSNgrok

使用了几种工具将会一一介绍 ngrokru 项目地址&#xff1a;Sunny-Ngrok内网转发内网穿透 - 国内内网映射服务器 这个网站现在要实名认证&#xff08;还得花2元解锁&#xff09; 用这种在线的网站怎么说呢&#xff0c;真不如自己买个云服务器用下面的frp&#xff0c;毕竟流量…

Python3:多行文本内容转换为标准的cURL请求参数值

背景 在最近的工作中&#xff0c;经常需要处理一些接口请求的参数&#xff0c;参数来源形式很多&#xff0c;可能是Excel、知识库文档等&#xff0c;有些数据形式比较复杂&#xff0c;比如多行或者包含很多不同的字符&#xff0c;示例如下&#xff1a; **客服质检分析指引** …

多个程序监听不同网卡的相同端口、相同网卡不同IP的相同端口

1 概述 一个主机上的多个程序监听同一个端口&#xff0c;是否一定存在冲突&#xff1f;如果是多网卡、单网卡多IP的情景下&#xff0c;多个程序是可以独立监听的。 2 多个程序监听不同网卡的相同端口 3 多个程序监听同一个网卡不同IP的相同端口 4 小结 多个程序监听同一个网…

生成式人工智能会导致人工智能崩溃吗

况可能很快就会发生变化。 从定义上讲&#xff0c;LLM 需要大量数据&#xff0c;而且所使用的数据集越来越大。根据缩放定律[2]&#xff0c;要提高性能&#xff0c;必须同时增加参数数量和训练标记数量&#xff08;后者被认为是最重要的因素&#xff09;。 这些数据集包含人类产…

0x03 ShowDoc 文件上传漏洞(CNVD-2020-26585)复现

参考&#xff1a;ShowDoc文件上传漏洞&#xff08;CNVD-2020-26585&#xff09;_showdoc漏洞-CSDN博客 一、fofa 搜索使用该工具的网站 网络空间测绘&#xff0c;网络空间安全搜索引擎&#xff0c;网络空间搜索引擎&#xff0c;安全态势感知 - FOFA网络空间测绘系统 "S…

ZMQ请求应答模型

案例一 这个案例的出处是ZMQ的官网。请求段发送Hello&#xff0c;应答端回复World。 ZMQ Request(client) #include <string> #include <iostream> #include <zmq.hpp>using namespace std; using namespace zmq; // 使用 zmq 命名空间int main() {// ini…

知识竞赛答题设备及答题方式有哪些

根据我们多年的知识竞赛承办经验&#xff0c;我来谈谈在知识竞赛中常用的答题设备和答题方式。 一、常用答题设备 1.电脑 如果电脑资源充足&#xff0c;可以用笔记本电脑进行答题&#xff0c;笔记本电脑可以采取有线或无线方式进行连网&#xff0c;可以根据情况选择连网方案&…

PyTorch专栏介绍

专栏导读 深度学习作为人工智能领域的重要分支&#xff0c;其应用范围广泛&#xff0c;从图像识别到自然语言处理&#xff0c;再到强化学习等。PyTorch作为当前流行的深度学习框架之一&#xff0c;以其动态计算图和易用性受到了广大开发者的青睐。本专栏将带领读者从零开始&am…

kubeadm搭建生产环境高可用集群

前言 搞了好多天&#xff08;今天是20240819&#xff09;&#xff0c;中途遇到各种各样的问题&#xff0c;总算是可以用了 我这里用的vmware开了5台服务器做学习实践 K8S因为直接使用的 pkgs.k8s.io 仓库&#xff0c;所以直接拉取的最新release版&#xff08;v1.31&#xff09…

结构开发笔记(五):solidworks软件(四):绘制36x36方块摄像头基座

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/141422131 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

【hot100篇-python刷题记录】【盛最多水的容器】

R6-双指针篇 印象题 双指针法&#xff0c;num1在0处&#xff0c;num2在n-1处&#xff0c;相对移动收缩。 核心&#xff1a; 每次单步移动短板&#xff0c;因为长板收缩面积肯定变小。 面积&#xff1a;短板决定 class Solution:def maxArea(self, height: List[int]) ->…

【嵌入式软件】stm32内部flash读写

1.简介 控制系统采用STM32F429IGT6,STM32F429IGT6 的 FALSH 容量为 1024K 字节。 STM32F429 的闪存模块组织如下表所示。 STM32F429xx 的闪存模块由:主存储器、系统存储器、OTP 区域和选项字节等 4 部分组 成。 1)主存储器,该部分用来存放代码和数据常数(如 con…

PHP开发过程中常见问题快速解决

1.PHP解决文件名不合法,无法创建 文件名称不能含有 /\:*?"<>|符号&#xff0c;直接替换关键词就OK了 $search array(*,$,\\,/,"",",*,?,:,<,>,|, ,[,],【,】,(,),&#xff08;,&#xff09;); $name"1:.php"; $new_namestr_repla…

Windows 11新版将至:Zen5、Zen4、Zen3游戏性能一起飞

锐龙9000系列发布之初&#xff0c;有些媒体和玩家发现&#xff0c;其游戏性能没有官方宣传的提升那么高&#xff0c;于是产生了一些质疑&#xff0c;AMD今天特意就此撰文&#xff0c;给出了详细的解释&#xff0c;并透露未来会随着Windows 11的升级而释放更多性能潜力。 事实上…