(精品论文)基于delphi8.0和accses2000图书管理系统(毕业论文)_第1页
(精品论文)基于delphi8.0和accses2000图书管理系统(毕业论文)_第2页
(精品论文)基于delphi8.0和accses2000图书管理系统(毕业论文)_第3页
(精品论文)基于delphi8.0和accses2000图书管理系统(毕业论文)_第4页
(精品论文)基于delphi8.0和accses2000图书管理系统(毕业论文)_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题题 目:目: 图书管理系统图书管理系统 院院 系:系: 信电工程学院信电工程学院 专专 业:业: 计算机科学与技术计算机科学与技术 姓姓 名:名: 指导教师:指导教师: 信电工程学院 年级 姓 名 题目 图书管理系统 指导教师 评 语 指导教师 (签章) 评 阅 人 评 语 评 阅 人 (签章) 成 绩 答辩委员会主任 (签章) 年 月 日 毕毕 业业 论论 文文 任任 务务 书书 班 级 学生姓名 学 号 发题日期: 完成日期:题题 目目 图书管理系 统 1.1. 课题主要研究内容和预期成果课题主要研究内容和预期成果: 本系统是针对一个虚拟的大中专院校图书馆的图书管理开发的。希望设计一个 图书管理系统,管理读者的登记、图书的购入、借出、归还以及注销等。管理人员 还可以查询某位读者、某本图书的借阅情况,对当前借阅情况给出一些统计和表格 说明,以全面掌握图书的流通情况。系统包含读者登记、购入新书、读者还书、图 书注销等功能。此外,根据需要,对系统做相应的 修改后,系统也可用于普通图 书馆的图书管理。 读者登记时要为读者编制读者卡片,包括读者的具体信息(如读者编号、姓名、 学院、专业、年级等),写入读者文件中。购入新书时要为该书编制图书卡片,包 括分类目录号、流水号(唯一)、书名、作者、内容摘要、价格和购书日期等信息, 写入图书文件中。读者借书时,先检查该 读者是否为有效的读者,若无效则拒绝 借书,然后检查该读者所借图书是否超过最大限制数(三本),若超过则拒绝借书, 再检查有尚未归还的过期图书,若有则拒 绝借书。然后查找要借的图书是否还有, 如果有则办理借出手续,登记图书分类号、读者号和借阅日期等。 读者还书时,根据书号,从借书文件中读出有关记录,标明还书日期。 系统还应提供了图书清理的功能,对无价值的和过时的图书可以进行注销。 查询要求分为查询某位读者、某种图书和全局图书三种情况。 2.2. 技术方案:技术方案: 本次毕业设计对图书管理系统应用软件的开发,我们将采用 Windows2000,Delphi8.0 和 Accses2000 环境数据库系统作为软件设计和开发平台。 3.3. 软件编写:软件编写: (1)开发环境:所选择的操作系统平台(WINDOWS2000)、开发工具 (Delphi8.0)和 Accses2000 及硬件环境。(2)功能模块的编程实现 4.4. 论文各部分内容及时间分配:(共论文各部分内容及时间分配:(共 周)周) 1、完成开题报告提交;( 2 周) 2、完成用户需求的确认,围绕课题收集有关的资料,查阅有关的文献及技术 参数,收集有关的数据,并对用户的实际需求和数据进行可行性分析;( 2 周) 3、完成数据库及数据字典的建立,画出软件系统总流程图,并写出各模块的 分析说明书;( 3 周) 4、完成主程序、系统信息窗口、模块调用窗口、权限验证模块等的程序设计 初稿并进行系统调试;( 2 周) 5、完成毕业设计的定稿(在整个系统的调试中不断修改和完善系统功能,最 终达到设计目标)。( 2 周) 6、评阅其答辩 ( 1 周) 指导教师: 2008 年 月 日 学院审查意见: 审 批 人: 年 月 日 目 录录 摘摘 要要1 1 ABSTRACTABSTRACT2 2 第第 1 1 章章 绪论绪论3 3 1.1 课题背景 3 1.2 开发图书管理系统的意义 4 1.3 系统开发技术介绍 5 1.3.1 数据库技术的应用.5 1.3.2 数据库应用的解决方案.6 1.3.3 数据库应用系统开发简介.6 第二章第二章 系统需求分析系统需求分析8 8 2.1 业务分析 8 2.2 现行系统存在问题的分析及解决方案 .10 第三章第三章 系统总体结构设计系统总体结构设计1111 3.1 系统目标设计 .11 3.2 系统功能分析 .12 3.3 系统各功能模块设计 .12 3.4 数据流图 .13 第四章第四章 数据库设计数据库设计1717 4.1 数据库需求分析 .17 4.2 数据库逻辑结构设计 .18 4.3 软件系统与数据库的关系 .22 4.4 数据库的建立 .23 第五章第五章 图书管理系统详细设计和实现图书管理系统详细设计和实现2626 5.1 结构模块设计 .26 5.2 具体实现 .26 5.2.1 登陆界面与主界面的实现 .26 5.2.2 数据库的访问 .30 5.2.3 更改密码模块实现 .32 5.2.4 图书管理模块的实现34 5.2.5 查询模块实现37 总总 结结4040 致致 谢谢4141 参考文献参考文献4242 附附 录录4343 西南交通大学网络教育毕业设计(论文) 摘摘 要要 图书管理服务促进了信息的传播,利用及再生产的增殖能力,人们 掌握了信息,使之转变为技术,成为作用于社会经济的生产力,促进了 社会经济的发展,这就是信息管理服务的价值体现。图书室的信息服务 已成为 21 世纪的主导发展机制之一。图书管理系统开发的总体目的是在 图书信息管理中实现管理的系统化、自动化,减少工作量,增加效率及 可靠性。 本系统主要实现的功能为图书管理管理读者的登记、图书的购入、 借出、归还以及注销等。管理人员还可以查询某位读者、某本图书的借 阅情况,对当前借阅情况给出一些统计和表格说明,以全面掌握图书的 流通情况。 本文从图书管理系统的意义和发展入手,随后进行了系统需求分析, 接着进行了系统总体结构设计和数据库设计,最后给出系统的详细设计 和实现。 关键字:关键字:信息服务,图书馆,Delphi,Access 西南交通大学网络教育毕业设计(论文) Abstract The development and realization of the information management system in libraries, Information service in libraries promotes the spread, the use and reproduction of information, People get information and turn it into technology,It becomes productivity having effects on social economy and promotes the development of economy. The information service in libraries has become the main developing system in the use century, The aim of the systems development is to realize systematic and automatic management, reduces the amount of work, and improve efficiency and reliability. The function that system realizes mainly is that the book manages readers register , the book buying, lending out, returning and canceling and so on. The handling crew can inquire about some reader , some book borrowing reviewing condition , borrow the condition reviewing condition giving a few out statistics and table explanation , circulating in order to grasping a books all round to present. This thesis begins with the library management system and the significance of the development , followed by a systematic analysis of needs, and then carrys out the overall structure of the system design and database design, given the detailed design and realization. Key Words: Information service,The libraries,Delphi, Access 西南交通大学网络教育毕业设计(论文) 第3页 第 1 章 绪论 1.1 课题背景 图书馆是文献情报中心,是为教学和科研服务的学术性机构。它履行 搜集、加工、存贮和传播知识信息的职能,与各系资料室互为补充,共同 承担为教学和科研提供文献情报资料保障的任务。图书馆的自动化经历了 三个时期:发展初期、发展时期和网络化时期。19 世纪末到 20 世纪 40 年代 是图书馆自动化发展的早期阶段,这一时期的主要特点是利用部分机械装 置替代人力从事部分图书馆工作,减轻人员的劳动强度。自 1946 年首台电 子计算机问世后,就有人开始研究计算机应用于图书馆管理的可能性。 1954 年,美国海军兵器中心图书馆使用 IBM701 型计算机实现了单元词组配 检索,成为最早使用计算机的图书馆。但随着各大管理系统的相继应用, 单独一台计算机处理复杂图书馆业务的弊病日渐明显,于是出现了图书馆 的网络化。美国俄亥俄州立大学图书馆在 1967 年建成了第一个书目联机检 索系统,成为图书馆管理进入网络化时期的标志。网络化使各协作网的成 员降低了文献情报数据处理的费用,同时网络内的情报资源也得到了平衡。 我国图书馆自动化的发展起步较晚,从 70 年代中期开始,经历了如下 几个阶段: 发展初期、单向业务系统阶段和集成系统阶段。自 70 年代,我 国开始研究图书馆的自动化。到 1980 年,我国陆续引进了多种国外文献磁 带数据库,利用这些磁带开展联机检索服务,是我国图书馆自动化的发展 初期。从 80 年代中期开始进入单项业务系统阶段。由于经费充足和技术力 量雄厚,高校图书馆的自动化工作进展最为迅速,但开发的系统多为单业 西南交通大学网络教育毕业设计(论文) 第4页 务系统,并且有一大部分只能处理西文图书与期刊。随着微机价格的下降 和中文系统平台开发成功,图书馆管理也进入了集成系统的开发阶段。进 入 90 年代以来,计算机网络迅速发展,几乎所有的国家都建成了国家级的 教育科研计算机网络,并互相连接成国际性网络。而我国计算机网络也日 渐成熟,数字数据网可满足多媒体通讯和组建高速计算机通信网的需要, 各类专业广域网纷纷建成并投入使用,如教育科研网 CERNET 主干网已经连 通并投入使用。 计算机网络全球性互连,对图书馆系统自动化的影响远远超出人们的 始料,它决定了图书馆自动化发展的方向。目前许多图书馆根据联网技术 要求都对自己的自动化系统进行改造。计算机网络给图书馆自动化发展带 来了更好的前景。 1.21.2开发图书管理系统的意义开发图书管理系统的意义 目前,我国有不少的大型图书馆实现了图书管理的计算机化,与此同 时,在计算机软件市场上不断涌现出一批功能优异的应用于图书馆的自动 化集成软件。 另一方面,现在学校正在应用的系统,界面单调、操作乏味、效率低。 基于这种局面,开发一个应用于 Windows 平台上的、具有先进的图形界面 的中小型图书信息管理系统是我们面临的一项重要课题。 图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含 很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至 尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主 要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借 书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的 西南交通大学网络教育毕业设计(论文) 第5页 人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄 进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且 不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆 有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突 出,这就是管理信息系统的开发的基本环境。 数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆 采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅 信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的 数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比 较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了, 造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。 基于这个问题,我认为有必要建立一个图书管理系统,使图书管理工 作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速 度和准确性,能够及时、准确、有效的查询和修改图书情况。 1.31.3 系统开发技术介绍 1.3.11.3.1 数据库技术的应用数据库技术的应用 数据库技术的应用,也叫数据库应用技术,是应用数据库开发工具进 行数据管理(包括采集、处理、存储、查询、统计、传输、报表)的技术。 在任何应用领域,任何数据管理需求层次,任何档次的机型,都可以采用 数据库技术。实际上,各行各业的信息系统,甚至是国际互联网的信息系 统都是基于数据库技术的。可以说,数据库已成为信息社会的重要基础设 施,在计算机应用领域堪称最有应用价值和市场前景的技术。 西南交通大学网络教育毕业设计(论文) 第6页 数据库技术的具体应用过程,是一个典型的把数据转换成信息的过程。 具体来说,就是围绕各用户单位日常手工操作的业务数据、管理数据,在 数据库管理系统环境下,运用数据处理技术,开发出相应的业务处理及管 理决策系统,并利用系统派生出的高附加值信息,达到提高业务或管理效 率、避免浪费或失误、并辅助领导决策的目的。数据库技术的应用,由于 其派生信息的巨大价值,一般都具有很高的投入产出比,并产生可观的经 济效益和社会效益。 数据库技术可以开发面向业务处理和综合决策的管理信息系统,比如 财务、人事、库存、资料、资产设备、销售、日程、以及会议活动等任何 涉及大量规则数据管理方面的程序。图书资料管理是其中最典型的应用之 一。 1.3.21.3.2 数据库应用的解决方案数据库应用的解决方案 数据库应用的解决方案包括软件工程的基本思想、数据库理论、用户 前端访问界面等三方面的重要内容。 本方案以数据库理论为指导,贯穿软件工程思想,注重用户界面的设 计。方案中的数据流分析对应到软件工程中的需求分析,实体关系图及相 应的用户前端访问界面划分对应到软件工程中的概要设计。 1.3.31.3.3 数据库应用系统开发简介数据库应用系统开发简介 在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对 数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相 当清晰的了解和认识。 数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开 西南交通大学网络教育毕业设计(论文) 第7页 发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设 计。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能 的应用。 西南交通大学网络教育毕业设计(论文) 第8页 第二章 系统需求分析 整个软件生命周期中,开发所占的费用和时间都很小。后期维护工作 一般要占整个软件生命周期的 80% 以上。所以系统分析很重要,一个好的 系统分析可以减少很多后期维护工作。 2.12.1 业务业务分析分析 下面以一所学校的图书馆为例子进行分析,画出图书馆的组织结构图 2.1 如下: 图 2.1 图书馆的组织结构图 该图书馆各个部门负责的主要业务如下: (1)采编组主要负责图书采编工作,包括购置新书、打印编目、增加 数量。 (2)目录厅主要负责读者查询工作,包括可借图书(按图书类别、图 书名称或图书作者查询) ;新书目录(按图书类别、日期查询) 。 馆 长 采 编 组 书 库 阅 览 室 工 具 书 室 目 录 厅 借 阅 室 西南交通大学网络教育毕业设计(论文) 第9页 (3)借阅组主要负责图书流通、查询统计、借阅查询等工作。 (4)阅览室、工具书室主要负责读者阅览工作,包括:阅览各种杂志、 报纸、阅览各种工具书。 下面绘制出图书馆流通业务中借书的流程图: (1)读者在目录厅查阅索引卡; (2)读者写出所借图书的分类号、种次号、交给图书管理员,并出示 本人的借书证; (3)图书管理员根据图书的分类号、种次号到书库找书; (4)将图书交给读者,并由读者填写所借图书的借书卡。 (5)图书管理员把借书卡保存到写有该读者借书证号的口袋里。 得出该图书馆业务流程图 2.2 如下所示: 图 2.2 业务流程图 西南交通大学网络教育毕业设计(论文) 第10页 2.22.2 现行系统存在问题的分析现行系统存在问题的分析及解决方案及解决方案 该图书馆工作大部分还是进行着手工管理,工作起来效率很低,由于 不可避免的人为因素,经常造成数据的遗漏、误报。计算机信息化管理有 着储存信息量大、速度快等许多优点,提供给我们的处理信息及时快捷, 同时也提高了我们工作人员的自身素质。 基于以上的对问题的分析,利用计算机给我们提供信息,及时地调整 学校图书馆图书结构,并且对学生们的借阅过程形成一整套动态的管理就 十分必要了。 图书馆信息系统的建立,需要进行用户的需求调查与分析,以确定系 统目标,提出解决问题的详细方案,这是系统建设的重要环节。 学校图书馆规模相对于商业图书馆小,但要有着完善的图书信息,对 每一册书要有详细的记录信息,功能上对系统的需求是全面的。因此对用 户的需求可分为四个方面:一方面是图书馆工作人员通过计算机来管理各 类图书,分类编号,调整图书结构,增加图书库存,适应学生的需求;二 方面是学生们能通过计算机来查询浏览图书馆中的图书,来确定自己需要 的书籍,为借阅做好准备;三方面是工作人员对学生们的借书证发放;四 方面也是图书馆的核心工作,对图书的借阅管理。 这四个方面形成了学校图书馆一个工作整体,采用计算机自动化信息 处理,可方便快捷地共享信息、交流信息,高效地协同工作。 在软、硬件方面对系统的需求,软件要求易学,界面友好,容易掌握, 可以很简单方便管理信息。硬件的配置要求不能太高,这样可以很好的适 应当前的学校图书馆。在开发方式上对系统的需求,由于学校图书馆是一 种无商业利益的,所以系统设计开发的周期要短,在短时间内完成,减少 开发成本,提高开发效率,方便、简单、实用作为系统开发的指导思想。 西南交通大学网络教育毕业设计(论文) 第11页 第三章 系统总体结构设计 如果要完成一个完整的图书管理系统,需要的相关信息很多。由于种 种条件的限制,同时考虑到开发成本,所以本系统仅实现基本的管理功能。 并不能完全满足上面例子所描述的图书馆,使用前应进行二次开发。 3.13.1 系统目标设计系统目标设计 系统开发的总目标是实现内部图书借阅管理的系统化、规范化和自动 化。 能够对图书进行注册登记,也就是将图书的基本信息(如:书名、作 者、价格等)预先存入数据库中,供以后检索。 能够对借阅人进行注册登记,包括记录借阅人的姓名、地址、电话等 信息。 提供方便的查询方法。如:以书名、作者、出版社、出版时间(确切 的时间、时间段、某一时间之前、某一时间之后)等信息进行图书检索, 并能反映出图书的借阅情况;以借阅人编号对借阅人信息进行检索;以出 版社名称查询出版社联系方式信息。 提供统计分析功能。可以展现出图书类型比例、库存与借出比例。 提供旧书销毁功能,对于淘汰、损坏、丢失的书目可及时对数据库进 行修改。 能够对使用该管理系统的用户进行管理,按照不同的工作职能提供不 同的功能授权。提供较为完善的差错控制与友好的用户界面,尽量避免误 操作。 西南交通大学网络教育毕业设计(论文) 第12页 3.2 系统功能分析系统功能分析 根据以上功能,将图书管理系统的数据分为: 数据输入部分:主要包括图书基本信息的录入、借阅人基本信息的录 入、用户基本信息的录入。 数据输出部分:主要是各种统计查询,包括:根据图书信息(如书名、 作者、出版社等)查阅图书及其借阅信息、统计输出图书类型比例等。 数据处理部分:主要涉及借阅和归还的处理,如一本书借出后,必须 在数据库中将该书标记为已借出,以防出现数据库中有书但图书馆无书的 情况;一本书归还后,同样必须在数据库中将其标记为已经归还,以便再 次借出。 3.33.3 系统各功能模块设计系统各功能模块设计 在系统功能分析的基础上,考虑 Delphi 程序编制的特点,得到如图 3.1 所示的系统功能模块图: 图 3.1 系统功能模块图 图书借阅管理系统 数 据 输 入 子 系 统 数 据 输 出 子 系 统 数 据 管 理 子 系 统 西南交通大学网络教育毕业设计(论文) 第13页 3.43.4 数据流图数据流图 (1) 图书基本信息登记/修改 图 3.2 图书基本信息登记/修改 说明:出版社信息人工录入后,存放在出版社信息库中,便于今后书 籍信息的录入以及出版社信息的查询。分类信息由图书馆进行分类定制, 存放在图书分类信息库中,用于图书的分类管理。登记新书时,当涉及到 出版社和分类的填写时,只需做相应的选择即可,并存放在图书信息库中。 如图 3.2 所示。 (2) 借阅人基本信息登记/修改 图书信息 出版社 信息库 图书分类 信息库 出版社信息分类信息 得到完整的图书信息 图书信息库 西南交通大学网络教育毕业设计(论文) 第14页 图 3.3 图书基本信息登记/修改 说明:录入借阅人基本信息后存放在借阅人信息库中。如图 3.3 所示。 (3) 图书查询 图 3.4 图书查询 说明:输入查询条件后,检索图书信息库,并反应出查询结果。如图 3.4 所示。 (4) 图书统计 借阅人基本信息 借阅人信息库 查询条件 图书信息库 信息查询 图书查询结果 西南交通大学网络教育毕业设计(论文) 第15页 图 3.5 图书统计 说明:根据选择的统计条件,检索图书分类信息库或图书信息库,并反 应出统计结果。如图 3.5 所示。 (5)图书借阅 借阅人编号 借阅人 信息库 借阅人信息认证 图书 信息库 图书借出处理 图书编号 图书信息认证 在借信息库 图书在借 状态修改 统计 条件 图书分类 信息库 信息统计 图书统 计结果 图书信息库 图 3.6 图书借阅 西南交通大学网络教育毕业设计(论文) 第16页 说明:输入借阅人编号,通过检索借阅人信息库,核实借阅人身份。 输入图书编号,通过检索图书信息库,核实图书信息。进行图书借出处 理后,在图书借阅库中进行登记,并将借出图书的在借标志设为“是” 。 如图 3.6 所示。 (5) 图书归还 图 3.7 图书归还 说明:输入图书编号,检索在借信息库,反应出图输借阅情况。进行归还操作后, 修改在借信息库中相关条目,同时在图书信息库中修改相关图书在借标志为“否” 。 如图 3.7 所示。 在借图书编号 图书 信息库 借阅人 信息库 在借 信息库 图书归还处理 图书在借 状态修改 在借信息 库修改 西南交通大学网络教育毕业设计(论文) 第17页 第四章 数据库设计 数据库的设计是 MIS 系统的核心部分,设计数据库,首先要进行需求 分析,然后进行数据库的概念结构设计、逻辑结构设计、数据库结构实现 等步骤。 4.14.1 数据库需求分析数据库需求分析 根据以上的需求分析和数据组织,开始设计数据结构,即根据需求勾 画出实体/关系图(E/R) 。在概念上,E/R 图代表的是系统需要的数据及其 这些数据之间的关系。 电话 姓名 编号 借阅人(Member) 借阅、登 记 图书基本信息(Book) 编号 作者 出版社 名称 图 4.1 实体/关系图 西南交通大学网络教育毕业设计(论文) 第18页 从图4.1中可以看出,在这个系统中实际存在的实体:图书和借阅人, 其中借阅人和图书是多对多关系,针对本系统,通过对图书借阅管理的内 容和数据流程分析,设计数据项和数据结构如下: 图书基本信息,其数据项有图书编号、图书名称、作者、出版社等。 借阅人基本信息,其数据项有借阅人编号借阅人姓名、电话等。 图书借阅登记,其数据项有借阅序号、借阅图书编号、借阅人编号等。 为了实现图书信息录入的方便性与规范性以及相关的统计功能,还应 增加出版社信息与图书分类信息: 出版社信息,其数据项有出版社编号、出版社名称、地址、电话、传 真等。 图书分类信息,其数据项有分类编号、分类名称、同一类型图书数目。 同时针对于本系统的多用户使用特点,增加用户信息表: 4.24.2 数据库逻辑结构设计数据库逻辑结构设计 数据库设计有几个范式,一般我们要做到的是第三范式,即数据表中 没有冗余字段以及同一个表中的字段没有函数依赖关系,冗余字段即在一 个表中已经保存过的信息,在另一个表中就不应该存在,如果需要的话, 可以通过表间的关联来得到,函数依赖性就是一个表中的字段间不应该有 计算关系,如一个表中有单价字段、数量字段,就不应该有一个总金额字 段。如果程序运行过程中需要总金额,可以实时计算。不过在一些较常用 的表中,我们可以适当地保留冗余字段,这样,在程序运行过程中可以减 少由于表间互相关联而使用速度降低等问题。这就是所谓的第四范式。数 据表设计时,最好不要使用用户输入的信息作为主键,每一个数据表自己 西南交通大学网络教育毕业设计(论文) 第19页 定义一个主键,添加信息是由程序自动添加,这样就可以减少数据更新时 产生的错误。表与表相关联的外键最好是由程序自动生成的主键,这样数 据库就比较规范了。 另外,数据表设计时一般都应该有一些标志字段,标志字段可以定义 成 CHAR(1)或 BIT 型。建议实际应用中定义成 CHAR(1)字段可以存储多种 可能的状态,在最初设计时,可能我们没有考虑到的一些情况,在程序后 来的开发中,可以通过设计标志字段为不同的 值来解决,这样就避免了修 改数据库结构。 数据库初期设计时一定要谨慎,把所有可能的情况都考虑进去,即使 当时没有用到,也要将它留在数据库中作为备用字段以便将来扩充。 程序一旦开始编码,就应该尽量避免再修改数据库。因为如果数据库 结构一旦改变,所有与修改的数据表相关的业务都有可能受到影响,而某 些影响还很难看到,这样就容易形成一个恶性循环。错误越改越多,越改 越乱,最终导致程序的失败。PB 的数据窗口与其他语言的数据控件不一样, 它的很多东西是预编译的。即使你一个模块已经调试无误,但只要数据库 结构改动。相应的模块就一定要重新修改,否则一定会出问题。 图书借阅管理系统数据库中各个表的设计结果如下面几个表格所示。 每个表格表示为数据库中的一个表。 用户基本信息表 people,记录用户的基本情况,memberid 设为主键、 索引。如表 4.1 所示。 表 4.1 用户基本信息表 people 列名数据类型长度可否为空注释 MemberidChar10Not Null 借阅人编号 MembernameChar10Null 借阅人姓名 idvarchar20Null 身份证号 西南交通大学网络教育毕业设计(论文) 第20页 AddChar50Null 联系地址 PhoneChar20Null 联系电话 MobileChar20Null 移动电话 用户登陆和权限数据表,记录系统用户的用户名、密码与权限,uid 设 为主键。如表 4.2 所示。 表 4.2 用户登陆和权限数据表 列名数据类型长度可否为空注释 UidChar4Not Null 用户编号 nameChar10Null 用户名 passwordChar10Not Null 密码 levelchar1Not Null 权限 图书基本信息表,记录图书基本信息,bookid 设为主键、索引。如表 4.3 所示。 表 4.3 图书基本信息表 列名数据类型长度可否为空注释 BookidChar10Not null 图书编号 IsbnChar30Null 图书 ISBN ClassnameChar20Null 图书类型 TitleChar40Null 图书名称 publishdatedate-Null 出版日期 authorChar20Null 作者 pubChar30Null 出版社 pricenumeric19.4Null 价格 diskChar1Null 附带光盘 keywordChar30Null 关键词 西南交通大学网络教育毕业设计(论文) 第21页 numberint-Null 存放代码 Abstractvarchar100Null 摘要 此外还有图书分类数据表,如表 4.4 所示: 表 4.4 图书分类数据表 列名数据类型长度可否为空注释 BclassNoChar10Not Null 图书类别编号 ParentclassChar10Null 父类 BclassnameChar10Not Null 类名 (1)规划有效的索引 a.在组合表的列中创建索引,包括主关键字和外部关键字所在的列。 b.在列或类组合中创建唯一的索引能增强唯一性。 c.浏览索引并卸载不使用的索引。索引需要一定硬盘空间和时间来维护。 具有较高数据插入操作频率的数据库最好不要索引。有较高读操作频率的 数据库应该有更多的索引。 d.避免在簇索引中包括不必要的列。在可能的情况下,使用较小的数据 类型,例如用 varchar 替代 char。 e.考虑使用簇索引来支持排序和范围化查询。在为数据检索优化表时, 簇索引必须支持数据的分组索引。为簇关键字选择列或列组,簇关键字以 经常需要的顺序排序数据或以必须被一起访问的记录而分组记录。 f.创建支持一般查询的查找参数索引。具有高选择性的列是索引的最好 候选列。具有高密度的列是索引糟糕的候选列。 (2)使用约束实现数据的完整性 PRIMARY KEY 约束在表中定义了主关键字,它是行唯一的标识符, 它可以强制实体完整性。在使用 PRIMARY KEY 约束时考虑以下事实: 西南交通大学网络教育毕业设计(论文) 第22页 每个表只能有一个 PRIMARY KEY 约束。 键入的值必须是唯一的。 不允许有空值。 PRIMARY KEY 约束在指定的列创建唯一的索引,可以指定簇索引和 非簇索引(如果 非簇索引先前并不存在,簇索引是默认的) 。 UNIQUE 约束指定,在一列中的两行不能有相同的值。该约束使用唯 一的索引来强制实体的完整性。在已有一个主关键字时 UNIQUE 约束很有 用,例如雇员号,但是必须保证其他标识符(例如,雇员驾驶证号)也是 唯一的。在使用 UNIQUE 约束时,考虑以下事实; A.允许有空值。 B.在一个表中可以设置多个 UNIQUE 约束。 C.可以将 UNIQUE 约束运用于具有唯一值的单列或多列,但不能用于 表的主关键字。 D.通过在指定的列或列组中创建唯一的索引,可以使 UNIQUE 索引得 到强制 4.34.3 软件系统与数据库的关系软件系统与数据库的关系 本系统采用单层数据库体系,软件拥护或系统管理员通过前台界面进 行相应操作,前台界面和后台数据库引擎进行调用以及返回相应结果。 该系统与应用环境的关系如上图 4.2 所示: 西南交通大学网络教育毕业设计(论文) 第23页 图 4.2 系统与应用环境关系图 本系统属于管理信息系统(MIS)范畴,他是通过前台界面调用后台数 据库操作实现的。 4.44.4 数据库的建立数据库的建立 一、数据库 首先进入 Access2000 主界面。新建一个数据库文件(文件名为 HY.mdb)。 打开此数据库文件,在该文件下建立所需的全部数据表。 二、系统数据模块的建立 由于本系统数据库表单较多,为避免向每个窗体中添加数据访问组件 来访问数据库中的数据,我利用了 Delphi 中提供的数据模块窗体。在其 操作员 用户信息 图书管理系统 ADO 数据查询 西南交通大学网络教育毕业设计(论文) 第24页 他窗体需要访问数据时,只需在其单元文件中引用数据模块的单元文件就 可以直接访问到数据集中的数据了。 三、数据库详细表一览 系统所需的数据按照如下思路设计,有用户基本信息表、用户登陆和 权限数据表、图书信息数据表和图书分类信息表等多个表。主要表单如下: (1)用户基本信息表 pepole,如图 4.3 所示: 图 4.3 用户基本信息表 pepole 实现图 (2)用户登陆和权限数据表 users,如图 4.4 所示: 西南交通大学网络教育毕业设计(论文) 第25页 图 4.4 用户登陆和权限数据表 users 实现图 (3)图书基本信息表 books,如图 4.5 所示: 图 4.5 图书基本信息表 books 实现图 (4)图书分类数据表 booklass,如图 4.6 所示: 西南交通大学网络教育毕业设计(论文) 第26页 图 4.6 图书分类数据表 bookclass 实现图 西南交通大学网络教育毕业设计(论文) 第27页 第五章第五章 图书管理系统详细设计图书管理系统详细设计和实现和实现 5.15.1 结构模块设计结构模块设计 从软件结构观点来看,结构模块设计不仅包括一个系统的基本组建, 整体连接,全局控制结构,通信的协议,同步化机智,数据存储方法,还 包括:设计元件的功能,构成,物理分布,可扩展性与性能,系统变革的 尺度等。我们的这个图书管理系统,是属于单层数据库。也就是桌面型数 据库系统,它是指数据库应用程序与数据库在同一台计算机上,没有涉及 到计算机网络,也没用到数据库服务器,数据以数据文件的文件形式提供。 它的优点是安全性高,数据存取效率高。 5.25.2 具体具体实现实现 5.2.15.2.1 登陆界面与主界面的登陆界面与主界面的实现实现 用 Delphi 设计界面是完全可视化,编程人员只须简单的把各组件组合, 设置相应属性既可设计出美观的应用程序环境。运行本程序,我们首先进 入的是登陆界面,系统要求用户输入正确的用户名和密码。用户必须输入 正确,才能进入下一级主界面,如果密码输入有误,应用程序会提示错误 信息。用户如果连续三次输入错误,应用程序会强迫使用者退出并终止应 用程序的运行。 登陆界面如图 5-1 所示: 西南交通大学网络教育毕业设计(论文) 第28页 图 5-1 登陆界面图 /登陆验证/ procedure TWinForm1.Button3_Click(sender: System.Object; e: System.EventArgs); begin sqlstr:=select * from users where uname=+chr(39)+textbox1.Text.trim+chr(39); da:=oledbdataadapter.Create(sqlstr,conn); mytab:=datatable.Create(); da.Fill(mytab); /从数据表中提取,密码 if mytab.Rows.Count=1 then begin /比较和验证密码 if mytab.rows.Item01.tostring=textbox2.Text.trim then begin unit1.bootname:=textbox1.text.trim; unit1.bootpass:=textbox2.Text.trim; unit1.quanxian:= strtoint(mytab.rows.Item02.tostring); self.Dispose; end else 西南交通大学网络教育毕业设计(论文) 第29页 begin showmessage(密码错误,请检查您的密码或用户名输入是否 正确!); end; end else begin ShowMessage(对不起,没有此用户!); end; conn.close; end; 在编码时,首先设定了一个私有变量,用于检查密码输入是否正确和 密码输入次数。当用户单击用户名下拉列表框时,编写代码以实现从数据 库中读取用户名信息。 验证用户名与密码的基本思路是从预设的数据库中得到用户的密码, 然后与用户在密码框中输入的相比较,如果输入密码一致的话,就正确向 下执行程序,如果不一致的话要提示用户密码错误,密码输入的密码输入 的记数次数加一,如果连续三次输入错误,提醒用户已经没有进入系统的 权限了,应用程序将自动退出。如果用户的用户名和密码输入正确,则允 许此用户登陆,并记录当前登陆用户的登陆时间和登陆日期,同时初始化 主窗体,根据用户身份决定那些功能对该用户可用,那些功能对用户不可 用。 主窗体如图 5-2 所示: 西南交通大学网络教育毕业设计(论文) 第30页 图 5-2 主窗体 /主窗体显示 -先显示 flash,后登陆界面,最后显示主窗体 procedure TWinForm.TWinForm_Load(sender: System.Object; e: System.EventArgs); var flash:TWinForm2; login:TWinForm1; begin flash:=twinform2.Create; flash.Show; /flash 窗体显示 self.Opacity:=0.55; while flash.timer1.enabled=true do 西南交通大学网络教育毕业设计(论文) 第31页 begin application.DoEvents; end; login:=twinform1.create; flash.Dispose; login.ShowDialog; /登陆对话框显示 StatusBar2.Panels1.Text:= 当前登陆用户:+unit1.bootname; if unit1.quanxian=1 then StatusBarPanel4.Text:=当前用户类型:超级管理员; if unit1.quanxian=2 then StatusBarPanel4.Text:=当前用户类型:一般管理员; if unit1.quanxian=3 then StatusBarPanel4.Text:=当前用户类型:普通用户; self.Opacity:=1; end; end. 5.2.25.2.2 数据库的数据库的访问访问 定义一个共有变量来记录当前用户的基本信息,这个公有变量将贯穿 整个程序编码的始终,被整个程序使用。另外由于我们想让新窗体自动停 靠在主窗体一个 Panel 面板上,因此要设置其相应属性,并编码检验当新的 Form。生成时,Panel 上是否已经有一个停靠其上的 Form。因为一个时间 内只能有一个 Form 停靠在 Panel 上。而且在后面的各窗体建立时都需相应 的属性设置,为此我建立了一个公有窗体,其他窗体在建立时只需继承其 西南交通大学网络教育毕业设计(论文) 第32页 属性,而无须重复设定锁定属性,程序代码见如下。 /数据访问模块窗体/ unit pulicUnit; interface uses system.data,system.data.oledb,system.Windows.Forms; var sqlstr:string; conn:oledbconnection; function conndatabase:boolean; procedure openSQL(dt:datatable;sqlstr:string); procedure execsql(sqlstr:string); implementation /建立数据库连接函数 function conndatabase:boolean; begin conn:=oledbconnection.create; conn.connectionstring:=provider=microsoft.jet.oledb.4.0;data source=+application.startuppath+lc.mdb; try conn.open; result:=true; except result:=false; end; end; / CNN 连接中执行 SQL 语句,并填充记录集 dt procedure openSQL(dt:datatable;sqlstr:string); da:oledbdataadapter; var begin dt.clear; da:=oledbdataadapter.create(sqlstr,conn); da.fill(dt); da.free; 西南交通大学网络教育毕业设计(论文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论