软件工程案例学习-图书管理系统

文档编号:LMS_1
                                                                           版 本 号:V1.0

文档名称:需求分析规格说明书
项目名称:图书管理系统
项目负责人:

编写:                               年  月 日
校对:
审核:
批准:
开发单位:
引言:
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.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 书号   
属性名 类型.长度 值域 说明   
ISBN 2{字节}30     
书名 2{字节}30     
查询名称 2{字节}30     
类别  2{字节}10     
出版日期 年+月+日     
定价 “0000.01”.. “9999.99”     
作者 2{字节}12     
出版社 2{字节}10     
内容简介 2{字节}50

数据量预测说明:
 
年数椐量 数据增长率 极限数据量 备注   
2M 1% 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 书号   
属性名 类型.长度 值域 说明   
ISBN 2{字节}30     
id 2{字节}10     
借阅等级 2{字节}10     
状态 2{字节}2

数据量预测说明:
 
年数椐量 数据增长率 极限数据量 备注   
20M 1% 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

年数据量预测说明:
 
年数椐量 数据增长率 极限数据量 备注   
1M 10% 4M

5.2.9 图书流通信息:
目标:
记录图书流通信息。
关联其他数据对象:图书信息、读者信息
属性说明:
 
PrimaryKey 证号、书号   
ForeignKey    
UniqueKey 证号、书号   
IndexKey 证号、书号   
属性名 类型.长度 值域 说明   
证号 2{字节}20     
书号 2{字节}15     
借出时间 年+月+日     
应还时间 年+月+日

年数据量预测说明:
 
年数椐量 数据增长率 极限数据量 备注   
40M 10% 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

文档名称:概要设计说明书
项目名称:图书管理系统
项目负责人:

编    写:                                年   月    日
校    对:
审    核:
批    准:
开发单位:电信科学技术研究院研究生部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.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总体结构:
总体结构:

2.业务对象:

3.用户接口:

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




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

2.出版社:
 




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

3.图书分类:
 




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

4.图书编目:
 




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

5.图书借阅等级:
 




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

6.图书库存信息:
 




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

7.读者借阅等级:
 




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

8.读者信息:
 




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

9.图书操作:
 




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

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

主界面:

图书编目界面:

图书库存管理界面:

读者管理界面:

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

出版社:

图书借阅等级:

读者借阅等级:

图书状态:

类别:

图书操作界面:
借阅:

预约:

查询界面:

软件接口:使用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出错处理对策:
一般错误:显示错误信息,提示用户重新操作
严重错误:重新启动,必要时启用备份恢复数据
8. 安全保密设计:
提供用户登录机制,不同级别的用户拥有不同的权限。

9.维护设计
可以在软件交付后根据用户反馈意见修必类模块功能。

文档编号:LMS_3
版 本 号: V1.0

文档名称:详细设计说明书
项目名称:图书管理系统
项目负责人:

编    写:                             年   月    日
校    对:
审    核:
批    准:
开发单位:
引言:
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.1需求概述:
该《图书管理系统》针对的用户是中型图书室,藏书的种类包括中、英、俄、德、日文书籍和期刊,读者的数量和来源仅限于本单位职工及通过馆际互借认可的读者。相应的需求有:
1>能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:
图书信息的录入、删除及修改。
图书信息的多关键字检索查询。
图书的出借、返还和资料统计。
图书的远程预约和续借。
馆际互借(通过电子邮件或现场录入)
   2>能够对一定数量的读者进行相应的信息存储与管理,这其中包括:
读者信息的登记、删除及修改。
读者资料的统计与查询。
   3>能够对需要的统计结果提供打印输出。
   4>能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。

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

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

文档名称:    测试计划
   项目名称:    图书管理系统
项目负责人:

引言

编写目的
编写调试完《图书管理系统》软件之后,为使用户能熟悉和使用该软件,需要有相应的软件软件测试计划,基于此目的编写了此软件测试计划说明书,供软件测试人员阅读。
 
项目背景
项目委托单位:。
开发单位:。
主管部门:。
  图书管理系统软件 V1.0是一功能比较完善的数据管理软件,具有数据操作方便高效迅速等优点。该软件采用功能强大的数据库软件开发工具进行开发,可在应用范围较广的WINDOWS系列等操作系统上使用。

