图书管理系统详细设计说明书.docx
- 文档编号:30243435
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:35
- 大小:555.13KB
图书管理系统详细设计说明书.docx
《图书管理系统详细设计说明书.docx》由会员分享,可在线阅读,更多相关《图书管理系统详细设计说明书.docx(35页珍藏版)》请在冰豆网上搜索。
图书管理系统详细设计说明书
学年论文(课程设计)
题目:
图书管理系统—详细设计说明书
学院工商学院
学科门类工学
专业软件工程
学号2012484088
姓名李伟
指导教师王思乐
2014年12月22日
总版本
V1.0
编号
LMS
版本
LMS1.0
项目名称
图书管理系统
项目代码
(LMS)LibraryManagementSystem
分项名称
详细设计说明书
分项代码
03
分项序号
LMS03
组长
梅艳涛
负责人
梅艳涛
参与人
梅艳涛李伟
梁雪山赵博深文鹏徐鹤松
指导教师
王思乐
日期
2014年12月22日
开发单位
2012软件工程
河北大学学年论文(课程设计)任务书
(指导教师用表)
学生姓名
李伟
指导教师
王思乐
论文(设计)题目
图书管理系统-详细设计说明书
主要研究
(设计)内容
经过这个阶段的详细设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。
研究方法
课本《软件工程导论》上面介绍了很多关于项目详细设计的研究方法,通过小组讨论,主要采用程序流程图进行详细设计。
主要任务
及目标
对图书管理系统进行详细设计,根本目标是确定应该怎样具体地实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。
主要参
考文献
《数据库系统概论》(第4版)萨师煊王珊高等教育出版社
《软件工程导论》(第5版)张海藩清华大学出版社
《JAVA程序设计实用教程》(第3版)叶核亚电子工业出版社
进度安排
论文(设计)各阶段名称
日期
问题定义
第10周
需求分析、概要设计
第11周-第13周
详细设计
第14周-第15周
实现
第16周
指导教师签字:
河北大学学年论文(课程设计)成绩评定表
学院:
工商学院
学生姓名
李伟
专业年级
2012级软件工程
论文(设计)题目
图书管理系统—详细设计说明书
论文(设计)内容提要
此文档是图书管理系统的详细设计说明书,该报告主要是得出对目标系统的精确描述。
首先引言中介绍了设计该系统的目的,背景和所需要的参考资料;接下来用一系列图表列出本程序系统内的每个程序(包括每个模块和子程序)的名称、标识符和它们之间的层次结构关系;然后逐个地给出各个层次中的每个程序的设计考虑,并给出其详细的程序描述、功能、性能、输入项、输出项、算法、流程逻辑、测试计划等说明。
指导教师评语
成绩:
指导教师(签名):
年月日
1引言
1.1编写目的
根据《需求规格说明书》、《概要设计说明书》,经过分析和讨论,我们对《图书馆管理系统》进行了进一步的设计,作为详细设计说明书,为编写代码者提供了设计基础。
1.2背景
图书管理系统软件LMSV1.0;
任务提出者:
2012级软件工程
开发者:
2012级软件工程
用户:
XXX大学图书馆
1.3定义、缩写词、略语
LMS:
LibraryManagementSystem图书管理系统
1.4参考资料
【1】张海藩。
《软件工程导论》(第五版)。
清华大学出版社。
2008。
【2】萨师煊王珊。
《数据库系统概论》(第4版)。
高等教育出版社。
【3】叶核亚。
《JAVA程序设计实用教程》(第三版)。
电子工业出版社。
2011。
2程序系统的结构
2.1总体设计
2.2子系统设计
(1)导借机
(2)借阅机
(3)管理机
3导借机子系统设计说明
3.1程序描述
导借机子系统主要完成导借机功能,该子系统主要包括两个模块:
书刊检索和查询。
使用书刊检索模块实现书刊检索功能;使用查询模块实现对借阅情况以及学生信息的查询。
3.2功能
导借机子系统需要实现的功能主要包括:
使用书刊检索模块实现书刊检索功能;使用查询模块实现对借阅情况以及学生信息的查询。
3.3性能
完成书刊检索以及查询借阅信息和学生信息
3.4算法
3.4.1书刊检索模块
(1)按条形码号检索子模块
输入项:
条形码号BookID;
输出项:
Struct图书信息
{
条形码号BookID;
图书类别Class;
书架号BookshelvesNo;
书名BookName;
作者Author;
出版社Publisher;
借阅状况BookStatus;
};
连接数据库;
按条形码检索()
{
Get(BookID);//接收用户输入的条形码
IF数据库存在此书
显示该书信息
Else
提示错误信息;
}
(2)按书名首字母检索子模块
输入项:
书名首字母;
输出项:
Struct图书信息
{
条形码号BookID;
图书类别Class;
书架号BookshelvesNo;
书名BookName;
作者Author;
出版社Publisher;
借阅状况BookStatus;
};
连接数据库;
按图书首字母检索()
{
Get(图书首字母);//接收用户输入的图书首字母
IF数据库存在此书
显示该书信息
Else
提示错误信息;
}
(3)按书名检索子模块
输入项:
书名BookName;
输出项:
Struct[图书信息=条形码号BookID+图书类别Class+书架号BookshelvesNo+书名BookName+作者Author+出版社Publisher+借阅状况BookStatus];
连接数据库;
按书名检索()
{
Get(BookName);//接收用户输入的内容
IF数据库存在此书
显示该书信息
Else
提示错误信息;
}
(4)按作者检索子模块
输入项:
作者Author;
输出项:
Struct[图书信息=条形码号BookID+图书类别Class+书架号BookshelvesNo+书名BookName+作者Author+出版社Publisher+借阅状况BookStatus];
连接数据库;
按作者检索()
{
Get(Author);//接收用户输入的内容
IF数据库存在此书
显示该书信息
Else
提示错误信息;
}
(5)按出版社检索子模块
输入项:
出版社Publisher;
输出项:
Struct[图书信息=条形码号BookID+图书类别Class+书架号BookshelvesNo+书名BookName+作者Author+出版社Publisher+借阅状况BookStatus];
连接数据库;
按出版社检索()
{
Get(Publisher);//接收用户输入的内容
IF数据库存在此书
显示该书信息
Else
提示错误信息;
EndIF
}
3.4.2查询模块
(1)查询借阅情况子模块
输入项:
借书卡号CardNo=“0000001”----“10000000”;
输出项:
Struct[借阅情况=借书卡号CardNo+借阅书籍BookID+借书日期OutDate+还书日期InDate+赔偿钱数Compensation];
连接数据库;
Search_borrow()
{
Get(CardNo);
IF借书卡号存在;
Show(借阅信息);
ElseFalse;
EndIF
}
(2)查询学生信息子模块
输入项:
借书卡号CardNo=“0000001”----“10000000”
输出项:
Struct[学生信息=卡号CardNo+学号ReaderID+姓名Name+年级Grade+专业Major+卡内余额Balance+是否注销Status];
连接数据库;
Search_stu()
{
Get(CardNo);
IF借书卡号存在
Show(学生信息);
ElseFalse;
EndIF
}
3.5流程逻辑
3.5.1书刊检索模块
3.5.2查询模块
3.6接口
3.6.1用户接口
向用户提供命令软件回答对应信息
书刊检索图书信息查询
学生查询借阅情况学生信息
3.6.2外部接口
接口传递信息
数据库接口图书信息学生信息
3.6.3内部接口
接口
传递信息
图书信息录入
图书信息:
(条形码号、图书类别、书架号、书名、作者、、借阅状况)
学生信息录入
学生信息:
(卡号、学号、、年级、专业、是否注销、卡内余额)
3.7注释设计
●加在模块首部的注释
//书刊检索模块,包括按条形码号检索子模块、按书名首字母检索子模块、按书名检索子模块、按作者检索子模块、按出版社检索子模块;
//查询模块,包括查询借阅情况子模块、查询学生信息子模块;
●加在各分枝点处的注释
//输入条形码号BookID;
//输入书名首字母;
//输入书名BookName;
//输入作者Author;
//输入出版社Publisher;
//输入借书卡号CardNo;
//输出图书信息;
//输出借阅情况;
//输出学生信息;
●对各变量的功能、范围、缺省条件等所加的注释;
//图书信息=条形码号BookID+图书类别Class+书架号BookshelvesNo+书名BookName+作者Author+出版社Publisher+借阅状况BookStatus;
//借阅情况=借书卡号CardNo+借阅书籍BookID+借书日期OutDate+还书日期InDate+赔偿钱数Compensation;
//学生信息=卡号CardNo+学号ReaderID+姓名Name+年级Grade+专业Major+卡内余额Balance+是否注销Status;
//借书卡号CardNo=“0000001”----“10000000”;
//条形码号BookID=“000000001”---“999999999”;
3.8限制条件
书刊检索过程中,每次只能选择一种检索方式;
进入查询时,验证卡号是否存在。
3.9测试计划
进入书刊检索模块,按照不同的检索方式一一进行检索,测试是否出现某种方式无法进行检索,能否连接数据库,能否检索成功;
预期结果:
数据库连接正确,各个检索方式都能正常运行,能够成功地检索图书信息。
进入查询模块,分别查询借阅情况和学生信息,测试借阅情况信息是否完整,是否正确,以及能否连接数据库,学生信息是否完整,是否正确;
预期结果:
数据库连接正确,能够显示完整的、正确的借阅情况信息和学生信息。
3.10尚未解决的问题
书刊检索过程中,每次只能选择一个检索方式,不能进行多条件检索。
4借阅机子系统设计说明
4.1程序描述
借阅机子系统主要完成借阅机功能,该子系统主要包括三个模块:
查询、借书和还书。
使用查询模块实现查询学生信息和图书信息的功能;使用借书模块实现借书的功能;使用还书模块实现还书的功能。
4.2功能
导借机子系统需要实现的功能主要包括:
使用查询模块实现查询学生信息和图书信息的功能;使用借书模块实现借书的功能;使用还书模块实现还书的功能。
4.3性能
完成查询学生信息和图书信息,以及借书和还书。
4.4算法
4.4.1查询模块
(1)查询学生信息子模块
输入项:
借书卡号CardNo=“0000001”---“10000000”;
输出项:
Struct[学生基本信息=卡号CardNo+学号ReaderID+姓名Name+年级Grade+专业Major+卡内余额Balance+是否注销Status,借阅情况=借书卡号CardNo+借阅书籍BookID+借书日期OutDate+还书日期InDate+赔偿钱数Compensation];
连接数据库;
Search_stu()
{
Get(CardNo);
IF借书卡号存在
Show(学生信息);
ElseFalse;
EndIF
}
(2)查询图书信息子模块
与导借机子系统书刊检索模块的子模块和功能相同;
4.4.2借书模块
输入项:
借书卡号CardNo、条形码号BookID、借书日期OutDate;
输出项:
Booltrue/false;
连接数据库;
获取借阅情况信息;
Borrow(){
Get(CardNo,BookID,OutDate);
IF 借书证未登记入库 THEN
Returnfalse;
ElseIF 图书未登记入库 THEN
Returnfalse;
ElseIf已借阅书籍>=最大可借阅书籍数
ThenReturnfalse;;
ElseIf卡内余额<0
ThenReturnfalse;
Elsereturntrue;//借书成功更新数据库
EndIf
EndIf
EndIf
EndIf
}
4.4.3还书模块
输入项:
借书卡号CardNo、条形码号BookID、还书日期InDate;
输出项:
Booltrue/false;
连接数据库;
Back()
{
Get(CardNo,BookID,InDate)//获取借阅情况信息;
IF借阅天数>最大可借阅天数
赔偿钱数=[(还书日期-借书日期)-最大可借阅天数]×每天的赔偿钱数;
卡内余额=卡内余额-赔偿钱数;
Show(赔偿钱数,卡内余额);
ElsereturnTrue;//借书成功,更新数据库
EndIf
}
4.5流程逻辑
4.5.1查询
4.5.2借书
4.5.3还书
4.6接口
4.6.1用户接口
从用户接收命令软件回答对应信息
卡号学生信息(学生基本信息、借阅情况信息)图书信息
条形码号借阅情况信息
4.6.2外部接口
接口传递信息
数据库接口图书信息借阅情况信息学生基本信息
4.6.3内部接口
接口
传递信息
卡号
借书卡号CardNo=“0000001”---“10000000”
条形码号
条形码号BookID=“000000001”---“999999999”
借书登记
借书登记:
(图书条形码号、学生学号、图书名称、借书卡号、借书时间、学生姓名)
还书登记
还书登记:
(图书条形码号、图书名称、归还时间、借书卡号、学生学号、学生姓名、是否异常)
4.7注释设计
●加在模块首部的注释
//查询模块,包括查询学生信息子模块、查询学生信息子模块;
//借书模块;
//还书模块;
●加在各分枝点处的注释;
//输入借书卡号CardNo;
//输入借书卡号CardNo、条形码号BookID、借书日期OutDate;
//输入借书卡号CardNo、条形码号BookID、还书日期InDate;
//输出学生基本信息;
//输出借阅情况;
//输出图书信息;
//输出提示消息;
●对各变量的功能、范围、缺省条件等所加的注释;
//借书卡号CardNo=“0000001”---“10000000”;
//条形码号BookID=“000000001”---“999999999”;
//学生基本信息=卡号CardNo+学号ReaderID+姓名Name+年级Grade+专业Major+卡内余额Balance+是否注销Status;
//借阅情况=借书卡号CardNo+借阅书籍BookID+借书日期OutDate+还书日期InDate+赔偿钱数Compensation;
4.8限制条件
因为条件不允许,只能通过手工操作来完成刷卡工作
4.9测试计划
进入查询模块,输入一个符合条件的卡号,进行查询,测试能否正常连接数据库,显示信息是否完整、正确;
预期结果:
连接数据库正常,输入一个符合条件的卡号,显示的信息完整、正确。
进入借书模块,扫描条形码号,测试能否正常连接数据库,是否能够显示完整的、正确的借阅情况信息,能否正常更新数据库;
预期结果:
连接数据库正常,能够显示完整的、正确的借阅情况信息,并正常地更新数据库。
进入还书模块,扫描条形码号,测试能否正常连接数据库,是否能够显示完整的、正确的借阅情况信息,能否正常更新数据库;
预期结果:
连接数据库正常,能够显示完整的、正确的借阅情况信息,并正常地更新数据库。
4.10尚未解决的问题
刷卡工作因为条件不允许只能通过人工操作来模拟
5管理机子系统设计说明
5.1程序描述
管理机子系统主要完成管理机功能,该子系统主要包括四个模块:
管理员,图书上架,图书下架,一卡通。
使用管理员模块实现注册管理员信息、删除管理员信息和修改管理员信息的功能;使用图书上架模块实现录入图书信息的功能;使用图书下架模块实现删除图书信息的功能;使用一卡通模块实现办卡、退卡、充值和打印凭证的功能。
这个子系统把所有的管理任务结合到一起,可以更加有效的组织和管理,使得管理更加的便捷和系统化。
5.2功能
管理机子系统需要实现的功能主要包括:
(1)对管理员的管理。
此模块可以实现当有新的管理员入馆工作时添加管理员信息,当有管理员辞职或调离时完成对此管理员信息的删除操作,期间还可以对当前的管理员信息做修改操作。
(2)图书的上下架。
当图书入库,出库时完成对图书信息的更新。
(3)办卡。
此模块完成办卡,退卡,卡内充值业务,同时更新学生的个人信息。
5.3性能
1.数据精确度
添加数据信息时保证准确率,添加的信息能准确的添加到后台数据库中。
删除时能保证准确率,所有删除能正确存入数据库中。
2.时间特性
一般操作的响应时间应在2-3秒内,删除时间应根据所删除内容尽量缩短时间。
3.适应性
满足运行环境在允许操作系统之间的安全转换和与其它应用软件的独立运行要求。
4.数值需求
管理员数目<15;
图书的存储量做不限制;
已注册办卡的学生数量不做限制;
5.其它需求
有一定的安全性,防止人为地破坏数据库,防止他人利用非法手段盗取数据信息,设置一定的权限,防止非法操作。
5.4算法
登陆模块
Login()
{
Get(WorkerID,Password);
IF管理员信息验证正确
Main();
ElseFalse;
}
5.4.1管理员模块
(1)注册子模块
输入项:
管理员=姓名WorkerName+工号WorkerId+密码Password+权限Level;
输出项:
BoolTrue/False;
连接数据库;
Signin()
{
Get(管理员信息);
IF输入信息=NULL
Returnfalse;
Else
Returntrue;//更新数据库信息
}
(2)删除子模块
输入项:
管理员=姓名WorkerName+工号WorkerId+密码Password+权限Level;
输出项:
BoolTrue/False;
连接数据库;
Delete()
{
Get(需要删除的管理员信息);
IF管理员信息不存在
ReturnFalse
Else
Returntrue;//完成删除
}
(3)修改子模块
输入项:
管理员=姓名WorkerName+工号WorkerId+密码Password+权限Level;
输出项:
BoolTrue/False;
连接数据库;
Modify()
{
Get(管理员信息);
IF管理员信息不存在
ReturnFalse
Else
Returntrue;//更新数据库,完成修改
}
5.4.2图书上架模块
输入项:
管理员=姓名WorkerName+工号WorkerId+密码Password+权限Level,
图书信息=条形码号BookID+图书类别Class+图书名称BookName+书架号BookshelvesNo+作者Author+出版社Publisher;
输出项:
BoolTrue/False;
连接数据库;
图书上架()
{
Get(图书信息);
ReturnTrue;//更新数据库信息
}
5.4.3图书下架模块
输入项:
管理员=姓名WorkerName+工号WorkerId+密码Password+权限Level,
图书信息=条形码号BookID+图书类别Class+图书名称BookName+书架号BookshelvesNo+作者Author+出版社Publisher;
输出项:
BoolTrue/False;
连接数据库;
图书下架()
{
Get(要删除的图书信息);
IF此书不存在
ReturnFalse;
Else
ReturnTrue;//更新数据库
}
5.4.4一卡通模块
(1)办卡子模块
输入项:
学生信息=卡号++学号+年级+专业+卡内余额+押金;
输出项:
boolTrue/False;
连接数据库;
办卡()
{
Get(学生信息);
Returntrue;//更新数据库信息
}
(2)退卡子模块
输入项:
退卡信息=卡号+卡内余额+注销操作;
输出项:
boolTrue/False;
连接数据库;
注销()
{
Get(退卡信息);
IF此卡不存在
Returnfalse;
ElsereturnTrue;//更新数据库
}
(3)充值子模块
输入项:
充值信息=卡号+充值金额RechargeMoney+充值时间RechargeTime;
输出项:
BoolTrue/False;
连接数据库;
充值()
{
Get(充值信息);
ReturnTrue;//更新数据库
Print()//打印信息;
}
5.5流程逻辑
5.6项目运行架构
退卡办卡
查询
充值
管理员查询学生
管理员管理
管理员浏览
还书
借书
图书上下架
‘
5.7接口
5.7.1用户接口
向用户提供命令软件回答对应信息
学生信息办卡成功,退卡成功,充值成功,打印凭证
5.7.2外部接口
接口
传递信息
硬件接口
与打印机接口
充值信息
软件接口
与数据库接口
图书信息,学生信息
5.7.3内部接口
接口
传递信息
添加管理员信息
管理员信息:
(、编号、密码、权限)
修改管理员信息
管理员信息:
(、编号、密码、权限)
删除管理员信息
管理员信息:
(、编号、密码、权限)
办卡
学生信息:
(学号、、专业、年级、借书卡号、
卡内余额、卡状态)
退卡
学生信息:
(学号、、专业、年级、借书卡号、
卡内余额、卡状态)
充值
充值信息:
(条形码号、充值金额、充值时间)
5.8注释设计
●加在模块首部的注释
//管理员模块,实现管理员信息的添加,删除,修改操作;
//图书上架模块,实现图书
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 详细 设计 说明书
![提示](https://static.bdocx.com/images/bang_tan.gif)