图书管理信息系统论文

更新时间:2024-01-14 16:08:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

图书管理信息系统的设计和实现

2 系统分析

2.1 系统调查

系统调查的主要内容有:系统的基本情况、系统中信息处理的状况、系统的资源情况及系统的各类人员对信息系统的态度。同时我了解到图书馆的使用人员有(1)系统管理员:维护整个系统的正常运行、及时更新系统,给每个新用户建立读者信息,给每个注销用户删除相应的读者信息。(2)图书管理员:负责给同学办理借书、还书、修改图书基本信息和图书流通状态。(3)读者:包括学生用户、老师用户和外界人士。

图书馆的组织机构设置如图1所示。

图1图书馆的组织结构

系统中信息处理状况:

通过对原有系统数据流程的分析,可以发现这种模式存在着一些不合理之处,完全可以改进,使工作效率提高,减少信息迂回。

图书馆现行系统存在的问题:第一,日常管理工作缺乏规范性,随意性很大,对人的经验水平有很大的依赖性,因此具体操作往往因人而异;第二,资料多次手工处理,如逾期通知等,出错率高,完全可以用数据库检索自动生成。第三,数据重复率高,有些地方人员多次使用相同数据,有些信息完全可以归类,第四,缺乏统计工作。

所以完全可以通过建立一套完整的图书管理信息系统,来对信息进行查询、修改、统计、检索等日常管理工作,尽量减少的人员介入和数据冗余,以简练实用为基础,实现信息管理计算机化提高工作效率和信息化水平。

2.2 可行性分析

可行性分析对系统的开发至关重要,可以大幅减少不必要的损失,保证系统开发的顺利进行。因此要对系统进行技术可行性、经济可行性、操作可行性三方面的系统可行性分析:

2.2.1 技术可行性

近几年来计算机技术发展异常迅猛,高速度大容量的电脑已成为许多学校里日常工作必不可少的设备,随着办公自动化的软件不断涌现,微机的普及为该系统的开发奠定了坚实的基础。

2.2.2 经济可行性

一方面,系统的开发不需要额外增加设备购置费、软件开发费、管理和维护费用。另一方面,系统的开发可以较好地解决图书馆因日常事务繁杂而造成的处理效率低,出错率偏高的局面,并可以及时了解各项日常事务的进展情况,为及时调整库存资料提供可靠的数据支持,从而明确工作目标,同时还可以减少人工劳动、提高工作效率、增加书本流通量。

2.2.3 操作可行性

计算机以强大的信息处理能力作为人类脑力劳动的有利助手登上历史舞台后,已渗透到社会生活的各个领域,使现代社会组织、特别是企业,学校的信息处理能力适应现代化管理的要求,且系统逐步从单项事务信息处理系统迅速向综合服务(决策支持系统)的管理信息系统发展。本系统使用界面良好,易于操作。图书馆拥有一批较高素质的员工,只需了解相关知识,就可熟练操作本系统了。

通过以上分析,图书馆管理信息系统的开发在经济上、技术上、操作上都是可行的。 2.3 系统的总目标

图书馆管理信息系统的总目标是按照管理信息系统的管理和开发方法,采用先进的信息技术和手段,支持并规范图书和读者资料的管理、借书、还书、修改密码、查询书本或学生等操作的全过程,并加强上述过程中各种信息资源的管理和应用,提高各部门管理工作的现代化水平,实现各部门信息的准确、及时处理和沟通及共享,为图书馆对库存资料的决策提供有利的支持和反馈信息,以实现图书馆的总体目标。

2.4 具体目标

(1)每年开学,新生报到的时候,图书馆系统管理员要给每一位新生的信息建立个人档案,办理图书借阅证。学生的个人档案包括学生的学号、姓名、性别、班级、年级、所属专业、电话号码。

(2)学生毕业的时候,图书馆系统管理员要及时对每位学生的信息进行删除。 (3)每次新进图书的时候,图书管理员要对每本图书的信息进行管理和录入,以方便读者的借阅。图书的基本信息有:图书索引号、图书名、作者、出版社、出版日期和图书的使用状态。

(4)当图书被读者借阅的时候,图书管理员要改变图书的使用状态,不再允许借阅,但是允许预约,而且每本书只允许被一个读者借阅,也只能被一个读者预约。

(5)当学生借阅的图书延期的时候,图书管理员要及时通知学生归还图书,并对其进行相应的处罚。学生可以在图书未超期的情况下办理续借。

(6)学生可以在图书管理系统中查询自己的借阅情况。

(7)当图书被损坏或图书出馆时,图书管理员要及时修改相应的图书信息。 (8)系统还应该提供强大的数据统计,查询等功能。

