软件工程案例学习-图书管理系统-面向对象方法

文档编号:LMS_1
                                                                           版 本 号:V1.0
** **
** **
** **
文档名称:需求分析规格说明书
项目名称:图书管理系统
项目负责人:计敏   胡杰
** **
** **
 
 
 
编写:计敏   胡杰                                 2002年4月17日
校对:
审核:
批准:
开发单位:电信科学技术研究院研究生部2001级

1.       引言:
1.1 编写目的:
确定图书管理系统的功能及有效性需求,以供软件开发人员参考。
1.2 项目背景:
本项目的名称:图书管理系统
本项目的应用范围:中型图书室
开发者:电信科学技术研究院研究生部
用户:开发人员
1.3 定义:
LMS : Library Management System
Title:记录图书馆内所有类图书的信息并可进行查询。
Item:记录馆内每一本图书的状态,并提供查询、统计、打印功能。
Borrower Information:记录读者信息并可进行查询。
Loan:对图书的出借、归还、续借进行管理并可进行查询。
Reservation: 提供预约与取消预约功能。
1.4 参考资料:
《实用软件工程》(第二版)      郑人杰  殷人昆  陶永雷   清华大学出版社
《软件工程——Java语言实现》    Stephen R. Schach        机械工业出版社
《实践者的研究方法》            Roger S. Pressman        机械工业出版社
 
2.       任务概述:
2.1目标:

该《图书管理系统》针对的用户是中型图书室,藏书的种类包括中、英、俄、德、日文书籍和期刊,读者的数量和来源仅限于本单位职工及通过馆际互借认可的读者。相应的需求有:

**1>**能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:

*        图书信息的录入、删除及修改。

*        图书信息的多关键字检索查询。

*        图书的出借、返还和资料统计。

*        图书的远程预约和续借。

*        馆际互借(通过电子邮件或现场录入)

**2>**能够对一定数量的读者进行相应的信息存储与管理,这其中包括:

*        读者信息的登记、删除及修改。

*        读者资料的统计与查询。

**3>**能够对需要的统计结果提供打印输出。

** 4>**能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。

2.2运行环境:
本系统采用C/S体系结构,由一台服务器与多个客户机组成,
配置如下:
服务器:
硬件:80x86系列微机
CPU:733以上
内存:256M以上
硬盘空间:40G以上
    软件:Windows Server、Access等
工作站:
硬件:80x86系列微机
CPU: 166以上
内存:16M以上
硬盘空间:2G以上
软件:Windows 9x或Windows 2000 professional 、Access等 。
输入输出设备:扫描仪、打印机等。
网络设备:Hub、网卡、网线等。
2.3需求概述:
通过计算机实现对图书馆图书入库、借阅、归还、检索、读者管理、查询的管理功能。
2.4条件与限制:
    要求图书管理员会个般的计算机操作,会中文输入。要求用户界面有好,提供帮助。

** **

3.功能模型:

**  3.1用例:**

·        借出书目(Lend Item)
·        返回书目 (Return Item)
·        预约 (Make Reservation)
·        删除预约 (Remove Reservation)
·        续借(Continue Lend)
·        查询 (Query)
·        统计 (Statistic)
·        打印 (Print)
·        读者检索 (Borrower Query)
·        远程预约 (Remote Reservation)
·        远程续借 (Remote Continue Lend)
·        增加标题 (Add Title)
·        更新或删除标题 (Update or Remove Title)
·        增加书目 (Add Item)
·        更新或删除书目 (Remove Item)
·        增加读者 (Add Borrower)
·        更新或删除读者 (Update or Remove Borrower)
**  3.2类模型:**

3.3:动态建模:
**  【借出书目】**
(1)借书者没有预约:

输入标题
显示该标题下的书目
输入借书者
增加一条新的借书记录

** **

(2)借书者已预约

输入标题
显示该标题下的书目
输入借书者
增加一条新的借书记录
删除预约记录

** **
**  【返还书目】**
(1)没有超期:

输入标题
显示该标题下的书目
输入书目
输入借书者
增加一条新的还书记录
更新该书目的记录


(2)已超期或丢失

输入标题
显示该标题下的书目
输入书目
输入借书者
计算罚款金额
增加一条新的罚款记录
增加一条新的还书记录
更新该书目的记录

** **
**  【预约】**

输入标题
输入借书者
增加一条新的预约记录

** **
**  【取消预约】**

输入标题
输入借书者
删除该预约记录

** **
**  【续借】**(再借一次)

输入标题
显示该标题下的书目
输入书目
输入读者
增加一条新的还书记录
增加一条新的借书记录

** **
**  【查询】**
(1)书目查询:

输入与书目相关的关键值
显示符合条件的书目

(2)读者信息查询

输入与读者相关的关键值
显示符合条件的读者信息

(3)书目借出情况查询

输入标题
显示符合条件的借阅信息

(4)读者借阅情况查询

输入读者
显示符合条件的借阅信息

** **
【统计】(图书状态统计)

输入统计条件
显示统计结果

** **
【读者检索】

输入与标题相关的关键值
提交
显示该标题下符合条件的书目

** **
**  【远程预约】**

输入标题
输入借书者
提交
增加一条新的预约记录

** **
**  【远程续借】**

输入标题
显示该标题下的书目
输入书目
输入读者
提交
增加一条新的还书记录
增加一条新的借书记录

** **
**  【增加标题】**

输入标题
增加一条新的标题记录

** **

** **
**  【更新或删除标题】**

输入标题
显示该标题记录
更新或删除标题该记录

** **
**  【增加书目】**

输入标题
输入书目
增加一条新的书目记录

** **
**  【更新或删除标题】**

输入标题
显示该标题下的书目
输入书目
显示该书目记录
更新或删除该书目记录

** **
**  【增加读者】**

输入读者
增加一条新的读者记录

** **
**  【更新或删除读者】**

输入读者
显示该读者记录
更新或删除该读者记录

** 3.4功能建模:**


5.数据对象模型:
5.1对象关联图(ERD):

5.2对象规范说明:

5.2.1图书管理员信息:

**目标:**建立管理员登录信息,提供安全机制。

**关联其他数据对象:**无

属性说明:

PrimaryKey用户名
ForeignKey
UniqueKey
IndexKey用户名
属性名类型.长度值域说明
用户名2{字节}30
密码2{字节}30
级别2字节
描述0{字节}50

5.2.2 图书编目信息:

**目标:**便于管理、查找、查询。

**关联其他数据对象:**图书编目

属性说明:

PrimaryKey类别
ForeignKey
UniqueKey类别
IndexKey类别
属性名类型.长度值域说明
类别编码2{字节}10
类别2{字节}10
备注0{字节}50

5.2.3 标题:

**目标:**建立图书标题库,便于图书的管理。

关联其他数据对象:

图书分类、出版社、图书库存信息。

属性说明:

PrimaryKey书号
ForeignKey
UniqueKey
IndexKey书号
属性名类型.长度值域说明
ISBN2{字节}30
书名2{字节}30
查询名称2{字节}30
类别2{字节}10
出版日期年+月+日
定价“0000.01”… “9999.99”
作者2{字节}12
出版社2{字节}10
内容简介2{字节}50


 
 
 
数据量预测说明:

年数椐量数据增长率极限数据量备注
2M1%10M每年约增加图书2万本

** **

5.2.4 出版社:

目标:

记录出版社信息。

**关联其他数据对象:**图书编目

属性说明:

PrimaryKey用户名
ForeignKey
UniqueKey
IndexKey用户名
属性名类型.长度值域说明
出版社编号2{字节}4
出版社名称2{字节}30
电话2{字节}10
地址2{字节}30

5.2.5 图书借阅等级:

目标:

将图书划分为不同级别,提供不同的借阅权限。

**关联其他数据对象:**图书库存信息

属性说明:

PrimaryKey用户名
ForeignKey
UniqueKey
IndexKey用户名
属性名类型.长度值域说明
借阅等级2{字节}4
借阅等级说明2{字节}30
借阅天数2{字节}2
超期罚款“0000.01”… “9999.99”
遗失赔率“1.00”…”20”
备注2{字节}30

** **

5.2.6 图书库存信息(书目):

**目标:**建立图书库存信息,便于图书的借阅、管理。

关联其他数据对象:

图书编目、图书借出信息、图书归还信息

属性说明:

PrimaryKey书号
ForeignKey
UniqueKey
IndexKey书号
属性名类型.长度值域说明
ISBN2{字节}30
id2{字节}10
借阅等级2{字节}10
状态2{字节}2

数据量预测说明:

年数椐量数据增长率极限数据量备注
20M1%100M每年约增加图书2万本

** **

5.2.7 读者借阅等级:

目标:

将读者划分为不同级别,给予不同读者不同的借阅权限。

**关联其他数据对象:**读者信息、图书借出信息、图书归还信息、图书预约信息

属性说明:

PrimaryKey用户名
ForeignKey
UniqueKey
IndexKey用户名
属性名类型.长度值域说明
借阅等级2{字节}2
借阅等级说明2{字节}10
最大借书数2{字节}2
最长借书时间2{字节}2
最大续借次数2{字节}2
押金“0.00”… “400.00”
租金“0.00”… “400.00”

** **

5.2.8 读者信息:

目标:

记录读者信息。

**关联其他数据对象:**读者借阅等级、图书借出信息、图书归还信息、图书预约信息

属性说明:

