城市智能图书柜需求说明书

1. 简介

1.1 项目概括

本项目主要实现智能图书柜对图书的借出、还回、续借、查询、上下架、盘点的功能,对于读者,可以进行读者证的办理,读者信息的录入和完善。

1.2 项目背景

​ 目前大量读者距离图书馆较远,无法方便、快捷地借阅、归还图书,同时对于部分企事业机关单位没有独立的图书馆,无法满足员工对于图书的阅读需求,因此建设此图书角,将其放置于公共的空闲区域,解决了读者对阅读的需求,方便了广大的读者。

2 产品概述

​ 随着科技的飞速发展,信息技术的应用越来越广泛,伴随着智能设备的应用,图书的使用率也越来越高,通过使用本图书角,让图书离读者越来越近,读者可以很方便地实现图书的借阅与归还,且读者对图书的借出与归还完全是自助化操作,无需人工干预,极大地方便了读者,为图书馆的最后一公里建设做出巨大贡献。

2.1 功能概述

​图书角系统功能结构图如下所示:
在这里插入图片描述

2.2 操作流程

2.2.1 借还书

在这里插入图片描述

2.2.2 查询

在这里插入图片描述

2.2.3 续借

在这里插入图片描述

2.2.4 上下架

在这里插入图片描述

2.2.5 盘点

在这里插入图片描述

2.2.6 办证

在这里插入图片描述

2.2.7 完善信息

在这里插入图片描述

3. 需求描述

3.1功能性需求

3.1.1借还书

1、读者首先选择认证方式,支持:IC卡、身份证、人脸、指纹、二维码、IC卡+身份证,人脸识别根据配置可设置照片显示的大小和识别区域的大小,上传的照片为识别区域。

2、认证成功后,提示读者选择需要打开的柜门。

3、读者开启柜门后,即可取出欲借出的图书或放入欲还回的图书并关好柜门。

4、关门后提示借还书已完成,并显示读者借出的图书列表、还回的图书列表。

5、借出的图书需记录读者的借书记录。

6、只要是放回柜中的图书,不管该图书是否已借出,只要该条码在系统中存在则做还书处理。

7、还书时,将还回的图书的馆藏地点改为程序中默认配置好的还回地点。

8、读者借还书操作未在指定的时间内关门,下一位读者在进行任何操作前提示未关门的门序号,并告知需关好门才能继续操作。

9、读者一次性借书超过借阅上限后,读者再次刷卡将不开启柜门并提示读者借阅数量已超上限,请联系管理员进行图书归还。

10、程序启动时读取柜中所有的图书RFID和条码并保存以便在借还书时减少读取RFID芯片中条码的次数。

11、如果上一位读者未关门,程序超过指定的操作时间后,将主动跳转至主界面,并立即进行一次借还书操作,待柜门关闭后,程序再次进行一次借还书操作,并且借出的图书将关联至上一位未关门的读者名下。

3.1.2 查询

1、读者输入查询关键字查询馆内、其他图书角的图书。

2、选择指定的图书,可以查看该图书的馆藏情况。

3、可以选择使用拼音、手写、语音输入法。

3.1.3 续借

1、读者首先选择认证方式,支持:IC卡、身份证、人脸、指纹、二维码、IC卡+身份证,人脸识别根据配置可设置照片显示的大小和识别区域的大小,上传的照片为识别区域。

2、认证成功后显示读者当前的借阅信息。

3、读者可选择一本或多本已借的图书进行续借。

3.1.4 上下架

1、管理者首先选择认证方式,支持:IC卡、身份证、人脸、指纹、二维码、IC卡+身份证,人脸识别根据配置可设置照片显示的大小和识别区域的大小,上传的照片为识别区域。

2、验证该身份为管理员身份后,提示选择需要下架的柜门。

3、开始下架选中柜门的所有图书,修改馆藏地点为配置中的默认馆藏地点。

4、下架完成后,柜门自动开启,可根据需要取出欲下架的图书或放入欲上架的图书。

5、根据提示关闭柜门,开始上架此柜门的图书,将柜中已有的图书修改馆藏地点为当前出现配置的馆藏地点。

6、如果放入的图书已被借出,则先进行还书然后在执行上架操作。

7、上下架操作可根据配置中的设置决定是否需要修改RFID芯片的报警标志。

8、下架过程中如果出现下架失败的图书或上架过程中有上架失败的图书,均提示管理者将图书取出。