(9)系统应充许外界人士通过规定的步骤注册成为新用户,并享有一定的权利。 (10)系统应该有很好的可扩展性。

3 需求分析

需求分析阶段的根本任务是要明确图书馆在决策和日常事务处理上的信息需求,以便提出整个系统的总体方案。在需求分析中,主要采用流程图和数据字典来描述。

3.1 事务流程图

通过对图书馆的多次调查,大致了解了图书馆的日常的管理事务流程。每日处理的工作

如图2所示。

图2图书馆的事务图

(1) 图书资料的管理

图书管理员将采购的图书入库分类处理,同时建立相关的图书资料信息,如果该书已有,则修改现有书本数等于原有书本数加新增书本数。如有图书损坏及罚款处理,也修改图书资料信息。如果图书出馆,则删除相关的图书资料信息。

(2) 读者资料管理

每年新生入校的时候,系统管理员要为每一个学生办理相应的图书借阅许可证,学生填写登记表包括学生学号、姓名、性别、年级、班级、专业名称、电话号码等基本信息。核对无误后交由系统管理员办理学生借阅证,如果读者更改任何个人信息,则应由学生写出书面申请,由系统管理员在相应的读者基本信息中进行修改。如果学生要离开学校,则审核该读者是否有逾期书籍和损坏,如无,则办理撤消业务,同时在读者资料库中删除该读者。最后给读者合格注销通知。对于教师用户也是一样的处理过程。

(3) 借书操作

读者把借阅证及想要借的图书交给图书管理员,图书管理员进行审核,如该读者是否有过期未还的图书,是否借阅图书已超过五本或未交清罚款,有上述情况之一则通知该读者借阅不成功。否则借阅成功,图书交给读者。同时图书管理员修改图书、读者及图书流通信息表。如读者逾期则可电话联系。如读者发现该图书已借出,则只可在图书资料库中进行预约。一本书同一时间只能被一个读者预约。如读者续借,则延长读者应还书日期。读者只可在该书本尚未超期的情况下才可以进行续借,否则续借不成功。

(4) 还书操作

读者把借阅证及要还图书交给图书管理员,由他进行审核,如该图书有逾期或破损,则通知该读者按比例罚款。否则图书交图书管理员放回书库。并修改图书、读者借书信息表。读者遗失书本则给予原价五倍赔偿。

(5) 查询处理

读者可以到图书馆内的电脑上查询自己的借书信息表,查询图书是否逾期,是否可以进行续借,也可以查找自己要借的图书是否在馆,以及近期图书馆的动态和公告。图书管理员可在图书到期前一天打印逾期清单,电话联系读者,以方便读者及时还书,加快书本流通。

(6) 修改密码

为了方便管理,图书馆系统管理员会给每一个新注册的用户一个初始密码,读者用初始密码首次登录系统后,应及时修改自己的密码,以保护自己的权利。或在使用的过程中通过修改密码来防

D1 库存清单

图7 归还图书的DFD

3.3 数据字典

int varchar

4 20

f

所在专业代码 专业名称

图书 管理员 1.1 接 受 事 务 1.2 更新图 书 库存清 单 1.3 处 理 归 还 数据库

表3图书基本信息表

字段名 bookid bookname Autor department description Lend appoint

字段类型 varchar varchar char Int char char char

长度 10 30 10 4 20 1 1

NULL f f f f f

字段意义 图书索引号 图书名称 作者名字 所在书库代码 描述 是否借出 是否预约

表4学生基本信息

userid username sdepartment password Right_1 Ringht_2

varchar varchar char varchar bit bit

10 10 30 20 1 1

f f f f f

用户编号 用户名 部门或专业 密码 查询权 管理权

表6库存信息表

字段名 department description

字段类型 int varchar

长度 4 20

NULL f

字段意义 书库代码 书库名称

3.4 数据项的页码设计

(1)对读者编号,为了便于查找采用层次码。

如:02(年级,即入学年份) 09(学院代码) 1(专业代码) 279 [注]: 学院代码如:商学院---01 信息学院---02 土木学院---03

外语学院---04 艺术学院---05 计算机科学与工程学院---09

计算机科学与工程学院的专业代码如:计算机科学与技术专业---1

网络专业---2

(2)图书编号,为了便于得到有关信息采用层次码。

如:TP(类别) 3111(编号) 01(内部编号)

[注]: 内部编号:同时采购了五本相同的图书,在类别和编号相同的时候,用01,02,

03,04,05分别代表这五本相同的图书。

编号: 计算机应用基础---3111 计算机网络---3112 计算机组成原理---3113 数据库---3114