PrimaryKey证号
ForeignKey
UniqueKey
IndexKey证号
属性名类型.长度值域说明
证号2{字节}15
姓名2{字节}20
性别2{字节}2
借阅等级2{字节}2
证件名称2{字节}15
证件编号2{字节}20
电话2{字节}20
家庭住址2{字节}30

年数据量预测说明:

年数椐量数据增长率极限数据量备注
1M10%4M

** **

5.2.9 图书流通信息:

目标:

记录图书流通信息。

**关联其他数据对象:**图书信息、读者信息

属性说明:

PrimaryKey证号、书号
ForeignKey
UniqueKey证号、书号
IndexKey证号、书号
属性名类型.长度值域说明
证号2{字节}20
书号2{字节}15
借出时间年+月+日
应还时间年+月+日

年数据量预测说明:

年数椐量数据增长率极限数据量备注
40M10%100M

** **

5.2.10 图书续借信息:

目标:

记录读者续借信息

**关联其他数据对象:**图书库存信息、读者信息、图书借出信息

属性说明:

PrimaryKey证号、书号
ForeignKey
UniqueKey证号、书号、续借日期、应还日期、续借次数
IndexKey证号、书号
属性名类型.长度值域说明
证号2{字节}15
书号2{字节}15
续借日期年+月+日
应还日期年+月+日
续借次数2{字节}2

5.2.11 图书罚款信息:

目标:

记录读者罚款信息

**关联其他数据对象:**图书库存信息、读者信息、读者借阅等级、图书借出信息、图书续借信息、图书超期罚款、图书遗失赔率。

属性说明:

PrimaryKey证号、书号
ForeignKey
UniqueKey证号、书号、归还日期、操作类别、罚款金额
IndexKey证号、书号
属性名类型.长度值域说明
证号2{字节}20
书号2{字节}20
归还日期年+月+日
操作类别2{字节}2
罚款金额“0.00”… “400.00”

** **

5.2.12 图书预约信息:

目标:
建立管理员登录信息,提供安全机制。
关联其他数据对象:图书信息、借书证、借书证分类
属性说明:

PrimaryKey证号、书号
ForeignKey
UniqueKey证号、书号、预约日期
IndexKey证号、书号
属性名类型.长度值域说明
证号2{字节}20
书号2{字节}20
预约日期年+月+日

6.业务规则模型

6.1借出:

关联对象:

图书信息、读者信息、读者借阅等级、图书借阅等级、图书借出信息

规则说明

读者已借书数未超过最大借书数、该书有库存,而且该读者拥有借阅该书的权限,则执行该操作。

6.2 罚款:

关联对象:图书编目、读者借阅等级、图书借阅等级、流通信息、罚款信息

规则说明:

1.超期罚款:超期天数*超期罚款率。
2.丢失罚款:图书价格*丢失赔率
** **

7.环境

7.1 网络环境

以太局域网

7.2 硬件环境

开发硬件环境:
计算机数量:3台。
每台机器的配置:
处理器:733
内存:256
硬盘:20G
输入输出设备:打印机等。
网络设备:Hub、网卡、网线等。
运行硬件环境:
计算机数量:30台
本系统采用C/S体系结构,由一台服务器与多个客户机组成,
配置如下:
服务器:
硬件:80x86系列微机
CPU:733以上
内存:256M以上
硬盘空间:40G以上
    软件:Windows Server、Access等
工作站:
硬件:80x86系列微机
CPU: 166以上
内存:16M以上
硬盘空间:2G以上
软件:Windows 9x或Windows 2000 professional 、Access等 。
输入输出设备:扫描仪、打印机等。
网络设备:Hub、网卡、网线等。
7.3 软件环境
应用软件开发环境:
操作系统:Windows 2000 professional
数据库软件:Access
编程工具、编程语言:Java
应用软件使用运行环境:
操作系统:Windows 9X/2000
数据库软件:Access
7.4 外部接口
和其他软件系统的数据接口:ODBC
 
8. 安全保密
提供用户登录机制,不同级别的用户拥有不同的权限。

**                                                             文档编号:LMS_1**
**                                                                   版 本 号:V1.0**
** **
** **
** **
文档名称:概要设计说明书
项目名称:图书管理系统
项目负责人:计敏   胡杰
** **
** **
** **
 
 
 
 
 
 
 
 
 
 
 
 
编    写:计敏   胡杰                      2002年5月24日
校    对:胡杰
审    核:
批    准:
开发单位:电信科学技术研究院研究生部2001级

引言:
1.1 编写目的:
确定图书馆管理系统的总体设计、总体结构、模块设计、接口设计为详细设计奠定基础。
1.2 项目背景:
说明:
本项目的名称:图书管理系统
本项目的应用范围:中型图书室
开发者:电信科学技术研究院研究生部
用户:开发人员
1.3 定义:
LMS : Library Management System
Title:记录图书馆内所有类图书的信息并可进行查询。
Item:记录馆内每一本图书的状态,并提供查询、统计、打印功能。
Borrower Information:记录读者信息并可进行查询。
Loan:对图书的出借、归还、续借进行管理并可进行查询。
Reservation: 提供预约与取消预约功能。
1.4 参考资料:
《实用软件工程》(第二版)      郑人杰  殷人昆  陶永雷   清华大学出版社
《软件工程——Java语言实现》   Stephen R. Schach         机械工业出版社
《实践者的研究方法》            Roger S. Pressman         机械工业出版社
《需求分析规格说明书》         
 
2.     任务概述:
2.1目标:

该《图书管理系统》针对的用户是中型图书室,藏书的种类包括中、英、俄、德、日文书籍和期刊,读者的数量和来源仅限于本单位职工及通过馆际互借认可的读者。相应的需求有:

**1>**能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:

*        图书信息的录入、删除及修改。

*        图书信息的多关键字检索查询。

*        图书的出借、返还和资料统计。

*        图书的远程预约和续借。

*        馆际互借(通过电子邮件或现场录入)

**2>**能够对一定数量的读者进行相应的信息存储与管理,这其中包括:

*        读者信息的登记、删除及修改。

*        读者资料的统计与查询。

**3>**能够对需要的统计结果提供打印输出。

** 4>**能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。

2.2运行环境:
本系统采用C/S体系结构,由一台服务器与多个客户机组成,
配置如下:
服务器:
硬件:80x86系列微机
CPU:733以上
内存:256M以上
硬盘空间:40G以上
    软件:Windows Server、Access等
工作站:
硬件:80x86系列微机
CPU: 166以上
内存:16M以上
硬盘空间:2G以上
软件:Windows 9x或Windows 2000 professional 、Access等 。
网络设备:网卡、HUB、网线等。
2.3需求概述:
通过计算机实现对图书馆图书入库、借阅、归还、检索、读者管理、查询的管理功能。
2.4条件与限制:
    要求图书管理员会个般的计算机操作,会中文输入。要求用户界面有好,提供帮助。
** **
3.总体设计:
3.1处理流程:
3.1.1主程序:

3.1.2图书编目:

3.1.3 图书入库:

3.1.4读者信息管理:

3.1.5图书操作:

3.1.6系统管理:

3.1.7读者远程图书操作
   
3.2总体结构:
1.     总体结构:

2.业务对象:

3.用户接口:

3.2功能分配:
1.图书管理员:

浏览添加修改删除查询授权
添加记录
删除记录
更改记录
显示记录
查询

** **
2.出版社:

浏览添加修改删除查询
添加记录
删除记录
更改记录
显示记录
查询

** **
3.图书分类:

浏览添加修改删除查询
添加记录
删除记录
更改记录
显示记录
查询

** **
4.图书编目:

浏览添加修改删除查询
添加记录
删除记录
更改记录
显示记录
查询

** **
5.图书借阅等级:

浏览添加修改删除查询
添加记录
删除记录
更改记录
显示记录
查询

** **
6.图书库存信息:

浏览添加修改删除查询
添加记录
删除记录
更改记录
显示记录
查询

** **
7.读者借阅等级:

浏览添加修改删除查询
添加记录
删除记录
更改记录
显示记录
查询

** **
8.读者信息:

浏览添加修改删除查询
添加记录
删除记录
更改记录
显示记录
查询

** **
9.图书操作:

借出续借归还丢失预约查询统计打印
借出
续借
归还
丢失
添加记录
删除记录
更改记录
显示记录
查询

** **
4.接口设计:
4.1外部接口:
用户界面:
1.     登录界面:

2.     主界面:

3.     图书编目界面:

4.     图书库存管理界面:

5.     读者管理界面:

6.     系统管理界面:
图书管理员管理:

出版社:

图书借阅等级:

读者借阅等级:

图书状态:

类别:

7.     图书操作界面:
借阅:

预约:

8.     查询界面:

**软件接口:**使用ODBC连接数据库
**硬件接口:**鼠标、打印机
** **
4.2内部接口:(模块之间的接口)
模块间采取数据耦合方式,通过参数表传递数据,交换信息。
 
5.数据结构设计:
5.1逻辑结构设计:
采用线性表结构
 
5.2物理结构设计:
采用链表结构
 
5.3数据结构与程序的关系:
数据的录入、修改、删除、统计都要涉及记录结构定义。数据的查询在涉及多个数据文件之间的关系;错误信息结构为显示错误信息带来方便。
6.运行设计:
**6.1运行模块的组合:**通过主应用程序组合,模块均可独立操作存储文件。
**6.2运行控制:**通过键盘或鼠标选择控制相应功能,通过键盘输入记录信息,查询要求等。
6.3运行时间:
更新处理时间≤1ms
检索业务响应时间≤1s
数据传输时间≤1s
** **
7.出错处理设计:
**7.1出错输出信息:**根据不同的错误提供不同的借误提示信息
7.2出错处理对策:
1.一般错误:显示错误信息,提示用户重新操作
2.严重错误:重新启动,必要时启用备份恢复数据
8. 安全保密设计:
提供用户登录机制,不同级别的用户拥有不同的权限。
** **
9.维护设计
可以在软件交付后根据用户反馈意见修必类模块功能。