3.1.5 图书盘点

1、用于重新盘点柜中的已有的图书信息,此功能仅限管理员使用。

2、管理者首先选择认证方式,支持:IC卡、身份证、人脸、指纹、二维码、IC卡+身份证,人脸识别根据配置可设置照片显示的大小和识别区域的大小,上传的照片为识别区域。

3、重新检测图书角中所有图书,通过使用数据库中所有在架记录和当前已在柜中的图书进行比对,对未借出且不在柜中的图书进行“遗失”标记。

3.1.6 办证

​ 1、读者使用身份证进行办证。

2、如果读者已办证,则提示已经办理过读者证,不可继续再办。

3、如果读者未办理读者证,则根据提示可选择录入指纹和人脸信息。

4、此办证操作不出卡。

5、读者录入指纹和人脸需判断当前是否已存在,如果已存在则进行提示并重新录入。

6、人脸识别根据配置可设置照片显示的大小和识别区域的大小,上传的照片为识别区域。

3.1.7 完善信息

1、读者刷身份证或IC卡后,输入正确密码进行验证,验证成功后,可选择更新指纹和人脸信息。

2、读者录入指纹和人脸需判断当前是否已存在,如果已存在则进行提示并重新录入。

3、人脸识别根据配置可设置照片显示的大小和识别区域的大小,上传的照片为识别区域。

3.1.8 其他

1、办证录入人脸和完善信息录入人脸使用指定的区域而不是整个照片。

2、程序启动时不允许出现白屏。

3、程序中的语音提示和文字提示均通过配置中设定的目录和文件进行提取。

4、读者姓名超过6个字的部分使用*省略。

5、程序中需要使用到目录的地方均使用绝对路径。

6、添加延迟启动时间,程序将在开始启动时处于等待状态(部分机器网卡启动时间较长)。

7、读者在操作过程中,如果出现网络故障或接口服务异常,立即跳转至断网提示页面,同时进行自动(每隔一段时间)连接,一旦连接成功,程序进入主界面。配置程序配置断线自动连接时间。

8、读取多门中的RFID芯片时,需使用RSSI值进行判断,将RFID芯片归属至相应的天线所属。

3.2 非功能性需求

操作系统:Windows Server2008及以上Windows x86/x64操作系统、Android系统。

高效性:简单操作3~5s完成。

安全性:具备防止网络攻击的能力。

保密性:对读者信息进行严格保密,防止滥用及泄露。

3.3 硬件要求

1、IC卡/身份证读卡器:用于读取读者的证号、身份证信息。

2、指纹识别器:用于采集或识别读者指纹。

3、摄像头:用于采集或识别读者人脸。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python---多任务的介绍

1. 提问 利用现学知识能够让两个函数或者方法同时执行吗? 不能,因为之前所写的程序都是单任务的,也就是说一个函数或者方法执行完成另外一个函数或者方法才能执行,要想实现这种操作就需要使用多任务。 多任务的最大好处是充分利用CPU资源&…

《PySpark大数据分析实战》-14.云服务模式Databricks介绍基本概念

📋 博主简介 💖 作者简介:大家好,我是wux_labs。😜 热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP…

centos安装opencv并在springboot中使用

使用conda安装opencv,并在docker运行的容器中使用,这里以运行则springboot应用的容器为例 步骤一:安装 在conda中安装 # 安装依赖 conda install numpy matplotlib# 安装opencv conda install -c conda-forge opencv # 或者制定版本 conda…

记一次java for循环改造多线程的操作

背景 今天在开发质量平台时需要获取某些数据,要请求公司某个工程的OpenAPI接口A。此接口为返回通用数据的接口,且接口本身的RT都在2~3秒之间。使用该接口,需要进行两次循环获取,然后对返回数据进行处理组装&#xff0…

【NI-RIO入门】扫描模式

于NI KB摘录 所有CompactRIO设备都可以访问CompactRIO扫描引擎和LabVIEW FPGA。 CompactRIO 904x 系列是第一个引入 DAQmx 功能的产品线。 扫描引擎(IO 变量) – 主要为迁移和初始开发而设计。控制循环频率高达 1 kHz1,性能控制器上的频率更…

kill编译异常处理

当kill编译时出现如下警告 Build target Target 1 linking... *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESSSEGMENT: ?PR?_LCD_SHOWCHAR?LCD1602 *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESSSEGMENT: ?PR?_LCD_SHOWSTRING?LCD…