类别: 计算机类--- TP 文学类--- I 艺术类---V

数理化---O 英语类---H

4 概要设计

4.1 总体设计

系统功能结构如图8所示。

图8系统功能结构示意图

4.2 局部 E_R图

学生基本信息,图书基本信息,用户信息和读者借书情况表的局部E-R图如图9至图12所示。

author lend bookname appoint bookid

图10书本基本信息表 studentid bookid jieshudata huanshudata jieshuid BOOK

JIESHUBIAO 图12 读者借书信息表

4.3 总体E-R图

本图书管理信息系统的总体E-R图如图13所示。

班级M属于1年级N包含专业1隶属学生隶属借书证NM11N11逾期预定N罚款单书库1借阅隶属图书报废报废单1N图13 总体E-R图

部分联系的属性如下:

1.借阅{借阅编号、图书索引号、借阅证号、借书日期、还书日期} 2.预订{预订编号、图书索引号、借阅证号、预订日期} 3.采购{采购编号、图书索引号、采购价格、采购数量} 4.报废{图书索引号,报废时间,报废原因} 4.4 E_R图向关系模型的转化

E_R图向关系模型的转化要解决的问题是如何将实体和实体之间的联系转化为关系模

式,如何

MNMN采购M采购员出版社N

图15 修改图书记录

图16 修改学生记录

图17 查询/借阅/预约图书

图18 查询/归还已借阅图书

5.2 建立索引和嵌套查询

索引是数据库中一常用而重要的数据库对象集。索引改进了数据库的性能和可访问性,可以用来排序和快速访问数据。大大改善了数据库的性能。下面以本人的图书管理信息系统中的book表为被借出时不能被预约。

(8) 修改图书的基本信息

这是图书管理员的权力,包括添加,删除和修改图书信息。当有新添加进来的图书时,图书管理员要查看图书馆里是不是已存有这样的图书,发现已有库存时,要修改图书的数目,否则就加入新的图书信息。当有旧书或损坏了的图书要退出的时候,要及时减少相应图书的数目或是删除相应的图书信息。学生借出书或归还图书时,要及时地修改图书流通信息表。

(9) 修改学生用户的基本信息

系统管理员在这里添加,删除和修改学生和教师的基本信息。当有新生入校时,根据学生填写的基本信息表为每个新生注册一个用户名,在校期间如果学生基本信息有变化可以交

系统管理员审核后修改相应的信息,毕业或注销用户时,管理员要及时删除相应的记录。教师的处理情况相同。

(10)初始化系统

当遇到不可恢复的重大意外损伤时系统管理员可以用它来重新恢复图书馆的基本信息,保证图书管理系统正常工作。除了用户信息表恢复初始值外,其它的数据信息都会被清零。

(11) 公告栏

系统管理员向所有登录用户和外界人士及时发布图书馆最新消息的地方,包括注意事项等。

(12) 意见箱

所有登录用户可以在这里向系统管理员和图书管理员提出对图书管理的宝贵意见,方便管理员及时采取相应措施修改管理方案,方便用户以后的使用,提高整个系统的性能。

本系统主要提供图书管理,学生用户管理和系统管理。以下列出了图书管理信息系统主模块,系统总体结构、图书/读者功能模块和图书流通功能模块的示意图如图19至图21所示。

图19系统总体结构

图20图书/读者功能模块

图21图书流通功能模块

5.5 界面设计及功能实现 5.5.1 登录界面设计及功能的实现

图22 登录界面

相应的主要代码为:

procedure Tloginform.Button1Click(Sender: TObject); //登录按钮 begin

adotable1.Active:=true;

不能借阅!')

//借阅的图书不能超过五本

else begin