**      文档编号:LMS_3**
版 本 号: V1.0
** **
** **
** **
文档名称:详细设计说明书
项目名称:图书管理系统
项目负责人:计敏   胡杰
** **
** **
** **
 
 
 
 
 
编    写:计敏   胡杰                      2002年5月24日
校    对:胡杰
审    核:
批    准:
开发单位:电信科学技术研究院研究生部2001级

3.       引言:
1.1 编写目的:
给出详细设计,供软件编程人员参考。
1.2 项目背景:
说明:
本项目的名称:图书管理系统
本项目的应用范围:中型图书室
开发者:电信科学技术研究院研究生部
用户:开发人员
1.3 定义:
LMS : Library Management System
Title:记录图书馆内所有类图书的信息并可进行查询。
Item:记录馆内每一本图书的状态,并提供查询、统计、打印功能。
Borrower Information:记录读者信息并可进行查询。
Loan:对图书的出借、归还、续借进行管理并可进行查询。
Reservation: 提供预约与取消预约功能。
1.4 参考资料:
《实用软件工程》(第二版)      郑人杰  殷人昆  陶永雷   清华大学出版社
《软件工程——Java语言实现》   Stephen R. Schach            机械工业出版社
《实践者的研究方法》           Roger S. Pressman            机械工业出版社
《需求分析规格说明书》
《概要设计说明书》
 
2.     总体设计:
2.1需求概述:

该《图书管理系统》针对的用户是中型图书室,藏书的种类包括中、英、俄、德、日文书籍和期刊,读者的数量和来源仅限于本单位职工及通过馆际互借认可的读者。相应的需求有:

**1>**能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:

*        图书信息的录入、删除及修改。

*        图书信息的多关键字检索查询。

*        图书的出借、返还和资料统计。

*        图书的远程预约和续借。

*        馆际互借(通过电子邮件或现场录入)

**2>**能够对一定数量的读者进行相应的信息存储与管理,这其中包括:

*        读者信息的登记、删除及修改。

*        读者资料的统计与查询。

**3>**能够对需要的统计结果提供打印输出。

** 4>**能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。

2.2软件结构:(给出软件系统的结构图)
3.     总体结构:

2.业务对象:

3.用户接口:

4.程序描述:
4.1:Title类
4.1.1添加编目信息:

类名:Title
方法名:addTitle
类型修饰符:Public void
参数:ISDN
出错消息:ISDN已存在或记录不符合要求
访问的文件:Title
改变的文件:Title
调用的方法:查找记录 将新记录写入图书编目文件
程序逻辑:
接口:调用形式:Void addTitle(){}
传入参数:记录字段值
传出参数:错误信息
存储分配:每条记录180字节
限制条件:
测试要点:对不合条件的记录是否有错误判断能力

4.1.2更新编目信息:

类名:Title
方法名:updateTitle
类型修饰符:Public void
参数:记录
出错消息:记录不符合要求
访问的文件:Title
改变的文件:Title
调用的方法:更新图书编目文件
程序逻辑:
接口:调用形式:Void updateTitle(){}
传入参数:记录字段值
传出参数:错误信息
存储分配:
限制条件:
测试要点:对不合条件的记录是否有错误判断能力

4.1.3删除编目信息:

类名:Title
方法名:deleteTitle
类型修饰符:Public void
参数:
出错消息:其它表中包含了相关记录,无法删除
访问的文件:Title
改变的文件:Title
调用的方法:删除图书编目文件
程序逻辑:
接口:调用形式:Void deleteTitle(){}
传入参数:
传出参数:错误信息
存储分配:
限制条件:
测试要点:能否正常删除记录,对错误删除的判断能力

** **
4.1.4查询编目信息:

类名:Title
方法名:queryTitle
类型修饰符:Public void
参数:SQL查询语句
出错消息:
访问的文件:Title
改变的文件:
调用的方法:查询图书编目文件
程序逻辑:
接口:调用形式:Void queryTitle(){}
传入参数:记录字段值
传出参数:相关记录
存储分配:动态分配
限制条件:
测试要点:能否实现多关键字查询

** **
4.2:Item类
4.2.1添加图书库存信息:

类名:Item
方法名:addItem
类型修饰符:Public void
参数:ISBN、ID
出错消息:ISBN不存在,ISBN、ID已存在或记录不符合要求
访问的文件:Item、Title
改变的文件:Item
调用的方法:查找记录, 将新记录写入图书库存信息文件
程序逻辑:
接口:调用形式:Void addItem(){}
传入参数:记录字段值
传出参数:错误信息
存储分配:每条记录100字节
限制条件:
测试要点:对不合条件的记录是否有错误判断能力

4.2.2更新图书库存信息:

类名:Item
方法名:updateItem
类型修饰符:Public void
参数:记录
出错消息:记录不符合要求
访问的文件:Item
改变的文件:Item
调用的方法:更新图书库存信息文件
注释:如记录符合要求,更新该记录,否则报错。
程序逻辑:
接口:调用形式:Void updateItem(){}
传入参数:记录字段值
传出参数:错误信息
存储分配:
限制条件:
测试要点:对不合条件的记录是否有错误判断能力

4.2.3删除图书库存信息:

类名:Item
方法名:deleteItem
类型修饰符:Public void
参数:
出错消息:其它表中包含了相关记录,无法删除
访问的文件:Item
改变的文件:Item
调用的方法:删除图书库存信息文件中相关记录
程序逻辑:
接口:调用形式:Void deleteItem(){}
传入参数:
传出参数:错误信息
存储分配:
限制条件:
测试要点:能否正常删除记录,对错误删除的判断能力

** **
4.2.4查询图书库存信息信息:

类名:Item
方法名:queryItem
类型修饰符:Public void
参数:SQL查询语句
出错消息:
访问的文件:Item
改变的文件:
调用的方法:查询图书库存信息文件
注释:根据查询条件对图书库存信息文件进行查询,显示符合条件的记录。
程序逻辑:
接口:调用形式:Void queryItem(){}
传入参数:记录字段值
传出参数:相关记录
存储分配:动态分配
限制条件:
测试要点:能否实现多关键字查询

4.3 Borrower类:
4.3.1添加读者信息:

类名:Borrower
方法名:addBorrower
类型修饰符:Public void
参数:证号
出错消息:证号已存在或记录不符合要求
访问的文件:Borrower
改变的文件:Borrower
调用的方法:查找记录 将新记录写入读者信息文件
程序逻辑:
接口:调用形式:Void addBorrower(){}
传入参数:记录字段值
传出参数:错误信息
存储分配:每条记录200字节
限制条件:
测试要点:对不合条件的记录是否有错误判断能力

4.3.2更新读者信息:

类名:Borrower
方法名:updateBorrower
类型修饰符:Public void
参数:记录
出错消息:记录不符合要求
访问的文件:Borrower
改变的文件:Borrower
调用的方法:更新读者信息文件
程序逻辑:
接口:调用形式:Void updateBorrower(){}
传入参数:记录字段值
传出参数:错误信息
存储分配:
限制条件:
测试要点:对不合条件的记录是否有错误判断能力

4.3.3删除读者信息:

类名:Borrower
方法名:deleteBorrower
类型修饰符:Public void
参数:
出错消息:其它表中包含了相关记录,无法删除
访问的文件:Borrower
改变的文件:Borrower
调用的方法:删除读者信息文件中相关记录
程序逻辑:
接口:调用形式:Void deleteBorrower(){}
传入参数:
传出参数:错误信息
存储分配:
限制条件:
测试要点:能否正常删除记录,对错误删除的判断能力

** **
4.3.4查询读者信息:

类名:Borrower
方法名:queryBorrower
类型修饰符:Public void
参数:SQL查询语句
出错消息:
访问的文件:Borrower
改变的文件:
调用的方法:查询图书读者文件
程序逻辑:
接口:调用形式:Void queryBorrower(){}
传入参数:记录字段值
传出参数:相关记录
存储分配:动态分配
限制条件:
测试要点:能否实现多关键字查询

** **
4.4 Reservation 类:
4.4.1添加预约信息:

类名:Reservation
方法名:addReservation
类型修饰符:Public void
参数:ISBN、证号
出错消息:该书有库存,或记录不符合要求
访问的文件:Reservation
改变的文件:Reservation
调用的方法:查找记录 将新记录写入图书预约信息文件
程序逻辑:
接口:调用形式:Void addReservation(){}
传入参数:记录字段值
传出参数:错误信息
存储分配:每条记录40字节
限制条件:
测试要点:能否判断有无库存,能否预约

4.4.2删除预约信息:

类名:Reservation
方法名:deleteReservation
类型修饰符:Public void
参数:
出错消息:其它表中包含了相关记录,无法删除
访问的文件:Reservation
改变的文件:Reservation
调用的方法:删除图书预约信息文件
程序逻辑:
接口:调用形式:Void deleteReservation(){}
传入参数:
传出参数:错误信息
存储分配:
限制条件:
测试要点:能否正常删除记录,对错误删除的判断能力

** **
4.5 Loan:
4.5.1 借出:

