图 书 管 理 系 统
第二章 图书管理系统分析与设计
2.1图书管理系统的用户需求简介
系统的调查与分析,简称系统分析,是管理信息系统开发工作的第一个阶段,也是最重要的一个环节。系统分析在整个系统开发过程中是解决系统是“干什么”的,逐步明确系统的目标,系统的界面以及系统的基本功能等。为下一阶段进行物理方案设计,解决“怎么干”提供依据。
这个阶段的主要活动有:系统初步调查、可行性研究、系统详细调查、新系统逻辑方案的提出。
系统的初步调查是系统分析的第一项活动,也是整个系统开发的第一项活动。初步调查是在“图书馆”的最高层进行的,系统分析员站在高层观察“图书馆”的现状,分析系统的运营情况。初步调查主要由两部分组成:一般调查和信息需求调查。前者包括了解“图书馆”的内部环境和管理目标,调查分析“图书馆”的业务流程,明确进行改造的需求以及确定系统目标和主要功能;后者是初步调查的主要内容,调查组织系统的工作职责和各职能部门所要处理的数据。
用户的需求可分为三个方面:一方面是图书馆工作人员通过图书管理系统来管理各类图书,使得图书馆的各项工作能够有序地进行,从而满足学生的需求;二方面是学生们能通过该系统来查询图书馆中的各类图书,来确定自已需要的书籍的借阅情况,为借阅做好准备;三方面是对图书馆数据库管理的需求,数据库在系统中扮演着极其重要的角色,所以能对系统数据库进行安全和全面地管理也成为了图书管理者的一个重要需求。
2.2图书管理系统的要求
在软、硬件方面对系统的需求,软件要求易学,界面友好,容易掌握,可以很简单方便的管理各种图书信息。硬件需求的配置要求不能太高,这样可以很好的适应当前的学校图书管理工作。
在编目图书这一部分,主要有以下方面的要求:
1, 编目前先查看书库中是否有与未编目书同样的图书; 2,选择已编目书的分类号给要编目的新图书;
3,若书库中没有与新书相同的图书,则由编目给图书分类并录入图书分类号。 4,录入新图书类编号;
在流通部分的借书这一方面,主要有以下方面的要求: 1, 查看学生的个人借阅情况,看是否已经借满; 2, 进行借书登记,同步修改相关信息。
在流通部分的还书这一方面,主要有以下方面的要求: 1, 学生还书时,核对其图书的有效性; 2, 进行还书登记,同步修改相关信息。
在流通部分的查书这一方面:
用户即就是学生,所提出得的需求比较集中:学生可以根据各种不同的查询途径来对书库图书进行全面的查询。
此外,系统的安全性等其他方面还有以下的要求:
1, 系统的所有数据进行统一的管理,要保证其安全性; 2, 有专门的人员对数据库进行更新和维护; 3, 设计不同用户的操作权限和登陆方法。
2.3图书管理系统功能描述
根据图书管理的功能要求,结合学校图书管理的实际情况,系统分成以下若干模块:编目、典藏、流通、读者、查询、系统维护。各模块完成如下功能:
编目:实现图书/期刊的简易编目与维护。其中“图书/期刊简易编目”作业的作用是新增简单编目,可简单至只需要入书刊名、作者、日期等。“图书/期刊简易维护作业”的作用是处理图书和期刊的编目信息,在这里可以查询书目、修改书目和进行馆藏维护等工作。
典藏:实现对馆藏资料的管理和维护。在“典藏资料管理”作业中操作员可以进行新增、修改及删除馆藏等操作。
流通:实现图书流通的各项操作。流通界面是图书馆对外的窗口,馆员可在“图书流通”作业中按读者学号查询读者相关资料及其借书、还书等情况,并进行借书、还书等各项操作。
读者:实现对读者资料的各项操作。在“读者管理”作业中可以按照各种条件来查询读者相关资料,并进行新增读者、修改读者资料、删除读者等各项操作。
查询:实现对读者个人借阅情况查询、编目查询、馆藏查询及分类查询。“读者个人借阅查询”、“编目查询”和“馆藏查询”作业可以按照所选择或输入的多项查询条件。“分类查询”作业则是按照图书分类法,从大类直到细类逐层进行查询。
系统维护:实现对操作员的管理与维护、系统参数维护、操作员登录密码的修改等。其中“操作员管理”作业可对系统操作人员进行管理与维护,包括对组员的增加与删除。“系统参数维护”作业可对系统内使用到的各种数据、参数等进行维护,例如管理员可以编辑或修改“读者身份”、“借阅规则”等。“修改登录密码”用来修改操作员的登录密码。
2.4系统功能模块图
在这一阶段中我们将根据系统调查与分析阶段的结果,进行系统的设计。系统设计包括两个方面的工作:首先是系统总体结构的设计,即把系统的功能分解成许多基本的功能模块,确定它们之间的联系,规定它们的功能和处理流程;其次是具体的物理设计,即对实现系统的各项功能,选择具体的技术手段和处理方式。因此,如果说系统研制人员在系统调查与分析阶段的任务是在逻辑上弄清楚系统“作什么”的话,在系统设计阶段的任务则是在物理上确定系统“如何去做”。
系统设计包括如下工作内容: 1. 系统的总体设计
(1) 系统功能结构的划分 (2) 系统界面设置
2. 具体物理设计
(1) 代码设计 (2) 输出设计 (3) 输入设计
从图书管理系统的整体出发,根据系统的目标将其分解成一系列子系统,各个子系统既相互配合,又各自具有一定的独立功能,共同实现整个系统的目标。上层的子系统其功能越笼统、越抽象,越下层的子系统其功能越简单、越优越,越具体。对于每一个子系统或系统模块,都应该尽量使其相对独立,要尽可能减少各个子系统之间的联系。
系统划分的结果最终为一张分层的树型结构图——图书管理系统的功能结构图如3—1所示。
图 书 管 理 系 统 系编 典 流 读 查 统 维目 藏 通 者 询 护 简易编 目 资料管理 客户借阅 读者管理 借阅查询 编目查询 馆藏查询 分类查询
图3-1图书管理系统功能结构图
操作员管理 修改密码 2.5系统开发环境简介
程序设计是系统实施工作中工作量最大、耗时最多的工作,是开发管理信息系统的主要环节。正确的程序设计思想和良好的方法学指导是非常重要的。传统的结构化程序设计把一个大程序分解成具有层次结构的若干个模块,每层模块在分解成下一层子模块,如此自顶向下,逐步细分,就可以把复杂的大模块分解成功能单一的小模块。在这些小模块完成设计之后,再按其逻辑结构,层层向上组织起来,大的程序就得到了解决。从而使程序设计更加符合人类对现实世界的理解和描述,大大提高了程序设计的能力。
基于上述特点,决定了采用结构化程序设计和面向对象程序设计相结合的方法,以Microsoft Visual Basic 6.0 为开发工具进行程序设计,不仅实现了系统各模块的功能,而且具有直观友好的用户界面,使用户操作简单、方便、快捷,也大大减轻了管理员的工作
量,提高了图书管理的自动化程度。
Visual Basic具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理Microsoft Access格式的数据库,并提供了强大的数据存储和检索功能。同时,Visual Basic还能直接编辑和访问其他外部数据库。
2.6数据库设计 2.6.1数据库介绍
数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库和关系数据库。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,如记录、域等。
Access2000 就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开发,具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。
数据库表:
字 段 名 种类名称 借书数量 借书期限 有效期限
系统管理: 字 段 名 用户名 密码
数 据 类 型 文本型(char) 文本型(char) 数 据 长 度 50 50 数 据 类 型 文本型(char) 数字(INT) 数字(INT) 数字(INT) 数 据 长 度 50 10 10 10 2.6.2使用ADO 数据控件访问数据库
ADO是ActiveX Data Objects 的缩写,提供对各种数据库访问的标准接口。 1、如何用ADO存取数据:
在实际编程过程中使用ADO的一个典型的存取数据的步骤为: a 连接数据源 b 打开记录集对象 c 使用记录集
d 断开连接
2、关闭所有的数据连接
如果在代码中使用了数据控件如 ADO, 在退出时应该关闭所有打开的 recordsource, database 。 虽然对象能自动注销, 但是数据连接不会马上断开, 可能会导致一些内存不能被系统重新分配。
Visual Basic提供了与底层数据库系统紧密的连接。Visual Basic 支持不同的关系数据库管理系统并充分发挥每一个数据库的特长。生成独立应用或脱离服务器运行的服务以上的应用,Visual Basic连接数据库的方式有两种:
1.通过使用Visual Basic的 ADO控件。
2.通过使用由Visual Basic提供的专用的直接与数据库相连的接口。
2.6.3 数据库需求分析
数据存储设计的任务是根据系统功能的要求(特别是数据存储的要求),决定数据的组织形式和存储方法,以便获得最好的文件结构和文件组织形式。数据存储设计主要是进行数据库设计。
(1) 规划阶段
确定开发的总目标,给出计划开发的软件系统的功能、性能、可靠性以及接等方面的设想。
(2) 需求分析阶段
认真细致地了解用户对数据的加工要求,确定系统的功能与边界。本阶段的最终结果,提供一个可作为设计基础的系统说明书,包括对软硬件环境的要求和一整套完善的数据流程图。
(3) 设计阶段
把需求分析阶段所确定的功能细化,主要工作是概念设计阶段、逻辑设计阶段、物理设计阶段,然后,对每个阶段内部设计详细的流程。 (4) 程序编制阶段
以一种或几种特定的程序设计语言表达上一阶段确定的各模块控制流程。程序编制时应遵循结构化程序设计方法。 (5) 调试阶段
对已编好的程序进行单元调试(分调),整体调试(联调)和系统测试(验收)。 (6) 运行和维护阶段
这是整个设计周期最长的阶段,其工作重点是收集和记录系统实际运行的数据。在运行中,必须保持数据库的完整性,必须有效的处理数据故障和进行数据库恢复。同时解决开发过程的遗留问题,改正错误进行功能完善。
2.6.4数据库概念结构设计
数据库设计是要在一个给定的应用环境中通过合理的逻辑设计和有效的物理设计来构造较优的数据库模式,建立数据库及其应用系统,满足用户的各种信息需求。从数据应用系统和开发的全过程来考虑,数据库的设计可分为四个阶段:需求分析、概念设计、逻辑设计、物理设计。需求分析阶段综合用户的需求;在概念设计阶段形成独立于数据库管理系统的概念模式,形成数据库的逻辑模式。然后根据用户的需求,在基本表的基础上建立必要的视图
形成数据的外模式。在物理设计阶段根据系统数据库的特点和处理要求,进行物理存储安排,建立索引形成数据库内模式。
逻辑设计的任务就是把概念设计阶段的E—R图转换为系统支持的数据模型(如关系模型),形成数据库的逻辑模式。转化时要解决的问题就是如何将实体间的联系转化为关系模型:
对于实体,将每个实体转换为一个关系,实体的属性即为关系的属性,实体的码即为关系的码。
若实体间的联系是1 :1,可以在两个实体转换成两个关系中任意一个关系的属性中加入另一个关系的码。
若实体间的联系是m :n,则将联系转换为关系。关系的属性为诸实体的码加上联系具有的属性,而关系的码为诸实体码的组合。
物理设计是为数据模型在存储设备上选择合适的存储结构和存储方法,以获得数据库的最佳存取效率,其设计原则如下:
1. 尽可能的减少数据冗余和重复 2. 构设计与操作设计相结合 3. 数据结构具有相对的稳定性
2.7数据词典分析 2.7.1读者信息表
里面记录了读者所有的基本资料:
2.7.2图书信息表
里面记录了书籍最基本的信息:
2.7.3借阅信息表
里面记录着所以书籍的借阅信息
2.8数据流程图
这项工作的主要任务是给组成系统的各个子系统和模块勾画出大致的计算机处理流程。目的是让开发人员明确子系统或模块中信息的流动、转换、存储和处理情况,以便进一步明确模块物理设计及日后模块实现的任务和工作要点,从而把系统的总体设计思想落实到每一个子系统和功能模块之中。
子系统和模块计算机处理流程,可以用一种基于计算机处理的业务流图来表示。 借书:
借书是图书管理系统的主要流程之一,其过程是在馆藏中查找自己所需要的图书,然后进行借书、借书登记等操作。
其流程图如图3-2
开 始 借 书
查 阅 馆 藏
验证是否Y
被借出
N 输入读者信息
Y
是否借满
N
借 书 登 记
退 出 借 书 图3-2借书的主要流程图
还书:
借书是图书管理系统的主要流程之一,其过程是输入还书的编号或者还书的名称,然后进行还书操作,同时删除借阅记录。
其流程图如图3-3
图 书 是否丢书 N 删除图书资料 图书有效性验证 N 还书登记 还 书 结 束 图3-3还书的主要流程图
第三章 图书管理系统的功能实现
3.1登陆界面编码设计
本窗体集成了”登录”模块,因此在系统加载时,需要先启动”登录”模块的登录窗体,只有当用户输入了正确的用户名和密码,才能进入到系统主界面。
“登录”窗体运行界面,如图:
当user表没有该用户,将无法使用本程序。 user = myrs(\"user \")
将公共变量user设为用户的身份 此窗体的主要代码设计如下:
Dim rs_login As New ADODB.Recordset If Trim(Combo1.Text) = \"\" Then
MsgBox \"没有这个用户\ Combo1.SetFocus Else
sql = \"select * from 系统管理 where 用户名='\" & Combo1.Text & \"'\" Else
MsgBox \"密码不正确\ txtpwd.SetFocus
登录成功后,管理员可以进行添加和删除用户,修改密码,修改各种资料等操作。
3.2读者管理界面编码设计
通过DataCombol控件连接到数据库的dbl基础数据表,用DATA GRID控件,将它的各列显示出数据库的各列,属性设为可写,连接到数据库。
用Text 控件来显示所输入的内容,单击“保存“按钮后就可以保存到数据库中,通过ADO控件来浏览记录。
实现读者资料登记的添加、删除、修改、保存功能。 读者管理界面如图:
此窗体的主要代码设计如下:
sql = \"读者编号='\" & Trim(Text1.Text & \" \") & \"'\" If Check2.Value = vbChecked Then If Trim(sql) = \"\" Then
sql = \"读者姓名='\" & Trim(Text2.Text & \" \") & \"'\"
sql = sql & \"and 读者姓名='\" & Trim(Text2.Text & \" \") & \"'\" If Check3.Value = vbChecked Then If Trim(sql) = \"\" Then
sql = \"读者类别='\" & Trim(Combo1.Text & \" \") & \"'\"
sql = sql & \"and 读者类别='\" & Trim(Combo1.Text & \" \") & \"'\" sql = \"select * from 读者信息 where \" & sql
3.3图书管理界面编码设计
通过ADO控件连接到数据库,用DATA GRID控件,将它的各列显示出数据库的各种类型,其类型有:计算机、电子、电工、物理、小说。用户可以通过此窗体来添加或删除类型。次窗体连接到借书窗体。
读者管理界面如图:
此窗体的主要代码设计如下
sql = \"书名='\" & Trim(Text1.Text & \" \") & \"'\" If Check2.Value = vbChecked Then If Trim(sql) = \"\" Then
sql = \"类别='\" & Trim(Combo1.Text & \" \") & \"'\"
sql = sql & \"and 书名='\" & Trim(Combo1.Text & \" \") & If Check3.Value = vbChecked Then
sql = \"作者='\" & Trim(Text2.Text & \" \") & \"'\"
sql = sql & \"and 作者='\" & Trim(Text2.Text & \" \") & sql = \"出版社='\" & Trim(Text3.Text & \" \") & \"'\"
sql = sql & \"and 出版社='\" & Trim(Text3.Text & \" \") sql = \"书籍编号='\" & Trim(Text4.Text & \" \") & \"'\" sql = sql & \"and 书籍编号='\" & Trim(Text4.Text & \" If Trim(sql) = \"\" Then
MsgBox \"请选择查询方式!\sql = \"select * from 书籍信息 where \" & sql
3.4借阅信息管理界面编码设计
次窗体主要用于借书功能,还可以显示借阅者的具体信息,以便于确认借阅者的正确身份。通过ADO控件连接到数据库,用DATA GRID控件,将它的各列显示出所有读者的编号和姓名。次窗体主要用于借书操作。
此窗体的主要代码设计如下
sql = \"select * from 借阅信息\"
sql = \"select * from 书籍信息 where 书籍编号='\" & book_num & \"'\" sql = \"select * from 读者信息 where 读者编号='\" & Combo1.Text & \"'\" MsgBox \"请先登记读者!\
rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimistic rs_borrowbook.Fields(8) = rs_borrowbook.Fields(8) + 1 rs_borrowbook.Update rs_borrowbook.Close
MsgBox \"本书借阅成功!\
3.5 关键技术
本系统开发过程中用到的关键技术主要有: 1、Visual Basic与数据库的连接; 2、数据库的建立。
第四章 结论与体会
历经努力,我的图书管理系统终于如期完成了。此次做系统给我最大的感触有两个。第一个就是有了一个利用本专业所学到的知识,来练习,实践的机会。以前我也学了VB语言等编程语言,但那时我做的仅是用一些零零碎碎的知识,简简单单的语句来解决一些小问题而已。此次做系统却给了我一个机会,一个需要将所学到的有关数据库,管理信息系统以及VB编程三方面的所有的知识结合起来,用自己的汗水浇灌,并最终结出甜美果实的机会。
第二个就是增强了自己的自信心。当我拿到系统的最终打印稿时,按耐不住内心的激动。因为在我第一次看到上届同学做的系统时,我有一种诚惶诚恐的感觉,我不知道两,三个月后我会是什么样子。如今,我也可以骄傲的告诉自己,自己也是能做点事情的。
通过进行图书馆管理系统的开发,进一步明确了研制一个管理信息系统的方法和思路,将系统开发的各阶段的基本活动贯穿起来,使我更加形象、具体的了解了管理信息系统。系统开发的过程是一个巩固以前所学的计算机软件开发知识,掌握新技能的过程。我从这一阶段工作中收益非浅,通过前段时间的毕业设计,我能够融会贯通这几年所学的专业基础知识和专业理论知识,对当前计算机软、硬件技术的发展有了进一步地了解和认识,培养我们综合运用专业知识分析问题、解决问题的能力及运用工具软件的能力。不仅弄清了以前对系统开发的一些模糊的认识,而且提高了软件开发的水平,培养了严谨的工作作风,为今后在工作岗位上用好管好计算机打下了坚实的基础。
在做系统的过程中,我遇到的最大的困难是调程序方面的。在运行程序的过程中经常会出现程序自行中断,需要进行调试的信息。这些信息使得我不得不反复看书,琢磨程序。在一遍一遍的调试之下,程序终于被调通了。那时,我终于可以上上的舒一口气了。
我的系统规模比较小同时由于我的时间和能力等多方面的因素影响,我们的系统也存在一定的缺陷。比如系统的界面不够美观,有的功能不够完善等。对此还请老师给与批评指教,使我能过了解到我系统中所存在的缺陷与不足。
因篇幅问题不能全部显示,请点此查看更多更全内容