参考资料
郑人杰,殷人昆,陶永雷。《实用软件工程》(第二版)。北京:清华大学出版社。1997。
David J. Kruglinski,Scot Wingo, George Shepherd著《Visual C++ 技术内幕6.0(第五版)》北京:希望电子出版社。1999。

软件概述
目标
  《图书管理系统》针对的用户是单个中小型图书室或者个人,藏书的种类和数量较少,读者的数量和来源受到一定的限制。相应的需求有:
能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:
   1)  图书信息的录入、删除及修改。
   2)  图书信息的多关键字检索查询。
图书的出借、返还和资料统计。
能够对一定数量的读者进行相应的信息存储与管理,这其中包括:
读者信息的登记、删除及修改。
读者资料的统计与查询。
能够对需要的统计结果提供列表显示输出。
能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。
运行环境
Intel486以上系列、AMD K6 以上系列等PC台式机和便携式电脑;
  运行时占用内存:≤1MB;
  所需硬盘空间:≤5MB;
  软件平台:中文Windows95/98/NT 4.0或更高版本;
需求概述
《图书管理系统》的总体功能如下:
图书的出借;
图书的归还;
图书信息查询;
图书的增删改;
读者的增删改;
条件与限制
由于时间比较短,使用计算机不方便以及对于网络编程不熟悉,本图书馆管理系统并没有提供数据的远程访问功能。对信息的保护手段仅限于设置用户级别,以及提供数据文件的备份,比较简单,安全性能有待进一步完善。

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

3.4测试机构及人员
 测试机构:
 测试负责人及人员:

测试项目说明
4.1  借书
  条件: 读者表  
 
ReaderID name address   
9710013 JinZhong Address1   
9710007 GuJin Address2   
9710015 LiYong Address3   
9710016 LiZhitao Address4 
    
图书表  
 
bookNum BookName status   
1 Book1 1   
2 Book2 0   
3 Book3 2   
4 Book4 0   
5 Book5 3   
6 Book6 0   
7 Book7 0   
8 Book8 1   
9 Book9 3   
10 Book10 1   
11 Book11 2   
12 Book12 2 
    借书记录表 
 
bookNum ReaderID borrowDate   
1 9710007 2001/4/10   
2 9710007 2001/4/15   
3 9710007 2001/5/13   
4 9710007 2001/3/23   
5 9710013 2001/6/22   
6 9710007 2001/2/15 
    (一个人最多借5本书)
用户输入:
name:JinZhong
name:LiYong  bookNum:2
name:GuJin  bookNum:11
bookNum:3
bookNum:20
name:HuFuming
输出
显示借书对话框,显示已经借了一本书,并显示该书信息。提示还可以借4本。
显示借书对话框,显示已借书0本,还可以借5本。提交借书(2号),还可以借4本书。2号书添加到记录中去,状态为借了1本。
显示借书对话框,显示已借书5本,不能再借。借书失败。
显示借书对话框,警告必须输入借书人姓名。
显示借书对话框,警告必须输入借书人姓名,并且提示该书不存在。
显示借书对话框,警告此用户不存在。

4.2  还书
  条件:
 读者表  
 
ReaderID name address   
9710007 GuJin Address1   
9710015 LiYong Address2   
9710012 HuFuming Address3   
9710018 LiuJian Address4 
    
图书表  
 
bookNum bookName status   
1 Book1 1   
2 Book2 1   
3 Book3 1   
4 Book4 1   
5 Book5 1   
6 Book6 1   
7 Book7 1   
8 Book8 1   
9 Book9 1   
10 Book10 1

借书记录表 
 
bookNum ReaderID borrowDate   
1 9710007 2001/4/9   
2 9710012 2001/7/31   
3 9710007 2001/3/10   
4 9710018 2001/5/31   
5 9710015 2001/8/30   
6 9710012 2001/11/3   
7 9710007 2001/12/20   
8 9710015 2001/9/30   
9 9710012 2001/6/1   
10 9710012 2001/5/13 
    