类名:Loan
方法名:Lend
类型修饰符:Public void
参数:ISBN、证号
出错消息:ISBN不存在、证号不存在、无借阅权限或图书无库存
访问的文件:流通信息、预约信息、读者借阅等级、图书库存信息
改变的文件:流通信息、预约信息、图书库存信息
调用的方法:查找流通信息、读者借阅等级、图书库存信息文件,如记录符合要求将新记录写入流通信息文件同时更新图书库存信息,有预约的更新预约信息
程序逻辑:
接口:调用形式:Void Lend(){}
传入参数:记录字段值
传出参数:错误信息
存储分配:每条记录100
限制条件:
测试要点:对不合条件的记录是否有错误判断能力,能否在添加借出信息的同时修改图书库存状态

** **
4.5.2 归还:

类名:Loan
方法名:Return
类型修饰符:Public void
参数:ISBN、证号、id
出错消息:相关借出记录不存在
访问的文件:流通信息、读者借阅等级、图书库存信息、罚款信息
改变的文件:流通信息、图书库存信息、罚款信息
调用的方法:查找记录,如果没有超期,更新流通信息与图书库存信息,如果超期,先计算罚款,收取罚款后更新流通信息与图书库存信息
程序逻辑:
接口:调用形式:Void Return(){}
传入参数:记录字段值
传出参数:错误信息
存储分配:每条记录100字节
限制条件:
测试要点:是否能正常归还图书,判断超期图书,计算罚款,判断输入有误

** **
4.5.3 丢失:

类名:Loan
方法名:Lost
类型修饰符:Public void
参数:ISBN、证号、id
出错消息:相关借出记录不存在
访问的文件:流通信息、读者借阅等级、图书库存信息、罚款信息
改变的文件:流通信息、图书库存信息、罚款信息
调用的方法:查找记录,计算罚款,收取罚款后更新流通信息与图书库存信息
程序逻辑:
接口:调用形式:Void Lost(){}
传入参数:记录字段值
传出参数:错误信息
存储分配:每条记录100字节
限制条件:
测试要点:能否计算罚款,更新图书状态,归还图书

** **
4.5.4 续借:

类名:Loan
方法名:Resume
类型修饰符:Public void
参数:ISBN、证号、id
出错消息:相关记录不存在
访问的文件:流通信息
改变的文件:流通信息
调用的方法:查找记录 将新记录写入流通信息文件
程序逻辑:
接口:调用形式:Void Resume(){}
传入参数:记录字段值
传出参数:错误信息
存储分配:动态分配
限制条件:
测试要点:能否续借

** **
4.5.5查询流通信息:

类名:Loan
方法名:queryLoan
类型修饰符:Public void
参数:SQL语句
出错消息:
访问的文件:流通信息、图书编目信息、图书库存信息、读者信息
改变的文件:
调用的方法:查询流通信息、图书编目信息、图书库存信息、读者信息
程序逻辑:
接口:调用形式:Void queryLoan(str ){}
传入参数:SQL语句
传出参数:相关记录
存储分配:动态分配
限制条件:
测试要点:能否实现多关键字查询

** **
4.6 主程序:
4.6.1 显示图书编目界面:

类名:Main
方法名:TitleFrame_Action
类型修饰符:Public void
出错消息:
访问的文件:
改变的文件:
程序逻辑:生成TitleFrame类实例
打开图书编目界面
接口:调用形式:TitleFrame_Action_ButtonClicked()
传入参数:
传出参数:
存储分配:动态分配
限制条件:
测试要点:能否打开图书编目界面

** **
4.6.2 显示图书入库界面:

类名:Main
方法名:ItemFrame_Action
类型修饰符:Public void
出错消息:
访问的文件:
改变的文件:
程序逻辑:生成ItemFrame类实例
打开图书入库界面
接口:调用形式:ItemFrame_Action_ButtonClicked()
传入参数:
传出参数:
存储分配:动态分配
限制条件:
测试要点:能否打开图书入库界面

** **
4.6.3 显示读者管理界面:

类名:Main
方法名:BorrowerFrame_Action
类型修饰符:Public void
出错消息:
访问的文件:
改变的文件:
程序逻辑:生成BorrowerFrame类实例
打开读者管理界面
接口:调用形式:BorrowerFrame_Action_ButtonClicked()
传入参数:
传出参数:
存储分配:动态分配
限制条件:
测试要点:能否打开读者管理界面

** **
4.6.4显示图书预约界面:

类名:Main
方法名:ReservationFrame_Action
类型修饰符:Public void
出错消息:
访问的文件:
改变的文件:
程序逻辑:生成ReservationFrame类实例
打开图书预约界面
接口:调用形式:ReservationFrame_Action_ButtonClicked()
传入参数:
传出参数:
存储分配:动态分配
限制条件:
测试要点:能否打开图书预约界面

** **
4.6.5显示图书借阅界面:

类名:Main
方法名:LoanFrame_Action
类型修饰符:Public void
出错消息:
访问的文件:
改变的文件:
程序逻辑:生成LoanFrame类实例
打开借阅管理界面
接口:调用形式:LoanFrame_Action_ButtonClicked()
传入参数:
传出参数:
存储分配:动态分配
限制条件:
测试要点:能否打开图书借阅界面

** **
4.6.6 显示查询界面:

类名:Main
方法名:QueryFrame_Action
类型修饰符:Public void
出错消息:
访问的文件:
改变的文件:
程序逻辑:生成QueryFrame类实例
打开查询界面
接口:调用形式:queryFrame_Action_ButtonClicked()
传入参数:
传出参数:
存储分配:动态分配
限制条件:
测试要点:能否打开查询界面

** **
4.6.7 显示统计界面:

类名:Main
方法名:StaticFrame_Action
类型修饰符:Public void
出错消息:
访问的文件:
改变的文件:
程序逻辑:生成StaticFrame类实例
打开统计界面
接口:调用形式:staticFrame_Action_ButtonClicked()
传入参数:
传出参数:
存储分配:动态分配
限制条件:
测试要点:能否打开图书统计界面

** **
4.7 图书编目:
4.7.1 addButton_Clicked();

类名:TitleFrame
方法名:addButton_Clicked
类型修饰符:Public void
参数:ISBN
出错消息:ISBN已存在或记录不符合要求
访问的文件:Title
改变的文件:Title
调用的方法:查找记录 将新记录写入图书编目文件
程序逻辑:
接口:调用形式:Void addButton_Clicked()
传入参数:记录字段值
传出参数:错误信息
存储分配:每条记录180字节
限制条件:
测试要点:对不合条件的记录是否有错误判断能力

** **
4.7.2updateButton_Clicked();

类名:TitleFrame
方法名:updateButton_Clicked
类型修饰符:Public void
参数:记录
出错消息:记录不符合要求
访问的文件:Title
改变的文件:Title
调用的方法:更新图书编目文件
注释:如记录符合要求,更新该记录,否则报错。
程序逻辑:
接口:调用形式:Void updateButton_Clicked()
传入参数:记录字段值
传出参数:错误信息
存储分配:
限制条件:
测试要点:对不合条件的记录是否有错误判断能力

** **
4.7.3 deleteButton_Clicked();

类名:TitleFrame
方法名:deleteButton_Clicked
类型修饰符:Public void
参数:
出错消息:其它表中包含了相关记录,无法删除
访问的文件:Title
改变的文件:Title
调用的方法:删除图书编目文件
程序逻辑:选择要删除的记录(必要时可使用查询)
Title.deleteTitle();
接口:调用形式:Void deleteTitle(){}
传入参数:
传出参数:错误信息
存储分配:
限制条件:
测试要点:能否正常删除记录,对错误删除的判断能力

** **
4.7.4 QueryButton_Clicked();

类名:TitleFrame
方法名:QueryButton_Clicked
类型修饰符:Public void
参数:字段值
出错消息:
访问的文件:Title
改变的文件:
调用的方法:查询图书编目文件
程序逻辑:
接口:调用形式:Void QueryButton_Clicked()
传入参数:记录字段值
传出参数:相关记录
存储分配:动态分配
限制条件:
测试要点:能否实现多关键字查询

** **
4.7.5 ResetButton_Clicked();

类名:TitleFrame
方法名:ResetButton_Clicked
类型修饰符:Public void
参数:
出错消息:
访问的文件:
改变的文件:
调用的方法:清空编辑框
程序逻辑:清空编辑框
接口:调用形式:Void ResetButton_Clicked(){}
传入参数:
传出参数:
存储分配:
限制条件:
测试要点:编辑框是否清空

** **
4.8 图书入库:
4.8.1 addButton_Clicked();

类名:ItemFrame
方法名:addButton_Clicked
类型修饰符:Public void
参数:ISDN
出错消息:ISDN已存在或记录不符合要求
访问的文件:Item
改变的文件:Item
调用的方法:查找记录 将新记录写入图书编目文件
程序逻辑:
接口:调用形式:Void addButton_Clicked (){}
传入参数:记录字段值
传出参数:错误信息
存储分配:每条记录80字节
限制条件:
测试要点:对不合条件的记录是否有错误判断能力

** **
4.8.2updateButton_Clicked();

类名:ItemFrame
方法名:updateButton_Clicked
类型修饰符:Public void
参数:记录
出错消息:记录不符合要求
访问的文件:Item
改变的文件:Item
调用的方法:更新图书编目文件
注释:如记录符合要求,更新该记录,否则报错。
程序逻辑:
接口:调用形式:Void updateButton_Clicked (){}
传入参数:记录字段值
传出参数:错误信息
存储分配:
限制条件:
测试要点:对不合条件的记录是否有错误判断能力

