《图书管理系统详细设计说明书51009.pdf》由会员分享,可在线阅读,更多相关《图书管理系统详细设计说明书51009.pdf(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 图书管理系统详细设计说明书(总 38 页)本页仅作为文档封面,使用时可以删除 This document is for reference only-rar21year.March 学年论文(课程设计)题目:图书管理系统详细设计说明书 学 院 工商学院 学科门类 工学 专 业 软件工程 学 号 88 姓 名 李伟 指导教师 王思乐 2014 年 12 月 22 日 总版本 V 编号 LMS 版本 LMS 河北大学学年论文(课程设计)任务书(指导教师用表)学 生 姓 名 李伟 指 导 教 师 王思乐 项目名称 图书管理系统 项目代码(LMS)Library Management System
2、分项名称 详细设计说明书 分项代码 03 分项序号 LMS 03 组长 梅艳涛 负责人 梅艳涛 参与人 梅艳涛 李伟 梁雪山 赵博深 文鹏 徐鹤松 指导教师 王思乐 日期 2014 年 12 月 22 日 开发单位 2012 软件工程 论文(设计)题目 图书管理系统-详细设计说明书 主要研究(设计)内容 经过这个阶段的详细设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。研究方法 课本软件工程导论上面介绍了很多关于项目详细设计的研究方法,通过小组讨论,主要采用程序流程图进行详细设计。主要任务 及目标 对图书管理系统进行详细设计,根本目标
3、是确定应该怎样具体地实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。主要参 考文献 数据库系统概论(第 4 版)萨师煊 王珊 高等教育出版社 软件工程导论(第 5 版)张海藩 清华大学出版社 JAVA 程序设计实用教程(第 3 版)叶核亚 电子工业出版社 进度安排 论文(设计)各阶段名称 日期 问题定义 第 10 周 需求分析、概要设计 第 11 周-第 13 周 详细设计 第 14 周-第 15 周 实现 第 16 周 指导教师签字:河北大学学年论文(课程设计)成绩评定表 学院:工商学院 学
4、生姓名 李伟 专业 年级 2012 级 软件工程 论文(设计)题目 图书管理系统详细设计说明书 论文(设计)内容提要 此文档是图书管理系统的详细设计说明书,该报告主要是得出对目标系统的精确描述。首先引言中介绍了设计该系统的目的,背景和所需要的参考资料;接下来用一系列图表列出本程序系统内的每个程序(包括每个模块和子程序)的名称、标识符和它们之间的层次结构关系;然后逐个地给出各个层次中的每个程序的设计考虑,并给出其详细的程序描述、功能、性能、输入项、输出项、算法、流程逻辑、测试计划等说明。指导教师评语 成绩:指导教师(签名):年 月 日 1 引言 编写目的 根据需求规格说明书、概要设计说明书,经过
5、分析和讨论,我们对图书馆管理系统进行了进一步的设计,作为详细设计说明书,为编写代码者提供了设计基础。背景 图书管理系统软件LMS;任务提出者:2012 级软件工程 开发者:2012 级软件工程 用 户:XXX 大学图书馆 定义、缩写词、略语 LMS:Library Management System 图书管理系统 参考资料【1】张海藩。软件工程导论(第五版)。清华大学出版社。2008。【2】萨师煊 王珊。数据库系统概论(第 4 版)。高等教育出版社。【3】叶核亚。JAVA 程序设计实用教程(第三版)。电子工业出版社。2011。2 程序系统的结构 总体设计 子系统设计(1)导借机(2)借阅机 (
6、3)管理机 3 导借机子系统设计说明 程序描述 导借机子系统主要完成导借机功能,该子系统主要包括两个模块:书刊检索和查询。使用书刊检索模块实现书刊检索功能;使用查询模块实现对借阅情况以及学生信息的查询。功能 导借机子系统需要实现的功能主要包括:使用书刊检索模块实现书刊检索功能;使用查询模块实现对借阅情况以及学生信息的查询。性能 完成书刊检索以及查询借阅信息和学生信息 算法 3.4.1 书刊检索模块(1)按条形码号检索子模块 输入项:条形码号BookID;输出项:Struct 图书信息 条形码号 BookID;图书类别 Class;书架号 Bookshelves No;书名 BookName;作
7、者 Author;出版社 Publisher;借阅状况 BookStatus;连接数据库;按条形码检索()Get(BookID);/接收用户输入的条形码 IF 数据库存在此书 显示该书信息 Else 提示错误信息;(2)按书名首字母检索子模块 输入项:书名首字母;输出项:Struct 图书信息 条形码号 BookID;图书类别 Class;书架号 BookshelvesNo;书名 BookName;作者 Author;出版社Publisher;借阅状况 BookStatus;连接数据库;按图书首字母检索()Get(图书首字母);/接收用户输入的图书首字母 IF 数据库存在此书 显示该书信息 E
8、lse 提示错误信息;(3)按书名检索子模块 输入项:书名 BookName;输出项:Struct 图书信息=条形码号 BookID+图书类别 Class+书架号 Bookshelves No+书名 BookName+作者 Author+出版社 Publisher+借阅状况 BookStatus;连接数据库;按书名检索()Get(BookName);/接收用户输入的内容 IF 数据库存在此书 显示该书信息 Else 提示错误信息;(4)按作者检索子模块 输入项:作者 Author;输出项:Struct 图书信息=条形码号 BookID+图书类别 Class+书架号 Bookshelves No
9、+书名 BookName+作者 Author+出版社 Publisher+借阅状况 BookStatus;连接数据库;按作者检索()Get(Author);/接收用户输入的内容 IF 数据库存在此书 显示该书信息 Else 提示错误信息;(5)按出版社检索子模块 输入项:出版社 Publisher;输出项:Struct图书信息=条形码号 BookID+图书类别 Class+书架号 Bookshelves No+书名 BookName+作者 Author+出版社 Publisher+借阅状况 BookStatus;连接数据库;按出版社检索()Get(Publisher);/接收用户输入的内容 I
10、F 数据库存在此书 显示该书信息 Else 提示错误信息;End IF 3.4.2 查询模块(1)查询借阅情况子模块 输入项:借书卡号Card No=“0000001”-“”;输出项:Struct 借阅情况=借书卡号 Card No+借阅书籍 BookID+借书日期OutDate+还书日期 InDate+赔偿钱数 Compensation;连接数据库;Search_borrow()Get(Card No);IF 借书卡号存在;Show(借阅信息);Else False;End IF (2)查询学生信息子模块 输入项:借书卡号 Card No=“0000001”-“”输出项:Struct 学生信
11、息=卡号 Card No+学号 ReaderID+姓名 Name+年级 Grade+专业 Major+卡内余额 Balance+是否注销 Status;连接数据库;Search_stu()Get(Card No);IF 借书卡号存在 Show(学生信息);Else False;End IF 流程逻辑 3.5.1 书刊检索模块 3.5.2 查询模块 接口 3.6.1 用户接口 向用户提供命令 软件回答对应信息 书刊检索 图书信息查询 学生查询 借阅情况 学生信息 3.6.2 外部接口 接口 传递信息 数据库接口 图书信息 学生信息3.6.3 内部接口 接口 传递信息 图书信息录入 图书信息:(条
12、形码号、图书类别、书架号、书名、作者、出版社、借阅状况)学生信息录入 学生信息:(卡号、学号、姓名、年级、专业、是否注销、卡内余额)注释设计 加在模块首部的注释/书刊检索模块,包括按条形码号检索子模块、按书名首字母检索子模块、按书名检索子模块、按作者检索子模块、按出版社检索子模块;/查询模块,包括查询借阅情况子模块、查询学生信息子模块;加在各分枝点处的注释/输入条形码号 BookID;/输入书名首字母;/输入书名 BookName;/输入作者 Author;/输入出版社 Publisher;/输入借书卡号 Card No;/输出图书信息;/输出借阅情况;/输出学生信息;对各变量的功能、范围、缺
13、省条件等所加的注释;/图书信息=条形码号 BookID+图书类别 Class+书架号 Bookshelves No+书名BookName+作者 Author+出版社 Publisher+借阅状况 BookStatus;/借阅情况=借书卡号 Card No+借阅书籍 BookID+借书日期 OutDate+还书日期 InDate+赔偿钱数 Compensation;/学生信息=卡号 Card No+学号 ReaderID+姓名 Name+年级 Grade+专业Major+卡内余额Balance+是否注销Status;/借书卡号 Card No=“0000001”-“10000000”;/条形码号
14、 BookID=“000000001”-“999999999”;限制条件 书刊检索过程中,每次只能选择一种检索方式;进入查询时,验证卡号是否存在。测试计划 进入书刊检索模块,按照不同的检索方式一一进行检索,测试是否出现某种方式无法进行检索,能否连接数据库,能否检索成功;预期结果:数据库连接正确,各个检索方式都能正常运行,能够成功地检索图书信息。进入查询模块,分别查询借阅情况和学生信息,测试借阅情况信息是否完整,是否正确,以及能否连接数据库,学生信息是否完整,是否正确;预期结果:数据库连接正确,能够显示完整的、正确的借阅情况信息和学生信息。尚未解决的问题 书刊检索过程中,每次只能选择一个检索方式
15、,不能进行多条件检索。4 借阅机子系统设计说明 程序描述 借阅机子系统主要完成借阅机功能,该子系统主要包括三个模块:查询、借书和还书。使用查询模块实现查询学生信息和图书信息的功能;使用借书模块实现借书的功能;使用还书模块实现还书的功能。功能 导借机子系统需要实现的功能主要包括:使用查询模块实现查询学生信息和图书信息的功能;使用借书模块实现借书的功能;使用还书模块实现还书的功能。性能 完成查询学生信息和图书信息,以及借书和还书。算法 4.4.1 查询模块(1)查询学生信息子模块 输入项:借书卡号Card No=“0000001”-“”;输出项:Struct学生基本信息=卡号 Card No+学号
16、 ReaderID+姓名 Name+年级Grade+专业 Major+卡内余额 Balance+是否注销 Status,借阅情况=借书卡号 Card No+借 阅 书 籍 BookID+借 书 日 期 OutDate+还 书 日 期 InDate+赔 偿 钱 数Compensation;连接数据库;Search_stu()Get(Card No);IF 借书卡号存在 Show(学生信息);Else False;End IF (2)查询图书信息子模块 与导借机子系统书刊检索模块的子模块和功能相同;4.4.2 借书模块 输入项:借书卡号Card No、条形码号 BookID、借书日期 OutDat
17、e;输出项:Bool true/false;连接数据库;获取借阅情况信息;Borrow()Get(Card No,BookID,OutDate);IF 借书证未登记入库 THEN Return false;Else IF 图书未登记入库 THEN Return false;Else If 已借阅书籍=最大可借阅书籍数 Then Return false;Else If 卡内余额最大可借阅天数 赔偿钱数=(还书日期-借书日期)最大可借阅天数每天的赔偿钱数;卡内余额=卡内余额-赔偿钱数;Show(赔偿钱数,卡内余额);Else return True;/借书成功,更新数据库 End If 流程逻辑
18、 4.5.1 查询 4.5.2 借书 4.5.3 还书 接口 4.6.1 用户接口 从用户接收命令 软件回答对应信息 卡号 学生信息(学生基本信息、借阅情况信息)图书信息 条形码号 借阅情况信息 4.6.2 外部接口 接口 传递信息 数据库接口 图书信息 借阅情况信息 学生基本信息 4.6.3 内部接口 接口 传递信息 卡号 借书卡号 Card No=“0000001”-“”条形码号 条形码号 BookID=“000000001”-“9”借书登记 借书登记:(图书条形码号、学生学号、图书名称、借书卡号、借书时间、学生姓名)还书登记 还书登记:(图书条形码号、图书名称、归还时间、借书卡号、学生学
19、号、学生姓名、是否异常)注释设计 加在模块首部的注释/查询模块,包括查询学生信息子模块、查询学生信息子模块;/借书模块;/还书模块;加在各分枝点处的注释;/输入借书卡号 Card No;/输入借书卡号 Card No、条形码号 BookID、借书日期 OutDate;/输入借书卡号 Card No、条形码号 BookID、还书日期 InDate;/输出学生基本信息;/输出借阅情况;/输出图书信息;/输出提示消息;对各变量的功能、范围、缺省条件等所加的注释;/借书卡号 Card No=“0000001”-“10000000”;/条形码号 BookID=“000000001”-“999999999
20、”;/学生基本信息=卡号 Card No+学号 ReaderID+姓名 Name+年级 Grade+专业Major+卡内余额 Balance+是否注销 Status;/借阅情况=借书卡号 Card No+借阅书籍 BookID+借书日期 OutDate+还书日期 InDate+赔偿钱数 Compensation;限制条件 因为条件不允许,只能通过手工操作来完成刷卡工作 测试计划 进入查询模块,输入一个符合条件的卡号,进行查询,测试能否正常连接数据库,显示信息是否完整、正确;预期结果:连接数据库正常,输入一个符合条件的卡号,显示的信息完整、正确。进入借书模块,扫描条形码号,测试能否正常连接数据库
21、,是否能够显示完整的、正确的借阅情况信息,能否正常更新数据库;预期结果:连接数据库正常,能够显示完整的、正确的借阅情况信息,并正常地更新数据库。进入还书模块,扫描条形码号,测试能否正常连接数据库,是否能够显示完整的、正确的借阅情况信息,能否正常更新数据库;预期结果:连接数据库正常,能够显示完整的、正确的借阅情况信息,并正常地更新数据库。尚未解决的问题 刷卡工作因为条件不允许只能通过人工操作来模拟 5 管理机子系统设计说明 程序描述 管理机子系统主要完成管理机功能,该子系统主要包括四个模块:管理员,图书上架,图书下架,一卡通。使用管理员模块实现注册管理员信息、删除管理员信息和修改管理员信息的功能
22、;使用图书上架模块实现录入图书信息的功能;使用图书下架模块实现删除图书信息的功能;使用一卡通模块实现办卡、退卡、充值和打印凭证的功能。这个子系统把所有的管理任务结合到一起,可以更加有效的组织和管理,使得管理更加的便捷和系统化。功能 管理机子系统需要实现的功能主要包括:(1)对管理员的管理。此模块可以实现当有新的管理员入馆工作时添加管理员信息,当有管理员辞职或调离时完成对此管理员信息的删除操作,期间还可以对当前的管理员信息做修改操作。(2)图书的上下架。当图书入库,出库时完成对图书信息的更新。(3)办卡。此模块完成办卡,退卡,卡内充值业务,同时更新学生的个人信息。性能 1数据精确度 添加数据信息
23、时保证准确率,添加的信息能准确的添加到后台数据库中。删除时能保证准确率,所有删除能正确存入数据库中。2时间特性 一般操作的响应时间应在 23 秒内,删除时间应根据所删除内容尽量缩短 时间。3适应性 满足运行环境在允许操作系统之间的安全转换和与其它应用软件的独立运行要求。4数值需求 管理员数目 15;图书的存储量做不限制;已注册办卡的学生数量不做限制;5其它需求 有一定的安全性,防止人为地破坏数据库,防止他人利用非法手段盗取数据信息,设置一定的权限,防止非法操作。算法 登陆模块 Login()Get(Worker ID,Password);IF 管理员信息验证正确 Main();Else Fal
24、se;5.4.1 管理员模块(1)注册子模块 输入项:管理员=姓名 Worker Name+工号 Worker Id+密码 Password+权限 Level;输出项:Bool True/False;连接数据库;Sign in()Get(管理员信息);IF 输入信息=NULL Return false;Else Return true;/更新数据库信息 (2)删除子模块 输入项:管理员=姓名 Worker Name+工号 Worker Id+密码 Password+权限 Level;输出项:Bool True/False;连接数据库;Delete()Get(需要删除的管理员信息);IF 管理员
25、信息不存在 Return False Else Return true;/完成删除 (3)修改子模块 输入项:管理员=姓名 Worker Name+工号 Worker Id+密码 Password+权限 Level;输出项:Bool True/False;连接数据库;Modify()Get(管理员信息);IF 管理员信息不存在 Return False Else Return true;/更新数据库,完成修改 5.4.2 图书上架模块 输入项:管理员=姓名 Worker Name+工号 Worker Id+密码 Password+权限 Level,图书信息=条形码号 Book ID+图书类别
26、Class+图书名称 Book Name+书架号 Bookshelves No+作者 Author+出版社 Publisher;输出项:Bool True/False;连接数据库;图书上架()Get(图书信息);Return True;/更新数据库信息 5.4.3 图书下架模块 输入项:管理员=姓名 Worker Name+工号 Worker Id+密码 Password+权限 Level,图书信息=条形码号 BookID+图书类别 Class+图书名称 BookName+书架号 Bookshelves No+作者 Author+出版社 Publisher;输出项:Bool True/Fals
27、e;连接数据库;图书下架()Get(要删除的图书信息);IF 此书不存在 Return False;Else Return True;/更新数据库 5.4.4 一卡通模块(1)办卡子模块 输入项:学生信息=卡号+姓名+学号+年级+专业+卡内余额+押金;输出项:bool True/False;连接数据库;办卡()Get(学生信息);Return true;/更新数据库信息 (2)退卡子模块 输入项:退卡信息=卡号+卡内余额+注销操作;输出项:bool True/False;连接数据库;注销()Get(退卡信息);IF 此卡不存在 Return false;Else return True;/更新
28、数据库 (3)充值子模块 输入项:充值信息=卡号+充值金额 Recharge Money+充值时间 Recharge Time;输出项:Bool True/False;连接数据库;充值()Get(充值信息);Return True;/更新数据库 Print()/打印信息;流程逻辑 项目运行架构 退卡办卡 查询 充值 管理员查询学生 管理员管理 管理员浏览 还书 借书 图书上下架 接口 5.7.1 用户接口 向用户提供命令 软件回答对应信息 学生信息 办卡成功,退卡成功,充值成功,打印凭证 5.7.2 外部接口 接口 传递信息 硬件接口 与打印机接口 充值信息 软件接口 与数据库接口 图书信息,
29、学生信息 5.7.3 内部接口 接口 传递信息 添加管理员信息 管理员信息:(姓名、编号、密码、权限)修改管理员信息 管理员信息:(姓名、编号、密码、权限)删除管理员信息 管理员信息:(姓名、编号、密码、权限)办卡 学生信息:(学号、姓名、专业、年级、借书卡号、卡内余额、卡状态)退卡 学生信息:(学号、姓名、专业、年级、借书卡号、卡内余额、卡状态)充值 充值信息:(条形码号、充值金额、充值时间)注释设计 加在模块首部的注释/管理员模块,实现管理员信息的添加,删除,修改操作;/图书上架模块,实现图书信息的添加操作;/图书下架模块,实现图书信息的删除操作;/一卡通模块,实现办卡,退卡,充值操作;加
30、在各分枝点处的注释;/输入管理员工号和密码;/添加管理员信息;/删除管理员信息;/修改管理员信息;/添加图书信息;/删除图书信息;/办卡;/退卡;/充值;/打印凭证;对各变量的功能、范围、缺省条件等所加的注释;/管理员=姓名 Worker Name+工号 Worker Id+密码 Password+权限 Level;/图书信息=条形码号 BookID+图书类别 Class+图书名称 BookName+书架号Bookshelves No+作者 Author+出版社 Publisher;/学生信息:学号+姓名+专业+年级+借书卡号+卡内余额+卡状态;/充值信息=条形码号 BookID+充值金额 R
31、echarge Money+充值时间 Recharge Time;限制条件 由于条件和技术不支持,收取押金和退还押金需要人工操作;同 一 台 管 理 机,每 次 只 能 允 许 一 个 管 理 员 进 入;测试计划 进入管理员模块,输入一个正确的工号和密码,依次进行注册、修改、删除管理员信息,测试能否正常连接数据库,操作能否成功;预期结果:连接数据库正常,输入一个正确的工号和密码,注册、修改和删除管理员信息均能操作成功。进入图书上架模块,输入一个正确的工号和密码,添加一本图书的图书信息,测试能否正常连接数据库,能否正常更新数据库;预期结果:连接数据库正常,成功添加图书信息,并正常地更新数据库。进入图书下架模块,输入一个正确的工号和密码,删除一本图书的图书信息,测试能否正常连接数据库,能否正常更新数据库;预期结果:连接数据库正常,成功删除图书信息,并正常地更新数据库。进入办卡模块,输入一个正确的工号和密码,依次进行办卡、退卡以及充值操作,测试能否正常连接数据库,以上操作能否成功,能否成功地打印凭证。预期结果:连接数据库正常,输入一个正确的工号和密码,办卡、退卡和充值均能操作成功,并能成功地打印凭证。尚未解决的问题 由于条件和技术不支持,收取押金和退还押金需要人工操作;同一台管理机,每次只能允许一个管理员进入;
限制150内