Delphi+SQL 图书馆管理系统的设计与实现.docx
《Delphi+SQL 图书馆管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《Delphi+SQL 图书馆管理系统的设计与实现.docx(19页珍藏版)》请在冰豆网上搜索。
Delphi+SQL图书馆管理系统的设计与实现
大庆师范学院
本科生毕业论文
图书馆管理系统的设计与实现
系别、专业计算机科学与信息技术
研究方向数据库应用
学生姓名张宏阳
学号************
指导教师姓名蔡朝晖
指导教师职称副教授
2007年6月12日
摘 要
图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
结合图书馆的要求,对MS SQL Server2000数据库管理系统、SQL语言原理、Delphi应用程序设计,Delphi数据库技术进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。
系统运行结果证明,本文所设计的图书管理系统可以满足借阅者、图书馆工作人员和高级管理员三方面的需要。
关键词:
数据库;MS SQL Server;Delphi6;图书管理
Abstract
Thebooksmanagementsystemmanagementsystemisthetypicalinformationmanagementsystem(MIS),itsdevelopmentmainlyincludesthebackstagedatabasetheestablishmentandthemaintenanceaswellsfrontendtheapplicationproceduredevelopmenttwoaspects.Establishesthedatauniformityandtheintegrityregardingformerrequestisstrong,thedatasecuritygoodstorehouse.Butrequeststheapplicationprocedurefunctionregardinglattercompletely,iseasytousleandsoonthecharacteristic.
Thereforemyselfunifyenterthetypelibrarytherequest,toMSSQLServer2000databasemanagementsystem,theSQLlanguageprinciple,theDelphiapplicationprogramming,theDelphidatabanktechnologyhascarriedonamorethoroughstudyandtheapplication,mainlycompletestothebooksmanagementsystemmanagementsystemdemandanalysis,thefunctionmoduledivision,thedatabasepatternanalysis,andfromthishasdesignedthedatabasestructureandtheapplicationprocedure.Thesystemmovementresultproved,thisarticledesignsthebooksmanagementsystemmanagementsystemmaysatisfiedborrowing,thelibrarystaffandtheseniormanagerthreeaspectsneed.
Keyword:
Database;MSSQLServer;Delphi6;Booksmanagemen
第一章系统概述[1]-[5]
1.1图书管理系统简介
图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,对于图书借阅情况的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。
数据信息处理工作量大,容易出错。
总的来说,缺乏系统、规范的信息管理手段。
图书管理系统是集计算机多种技术为一体的信息系统工程,它可以使学校图书
出入库、借还、查阅便捷、准确、及时,可以使管理更加科学化、合理化、制度化。
图书管理系统涉及系统信息、读者信息、图书信息、借阅信息等多种数据管理。
从管理角度出发可将图书管理分为:
图书管理、借阅管理、系统管理和读者管理。
主要功能是完成了对大量图书信息的系统化管理。
包括新图书信息的录入,对数据的更新、删除、修改、综合查询等。
所以有必要建立一个图书管理系统,使图书管理工作规范化、系统化、程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。
信息系统的主要任务是通过大量的数据获得管理所需要的信息,这就必须存储和管理大量的数据。
因此建立一个良好的数据组织结构和数据库,使整个系统都可以迅速、方便、准确地调用和管理所需的数据,是衡量信息系统开发工作好坏的主要指标之一。
1.2数据库理论基础
一个成功的信息管理系统,是建立在许多条件之上的,而数据库是其中一个非常重要的条件和关键技术。
信息管理系统所涉及的数据库设计分四个步骤:
●数据库需求分析
●概念设计
●逻辑设计
●物理设计与加载测试
(1)数据库需求分析的任务是将业务管理单证流化为数据流,划分主题之间的边界,绘制出DFD图,并完成相应的数据字典。
(2)概念设计的任务是从DFD出发,绘制出本主题的实体-关系图,并列出各个实体与关系的纲要表。
(3)逻辑设计的任务是从E-R图与对应的纲要表出发,确定各个实体及关系的表名属性。
(4)物理设计的任务是确定所有属性的类型、宽度与取值范围,设计出基本表的主键,将所有的表名与字段名英文化(现在很多软件能支持中文字段,如MS SQL Server,我就是用的中文字段名),实现物理建库,完成数据库物理设计字典。
加载测试工作贯穿于程序测试工作的全过程,整个录入、修改、查询、处理工作均可视为对数据库的加载测试工作。
1.3拟采用的研究方法及步骤
1.查阅有关资料书籍,了解该系统组成的结构,并掌握其基本程序的代码及关键原理;
2.了解图书管理系统的过程和理论,特别是查询方面的理论;
3.确定合理的研究目标,从而做到有的放矢;
4.制定合理的设计计划,对整个工作进行科学安排,确定工作要点预测研究过程中将会出现的问题,做到心中有数;
5.选择合理的开发工具,将现有的比较成熟的软件或者思想应用于本系统的开发过程中,以提高开发效率,加快开发进度;
6.参考有关图书管理系统设计与实现的资料以及相关参考文献,把其中有关知识应用于该系统中。
第二章应用系统开发
2.1开发环境
前台开发环境:
Delphi 6.0
后台数据库支持:
MS SQL Server
2.2开发工具
2.2.1Delphi6.0功能简介[6]-[9]
Delphi类可以粗略地分成两部分:
一部分是组件类;另一部分是功能类数据库应用程序必须和用户界面(可以是图形界面,也可以是命令接口)元素相结合,因而用Delphi 6.0开发数据库应用程序就隐含着界面开发。
组件在Delphi程序的开发中是最显眼的角色。
在Delphi的类库中占有最大的份额。
图形组件与窗口组件并列,是另一大类组件。
使用图形组件的最大好处在于节省资源。
非可视组件是与可视组件相并列的另一类组件,非可视组件在程序运行中是不可见的。
最后要说明一下,常说的控件实际上是一种组件。
2.2.2MS SQL Server语言功能简述[10]-[12]
SQL Server 是一个后台数据库管理系统,同时也 是一个关系数据库管理系统,具有使用方便、可伸缩性好与相关软件集成程度高等优点。
SQL Server 企业管理器是 SQL Server 的主要管理工具,它提供了一个遵从 MMC 标准的用户界面,使用户可以:
· 定义 SQL Server 实例组;
· 将个别服务器注册到组中;
· 为每个已注册的服务器配置所有 SQL Server 选项;
· 在每个已注册的服务器中创建并管理所有 SQL Server 数据库、对象、登录、用户
· 在每个已注册的服务器上定义并执行所有 SQL Server 管理任务;
· 通过唤醒调用 SQL 查询分析器,交互地设计并测试 SQL 语句、批处理和脚本;
· 唤醒调用为 SQL Server 定义的各种向导。
2.3开发进度安排
第一阶段------系统分析,进行需求定义,定义系统概况
第二阶段------数据库分析与设计
第三阶段------软件体系结构设计
第四阶段------软件编码,系统测试
2.4开发要求
1.熟练软件开发流程,可通过在借鉴已成型的软件的基础上增加自己的设计思想
2.结合软件工程及相关的现代信息开发工具完成预期目标
3.可正常运行,完成对图书信息管理的基本操作
第三章图书管理系统分析与设计
3.1 应用需求分析
图书管理系统需要满足来自三方面的需求,分别是图书借阅者、图书馆工作人员和图书馆管理人员:
图3-1
图书借阅者:
查询图书馆所存的图书、个人借阅情况及个人信息的修改;
图书馆管理人员:
对图书借阅者、图书进行管理和维护,及系统状态的查看、维护并生成催还图书报表;
图书借阅者:
直接查看图书馆图书情况,进行本人借书情况的查询和维护部分个人信息。
在本系统中由于没有打印机设备供试验,所以预先把报表打印改成报表预览。
系统的基本步骤:
[1]对所有用户开放的图书查询
[2]借阅者查看个人借阅情况信息
[3]维护借阅者个人密码
[4]根据借阅情况对数据库进行操作并生成报表
[5]根据还书情况对数据库进行操作并生成报表
[6]查询及统计各种信息
[7]维护图书信息
[8]维护借阅者信息
[9]处理信息的完整性
3.2系统功能需求分析
功能名称
功能说明
图书管理
新书入库;旧书删除;信息修改等
学生管理
加入学生;删除学生信息;修改
借阅管理
借书;还书
查询报表
图书信息查询;借还记录查询;未还图书查询
表3-1
3.3 系统数据库设计
数据库设计主要是进行数据库的逻辑设计,是面向用户的。
数据库设计时需要分析各个数据之间的关系,按照DBMS提供的功能和描述工具,设计出能满足多种查询要求的数据模型。
数据库设计的步骤是:
(1) 数据库结构定义
(2) 数据表定义
(3) 存储设备和存储空间组织。
(4) 数据使用权限设置
建立关系数据结构涉及三方面内容:
●确定关联的关键指标项并建立关联表;
●确定单一的父系记录结构;
●建立整个数据库的关系结构。
为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。
3.3.1 概念设计
基本表:
[Admin]
字段
类型
长度
约束
用户ID
文本
250
主键
用户密码
文本
250
用户身份
文本
250
表3-2
基本表:
[Book]
字段
类型
长度
约束
图书ID
文本
50
主键
图书名称
文本
150
表3-3
一个借阅者(用户)只能具有一种身份,而一种身份可被多个借阅者所具有;
一本图书只能属于一种图书类别(类别),而一种图书类别可以包含多本图书;一个用户可以借阅多本不同的书,而一本书也可以被多个不同的用户所借阅。
3.3.2逻辑设计
(1)导出初始关系模式:
book
图书编号#,图书名称,图书类别#,作者,出版社
class
图书类别#,类别名
user
借书证号#,姓名,性别,身份编号#,身份证,联系电话,密码
ID
身份编号#,身份描述,最大借阅数
Owner
借书证号#,图书编号#,借书日期
表3-4
(2) 产生子模式
借书子模式(借书证号#,姓名,图书编号#,图书名称,借书日期)
(3) 根据设计中出现的问题,在写系统时加入了两个关系模式:
1. ownertemp:
用于工作人员在处理借书、还书工作时临时存储借书、还书信息,以便打印报表时使用
2. keyer:
用于存储工作人员和图书馆管理员的用户名和密码及权限人员或图书。
第四章 图书管理系统设计与实现
4.1系统窗体模块
4.1.1功能组成
图书管理系统由图书管理模块、学生管理模块、借阅管理模块、查询模块、关于模块、退出模块六大部分组成。
4.1.2界面设计思想
首先考虑标准化,在标准化的基础上进行界面的美工设计。
4.1.3界面设计原则
简单易用、简洁明了、兼容性好、标准、规范。
4.1.4界面设计样式
采用标准Windows界面,自上至下依次为:
标题栏、菜单栏、工作区等。
如下所示:
图4-1
4.1.5常见提示信息样式
提示信息按以下标准进行:
采用标准Windows对话框样式,添加信息图标,后接提示信息文本和相应按钮。
如下图示:
图4-2
4.2 数据模块窗体的设置
在编写数据库应用程序时,经常要遇到这样的情况:
即好多组件、窗体同时访问相同的数据源,如果为每一个组件或者窗体都设置一个数据源,将是十分耗时的工作,而且要保证这些数据源的确是相同的也需花一番功夫。
那么,能不能将这些数据源集中管理,最好是做成一个统一的模块,需要时就将该模块引入而不必直接操作数据源本身呢?
数据模块(DataModule)是解决这个问题最好的答案。
简单说来,数据模块是用来集中管理数据源的一个窗体,该窗体可被需要的地方随时引入。
在开发这个系统时,开始使用了数据模块,但在使用过程中却碰到了一些问题。
并且考虑这个系统使用到的TADOQuery控件比较多,如果使用数据控件可能会带来管理上的麻烦,如弄混各个数据控件的作用,还考虑到使用动态生成ADOQuery可能会更节省资源。
所以系统中,开始做的第三个模块“借阅者个人模块”中还稍微使用了一下数据模块。
但在后面做的两个模块中大多都是用动态生成ADOQuery来实现的。
并且由于SQL语句是动态加入的所以datamodule中的控件也不会多。
所以我选择了这种方式作为数据模块的窗体设置。
4.3启动画面的实现
启动画面是为了给用户一个良好的印像,加深软件的亲和力,没有实际的功能,在Form1窗体中加入了Image和Time组件。
具体代码如下:
PublicSubCheckUser(userIDAsString,passwdAsString)
DimuserDBAsDatabase
DimuserRDAsRecordset
DimdbNameAsString
DimSTRSQLAsString
Screen.MousePointer=11
OnErrorGoToerrEnd
dbName=App.Path
IfRight(dbName,1)<>"、"ThendbName=dbName+"、"
dbName=dbName+"DataBase、WFSSDataBase.mdb"
STRSQL="select[用户身份]from[Admin]where[用户ID]="""&userID&"""and[用户密码]="""&passwd&""""
'打开数据库
SetuserDB=DBEngine.Workspaces(0).OpenDatabase(dbName,False,True)
'检索用户,验证密码
SetuserRD=userDB.OpenRecordset(STRSQL,dbOpenSnapshot)
IfuserRD.RecordCount>0Then
'关闭数据库
userRD.Close
SetuserRD=Nothing
userDB.Close
SetuserDB=Nothing
'进入用户环境
LoadFrmMain
FrmMain.Show
UnloadFrmLogIn
logOK=True
userName=userID
Screen.MousePointer=vbDefault
Else
'关闭数据库
4.4用户登录窗体的实现
本模块是用户正确进入系统而显示的界面环境其中用户名为admin,密码也是admin。
登陆成功会显示如下所示界面:
图4-3
本窗体是为了使查询者按照用户名和密码进行登录,并且根据用户名检查Keyer表中的“权限”字段:
userRD.Close
SetuserRD=Nothing
userDB.Close
SetuserDB=Nothing
logOK=False
Screen.MousePointer=vbDefault
Screen.MousePointer=vbDefault
MsgBoxErr.Description,vbOKOnly+vbExclamation,"登陆错误"
logOK=False
Err.Clear
'关闭数据库
userRD.Close
SetuserRD=Nothing
userDB.Close
SetuserDB=Nothing
ExitSub
EndSub
4.5借阅管理模块
借阅者管理窗体的功能主要是图书的借阅、归还、个人借阅情况查看及个人部分信息的修改。
其中包括借书、还书两项子菜单。
借阅者可以按照图书ID或者学生ID进行图书借阅和归还。
界面如下:
图4-4
4.5.1借阅者登录功能的实现
这个功能的实现是从User表中查到到借阅证号与密码,看与用户输入的是否一致。
如果一致,那么用户就可查看自已的借阅情况并维护自己的部分信息。
4.5.2进行图书借阅功能实现
在这个功能中,用户输入借阅者的学生ID或者所要借阅的图书的ID,然后点击借阅按钮就可进行图书借阅。
当借阅者正确登录到系统后,此功能将被激活,使用户能查看到自身的借阅情况。
在此系统中,信息的显示一般用ListView来实现,只在较少的情况下用到了DBgrid,因为我觉得ListView更好实现,并能使信息数据对用户的完全分离。
在这里跟据借阅者的不同要求实现借阅情况的查询,有检查所有的借阅情况、某本书的借阅情况等。
4.5.3进行图书归还功能实现
在此功能中,用户根据借阅者的ID和归还的图书编号进行图书的归还工作。
并且根据现实中可能会出现的只知图书名不知图书编号的归还情况,所以加入了按书籍名称进行归还的功能。
4.6图书查询功能的实现
在本系统中,任何人都有权限使用查询功能,不做任何限制。
由于实现的查询功能有多种:
如按图书ID、学生ID、班级或者按院系进行查询。
其中包括图书信息查询、借/还记录查询、未还图书查询三个模块。
图书查询功能是本系统设计的基本思想,也是本系统的核心。
如下图所示,进行图书查询的具体操作:
图4-5
第五章软件测试分析报告
5.1测试范围与主要内容
测试范围
主要内容
简要说明
系统登陆验证
验证用户身份,进行权限控制
功能性测试
信息检索功能测试
测试数据库检索代码的健壮性
功能性测试
统计分析测试
测试按时段统计的准确性
功能性测试
数据完整性测试
测试登记失败时的数据完整性控制
功能性测试
核心代码复检
检验核心代码的质量
逻辑检错性测试
表5-1
5.2测试方法
多次运行调试,查找错误,并做记录。
5.3测试报告
测试项目
测试目的
测试数据
测试结果
改进意见
修改状态
书目检索
信息检索功能的准确性和健壮性
SQL语法错误
暂无
尚未修正
登陆验证
系统安全和权限控制
用户名:
admin
密码:
admin
系统响应正常,权限控制正常
统计分析
按时段统计功能的实现
响应正常
核心代码复检
检验核心代码的质量与效率
编码风格良好,内部注释不足。
表5-2
5.4改进措施
本系统缺少多用户访问的权限设置、打印功能设置等操作。
这部分也是以后系统完善的主要方向。
希望在以后能逐步完善,来满足更高的图书管理的需要。
修正建议
说明、意义
措施
添加报表打印功能
增加新书入库、统计等报表打印功能可以增加系统实用性
下一版本实施
进行联机版的开发
分布式系统是软件发展的方向
下一版本实施
添加扫描仪输入支持
方便图书管理
下一版本实施
表5-3
第六章设计总结
通过详细的调研和查阅大量的相关资料,在总结其他系统的基础上结合本学校的特点而创作完成了设计方案。
本系统主要采用了DELPHI6.0和SQL相结合的方法来进行设计,鉴于DELPHI在设计上的优势地位及对数据库的良好支持,因此选择它来制作系统的主页面,SQL作为系统后台数据库。
设计中遇到很多待以解决的问题,都在指导教师的帮助下顺利解决。
从设计开始到结束大概用时两个月,实现了基本的图书管理操作:
图书借阅,查询等。
同时也满足了来自图书借阅者、图书馆工作人员和图书馆管理人员三方面的需求。
参考文献
[1]刘献军.信息资源开发与办公自动化.电子计算机与外部设备.2000:
24~26.
[2]胡艳萍.宋伟.我国办公自动化系统发展现状.科技信息.1998:
10~11.
[3]谭慧蓉.办公自动化的发展趋势及策略.太原科技.2003:
15.
[4]王小铭.管理信息系统及其开发技术.电子工业出版社.2003:
24~37.
[5]许晶华.管理信息系统.华南理上大学出版社.2003:
23~32.
[6]刘海涛.《Delphi程序设计基础》.清华大学出版社.北京.2001.
[7]韩伟峰.《Delphi6程序设计教程》.清华大学出版社.北京.2002.
[8]张春林.《Delphi6程序设计导学》.清华大学出版社.北京.2002.
[9]刘瑞新.汪远征,李凤化.《Delphi程序设计教程》.机械工业出版社.北京.2002.
[10]梁方明.SQLServer2000数据库编程.北京希一望电子出版社.2002:
36~42.
[11]郑阿奇.刘启芬.顾韵华.SQLSever实用教程.电子土业出版社.2002:
320~340.
[12]彭东.SQLServer2000应用开发技术指南.清华大学出版社.2001:
14~25.
致 谢
四年的本科生学习和生活即将结束了,这段学习和生活的经历对我来说是及其宝贵和终生难忘的。
在这四年中,我不仅学到很多专业课方面的知识,锻炼了自己的生活能力,更重要的是明白了很多人生的道理。
此时此刻,我感慨万千,想说出心中的