** **
4.8.3 deleteButton_Clicked();

类名:ItemFrame
方法名:deleteButton_Clicked
类型修饰符:Public void
参数:
出错消息:其它表中包含了相关记录,无法删除
访问的文件:Item
改变的文件:Item
调用的方法:删除图书编目文件
程序逻辑:选择要删除的记录(必要时可使用查询)
Item.deleteItem();
接口:调用形式:Void deleteItem(){}
传入参数:
传出参数:错误信息
存储分配:
限制条件:
测试要点:能否正常删除记录,对错误删除的判断能力

** **
4.8.4 QueryButton_Clicked();

类名:ItemFrame
方法名:QueryButton_Clicked
类型修饰符:Public void
参数:字段值
出错消息:
访问的文件:Item
改变的文件:
调用的方法:查询图书编目文件
程序逻辑:
接口:调用形式:Void QueryButton_Clicked (){}
传入参数:记录字段值
传出参数:相关记录
存储分配:动态分配
限制条件:
测试要点:能否实现多关键字查询

** **
4.8.5 ResetButton_Clicked();

类名:ItemFrame
方法名:ResetButton_Clicked
类型修饰符:Public void
参数:
出错消息:
访问的文件:
改变的文件:
调用的方法:清空编辑框
程序逻辑:清空编辑框
接口:调用形式:Void ResetButton_Clicked(){}
传入参数:
传出参数:
存储分配:
限制条件:
测试要点:编辑框是否清空

** **
4.9 读者管理:
4.9.1 addButton_Clicked();

类名:BorrowerFram
方法名:addButton_Clicked
类型修饰符:Public void
参数:证号
出错消息:证号已存在或记录不符合要求
访问的文件:Borrower
改变的文件:Borrower
调用的方法:查找记录 将新记录写入读者信息文件
程序逻辑:
接口:调用形式:Void addButton_Clicked (){}
传入参数:记录字段值
传出参数:错误信息
存储分配:每条记录200字节
限制条件:
测试要点:对不合条件的记录是否有错误判断能力

** **
** **
4.9.2updateButton_Clicked();

类名:BorrowerFrame
方法名:updateButton_Clicked
类型修饰符:Public void
参数:记录
出错消息:记录不符合要求
访问的文件:Borrower
改变的文件:Borrower
调用的方法:更新图书编目文件
注释:如记录符合要求,更新该记录,否则报错。
程序逻辑:
接口:调用形式:Void updateBorrower_Clicked(){}
传入参数:记录字段值
传出参数:错误信息
存储分配:
限制条件:
测试要点:对不合条件的记录是否有错误判断能力

** **
4.9.3 deleteButton_Clicked();

类名:BorrowerFrame
方法名:deleteButton_Clicked
类型修饰符:Public void
参数:
出错消息:其它表中包含了相关记录,无法删除
访问的文件:Borrower
改变的文件:Borrower
调用的方法:删除图书编目文件
程序逻辑:选择要删除的记录(必要时可使用查询)
Borrower.deleteBorrower();
接口:调用形式:Void deleteBorrower(){}
传入参数:
传出参数:错误信息
存储分配:
限制条件:
测试要点:能否正常删除记录,对错误删除的判断能力

** **
4.9.4 QueryButton_Clicked();

类名:BorrowerFrame
方法名:QueryButton_Clicked
类型修饰符:Public void
参数:字段值
出错消息:
访问的文件:Borrower
改变的文件:
调用的方法:查询图书编目文件
程序逻辑:
接口:调用形式:Void queryBorrower(){}
传入参数:记录字段值
传出参数:相关记录
存储分配:动态分配
限制条件:
测试要点:能否实现多关键字查询

** **
4.9.5 ResetButton_Clicked();

类名:BorrowerFrame
方法名:ResetButton_Clicked
类型修饰符:Public void
参数:
出错消息:
访问的文件:
改变的文件:
调用的方法:清空编辑框
程序逻辑:清空编辑框
接口:调用形式:Void ResetButton_Clicked(){}
传入参数:
传出参数:
存储分配:
限制条件:
测试要点:编辑框是否清空

** **
4.10 图书预约:
4.10.1 addButton_Clicked();

类名:ReservationFrame
方法名:AddButton_Clicked
类型修饰符:Public void
参数:ISBN、证号
出错消息:该书有库存,或记录不符合要求
访问的文件:Reservation
改变的文件:Reservation
调用的方法:查找记录 将新记录写入图书预约信息文件
程序逻辑:读入ISBN、证号形成str
Reservation.addReservation(str);
接口:调用形式:Void addButton_Clicked(){}
传入参数:记录字段值
传出参数:错误信息
存储分配:每条记录40字节
限制条件:
测试要点:能否判断有无库存,能否预约

** **
4.10.2 deleteButton_Clicked();

类名:ReservationFrame
方法名:DeleteButton_Clicked
类型修饰符:Public void
参数:
出错消息:其它表中包含了相关记录,无法删除
访问的文件:Reservation
改变的文件:Reservation
调用的方法:删除图书预约信息文件
程序逻辑:选择要删除的记录(必要时可使用查询)
Reservation.deleteReservation();
接口:调用形式:Void deleteButton_Clicked(){}
传入参数:
传出参数:错误信息
存储分配:
限制条件:
测试要点:能否正常删除记录,对错误删除的判断能力

** **
4.11 图书借阅:
4.11.1 Lend_ButtonClicked():

类名:LoanFrame
方法名:Lend_ButtonClicked
类型修饰符:Public void
参数:ISBN、证号
出错消息:ISBN不存在、证号不存在、无借阅权限或图书无库存
访问的文件:流通信息、预约信息、读者借阅等级、图书库存信息
改变的文件:流通信息、预约信息、图书库存信息
调用的方法:查找流通信息、读者借阅等级、图书库存信息文件,如记录符合要求将新记录写入流通信息文件同时更新图书库存信息,有预约的更新预约信息
程序逻辑:
接口:调用形式:Void LendButton_Clicked(){}
传入参数:记录字段值
传出参数:错误信息
存储分配:每条记录80字节
限制条件:
测试要点:对不合条件的记录是否有错误判断能力

** **
4.11.2 Return_ButtonClicked();

类名:LoanFrame
方法名:Return_ButtonClicked
类型修饰符:Public void
参数:ISBN、证号、id
出错消息:相关借出记录不存在
访问的文件:流通信息、读者借阅等级、图书库存信息、罚款信息
改变的文件:流通信息、图书库存信息、罚款信息
调用的方法:查找记录,如果没有超期,更新流通信息与图书库存信息,如果超期,先计算罚款,收取罚款后更新流通信息与图书库存信息
程序逻辑:
接口:调用形式:Void Return_ButtonClicked(){}
传入参数:记录字段值
传出参数:错误信息
存储分配:每条记录100字节
限制条件:
测试要点:是否能正常归还图书,判断超期图书,计算罚款,判断输入有误

** **
4.11.3 Lost_ButtonClicked

类名:LoanFrame
方法名:Lost_ButtonClicked
类型修饰符:Public void
参数:ISBN、证号、id
出错消息:相关借出记录不存在
访问的文件:流通信息、读者借阅等级、图书库存信息、罚款信息
改变的文件:流通信息、图书库存信息、罚款信息
调用的方法:查找记录,计算罚款,收取罚款后更新流通信息与图书库存信息
程序逻辑:
接口:调用形式:Void Lost_ButtonClicked (){}
传入参数:记录字段值
传出参数:错误信息
存储分配:每条记录100字节
限制条件:
测试要点:能否计算罚款,更新图书状态,归还图书

** **
4.11.4 Resume_ButtonClicked

类名:LoanFrame
方法名:Resume_ButtonClicked
类型修饰符:Public void
参数:ISBN、证号、id
出错消息:相关记录不存在
访问的文件:流通信息
改变的文件:流通信息
调用的方法:查找记录 将新记录写入流通信息文件
程序逻辑:
接口:调用形式:Void Resume(){}
传入参数:记录字段值
传出参数:错误信息
存储分配:每条记录100字节
限制条件:
测试要点:对不合条件的记录是否有错误判断能力

** **
** **
                             **  **

文档编号: LMS–4
**                                                    版 本 号:   V1.0**
** **
** **
** **
文档名称:    测试计划
**   项目名称:    图书管理系统**
项目负责人:  金钟,张耀
** **
** **
** **
** **
编写:金钟,张耀                2002年06月16日
校对:金钟,张耀               2000年06月16日
审核:金钟,张耀              2000年06月16日
批准:金钟,张耀              2000年06月16日
开发单位:电信科学技术研究院研究生部2001级
** **
** **

** **
1.          引言
** **
1.1           编写目的
编写调试完《图书管理系统》软件之后,为使用户能熟悉和使用该软件,需要有相应的软件软件测试计划,基于此目的编写了此软件测试计划说明书,供软件测试人员阅读。
 
1.2           项目背景
项目委托单位:电信科学技术研究院。
开发单位:电信科学技术研究院研究生部。
主管部门:电信科学技术研究院研究生部。
  图书管理系统软件 V1.0是一功能比较完善的数据管理软件,具有数据操作方便高效迅速等优点。该软件采用功能强大的数据库软件开发工具进行开发,可在应用范围较广的WINDOWS系列等操作系统上使用。
