软件工程-设计--图书管理系统完整的啊
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程课程设计
图书管理系统
任务人员
1〉软件定义阶段
(1 )问题定义
(2)可行性分析
(3 )需求分析
2〉软件开发阶段
(4 )概要设计
(5 )详细设计
(6 )编码和单元测试3〉软件维护阶段
(7 )软件维护
1〉软件定义阶段
(1 )问题定义
基本任务:理解问题
阶段成果:系统目标与范围说明书
问题理解:
图书馆在正常运营中总是面对大量的读者信息、书籍信息以及两者相互作用产
生的借书信息、还书信息。
因此需要对读者资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利于提高管理效率。
管理图书采用传统的管理方法:图书管理员在办理借书登记、查询读者借书记录时,管理人员必须在借书记录上一个个去查找,而要找到借书记录并删除该记录是件很麻烦的事情。
每当新书入库时,图书管理员既要填写新书入库卡片,又要填写新书入库帐目,不仅工作量大,而且,在新书入库后要经历较长的时间方能借出。
所以,为提高图书馆管理的效率,减少图书管理员的工作负担,有必要开发一个小型图书馆管理软件来对图书实施有效管理•现代图书馆的图书管理早就
进化信息化阶段了,但是从软件市场购买的一些信息管理软件通常是通用版的,不可能适应所有图书馆管理中的情况,功能不能扩充,这样不仅工作效率低下,浪费人力,财力,而且在一些中间环节还造成信息丢失,出错。
以下是针对某某图书馆的图书管理现状,在调研基础上开发出来的图书馆信息管理系统。
在下面的各章中将以开发图书馆管理系统为例,谈谈其开发过程和所涉及
到的问题及解决方法。
系统目标(基本功能如下):
(1)以自动化、系统化、高效管理代替分散、重复操作。
(2)开发图书馆管理系统,提供更好服务效益和提高现代化管理水平。
(3)建立图书馆管理系统,提高读者的自律性,促进读者保管并及时归还图书。
(4)减轻图书馆管理员的负担,节省人力物力开支。
范围说明:
(1)能够及时了解学校图书室的藏书情况和师生的借书情况
(2 )能够快捷地添加,将有关资料信息录入数据库,修改,查询图书分类信息和图书信息,包括单条件查询和多条件查询
(3 )能及时掌握图书室的藏书数量及种类,各个学科的图书数量,迅速盘点图书库存。
(4)图书的借出,归还,续借,挂失,催还手续简便,效率高。
(5 )功能齐全,安全稳定,可靠性高,操作简便,使用灵活,实用性强, 准确率高,具有海量存储能力和快速交换速度,自动及时进行数据备份。
⑹ 用户的权限设置:不同用户的使用权限不同
(2)可行性分析(研究)
基本任务:理解工作范围
阶段成果:项目计划说明书
2.1 可靠性和安全性需求:
由于图书管理系统的图书量会非常大,所有在对这些图书导入和查询时要保证速度。
在图书借阅过程中又要保证事务的完整性。
对于整个系统,需要完整的权限控制,防止某些人恶意的攻击系统,修改原始记录。
同时对于数据库中的数据需要定时备份,防止系统数据丢失。
所建议的系统的开发目标应考虑以下几个方面:
(1)系统需要操作方便,方便管理员对整个系统的管理和读者借阅。
(2)系统需要提供综合查询系统,方便图书的查询。
(3 )系统需要良好的扩展性,方便功能扩展和性能扩展。
(4)系统需要较好的安全性和灾难恢复机制。
2.2硬件、软件、运行环境和开发环境方面的条件和限制
(1 )硬件资源
服务器:工作站或小型机
网络设备:网络交换机,网卡,网线
图书条码打印和扫描机
打印机
(2)软件资源
操作系统:Windows 2007 Server 或Windows XP 。
数据库管理系统:SQL Server。
软件平台:VC++
客户端软件选择的具体说明:web浏览器。
通过对该图书馆的各个方面进行了具体的了解之后,现对该单位开发图书管理系统的可行性进行分析。
技术上可行:该系统所需硬件设备,市场上销售且价格较低,甚至可以使用原有的设备,软件上,操作系统采用Windows系列操作系统,数据库管理系统采用VC,这些软件在MIS (管理信息系统)开发中已被大量应用,技术上都比较成熟。
因此在技术上是可行的。
经济上可行:由于学校急需采用计算机来进行图书馆的管理,因此对开发图书管理系统大力支持,开发经费没有问题。
操作上可行:该学校的图书馆有很多的管理体制,每位借书人均有借书证,同时图书馆还为每位借书人建立了档案。
因此操作上可行。
另外,图书馆管理人员对开发该系统也是大力支持的,同时制定了培训计划,并进行了实施MIS 的物质准备和工作准备。
社会可行性:首先是合法的,其次既方便于学校管理员的管理,又有利于学生的借阅和查找
综上所述,开发图书管理系统在技术上、经济上、操作上都是可行的
数据字典卡片 管理员信息
描述:处理图书条形,图书报废等信息,并用 计算机管理用户借书的日期, 数量,以及是否 罚款
描述:唯一的标示书籍所处状态 定义:图书=图书条形+图书报废信息+是否被 借阅+价格+出版社
定义:管理者信基本信息
借书数量
位置:图书管理
位置:图书管理员
读者信息存
储
读者管理
借阅图书信
息
借阅信息 查阅
逾期未还 登记
图书信息
处理
图书报废 图书条形
图书管理
基本信息
图书管理
员
名字: ***** 名字: *********
别名: ***** 密码:
********
别名:
作者:
*****
********
图书信息
密码. ********
描述:记录用户借书的日期,数量,以及 是否罚款,书评等信息
定义:读者的基本信息
Z ■亠'
、十 俚M 丁中
位置:读者官理
(3 )需求分析
基本任务:定义用户需求 阶段成果:需求规格说明书
3.1定义用户需求
3.1.1系统的性能需求
图书管理系统要求系统需要具备以下几个主要特性:
(1) 多样性:图书管理系统在设计时必须遵循的一个重要原则,就是以 用户为
系统设计的中心。
网络的发展大大降低了信息咨询的成本,用户面临更 多的选择,所以,图书管理系统除了降低成本以外,还必须在皮肤,功能的多 样性上下工夫,才能够得到用户的认可。
具体来说,应用系统应能实现用户特 定的需求,操作界面友好、方便,功能设置符合用户的习惯和要求。
(2) 易维护:管理员能够简单方便地管理系统,定义新的应用,并对系统 进行日
常维护;随着图书馆信息的变更或增加、数据规模的增大,系统升级、 维护应易于操作:各子系统、功能模块的设计应具有良好的灵活性,保证在图
名字: 名字:
*****
别名: ***** 别名: ***** 描述:某人借书的数量
定义:读者借书数量=0{数字}8
Z ■亠' 、十 俚M 丁中 位置:读者官理
书管理系统建设过程中后期系统功能的实现不影响前期已投入使用的系统功
(3)安全性:系统应充分考虑信息、设备、运行和管理的安全性,建立完善的多层次的安全保障体系,保证用户的个人信息等资料的数据安全。
(4)可扩展:该系统的用户从事着各种行业,他们的需求各不相同,系统在设计时应充分考虑到用户需求不断变化的需要,降低系统在扩展新的业务功能时的复杂度。
3.1.2系统的数据需求
(1)数据录入和处理的准确性和实时性
数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。
数据的输入来源是用户的手工输入。
手工输入要通过系统界面上的安排系统具有容错性,并且对用户操作进行实时的跟踪和错误提示。
在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。
(2 )数据的一致性与完整性
由于图书的数据是共享的,所以如何保证这些数据的一致性,是系统必须解决的问题。
要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。
对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据。
(3)数据的共享与独立性
整个系统的数据是共享的。
然而,从系统开发的角度上看,共享会给设计和调试带来困难。
因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。
这样,也能提供系统的强壮性。
3.1.3普通用户功能需求
要设计一个良好的资料借阅管理系统,就必须首先明确该应用环境对系统的要求。
资料借阅管理系统的应用背景为:方便用户查询借阅图书。
普通用户是系统的服务对象,也是系统的主要参与者。
一个资料借阅管理系统的好坏主要是由普通用户来评判的。
因此,该系统需满足以下几方面需求:
1. 图书管理:包括对图书的增加,注销,修改,查询。
2. 读者管理:包括对读者的增加,注销,修改,查询,续接。
3.1.4管理员功能需求
总体功能设计
系统要能实现如下功能:
登录系统:注销用户、系统退出。
管理:用户管理、图书管理、读者管理、借阅管理。
查询:图书查询、读者查询、借阅查询。
报表打印:所有图书、借出图书、库存图书、所有读者。
帮助:使用说明、
关于。
(1)可添加、注销、和更新图书信息
(2)能处理借阅、续借和还书
(3) 可以对过期未还书的读者进行罚款处理。
(4) 可以按图书编号精确查询,也可以按图书类别、图书名称及索书号进 行组合
模糊查询。
(5) 可以按读者编号精确查询,也可以按读者姓名、所在系及所在专业信 息进行
组合模糊查询。
⑹ 可以统计图书借阅历史记录以及目前图书的借阅状况。
(7)可以统计读者借阅历史记录以及目前读者的借阅情况。
(8)可以进行软件登陆身份验证。
3.2需求规格说明书
根据范式理论和E-R 图转换成关系模型的规则,上面的E-R 图可转换为3 个关系模式:①图书(条形号、书名、出版社、借阅与否、价格);②读者(借 书证号、姓名、性别、单位编号);③借阅(借书证号、馆藏号、借阅时间),
其中打下划线的为码,这样就解决了插入、删除和数据冗余等问题。
图
3.1是
—姓名
・ 密码
-管理书馆 —- 名
出版社
价格
图书
M
—— 管理
管理员
N
借阅
性别
姓名
密码
、-R 卄 读者
L
广借书证号 借书量
性别
1 N
收费及 咨询
图3.1
1.图书实体的E-R图,如图3.2所示:
图3.2
2.读者出版社实体关系的E-R图,如图
3.3所示:
3.图书、图书类别实体关系的E-R图,如图3.4所示:
图书编
m n
属于
索书号图书类别
类别名
图3.4 4.读者实体的E-R的图,如图3.5所示:
5.读者、系别、专业实体关系的E-R图,如图3.6所示:
图3.6
6.借书关系E-R的图,如图3.7所示:
7.还书关系的E-R图,如图3.8所示:
图3.8 8.续借关系E-R图,如图3.9所示:
9.罚款实体的E-R图,如图3.10所示:
图3.10 10.管理员实体的E-R图,如图3.11所示:
图
3.11
2〉软件开发阶段
(4 )概要设计(总体设计)
基本任务:建立软件结构
阶段成果:总体设计说明书
4.1系统功能模块划分
4.1.1系统功能主要包含模块:
表
、系统主功能模块细化
1. 新书入库模块:可用一个函数in sert_ new_book(char
book_num[],char book_name[],int number) 来实现。
形参分别为:书名,书号,以及有多少本书要入库,再根据要求将信息写入文件boot.dat中
2. 查询模块:可用一个函数void fin d_book(char book_num[]) 来实现。
找到就输出此书全部信息,找不到就输出查找失败信息。
3. 借阅管理模块:
(1 )读者的信息可以在系统初始化时完成.即可用初始化函数init_reader() 来实现对读者的初始化。
因为读者初始化函数也只是在系统第一次运行的时候执行一次,故也可以根据是否存在reader.dat文件来确定是否执行此函数。
(到现在可以发现在系统初始化函数里,至少已经需要调用两个初始化函数了)
(2)借书登记模块:可用一个函数borrow_book(char
reader_num[],char book_num[]) 来实现。
在函数中要分别判断:
a. 该读者的编号是否已经存在,如果不存在,贝U提示错误。
b. 该读者的借阅书是否已满(即最多只能借1本书)如果是,则提醒
该用户先去还书。
c. 输出的书号对应的书是否存在,如果不存在,则提醒读者不存在此书。
借书过程完成后,则对读者信息里的借书信息写上所借书号,并修改库存量。
(3)还书管理模块:可用一个函数return_book(char reader_num[],char
book_num[])来实现。
在实现此函数时要判断:
a. 该读者的姓名是否已经存在,如果不存在,贝U提示错误。
b. 该读者是否已经借阅此书。
如果没有,则提示错误。
c. 还书过程完成后,则对读者信息里的借书信息清零,并修改库存量。
3. 输出图书和读者信息:可分别用模块print_book()和print_reader()来
实现,直接从book.dat文件和reader.dat文件中读取信息并输出
4. 退出系统:可用一个函数exit()来实现。
首先将信息保存到文件,释放动态创建的内存空间,再退出此程序。
4.2基本设计概念
4.2.1处理流程图例说明
1. 处理过程:
过程、模块
2. 数据存储:
3. 条件判断:
4. 数据流:(单向)
5. 数据流:(双向)
6. 外部实体:
7. 带有变动历史的7
、系统主功能模块结构图:
退
出
系
统
输出读者信自沁
图书管理系统
输出图书信自心
借书登记
新
书入库
图书查询
启动系统422图书管理系统的基本设计概念和处理流程:
▼
系统总体结构图:
借阅办理流程图
Book G --------- 选择图书
图书在架状态
c图书借阅表c 图书管理流程图
图书在架查询
4.3 数据库
4.3.1索引
建立索引是加快查询速度的有效手段,数据库的每一个表建立了主键,
主键由一个或几个字段组成,每一个表都按主键建立了索引,部分表为了满足查询和排序的需要,除建立主索引外,还建立了次索引。
例如在查询时要用到
“馆藏号”、“作者”、“题名”等条件来查找图书,因此,在书目表上除了对主键“馆藏号”建立了主索引外,也对“作者”、“书名”等建立了次索引。
视图是从一个或几个基本表导出的表,它是定义在基本表之上的,它是一个虚表,数据库中只存放视图的定义,而不存放视图对应的数据,数据仍然存放在原来的基本表中。
通过定义视图,可以使用户眼中的数据库结构简单、清晰,并可以简化用户的数据查询操作。
由于本系统数据表较多,表中的字段多,为了简化对表的操作,我们创建了图书—按书名查询、期刊—按刊名查询、期刊—按编辑部查询、借阅规则查询、待还书查询、超期记录查询等30余个视图。
3.6存储过程存储过程是一段经过编译的程序代码,存放在数据库服务器端。
通过调用适当的存储过程,可在服务器端处理大量数据,再将处理结果送到客户端。
这样可减少数据在网络上的传送,消除网络阻塞现象;例如:要查询某条记录,若该记录在表中的顺序号是10000 ,不采用存储过程,服务器将从1至10000 条记录数据逐条送至客户端,采用存储过程后,由于过程是经过编译的并且是
在本地,不需要通过网络,因此能很快查出所需记录并将结果送到客户端,大大减少了网上数据传输量。
存储过程另一好处是可供不同的开发工具调用,如
PB、VC、ASP、Delphi等开发工具均可调用。
实际上调用同一存储过程完成的。
本系统建立了60多个存储过程,实现诸如借还书处理、新书入库统计、
编目入馆藏、读者统计、生成索书号等功能。
条形码的使用条形码具有唯一性和一次输入后就可反复使用的优点,利用条形码技术作为信息快速输入的手段可迅速且不易发生错误地处理图书管理业务。
本系统使用条形码作为图书和读者的标识,实现标识的唯一性。
使用条码后,能够使图书管理工作更加简单、快捷、不易出错。
例如,当一本书具有唯一条形码标识,每位读者也具有唯一条形码标识时,图书的借阅、查询就十分便捷了。
应用条形码取代了以往填写书袋卡、借书证,核对借阅时间等繁琐的手工劳动。
读者在借书时只要将借书证给工作人员,工作人员只需登录借书系统,用条形码阅读器扫描读者借书证上的条形码,屏幕就会显示出该读者的
信息,包括读者姓名、单位、可借几本书、已借几本书、是否过期、有无罚款等。
如可以借书,工作人员只需用条形码阅读器扫描该读者所需借的书上的条形码符号后,该书的书名和条形码等信息都从数据库中调出显示在屏幕上,自动记录在该读者的借阅档案中,借书工作即告完成。
一般借一本书仅需1至2 秒钟。
操作完后,计算机自动地将该借阅者和借阅的图书号码输入对应数据库中,并自动提示借阅期限。
422数据库逻辑结构设计
本系统使用SQL Server 2008将数据划分为图书信息表、图书类别表、图书与图书类别关系表、出版社信息表、图书出版社信息表、读者信息表、系别信息表、读者与系别关系表、专业信息别、读者与专业关系表、系别与专业信息表、图书借阅信息表、图书流通信息表、罚款信息统计表和管理员信息表
15个部分。
下面将各表中的字段进行以下简单介绍:
1. 图书信息表
图书信息表是用来存储图书信息的表,由图书编号、ISBN号、书名、作者和单价等。
其中图书编号为主键。
2. 图书类别表
图书类别表,记录图书类别。
其中索书号是主键
表3.2图书类别表
3. 图书•图书类别关系表
表3.3图书•图书类别关系表
4. 出版社信息表
记录出版社信息,包括出版社名称与出版社编号。
其中出版社号为主键
表出版社信息表
5. 图书&出版社关系表
记录出版社和图书的对应关系,其中出版社号与图书编号是主键
记录读者的详细信息,包含读者编号、姓名、性别、年龄、可借阅总数、现借阅数、总借阅数、罚款总数。
其中读者编号是主键。
表3.6读者信息表
7.系别信息别
记录系别信息,包括系别名与系别号。
其中系别号是主键
表3.7系别信息表
记录读者与系别的对应关系,其中读者编号与系别号是主键
表3.8读者•系别关系信息表
9.专业信息表
记录专业信息,包括专业名称与专业编号
表专业信息表
10.读者&专业关系信息表
记录读者与专业的对应关系,其中,读者编号与专业号是主键
表3.10读者•专业关系信息表
12. 图书借阅信息表
记录图书当前的借阅状态,通过图书编号与读者编号两个主键,关联其他表格信息。
其中读者编号与图书编号是主键。
表3.12图书借阅信息表
13. 图书流通统计表
记录图书流通的详细信息,包括馆藏总数、借出次数、借出数量。
其中图书编号是主键。
14. 罚款信息统计表
记录读者的罚款信息。
其中图书编号与读者编号是主键
15. 管理员信息表
记录管理员信息。
当管理员进入后台时,须向该表查询是否存在该用户, 并且该用户密码是否正确。
其中用户名是主键。
表读者信息表格
(5)详细设计
基本任务:各模块的实现阶段成果:程序规格说明书
5.1主要功能流程图
2.新书入库功能程序结构图
book.dat 中增加此新书
根据数量设置库存量
6.输出读者和图书信息
(6 )编码和单元测试
经测试各模块基本功能成功实现,能够达到预期效果,能够实现界面设计合理,方便用户操作,基本满足用户和管理员的需求。
但有部分系统功能不够完善,仍需要继续完善功能。
在开发本系统时,为了使系统能够稳定运行,对本系统进行了有针对性的全面测试,采取的方式是:(白盒测试技术和黑盒测试技术)
1、菜单项测试:为了保证每一项下拉菜单能够正确实现系统设计的功能,我把该图书馆有关图书的所有基础数据,基本上全部输入到本系统中,并对每一个菜单项反复进行了增加、删除、修改等操作,从而保证了菜单级功能的正
确实现。
2、数据跟踪:完成菜单项测试后,我又对系统内的每一个数据进行了跟踪。
例如:例如对最多可借书数的管理,我首先在借书证管理模块中对某个读者的可借书数进行设定,然后在借书模块进行数据操作,随时观察这两个数值之间是否有冲突产生,经过对可借书数的数值多次不同大小的设置并进行验
证,说明该功能完全正常。
3、综合测试:在以上测试的基础上对系统功能进行了整体的测试,依次来检验系统功能是否符合系统设计的要求。
测试范围与主要内容
任何一个管理系统,为保证它的数据安全性与信息安全性,都会采用各种
方法来区分登录用户,并限制不同用户的操作使用。
在图书管理系统中,通过
需求分析所得系统使用过程中将面向2类使用人群。
因此,通过分析,将这2 类人群总结规划为:管理员、读者。
其中,管理员作为系统的最高权限用户可以看到并能修改管理系统中的所有信息。
读者在登录系统后则只能借阅图书信息与用户个人信息。
本人希望通过权限的划分来区别各类型登录系统的功能。
系统登录模块的设计界面如图:
采用标准Win dows界面,自左至右依次为:文件、编辑、管理操作、用户切换区等。
如下图示:
管理员信息
该页面中提供图书类别分类信息的浏览与添加、修改、删除、退出等数据记录操作。
读者借书界面
该页面中提供图书类别分类信息的浏览与借书还书等数据记录操作
提示信息按以下标准进行:采用标准Win dows对话框样式,添加信息图
标,后接提示信息文本和相应按钮如下图示:
二、数据结构设计
考虑到图书信息和读者信息中都包含有不同类型的数据,故分别建立图书和读者两种类型的结构体;由于图书和读者的数量非固定,所以采用动态链式存储来实现。
图书类型:
typedef struct bk{
char book_num[11]; /* 书号采用10位编码最后1位为字符串结束标志(下同)* /
char book_name[41]; /* 书名规定不超过40个字母(20个汉字)
*/
un sig ned book_kc,book_xc; /* book_kc 代表库存梁,book_xc
代表现存量*/
struct bk *n ext;
}book;
读者类型:
typedef struct rd{
char reader_num[11]; /*读者编号采用10位编码*/
char reader_name[11]; /* 读者姓名*/
char reader_book_num[11]; /* 表示所借书号,初始值为“ 0” */ struct bk *n
ext;
}reader
6.2.登录测试(输入错误的用户和密码)
3〉软件维护阶段
(7 )软件维护
软件的维护主要包括,数据库的维护和软件功能的维护。
维护阶段的关键任务通过各种必要的维护活动使系统持久地满足用户的需要。
改正性维护,即诊断和改正在使用过程中发现的软件错误;适应性维护, 即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充软件使它更完善;预防性维护,为将来的维护活动预先做准备。