用户输入(bookNum):
1
2
3
4
5
11
0
显示还书对话框
显示读者ID:9710007,姓名:GuJin。还书超期0,还书号1,以及其它所借书的书名和借书日期。
显示读者ID:9710012,姓名:HuFuming。还书超期0,还书号2,以及其它
所借的书名和借书日期。
显示读者ID:9710007,姓名:GuJin。还书超期10天,还书号3,以及还未还的7号书。
显示读者ID:9710018,姓名:LiuJian。还书超期22天,还书号4,没有未还图书。
显示读者ID:9710015,姓名:LiYong。还书超期0,还书号5,以及其它未
还图书的书名和借书日期。
提示无该编号图书。
警告非法图书号。

4.3  系统操作登录
  条件: 系统操作员表
 
addministerID password Isaddministrater   
JZ jinzhong Y   
LY liyong Y   
GJ gujin N   
HFM hufuming N 
  
用户输入:
JZ   jinzhong
LY   liyong
GJ   gujin
HFM   hufuming
JZ   liyong
XHY   xuhengyu
ATZ   jinzhong
输出:
显示系统管理对话框,各个按钮均可用。
显示系统管理对话框,各个按钮均可用。
显示系统管理对话框,按钮禁用。
显示系统管理对话框,按钮禁用。
显示系统管理对话框,提示密码错误。
显示系统管理对话框,提示非法用户。
显示系统管理对话框,提示非法用户。

4.4  更改口令
  条件: 管理员员表
 
addministerID password isaddministrater   
JZ jinzhong Y

用户输入:
旧口令:jinzhong  确认:jinzhong  新口令:liyong
旧口令:jinzhong  确认:jinzhongjin 新口令:lksdjf
旧口令:sdlfkj   确认:sdlfkj  新口令:ldsdkd

输出:
显示输入对话框,提交成功,设置新口令为:liyong。
显示输入对话框,提交数据后提示两次口令输入不一致,请重新确认旧口令。
显示输入对话框,提交后警告口令错误,无法设置新的口令。

4.5  图书库管理
  如图书表为空则除了加入和退出按钮可用,其它按钮禁用。
条件:图书表
 
bookNum bookName status author PublishDate publisher price   
1 Book1 1 Auth1 2001/1/1 Pub1 11.00   
2 Book2 0 Auth2 2001/1/2 Pub2 22.00   
3 Book3 1 Auth3 2001/1/3 Pub3 33.00   
4 Book4 0 Auth4 2001/1/4 Pub4 44.80   
5 Book5 0 Auth5 2001/1/5 Pub5 55.00   
6 Book6 1 Auth6 2001/1/6 Pub6 66.50 
    
用户输入:
“前一个”按钮  “后一个”按钮
“移动到”按钮  3
“移动到”按钮  7
“加入”按钮  15
“移动到”按钮  15
“删除”按钮  2
 “加入”按钮  1
 “删除”按钮  5  取消删除
“删除”按钮  5  确认删除
“移动到”按钮  5
 “删除”按钮  16

输出:
显示图书库操作对话框,记录指针停留在第一条记录上,如按下“前一个”按钮,提示,该记录已经是第一条记录
显示更新,图书书号2,显示更新,图书书号1
显示输入对话框,显示更新,记录为3号图书
警告,提示该记录不存在
显示更新,记录指针回到第一条记录
显示更新,看到书号为15的记录
提示是否确定要删除书号为2的记录
警告,已经存在书号为1的记录
显示更新,为当前的记录
显示更新回到第一条记录
警告,该记录不存在
警告,无法删除一个不存在的记录

4.6  读者库管理
如读者表为空则除了加入和退出按钮可用,其它按钮禁用。
条件:读者表
 
readerID name address   
9710007 GuJin Address1   
9710013 JinZhong Address2   
9710015 LiYong Address3   
9710012 HuFuming Address4   
9710018 LiuJian Address5   
9710001 HanWei Address6   
9710002 ZhangZheng Address7

用户输入:
“下一个”按钮  “上一个”按钮
“移动到”按钮  9710002
“移动到”按钮  9710011
在9710002处  “下一个”按钮
“加入”按钮  9710011
“加入”按钮  9710011
“加入”按钮  0
“移动到” 按钮  9710013   “删除”按钮  取消删除
“移动到”按钮  9710013
“移动到” 按钮  9710013   “删除”按钮  确认删除
“移动到”按钮  9710013

输出:显示图书库操作对话框,记录指针停留在第一条记录上,如按下“前一个”按钮,提示,该记录已经是第一条记录
显示更新,97100013;显示更新,9710007
显示9710002的信息
警告,不存在此记录
提示,此记录已经是最后一条记录
数据更新,显示第一条记录
警告,已经存在此记录
警告,非法数据输入
删除操作取消
显示记录9710013
删除操作
警告,此记录不存在