** **
1.3           参考资料
**[1]      **郑人杰,殷人昆,陶永雷。《实用软件工程》(第二版)。北京:清华大学出版社。1997。
**[2]      **David J. Kruglinski,Scot Wingo, George Shepherd著《Visual C++ 技术内幕6.0(第五版)》北京:希望电子出版社。1999。
** **
2.          软件概述
2.1           目标
  《图书管理系统》针对的用户是单个中小型图书室或者个人,藏书的种类和数量较少,读者的数量和来源受到一定的限制。相应的需求有:
1.       能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:
   1)  图书信息的录入、删除及修改。
   2)  图书信息的多关键字检索查询。
3)       图书的出借、返还和资料统计。
2.       能够对一定数量的读者进行相应的信息存储与管理,这其中包括:
1)       读者信息的登记、删除及修改。
2)       读者资料的统计与查询。
3)       能够对需要的统计结果提供列表显示输出。
4)       能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。
2.2           运行环境
Intel486以上系列、AMD K6 以上系列等PC台式机和便携式电脑;
  运行时占用内存:≤1MB;
  所需硬盘空间:≤5MB;
  软件平台:中文Windows95/98/NT 4.0或更高版本;
2.3           需求概述
《图书管理系统》的总体功能如下:
图书的出借;
图书的归还;
图书信息查询;
图书的增删改;
读者的增删改;
2.4           条件与限制
由于时间比较短,使用计算机不方便以及对于网络编程不熟悉,本图书馆管理系统并没有提供数据的远程访问功能。对信息的保护手段仅限于设置用户级别,以及提供数据文件的备份,比较简单,安全性能有待进一步完善。

3.       计划

3.1   测试方案
**       **采用黑盒测试
3.2   测试项目
组装测试:测试系统的配合运作,正常工作流程。          
确认测试:测试系统的各项功能,尤其是对异常状况以及非法输入的响应以及处理。
具体的测试项目包括有:
l  借书
测试图书出借功能,内容包括读者ID输入、合理性检查、合法性检查,借书对话框显示控制,图书书号提交、合理性检查、合法性检查,借书登记。
l   还书
测试图书返还功能,内容包括还书对话框显示控制,图书书号提交、合理性检查、合法性检查,还书登记。
l       系统操作登录
测试系统操作界面,内容包括管理员帐号口令输入、合理性检查、合法性检查,系统操作界面显示控制(由于对于权限没有划分很细,所以只区分管理员和非管理员)
l        更改口令
测试更改当前管理员口令功能,内容包括原有口令输入、合理性检查、合法性检查,新口令输入、合理性检查,更新口令。
l        图书库操作
测试图书库操作功能,内容包括图书库管理界面显示控制,图书库浏览,增加图书记录,删除图书记录,编辑图书记录。
l  读者库操作
测试读者库操作功能,内容包括读者库管理界面显示控制,读者库浏览,增加读者记录,删除读者记录,编辑读者记录。
l  数据备份
测试数据文件备份功能,内容为文件拷贝。
l  图书查询
测试图书查询功能,内容包括图书查询对话框显示控制,输入数据合理性检验、提交,图书查询结果显示。
l  数据统计
测试数据统计功能,内容包括数据统计对话框显示控制,输入数据合理性检验、提交,统计结果显示。
3.3测试准备
**       **测试人员讨论并准备一些测试用例。
 
3.4测试机构及人员
**       **测试机构:电信科学技术研究院
       测试负责人及人员:张耀,金钟。

4.       测试项目说明

4.1          借书
              条件:    读者表

ReaderIDnameaddress
9710013JinZhongAddress1
9710007GuJinAddress2
9710015LiYongAddress3
9710016LiZhitaoAddress4

图书表

bookNumBookNamestatus
1Book11
2Book20
3Book32
4Book40
5Book53
6Book60
7Book70
8Book81
9Book93
10Book101
11Book112
12Book122

借书记录表

bookNumReaderIDborrowDate
197100072001/4/10
297100072001/4/15
397100072001/5/13
497100072001/3/23
597100132001/6/22
697100072001/2/15

(一个人最多借5本书)
用户输入:
1)       name:JinZhong
2)       name:LiYong          bookNum:2
3)       name:GuJin            bookNum:11
4)       bookNum:3
5)       bookNum:20
6)       name:HuFuming
输出
1)                     显示借书对话框,显示已经借了一本书,并显示该书信息。提示还可以借4本。
2)                     显示借书对话框,显示已借书0本,还可以借5本。提交借书(2号),还可以借4本书。2号书添加到记录中去,状态为借了1本。
3)                     显示借书对话框,显示已借书5本,不能再借。借书失败。
4)                     显示借书对话框,警告必须输入借书人姓名。
5)                     显示借书对话框,警告必须输入借书人姓名,并且提示该书不存在。
6)                     显示借书对话框,警告此用户不存在。
 
4.2          还书
              条件:
       读者表

ReaderIDnameaddress
9710007GuJinAddress1
9710015LiYongAddress2
9710012HuFumingAddress3
9710018LiuJianAddress4

图书表

bookNumbookNamestatus
1Book11
2Book21
3Book31
4Book41
5Book51
6Book61
7Book71
8Book81
9Book91
10Book101

借书记录表

bookNumReaderIDborrowDate
197100072001/4/9
297100122001/7/31
397100072001/3/10
497100182001/5/31
597100152001/8/30
697100122001/11/3
797100072001/12/20
897100152001/9/30
997100122001/6/1
1097100122001/5/13

**                           **
用户输入(bookNum):
1)     1
2)     2
3)     3
4)     4
5)     5
6)     11
7)     0
显示还书对话框
1)     显示读者ID:9710007,姓名:GuJin。还书超期0,还书号1,以及其它所借书的书名和借书日期。
2)     显示读者ID:9710012,姓名:HuFuming。还书超期0,还书号2,以及其它
所借的书名和借书日期。
3)     显示读者ID:9710007,姓名:GuJin。还书超期10天,还书号3,以及还未还的7号书。
4)     显示读者ID:9710018,姓名:LiuJian。还书超期22天,还书号4,没有未还图书。
5)     显示读者ID:9710015,姓名:LiYong。还书超期0,还书号5,以及其它未
还图书的书名和借书日期。
6)     提示无该编号图书。
7)     警告非法图书号。
 
4.3          系统操作登录
              条件:    系统操作员表

addministerIDpasswordIsaddministrater
JZjinzhongY
LYliyongY
GJgujinN
HFMhufumingN

用户输入:
1)       JZ                  jinzhong
2)       LY                 liyong
3)       GJ                 gujin
4)       HFM                     hufuming
5)       JZ                  liyong
6)       XHY                     xuhengyu
7)       ATZ               jinzhong
输出:
1)      显示系统管理对话框,各个按钮均可用。
2)      显示系统管理对话框,各个按钮均可用。
3)      显示系统管理对话框,按钮禁用。
4)      显示系统管理对话框,按钮禁用。
5)      显示系统管理对话框,提示密码错误。
6)      显示系统管理对话框,提示非法用户。
7)      显示系统管理对话框,提示非法用户。
 
4.4          更改口令
              条件:    管理员员表

addministerIDpasswordisaddministrater
JZjinzhongY

用户输入:
1)      旧口令:jinzhong          确认:jinzhong             新口令:liyong
2)      旧口令:jinzhong          确认:jinzhongjin   新口令:lksdjf
3)      旧口令:sdlfkj              确认:sdlfkj          新口令:ldsdkd
 
              输出:
1)     显示输入对话框,提交成功,设置新口令为:liyong。
2)     显示输入对话框,提交数据后提示两次口令输入不一致,请重新确认旧口令。
3)     显示输入对话框,提交后警告口令错误,无法设置新的口令。
 
4.5          图书库管理
              如图书表为空则除了加入和退出按钮可用,其它按钮禁用。
条件:图书表

bookNumbookNamestatusauthorPublishDatepublisherprice
1Book11Auth12001/1/1Pub111.00
2Book20Auth22001/1/2Pub222.00
3Book31Auth32001/1/3Pub333.00
4Book40Auth42001/1/4Pub444.80
5Book50Auth52001/1/5Pub555.00
6Book61Auth62001/1/6Pub666.50

用户输入:
1)       “前一个”按钮            “后一个”按钮
2)       “移动到”按钮            3
3)       “移动到”按钮            7
4)       “加入”按钮        15
5)       “移动到”按钮            15
6)       “删除”按钮        2
7)        “加入”按钮             1
8)        “删除”按钮             5            取消删除
9)       “删除”按钮        5            确认删除
10)    “移动到”按钮            5
11)     “删除”按钮             16
 
输出:
显示图书库操作对话框,记录指针停留在第一条记录上,如按下“前一个”按钮,提示,该记录已经是第一条记录
1)       显示更新,图书书号2,显示更新,图书书号1
2)       显示输入对话框,显示更新,记录为3号图书
3)       警告,提示该记录不存在
4)       显示更新,记录指针回到第一条记录
5)       显示更新,看到书号为15的记录
6)       提示是否确定要删除书号为2的记录
7)       警告,已经存在书号为1的记录
8)       显示更新,为当前的记录
9)       显示更新回到第一条记录
10)    警告,该记录不存在
11)    警告,无法删除一个不存在的记录
 
4.6          读者库管理
如读者表为空则除了加入和退出按钮可用,其它按钮禁用。
条件:读者表

readerIDnameaddress
9710007GuJinAddress1
9710013JinZhongAddress2
9710015LiYongAddress3
9710012HuFumingAddress4
9710018LiuJianAddress5
9710001HanWeiAddress6
9710002ZhangZhengAddress7