adoquery2.Close; adoquery2.SQL.Clear; adoquery2.SQL(‘insert

into

jieshubiao(bookid,studentid)values('''+dbedit1.Text+''', '''+edit1.Text+''')’; //借阅成功,把记录插入到相应的学生借书情况表中

adoquery2.ExecSQL; showmessage('借阅成功!'); adoquery1.Active:=false; adoquery1.Active:=true;

end; end;

end;

procedure Tjieshuform.FormShow(Sender: TObject); begin

dbgrid1.DataSource:=DataSource1; adoquery1.Active:=false; adoquery1.Active:=true; end;

procedure Tjieshuform.Button3Click(Sender: TObject); //借书按钮 begin

adoquery2.SQL.Clear;

adoquery2.SQL.Add('DELETE FROM jieshubiao WHERE bookid='''+dbedit1.Text+''''); //还书成功,从学生借书表中删去相应的记录 adoquery2.ExecSQL; showmessage('还书成功!'); adoquery1.Active:=false; adoquery1.Active:=true;

end; end;

5.5.4 修改密码界面设计及功能的实现

每一个新注册的用户第一次登录图书管理系统后应及时修改自己的初始密码,以维文方便自己记忆和防自己的信息外泄。核对用户名和原密码后,两次输入的相同密码就成功设置了新密码。如图25所示。

图25修改密码界面

相应的主要代码为:

procedure Tgaimimaform.Button1Click(Sender: TObject); begin

if (edit1.Text='')or(edit2.Text='')or(edit3.Text='') //原密码和新密码都不能为空 query1.Close; query1.SQL.clear;

query1.sql.add('insert into xueshengbiao values(:s0,:s1,:s2,:s3,:s4,:s5)'); query1.params.clear;

query1.Params.CreateParam(ftstring,'s0',ptinput); query1.Params[0].Value:='1';

query1.Params.CreateParam(ftstring,'s1',ptinput); query1.Params[1].Value:='1';

query1.Params.CreateParam(ftstring,'s2',ptinput); query1.Params[3].Value:=true;

query1Params.CreateParam(ftstring,’s3’,ptinput); query1Params[4].Value:=true;

query1.Params.CreateParam(ftboolean,'s4',ptinput); query1.Params[5].Value:=ture;

query1.Params.CreateParam(ftboolean,'s5',ptinput); query1.Params[6].Value:=ture;

query1.Prepare; query1.ExecSQL; query1.close; query1.SQL.Clear;

query1.sql.add('delete from tushubiao'); query1.Prepare; query1.ExecSQL; query1.Close; query1.SQL.Clear;

query1.sql.add('delete from student'); query1.Prepare; query1.ExecSQL; query1.Close; query1.SQL.Clear;

query1.sql.add('delete from jieshubiao'); query1.Prepare; query1.ExecSQL; query1.Close;

Application.MessageBox('初始化结束!','提示信息',mb_ok); end;

6 系统测试及维护

6.1 系统测试方法和特点 6.1.1 系统测试的基本原则

测试工作应避免由原开发软件的个人来承担。本系统的测试工作是由相关同学来承担。设计测试方案时,不仅要包括确定的输入数据,而且应包括从系统功能出发预期的测试结果。测试用例不仅要包括合理、有效的输入数据,还要包括无效的或不合理的输入数据。不仅要检验程序是否作了该做的事,还要检查程序是否同时作了不该做的事。软件中仍存在错误的概率和已经发现错误的个数是成正比的。保留测试用例,作为软件文档的组成部分。

6.1.2 测试方法

对本系统的测试过程采用了对软件进行测试常用的方法,即人工测试和机器测试。人工测试又称代码复审,包括人工复查、走查、会审。机器测试包括黑盒测试(又称功能测试、数据驱动测试)和白盒测试(又称结构测试、逻辑驱动测试)。由于本系统的规模较小,所以人工测试主要采用的是人工复查,源程序编完后直接由自己进行检查。另外,如条件允许还可请经验丰富的程序员对系统进行复查。

机器测试采用了白盒测试和黑盒测试相结合的测试方法。白盒测试是按照程序的内部结构和处理逻辑开选定测试用例,对软件的逻辑路径及过程进行测试,坚持它与设计是否相符。黑盒测试是在完全不考虑程序的内部结构和特性的情况下,测试软件的外部特性。 根据软件的需求规格说明书设计测试用例,从程序的输入和输出特性上测试是否满足设定的功能。本系统采用白盒测试,然后采用黑盒测试。

●测试数据:测试除了采用正常的数据,还编造了一些异常和错误的数据,用来检验程序的正确性和容错能力。

(1)用正常数据进行测试:

如输入正确的索引号进行借书操作,则系统会将该索引号在图书基本信息表中进行检索,看图书是否借出,然后在检索用户已借的图书是否超过五本,是否有超期未还的书,如没有这些情况,则办理借书手续。

(2)用异常数据进行测试:

如用空格的索引号进行借书操作,则系统能自动检查索引号是否为空,并提示出对话框“书号不能为空”。

(3)用错误数据进行测试

(4)学生每张借阅证最多能借阅五本图书,当读者还要借书时,系统会报警并提示出错对话框“每位读者最多能借五本书”。

(5)如果输入的索引号系统检查发现没有时,则系统会提示出错对话框“没有找到相应的索引号”。

●系统测试工作的四个步骤 (1)单元测试

采用条件覆盖的方法来进行测试,设计测试用例,使每个判断中的每个条件可能值至少满足一次。

(2)组装测试

对每个模块完成了单元测试以后,需要按照设计时的模块图连接起来,进行组装测试,通常采用黑盒测试法,发现模块之间协调性问题,进行局部修改,再次组装,得到了预期的正确结果。

(3)确认测试

确认测试是以整个软件作为测试对象,进一步检查软件是否符合软件需求规格说明的全部需求,因此又称为合格性测试或验收测试。按照这样的需要,对本系统的功能、性能和配置等做了进一步的测试,结果为符合要求。

(4)系统测试

系统测试是将图书管理信息系统所有的组成部分包括软件和硬件、用户和环境综合在一起进行测试,以检验系统的各个组成部分运行时的协调配套性。系统测试要在系统的实际运行环境现场,在用户的直接参与下进行。

6.2系统运行与维护 6.2.1 系统的运行

新系统正式投入运行后,为了保证系统中的各个要素随着环境的变化始终处于最新的、正确的工作状态,必须加强对管理信息系统运行的日常管理。系统运行管理主要由图书馆管理人员来完成,及时更新数据,并对系统每天运行情况、数据输入和输入情况及系统的安全性与完备性及时地如实记录和处置。

6.2.2 系统的维护

软件维护是软件生命周期的最后一个阶段,它处于系统投入生产性运行以后的日期中,为了纠正错误或满足用户新的需要而进行修改软件的过程,软件维护也是为软件的升级提供详细的资料。

系统维护的目的是保证图书管理信息系统正常而可靠的运行,并能使系统不断得到改善和提高,以充分发挥作用。系统维护的内容和类型:

(1)系统维护的内容

系统维护的主要内容:应用程序的维护、数据维护、代码维护和硬件设备的维护。 (2)系统维护的类型

系统维护的主要类型:纠错性维护、适应性维护、完善性维护、预防性维护。本系统维护工作主要是完善性维护和纠错性维护。

(3)系统维护的组织管理

系统维护工作并不仅仅是技术性工作,为了保证系统维护工作的质量,需要付出大量的管理工作。信息系统投入运行后,需要人员管理软件工作。由于本系统的功能简单,规模小,只要一般的机房人员进行维护工作就可以了。

为了得到标准的信息,在数据库设计中采用了统一的代码体系,这样一来信息简单明了,使查询不至于重复。

7.2 系统的改进

本系统开发时间的仓促,本人对软件开发工具认识的水平有限,本软件仍存在一些不如人意的地方,还有待进一步改进,归纳起来主要有以下几点:

(1)本系统采用的是单机单用户操作方式,在资源管理、信息处理上采用集中式的方式,为了适应机构管理模式的变化,必须向网络化的管理信息系统发展,使用相应的网络数据库结构。

(2)容错功能一般,在读者信息等需要添加的模块中,人工参与过多,界面缺少美工。 (3)菜单设计不够全面,对决策管理的支持不够深入,必须在适当的时候进行改进。 (4)对外界人士享有的服务范围划分不明确。 7.3 体会

这次的毕业论文的设计,结合了本人这几年计算机专业学习所学到的很多专业知识,又通过在具体的毕业设计过程中,以计算机理论为基础,边学习Delphi 和SQL,边做毕业设计,在实践过程中克服了一个又一个困难和难题,在指导老师和同学的大力帮助下,终于完

成了此次毕业设计。

通过此次的软件开发过程,使我对所学专业有了更深一层次的提高,并且有了一些切身的体会。光有计算机理论的知识是不行的,还得有更丰富的实践经验,就比如这次毕业设计就提供了一次非常好的实践操作的机会,使我对软件开发有了一定的了解。

我用的是Delphi 和SQL开发这个系统的,以前只是对这些软件略有了解,在同学的帮助下做过课程设计。但了解得不完全,不深入。这个图书管理系统还存在很多问题,还有很多功能需要扩充。限于本人的编程技术水平,很多更深层的技术未用上。但以后我会通过不断的努力,不断地专研和学习,掌握更多的软件设计的技术和方法,设计出更好更完善的软件作品来。

在整个开发过程中深深体会到,多与同学交流,并尽可能多的从同学那里获取他们对图书管理系统的意见;要严格按照软件工程的开发思路,不能急于求成,一来就马上编程,应该多做分析和研究,理清思路。前一阶段的工作的好坏将直接影响后一阶段工作的开展;多学习多请教,更多新的技术不断的涌现,可以通过请教别人或者多上网学习别人的编程方法、研究编程案例,可以转变成你的知识,才能做的更好。这些经验是相当宝贵的,为我以后能够编出更好的程序是一个良好的启发。

本文来源:https://www.bwwdw.com/article/itmo.html

Top