4.10 图书查询
  条件: 图书表
 
bookNum bookName status author publishDate publisher price   
1 Book1 1 Auth1 2001/1/1 Pub1 11.00   
2 Book2 0 Auth2 2001/1/2 Pub2 22.00   
3 Book3 0 Auth3 2001/1/3 Pub3 33.00   
4 Book4 2 Auth4 2001/1/4 Pub4 44.00   
5 Book5 1 Auth5 2001/1/5 Pub5 55.00   
6 Book6 3 Auth6 2001/1/6 Pub6 66.00   
7 Book7 2 Auth7 2001/1/7 Pub7 77.00   
8 Book8 1 Auth8 2001/1/8 Pub8 88.00 
  用户输入:
选择“书名”  输入Book1
选择“书名”  输入Book9
选择“书名”  输入21321
选择“作者”  输入Auth2
选择“作者”  输入Auth18
选择“书名”  输入131
选择“出版社”  输入Pub8
选择“出版社”  输入Pub11
选择“出版社”  输入23132
选择“出版时间” 输入2001/1/5
选择“出版时间” 输入2001/3/3
选择“出版时间” 输入200000

输出:
显示该图书信息
提示无此图书
警告,非法输入
显示该图书信息
提示无此图书
警告,非法输入
显示该图书信息
提示无此图书
警告,非法输入
显示该图书信息
提示无此图书
警告,非法输入

4.11 数据统计
条件:读者表
 
ReaderID name address   
9710007 GuJin Address1   
9710013 JinZhong Address2   
9710015 LiYong Address3   
9710002 ZhangZheng Address4   
9710001 HanWei Address5 
 
借书记录表 
 
bookNum ReaderID out_date   
1 9710013 2001/1/1   
2 9710001 2001/1/2   
3 9710002 2001/1/3   
4 9710015 2001/1/4   
5 9710007 2001/1/5 
   
图书表
 
bookNum bookName status author publishDate publisher price   
1 Book1 1 Auth1 2001/1/1 Pub1 11.00   
2 Book2 0 Auth2 2001/1/2 Pub2 22.00   
3 Book3 0 Auth3 2001/1/3 Pub3 33.00   
4 Book4 2 Auth4 2001/1/4 Pub4 44.00   
5 Book5 1 Auth5 2001/1/5 Pub5 55.00   
6 Book6 3 Auth6 2001/1/6 Pub6 66.00   
7 Book7 2 Auth7 2001/1/7 Pub7 77.00   
8 Book8 1 Auth8 2001/1/8 Pub8 88.00

用户输入:
选择“图书统计” 选择“单价” > 50.00
选择“读者统计” 选择“读者ID”
选择“借书情况统计”选择“出借日期” 2001/1/1 到 2001/1/4
选择“图书统计” 选择“出版时间” 2001/1/2 到 2001//1/6
选择“图书统计” 选择“书号”
选择“图书统计” 选择“单价” = 50.00
选择“借书情况统计”选择“出借日期” 2001/2/4 到 2001/3/4

输出:
显示后4个图书记录,读者借书情况记录
显示所有记录
显示前4个图书记录,读者借书情况记录
显示第2到第6个图书记录,读者借书情况记录
显示所有记录
提示无此记录
提示无此记录

用 户 手 册

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号。单击工具栏中的第一个图标,然后确认删除。