用户输入:
1)       “下一个”按钮            “上一个”按钮
2)       “移动到”按钮            9710002
3)       “移动到”按钮            9710011
4)       在9710002处        “下一个”按钮
5)       “加入”按钮        9710011
6)       “加入”按钮        9710011
7)       “加入”按钮        0
8)       “移动到” 按钮          9710013                “删除”按钮        取消删除
9)       “移动到”按钮            9710013
10)    “移动到” 按钮          9710013                “删除”按钮        确认删除
11)    “移动到”按钮            9710013
 
输出:显示图书库操作对话框,记录指针停留在第一条记录上,如按下“前一个”按钮,提示,该记录已经是第一条记录
1)       显示更新,97100013;显示更新,9710007
2)       显示9710002的信息
3)       警告,不存在此记录
4)       提示,此记录已经是最后一条记录
5)       数据更新,显示第一条记录
6)       警告,已经存在此记录
7)       警告,非法数据输入
8)       删除操作取消
9)       显示记录9710013
10)    删除操作
11)    警告,此记录不存在
 
4.10 图书查询
              条件:    图书表

bookNumbookNamestatusauthorpublishDatepublisherprice
1Book11Auth12001/1/1Pub111.00
2Book20Auth22001/1/2Pub222.00
3Book30Auth32001/1/3Pub333.00
4Book42Auth42001/1/4Pub444.00
5Book51Auth52001/1/5Pub555.00
6Book63Auth62001/1/6Pub666.00
7Book72Auth72001/1/7Pub777.00
8Book81Auth82001/1/8Pub888.00

用户输入:
1)      选择“书名”        输入Book1
2)      选择“书名”        输入Book9
3)      选择“书名”        输入21321
4)      选择“作者”        输入Auth2
5)      选择“作者”        输入Auth18
6)      选择“书名”        输入131
7)      选择“出版社”            输入Pub8
8)      选择“出版社”            输入Pub11
9)      选择“出版社”            输入23132
10)    选择“出版时间” 输入2001/1/5
11)    选择“出版时间” 输入2001/3/3
12)    选择“出版时间” 输入200000
 
              输出:
1)       显示该图书信息
2)      提示无此图书
3)      警告,非法输入
4)      显示该图书信息
5)      提示无此图书
6)      警告,非法输入
7)       显示该图书信息
8)       提示无此图书
9)       警告,非法输入
10)    显示该图书信息
11)    提示无此图书
12)    警告,非法输入
 
4.11 数据统计
条件:读者表

ReaderIDnameaddress
9710007GuJinAddress1
9710013JinZhongAddress2
9710015LiYongAddress3
9710002ZhangZhengAddress4
9710001HanWeiAddress5

借书记录表

bookNumReaderIDout_date
197100132001/1/1
297100012001/1/2
397100022001/1/3
497100152001/1/4
597100072001/1/5

图书表

bookNumbookNamestatusauthorpublishDatepublisherprice
1Book11Auth12001/1/1Pub111.00
2Book20Auth22001/1/2Pub222.00
3Book30Auth32001/1/3Pub333.00
4Book42Auth42001/1/4Pub444.00
5Book51Auth52001/1/5Pub555.00
6Book63Auth62001/1/6Pub666.00
7Book72Auth72001/1/7Pub777.00
8Book81Auth82001/1/8Pub888.00

用户输入:
1)      选择“图书统计” 选择“单价” >     50.00
2)      选择“读者统计” 选择“读者ID”
3)      选择“借书情况统计”选择“出借日期”   2001/1/1  到    2001/1/4
4)      选择“图书统计” 选择“出版时间” 2001/1/2  到    2001//1/6
5)      选择“图书统计” 选择“书号”
6)      选择“图书统计” 选择“单价” =     50.00
7)      选择“借书情况统计”选择“出借日期”   2001/2/4  到    2001/3/4
 
              输出:
1)      显示后4个图书记录,读者借书情况记录
2)      显示所有记录
3)      显示前4个图书记录,读者借书情况记录
4)      显示第2到第6个图书记录,读者借书情况记录
5)      显示所有记录
6)      提示无此记录
7)      提示无此记录
 
 
 
用 户 手 册
 
1. 引言:
1.1 编写目的:
编写本手册的目的在于使没有接触本系统的用户能够学会使用本系统
1.2 项目背景:
    本项目主要是根据软件工程课程的实践需要,根据小型图书管理的流程,与软件工程的理论相结合,完成本项目的开发。本项目的设计和开发目标是达到软件工程课程理论和实际相结合的目的。
      1.3 定义:
·         数据流图
从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。
·         数据词典
对于数据流图中出现的所有被命名的图形元素在数据词典中作为一个词条加以定义, 使得每一个图形元素的名字都有一个确切的解释。
 
2.软件概述:
本系统应该完成一个小型图书馆的所有功能,包括以下内容:
(1)图书管理
此操作由操作员完成,单击菜单选项的“图书数据管理”,进入图书管理系统,可以修改、删除、添加图书记录。
(2)读者信息管理
此操作由操作员完成,单击菜单选项的“读者数据管理”,进入图书管理系统,可以修改、删除、添加读者信息。
(3)读者借书
读者可以凭借书证根据权限借某一本或几本图书, 此信息进入流通信息库,此操作由操作员和读者共同完成。
(4)读者还书
读者归还自己借的图书,系统修改相应的读者信息、图书信息,并删除流通信息库中的相关信息,此操作由操作员完成。
(5)查询
读者可以用不同方式如根据书名或内容查询图书馆中的藏书信息,读者还可以查询自己的借书信息,操作员可以查询所有读者的借书信息。
(6)续借
如果到了归还期限读者还想继续借阅,可以续借,但续借次数有限制,并据此修改流通信息,此操作由操作员和读者共同完成。
(7)罚款
读者还书时如果过期或图书破损或读者丢失图书,需根据过期时间或图书价格对读者罚款,并修改相应的图书信息,把罚款信息记录到罚款信息库中,此操作由操作员完成。
 
3.运行环境:
3.1 硬件:带有内存10M的计算机。
3.2 软件: MICROSOFT   ACCESS。
 
4.使用说明:
   安装和初使化:双击带有立方体图标,进入界面“新建”,,单击“确定”键,便进入主界面。本程序是在VISUAL  C++6.0中完成的。
 
5.运行说明:
 
运行步骤:
5.1 操作员登录
目的:防止其它人对图书管理系统的不正当使用及破坏
操作步骤:单击桌面上的LMS图标,便进入图书管理系统,这时会出现对话框,输入用户名及密码,如正确即可进入系统,并进行相关操作,如不正确,出现提示信息,要求重新输入,3次不正确输入,系统自动关闭。
5.2 读者欲进行书目查询:
目的:根据关键字查询到自己想要的书;
操作步骤:可通过互联网查询,点击主界面上的图书查询, 便进入书目查询的界面。这时,读者可在书号,书名,作者,出版社,多关键字项中任选其中几项输入欲查询的条件和要求,然后单击“提交”键,便可以得到查询结果。如果读者想放弃此次查询或查询到结果后想返回主界面,可以单击“返回”键,返回到主界面。
5.3 操作员欲进行新书入库:
目的:将新书的有关信息输入图书库中;
操作步骤:单击主界面上的库存管理,进入新书入库的界面。这时,单击工具栏中的第一个图标,便可以输入该书的所有相关信息。同时可以通过工具栏中的图标进行图书的浏览。如果操作员想放弃此次新书入库操作或达到目的后想返回主界面,可以单击“返回”键,返回到主界面。
5.4 操作员欲进行旧书出库:
目的:将旧书的有关信息从图书库中删除;
操作步骤:单击主界面上的库存管理,进入旧书出库的界面。这时,单击工具栏中的第一个图标,便可以输入该书的所有相关信息。同时可以通过工具栏中的图标进行图书的浏览。如果操作员想放弃此次旧书出库操作或达到目的后想返回主界面,可以单击“返回”键,返回到主界面。
5.5 操作员欲进行增加新读者:
目的:将新读者的有关信息输入读者库中;
操作步骤:操作步骤:单击主界面上的读者管理,进入新增读者的界面。这时,单击工具栏中的第一个图标,便可以输入读者的所有相关信息。同时可以通过工具栏中的图标进行读者的浏览。如果操作员想放弃此次增加读者操作或达到目的后想返回主界面,可以单击“返回”键,返回到主界面。
5.6 操作员欲进行删除到期读者:
目的:将到期读者的有关信息从读者库中删除;
操作步骤:单击主界面上的读者管理,进入读者的界面。这时,单击工具栏中的第一个图标,便可以输入读者的所有相关信息。同时可以通过工具栏中的图标进行读者的浏览。如果操作员想放弃此次旧书出库操作或达到目的后想返回主界面,可以单击“返回”键,返回到主界面。
5.7 操作员欲进行借书操作:
    目的:对读者进行身份审核,并进行借书的相关操作;
操作步骤:。进入流通主界面后,操作员输入读者编码,并单击借阅,如果读者编码不出现在所检索到的条目中,说明该读者无权在该图书馆中借阅书;如果所检索到的条目为零,说明该读者还未曾在该图书馆中借书,这时更新零为所借的图书编码;如果所检索到的条目中不为零,则重新输入读者编码和所借的图书编码。这样,流通库中已经保存了该借阅信息。自动更新读者库和书库。这样操作员就完成了对该读者借阅该书的全部对库的操作。单击“返回”键,返回到主界面。
5.8 操作员欲进行还书操作:
    目的:对读者进行还书的相关操作(注意:如果有过期要进行罚款);