代码随想录第三十五天(一刷C语言)|整数拆分不同的二叉搜索树

创作目的:为了方便自己后续复习重点,以及养成写博客的习惯。 一、整数拆分 思路:参考carl文档。 1、确定dp数组以及下标的含义:分拆数字i,可以得到的最大乘积为dp[i]。 2、确定递推公式:从1遍历j&#…

Nginx location+Nginx rewrite(重写)(新版)

Nginx locationNginx rewrite(重写) Nginx locationNginx rewrite(重写)一、location1、常用的Nginx 正则表达式2、location的类型3、location 的匹配规则4、location 优先级5、location 示例说明5.1只修改网页路径5.2修改nginx配置文件和网页路径5.3一般前缀5.4正则匹配5.5前缀…

C# WPF上位机开发(usb设备访问)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 目前很多嵌入式设备都支持usb访问,特别是很多mcu都支持高速usb访问。和232、485下个比较,usb的访问速度和它们基本不在一个…

miRMaker

Introduction 除了miRNA表达数据,各种miRNA相关的知识也强有力地支持了对miRNA功能相互作用的理解。 那些具有许多共同调控靶基因或疾病的miRNAs可能具有相似的功能 一些方法通过考虑实验验证的miRNA-靶标关系来评估miRNA相互作用,评估miRNA功能相互作…

自清洗过滤器工作原理尺寸选型参数,内部结构,压差开关如何调节

​ 1:全自动自清洗过滤器设备介绍 全自动反冲洗过滤器是水净化过程中不可缺少的处理手段,用于拦截水中的各种杂质,以净化水质或保护系统中其他设备的正常工作。普通网式过滤器因其结构简单、过滤效果好、阻力小而广泛应用于水源过滤、工业循…

【Android Studio】各个版本下载地址

下载地址: https://developer.android.com/studio/archive?hlzh-cn

如何用 Cargo 管理 Rust 工程系列 丁

以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/PP9b5cSNd-7IqgNovcrB0A 优化输出 前面已经对 cargo package 工程编译输出了好多遍,发现编译结果打印的信息都包含了这个 unoptimize…

c语言:[输出函数]与[输入函数]|要点简述

一、【输出函数】 printf() 与 puts()的不同点 1、printf()函数 printf()支持单个字符%c的输出,以及字符串%s的输出。 (1)如果是以%c的形式输出,是一个字符一个字符的输出。因此,要用一个循环语句,把字符逐个输出。 (2)而用%…

Unity与Android交互通信系列(2)

在上一篇文章中,我们介绍了Unity和Android交互通信的原理及在Unity中直接调用Java代码的方式,但没有给出代码示例,下面通过实际例子演示上篇文章中AndroidJavaClass、AndroidJavaObject两个类的基本用法,由于交互通信涉及到两端&a…

查看知乎数学公式Tex源码的方法

首先使用F12打开开发者工具,再使用元素选择器选中要查看的公式。 在源码对应位置附近可以看到一个类型为 math/tex 的 script,如果没找到可以展开目录查找。

网络时间服务器

本章主要介绍网络时间服务器。 使用chrony配置时间服务器 配置chrony客户端向服务器同步时间 1 时间同步的必要性 一些服务对时间要求非常严格,例如,图所示的由三台服务器搭建的ceph集群。 这三台服务器的时间必须保持一致,如果不一致&#…

若依打包将vue放到.jar里面部署

1.vue静态文件,以及单页面 ruoyi-admin\src\main\resources\static \ruoyi-admin\src\main\resources\templates 2.后台开放白名单 "/cms", "/cms#/login" 3. mvc访问vue页面入口,接口 package com.ruoyi.web.controller.syst…

08_CSS定位与综合案例开发

day08_CSS定位与&综合案例开发 Objective(本课目标) 理解什么是定位能说出为什么要用定位 1. 为什么使用定位 标准流在最底层 (海底) ------- 浮动的盒子在中间层 (海面) ------- 定位的盒子 在 最上层 (天空) 小黄色块在…

软件测试面试八股文,最常见的7个高频面试题(附答案,建议收藏)

问题1:请自我介绍下? 核心要素:个人技能优势工作背景经验亮点 参考回答: 第一种:基本信息离职理由 面试官您好,我叫张三,来自番茄市,在软件测试⾏业有 3 年的⼯作经验。做过 Web…