软件工程案例学习-图书管理系统相关推荐

  1. springboot框架学习 图书管理系统的简单实现

    兄弟们!jvm与线程已经差不多了,接下来的10天时间要放在中间件的学习上了,而且对于spring源码的研究也还没有开始呢!今天上午在图书馆实现了springboot框架写的图书管理系统,很简单的小东西 ...

  2. Oracle学习—图书管理系统_存储过程

    图书管理系统(存储过程实现sql) 图书管理系统(每个学生最多能借本书) 创建三张表对业务逻辑的分析,然后创建数据库 图书信息表tb_book; 学生信息表tb_stu; 借书记录表tb_record ...

  3. 数据结构学习——图书管理系统

    图书管理系统 声明:本文采用C语言编写,实现功能有限,代码中有众多bug,输入文件和输出文件格式不统一,没有采用图形化设计,不喜勿喷 . 1.系统要求 (1)图书信息存储结构设计(书号.书名.类别.作 ...

  4. 整理关于牛人们对图书管理系统领域建模的精彩讨论,以此希望大家学习下别人是如何思考的...

    整理关于牛人们对图书管理系统领域建模的精彩讨论,以此希望大家学习下别人是如何思考的 原文:整理关于牛人们对图书管理系统领域建模的精彩讨论,以此希望大家学习下别人是如何思考的 关于图书管理系统的业务大家 ...

  5. 【毕业设计】基于spring boot的图书管理系统 -java 计算机 软件工程

    文章目录 1 前言 2 系统简介 2.1 领域模型 2.2 技术栈 2.3 表结构设计 2.4 接口设计 2.4.1 接口定义 2.4.2 接口测试 2.5 权限设计 3 运行效果 3.1 系统登录 ...

  6. Java集合案例图书管理系统

    请实现一个简单的图书管理系统,要求如下: 1)定义图书类Book,具有属性账号id,书名name.作者author 和价格price,在创建图书对象时要求通过构造器进行创建,一次性将四个属性全部赋值, ...

  7. Java学习记录之简单的图书管理系统(完善中)

    电子书管理系统 功能划分 最核心的功能 提供图书管理的服务 添加图书 查询 检索所有的图书 按已知检索图书信息 图书的删除 图书信息的更新 用户 用户的类型 管理员:图书的添加.更新.删除操作 普通用 ...

  8. Java基础学习系列--(六)【Map集合,HashMapTreeMap,斗地主、图书管理系统,排序算法】

    第一章 Map集合 1.1 概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存 ...

  9. oracle图书管理项目案例,C#+oracle做的图书管理系统

    [实例简介] 学生时代用C#+Oracle做的管理系统,希望对学生有用 [实例截图] [核心代码] 图书管理系统 └── 图书管理系统 ├── 123课程设计报告.doc ├── oracle课程设计 ...

最新文章

  1. Ubuntu18.04 网络配置
  2. SQL语言之用户(Oracle)
  3. 【数学基础】矩阵的特征向量、特征值及其含义
  4. 一直跳出来 visual_六天时间排出来肾结石,这种经历再也不要了
  5. 抽象工厂模式_设计模式(3) 抽象工厂模式
  6. 网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语
  7. jetty文件服务器,在Jetty中访问Web容器外部的文件
  8. 难道是我洞悉了CSDN网站订阅专栏收益的秘密?带你看看网站专栏一天营收几何?
  9. SQL查询分析器单文件绿色版
  10. day06_雷神_面向对象初识
  11. idea打开项目,项目(project)栏不显示项目项目名和项目结构
  12. java全栈系列之JavaSE-面向对象(接口定义与实现)042
  13. 软件安全测试之系统安全测试
  14. 合并BIN文件的两种方法
  15. MathJax使用LaTeX语法编写数学公式
  16. Unity学习笔记 解决Cinemachine AutoDolly的虚拟相机在轨道上不按轨道前进方向运动的问题
  17. 正则表达式,验证身份证,手机号,电话号码,邮箱,邮编,日期,正负数,英文字符串等
  18. 分享:安全存放web项目数据库连接字符串
  19. 螺旋天线有方向性吗_新型谐振式螺旋天线的工作原理、关键技术及实验结果
  20. python 控制机器人_Pepper中级教程:第一章 如何用Python远程控制机器人

热门文章

  1. 云服务器1和1g装什么系统好,1核1g的云服务器装什么系统好
  2. 区块链 -- 以太坊的36个概念
  3. 零基础学软件测试有前途吗?
  4. 解决:Mac brew Error: Your CLT does not support macOS 11.2
  5. 认识植物 - 桫椤(蕨类植物之王植物活化石)
  6. 钩陈/ 为什么会忍不住复训蟒营™
  7. linux基础命令3(ps、top、ulimit、mkdir、more、cat、diff、grep、touch、cp、find、rm、split、mv、)
  8. 商品出库入库项目html,纯前端微型出入库管理系统(个人使用型)
  9. 《费恩曼物理学讲义》读书笔记
  10. 学术速运|利用分子动力学来模拟洗脱溶液中的环肽构象