操作操作步骤:。进入流通主界面后,操作员输入图书编码,并单击还书,自动更新读者库和书库,并自动判断是否超期。这样操作员就完成了对该读者还书的全部对库的操作。单击“返回”键,返回到主界面。
5.9 操作员欲进行罚款操作:
    目的:对读者进行罚款的相关操作;
操作步骤:这是伴随还书操作而进行的。先要检查RETURNDATE是否逾期,如果有逾期要罚款。这时,单击流通界面上的“确定”键,
并打印所罚的书的书名,及罚款金额,罚款原因,罚款日期,经手人姓名。
    这样,罚款操作完毕。
 
6.用户操作举例:
6.1 用户进行图书查询:
目的:用户要查询“清华大学出版社”出版的有关“数据结构”方面的书籍。
    步骤:用户单击主界面上的书目查询的界面。这时,用户在书名中输入“计算机” ,作者中不输入查询条件,出版社中输入“清华大学出版社”,然后单击“开始”键,得到查询结果如下:
 
11   数据结构   殷人昆      清华大学出版社  
12   数据结构   严慰敏      清华大学出版社 
 
及相关的的,页数,价格,书号,现金,出版日期。
然后单击“返回”键,返回到主界面。
 
6.2 用户进行读者信息查询:
目的:用户要根据自己的读者编码查询自己图书证的有效期和目前拥有册数。
步骤:单击主界面查询的界面。这时,读者可在(读者编码)中输入100007 ,然后单击“开始”键,得到查询结果如下:
 
hero   100007   男  大唐电信  职员   1   20500305
 
单击“返回”键,返回到主界面。
 
6.3 操作员执行新书入库:
目的:将新书——《软件工程》的有关信息输入图书库中;
操作步骤:单击主界面上的库存管理,然后进入新书入库的界面。这时,通过工具栏中的个图标查询到图书库中目前拥有20本书籍,并按次序排列到第20号。单击工具栏中的第一个图标,
输入相关信息如下:
 
bookname:软件工程                   price:30.00
bookmark: 21                        ISBN:40—21
author:  殷人昆                      total:5
publishion:清华大学出版社            current:5
pages:    300                        publishdate:98—10—7
   
    这样一来,库中就有了第21号记录。
单击“返回”键,返回到主界面。
 
6.4 操作员执行旧书出库:
目的:将第28号图书的有关信息从图书库中删除;
操作步骤:单击主界面上的库存管理,然后进入旧书出库的界面。这时,通过工具栏中的个图标查询到图书库中目前拥有20本书籍,并按次序排列到第20号。单击工具栏中的第一个图标,然后确认删除。

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

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

相关文章

开式双比例泵控制放大器

比例泵PQ控制放大器的主要作用是通过接收来自控制器的信号,并将其转换为适当的电流信号,以驱动变量泵。这种控制方式可以实现对泵输出流量和压力的精确控制,从而实现节能和提高效率的目的。比例泵PQ控制放大器通常用于节能型泵控制系统中&…

【Linux系列】tail查询使用

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【6D位姿估计】ZebraPose 层次化分组策略 由粗到细的表面编码

前言 本文介绍6D位姿估计的方法ZebraPose,也可以称为六自由度物体姿态估计,输入单张图片,输出物体的三维位置和三维方向。 它来自CVPR2022的论文,通过层次化分组策略,高效地编码物体表面的信息。 ZebraPose提出了一…

运维自动化之 ansible

目录 一 常见的自动化运维工具 (一)有哪些常见的 自动化运维工具 (二)为什么后面都变成用 ansible 二 ansible 基本介绍 1, ansible 是什么 2,ansible能干什么 3,ansible 工作原…

Linux网络—PXE高效批量网络装机

目录 一、部署PXE远程安装服务 1、搭建PXE远程安装服务器 1)安装并启用 TFTP 服务 2)安装并启用 DHCP 服务 3)准备 Linux 内核、初始化镜像文件 4)准备 PXE 引导程序 5)安装FTP服务,准备CentOS 7 安…

OpenCV 入门(一) —— OpenCV 基础

OpenCV 入门系列: OpenCV 入门(一)—— OpenCV 基础 OpenCV 入门(二)—— 车牌定位 OpenCV 入门(三)—— 车牌筛选 OpenCV 入门(四)—— 车牌号识别 OpenCV 入门&#xf…

Springboot框架web开发实用功能-02

在些模块中汇总了一些web开发常用的配置和功能。 涉及的模块 springboot-common-config, 端口号:17000 Springboot框架web开发常用功能 Restful接口定义 查询参数 Data public class QueryParam {private String key;private String value; }Control…

MATLAB实现杜拉德公式和凯夫公式的计算固液混合料浆临界流速

MATLAB实现杜拉德公式和凯夫公式的计算固液混合料浆临界流速: 杜拉德公式是用来计算非均质固液混合料浆在输送管中的临界速度的公式,具体形式为: uL FL (2gD / (ρ0 - ρ1))^(1/2) 其中: uL:表示料浆的临界速度,…

Hbase 常用shell操作

目录 1、创建表 1.1、启动HBase Shell 1.2、创建表 1.3、查看表 1.4、删除表 2、插入数据 2.1、put命令 3、查看数据 3.1、get命令 3.2、查询数据中文显示 4、更新数据 4.1、使用put来更新数据 5、删除数据 5.1、delete命令 5.2、删除指定列的数据 5.3、delete…

Pycharm debug 运行报错 (RuntimeError: cannot release un-acquired lock)

问题描述: 最近再跑一个 flask应用,Pycharm 运行没问题,debug断点启动时报错 如下: 解决方案: 在环境变量中增加 GEVENT_SUPPORTTrue 启动成功!

libcity笔记:添加新模型(以RNN.py为例)

创建的新模型应该继承AbstractModel或AbstractTrafficStateModel 交通状态预测任务——>继承 AbstractTrafficStateModel类轨迹位置预测任务——>继承AbstractModel类 1 AbstractTrafficStateModel 2 RNN 2.1 构造函数 2.2 predict 2.3 calculate_loss

博客系统项目测试报告

文章目录 一.报告概要二.测试环境三.手工测试用例四.编写测试用例五.自动化测试Selenium测试项目主要特点 一.报告概要 项目概要 本项目是一个全功能的个人博客系统,旨在提供一个用户友好、功能全面的平台,允许用户注册、登录、浏览博客、查看详细内容、…

Mac跑llama.cpp过程中遇到的问题

原repo 在华为手机上安装termux、下载库:顺利在电脑上安装Android NDK:先下载Android Studio,再在里面下载Android SDK 安装Android Studio时,SDK的某些组件总是下载不成功。后来关了梯子、改了hosts,重新安装就成功了…

Golang | Leetcode Golang题解之第73题矩阵置零

题目&#xff1a; 题解&#xff1a; func setZeroes(matrix [][]int) {n, m : len(matrix), len(matrix[0])col0 : falsefor _, r : range matrix {if r[0] 0 {col0 true}for j : 1; j < m; j {if r[j] 0 {r[0] 0matrix[0][j] 0}}}for i : n - 1; i > 0; i-- {for …

Go实现树莓派控制舵机

公式说明 毫秒&#xff08;ms&#xff09;是时间的单位&#xff0c;赫兹&#xff08;Hz&#xff09;是频率的单位&#xff0c;而DutyMax通常是一个PWM&#xff08;脉冲宽度调制&#xff09;信号中表示最大占空比的值。以下是它们之间的关系和一些相关公式&#xff1a; 频率&…

【华为】路由策略小实验

【华为】软考中级-路由策略实验 实验需求拓扑配置AR1AR2需求1需求2 AR3 检验 实验需求 1、让 R3 可以学到R1的 192.168.10.0/24和192.168.20.0/24的 路由&#xff0c;不能学到192.168.30.0/24。 2、让 R1可以学到 R3 的 172.16.20.0/24和172.16.30.0/24的路由&#xff0c;不能…

opencv图像处理详细讲(二)

联通组件分析 联通组件定义&#xff1a;像素值相同&#xff0c;通过四邻域或者八邻域相互连通的像素块。 换句话说&#xff0c;就是使用四邻域或八邻域的连通性&#xff0c;遍历图像的像素&#xff0c;并确定像素值相同并且连通的像素块&#xff0c;将它们标记为一个联通组件 两…

虚拟机VM VirtualBox安装openEuler+UKUI的安装和卸载_2024

虚拟机VM VirtualBox安装openEuler ps. 建议先看最后的其他 下载openEuler openEuler官网下载 一般来说标准版就够用了 使用虚拟机VM VirtualBox安装openEuler 新建虚拟机 修改用户名密码&#xff0c;建议修改&#xff0c;虽然之后还可以通过命令行修改&#xff08;注意密…

pyecharts绘制世界动态轨迹图(v0.5.X与v1.X版本对比)

一、问题引入 pyecharts官网&#xff1a;https://pyecharts.org/#/zh-cn/intro 在使用Geo或者GeoLines绘制动态轨迹图时&#xff0c;如果所选地区是中国的省份或者城市&#xff0c;是能够匹配到对应的经纬度并且正常绘制的&#xff1b;如果所选地区涉及到其他国家或者国外城市&…

Docker-harbor

一、搭建本地私有仓库 1.1 下载Registry镜像 1.2 添加本地私有仓库配置 1.3 重启服务并运行Registry容器 1.4.容器的操作 1.4.1 拉取Nginx镜像并为镜像打标签 1.4.2 上传到私有仓库 1.4.3 列出私有仓库所有镜像 1.4.4 列出私有仓库的镜像的所有标签 1.4.5 先删除原有…