西安理工大学图书借阅管理数据库设计及开发
- 格式:doc
- 大小:1.13 MB
- 文档页数:53
《SQL Server数据库课程设计》题目:图书借阅管理系统的设计与实现院、系:计算机信息与技术系学科专业:软件工程学号: B10060XXX ___学生姓名: XXXX指导教师:XX2012年06月目录引言1第一章需求分析1一、功能需求1二、数据需求2第二章概要设计2一、系统设计目标2二、系统功能设计2三、开发工具的选择3第三章详细设计5一。
实体E—R图5二. 表的设计6三.界面设计7第四章软件实现21一、登录实现21二、图书管理21三、图书借阅21四、图书查询21五、图书增加21第五章软件测试21一、测试方案21二、测试项目21三、测试项目及测试内容21四、测试用例21五、评价22第六章课程设计总结24参考文献25引言随着社会的发展,人们对知识的需求也不断地增长。
在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就自然而然地在人们的生活中占据了一定的位置,如何科学地管理图书馆不但关系到读者求知的方便程度,也关系到图书馆的发展,因此,开发一套完善的图书馆管理系统就势在必行.图书馆在正常运营中总是面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息。
本软件针对图书馆的业务范围及工作特点,设计了图书查询、新增图书、图书借阅书以及图书归还等5个子系统,这5个子系统包括了图书馆的主要业务,可以全面实现对图书馆采购、编目、检索、统计和流通等业务的计算机管理,使图书馆管理水平和业务水平跃上一个新的台阶。
应用本系统可以在计算机上灵活、方便地管理图书,从而大大的提高了处理速率,使管理更加现代化。
本系统是根据实际情况和具体内容,按照一定的要求,科学、合理的进行系统分析、设计,具体包括画面设计、数据输入、查询、新增、删除等设计。
从而使本系统完全能满足经济性、灵活性、系统性及可靠性的要求。
本系统的实现的主要功能有:图书馆图书的查询、新书的入库、图书的借阅和归还等等功能,是一个基本可以满足借阅者和图书馆管理人员的需要的数据库。
《软件工程》课程设计报告书项目名称:图书借阅管理系统指导老师:学生姓名:专业:班级:日期:信息科学与工程系目录一、项目计划 (1)(一)项目开发背景及内容 (1)(二)开发环境 (1)(三)进度安排 (1)二、结构化分析设计 (2)(一)数据流图 (2)(二)数据字典 (3)(三)加工说明(可用结构化语言描述、判定表、判定树) (8)(四)结构图 (9)(五)流程图 (9)三、面向对象分析设计 (11)(一)用例图 (11)(二)对象行为模型 (12)(三)系统包图 (13)(四)类图 (14)(五)配置图 (15)四、系统实现 (15)(一)程序代码 (15)(二)功能演示(界面) (25)五、测试 (27)六、软件发布 (28)七、参考文献 (28)八、总结体会....................................... 错误!未定义书签。
一、项目计划(一)项目开发背景及内容随着计算机技术的不断发展,计算机作为知识经济时代的产物,已被广泛应用于社会各个行业和领域。
目前,我国的科技水平高速发展,计算机作为今天使用最广的现代化工具已深入到各个领域,并且正在成为未来社会——信息社会的重要支柱。
在这样的大背景下,现代图书馆的管理方式,资源建设等方面都发生了重大变化,这种变化表现在图书馆工作,管理和服务平台发生的变化,图书馆不再是传统的手工操作,人工管理,而是全面实行计算机管理。
图书馆的正常运营中总是面对大量的读者信息,图书信息以及两者相互作用产生的借书信息,因此要对读者资源,图书资源,借书信息进行管理。
本系统的开发就是在于提高图书借阅管理的工作效率,加强图书馆的管理,全面实行计算机管理。
(二)开发环境开发环境:Win 7 旗舰版开发工具:Visualbasic6.0 ACCESS作图软件:Microsoft Visio 2010(三)进度安排该软件应用Microsoft Visio 2010和Visualbasic6.0 ,ACCESS进行编程作图,历时大概两周,最终完成了这个小型图书借阅管理系统。
图书借阅管理系统的设计1.需求分析图书信息、借阅证件信息及图书借阅管理是一件非常繁琐但又及其重要的工作, 因此有必要开发一个数据库管理系统, 用来管理这些信息。
这篇课程设计介绍的就是图书借阅信息管理系统。
系统的具体要求如下所述:(1)图书信息的录入: 要求能够将图书信息录入到数据库中。
(2)图书信息的修改: 根据需要, 修改、删除图书信息。
(3)用户登陆: 根据用户权限登陆此系统。
(4)系统用户管理:要求可以管理系统的用户, 包括添加、修改和删除用户。
(5)借阅证件信息录入:可以输入不同类型的借阅者信息, 并根据需要修改、删除借阅证件信息。
(6)借阅证管理: 包括借阅证丢失、过期等管理。
(7)借阅管理: 包括借书、还书、过期还书与书籍丢失处罚等管理。
2.数据库设计数据库设计主要在SQL Server服务器端建立数据库和数据表, 并实现数据处理功能。
本文所设计的数据库中要记录读者的借书情况、图书被借阅的情况以及读者、图书的基本情况。
下面对图书借阅管理系统所需的数据结构进行分析并创建数据库。
2.1 概念结构设计现在对所设计系统的需求作进一步的分析, 产生概念结构设计的E-R模型。
由于这个系统并不复杂, 因此可采用自顶向下的设计方法。
自顶向下设计的关键是确定系统的核心活动。
所谓核心活动就是系统中的其他活动都要围绕这个活动展开, 或与此活动密切相关。
确定了核心活动之后, 系统就有了可扩展的余地。
对于这个图书借阅管理系统, 其核心活动是借阅, 读者与图书之间是通过借阅发生联系的。
因此, 此系统包含的实体有:(1) 读者: 用于描述一名读者的基本信息, 用借书卡编号来标识。
(2) 图书:用于描述一本图书的基本信息, 用图书编号来标识。
经过初步分析, 可以得到此系统中各实体所包含的基本属性如下:读者: 借阅证编号、读者姓名、工作单位、身份证号、借阅证类型、办证日期、证件状态。
图书: 图书编号、图书名称、图书分类、作者、出版社、图书价格、图书封面由于一名读者可以同时借阅多本图书, 而一本图书一次只能借给一名读者, 因此读者和图书之间是一对多的联系。
辽宁工业大学管理信息系统设计课程设计报告(论文) 题目:图书馆借阅管理系统院(系):软件学院专业班级: 软件学院112班学号: 111301054学生姓名:安凯辰指导教师: 翟宝峰教师职称:副教授起止时间: 2012.5。
28—2012.6.8课程设计(论文)任务及评语目录第一章系统分析........................................... 错误!未定义书签。
1.1用户需求分析ﻩ错误!未定义书签。
1。
2功能分析.......................................... 错误!未定义书签。
1.3数据流程分析...................................... 错误!未定义书签。
1。
4业务流程图........................................ 错误!未定义书签。
1.5数据字典 (3)第二章系统设计ﻩ错误!未定义书签。
2。
1总体设计ﻩ错误!未定义书签。
2.2详细设计ﻩ错误!未定义书签。
2.3数据库设计ﻩ错误!未定义书签。
第三章系统实施ﻩ错误!未定义书签。
第四章设计总结ﻩ错误!未定义书签。
参考文献.................................................. 错误!未定义书签。
第一章系统分析1.1用户需求分析用户的需求可分为以下3方面:(1)图书馆工作人员通过计算机来管理各类图书,分类编号,调整图书结构,增加图书库存,适应读者的需求;(2)图书馆工作人员对读者的借书情况作好全面的掌握,及时得到每个读者的当前借阅状态和历史借阅记录;(3)读者能通过计算机查询浏览图书馆中的图书,确定自己需要的书籍,实施借阅. 1。
2功能分析本系统主要用图书馆借阅管理系统管理,采用面向对象的设计思想,以菜单和表单的形式进行各表单的调用,其系统功能分析是在系统开发的总体任务的基础上完成的.为了提高大家的时间和工作效率,节约运行费用而设计的。
第3章 基于B/S模式图书管理系统需求分析(2)数据操作:主要有检索和更新(包括插入、删除、修改)两大类操作。
数据模型必须定交这些操作的确切含义、操作符号、操作规划(如优先级)以及实现操作的语言。
(3)数据的约束条件数据的约束条件是一组完整性规则的集合。
完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
此外,数据模型还应该提供定义完整性约束条件的机制。
3.物理模型数据库的数据最终须存储到存储介质上,反映数据的物理存储方式的数据模型就是物理模型。
它不但与DBMS有关,而且与计算机硬件有着密切的关系。
3.4 数据库分析数据库系统是数据管理的重要手段和技术,是计算机科学的重要分支。
今天,信息资源已成为各个部门的重要财富和资源。
建立一个满足各级部门信息处理要求的行之有效的数据库系统也成企业生存和发展的重要条件。
数据库技术是计算机科学技术中的重要领域,也是应用最广的技术之一,而且已经成为电子信息系统的重要核心技术。
根据图书馆管理系统数据结构,采用构建E-R图,导出系统数据表的分析方法,对图书馆管理系统作如下数据库分析。
3.4.1 E-R图分析根据以上章节对系统做的需求分析、模块设计,就可以做出能够满足用户需求的各种实体以及它们之间的关系,本系统根据上文的设计规划出的实体有:用户信息实体、借阅信息实体、图书信息实体。
图书管理系统中系统实体间关系E—R图,如图3-5所示:图3-5 系统实体间关系图Fig. System E-R Figure系统用户信息实体图,如图3-6所示:图3-6 系统用户信息实体图Fig.3-6 System User Information Entity Figure17西安理工大学工程硕士学位论文18 系统借阅信息实体图,如图3-7所示:图3-7 系统借阅信息实体图Fig.3-7 System Borrow Information Entity Figure 系统图书信息实体图,如图3-8所示:图3-8 系统图书信息实体图Fig.3-8 System Book Information Entity Figure3.4.2 表/字段分析根据前面所做的图书管理系统的E-R图,本文分析出系统开发时所需的表及字段。
图书管理系统数据库设计1. 引言图书管理系统是一个用于管理图书馆馆藏图书的软件系统。
它提供了图书的借阅、归还、查询等功能,方便读者进行图书借阅和图书馆管理员进行图书管理。
本文档将介绍图书管理系统的数据库设计。
通过组织图书、读者、借阅记录等相关数据,实现图书管理系统的各项功能。
2. 数据库设计2.1 数据库结构图书管理系统的数据库主要包含以下几个表:•图书表(books):存储图书的基本信息,如图书编号、名称、作者、出版社等。
•读者表(readers):存储读者的基本信息,如读者编号、姓名、性别、年龄等。
•借阅记录表(borrow_records):存储图书的借阅记录,包括借阅编号、借阅日期、归还日期、读者编号等。
2.2 数据库字段2.2.1 图书表(books)•book_id:图书编号,主键•book_name:图书名称•author:作者•publisher:出版社•publication_date:出版日期•price:价格2.2.2 读者表(readers)•reader_id:读者编号,主键•reader_name:读者姓名•gender:性别•age:年龄•phone:联系电话2.2.3 借阅记录表(borrow_records)•record_id:借阅记录编号,主键•book_id:借阅图书编号,外键•reader_id:借阅读者编号,外键•borrow_date:借阅日期•return_date:归还日期2.3 数据库关系•图书表与读者表之间是多对多的关系,通过借阅记录表进行关联。
•图书表与借阅记录表是一对多的关系,一个图书可以对应多条借阅记录。
•读者表与借阅记录表也是一对多的关系,一个读者可以借阅多本图书。
2.4 数据库约束•图书编号(book_id)在图书表中是唯一的,不能重复。
•读者编号(reader_id)在读者表中是唯一的,不能重复。
•借阅记录编号(record_id)在借阅记录表中是唯一的,不能重复。
学校图书借阅管理系统数据库设计概述学校图书借阅管理系统是为帮助学生和教职员工更方便地借阅图书而设计的系统。
该系统需要一个数据库来存储和管理相关信息,本文将详细介绍学校图书借阅管理系统的数据库设计方案。
数据库概述数据库设计目标学校图书借阅管理系统的数据库设计目标是实现对图书、借阅者和借阅记录等信息的有效管理和查询,保证系统的高效性和稳定性。
数据库结构以下是学校图书借阅管理系统的数据库结构设计:1.图书表(Books)–book_id: 图书ID(主键)–title: 图书标题–author: 作者–publisher: 出版社–publish_date: 出版日期–price: 价格–total_copies: 总藏书量–available_copies: 可借数量2.借阅者表(Borrowers)–borrower_id: 借阅者ID(主键)–name: 姓名–grade: 年级–department: 院系–max_books: 最大可借数量3.借阅记录表(BorrowRecords)–record_id: 记录ID(主键)–book_id: 图书ID–borrower_id: 借阅者ID–borrow_date: 借阅日期–return_date: 归还日期数据库设计细节数据库关系•图书表和借阅者表之间是一对多的关系,一个借阅者可以借阅多本图书。
•图书表和借阅记录表之间也是一对多的关系,一本图书可以被多个借阅者借阅。
•借阅者表和借阅记录表之间是一对多的关系,一个借阅者可以有多条借阅记录。
数据库约束•图书表中的total_copies和available_copies不能小于0。
•借阅者表中的max_books不能小于0。
•借阅记录表中的borrow_date不能晚于return_date。
数据库索引在图书表和借阅者表的主键上创建索引,可以提高查询效率。
数据库操作添加图书INSERT INTO Books (book_id, title, author, publisher, publish_date, price, total_copies, available_copies)VALUES ('1', 'Database Systems', 'Abraham Silberschatz', 'McGraw-Hill', '2011-11-01', 50.00, 5, 5);借阅图书INSERT INTO BorrowRecords (record_id, book_id, borrower_id, borrow_d ate, return_date)VALUES ('1', '1', '101', '2022-01-01', '2022-01-15');UPDATE Books SET available_copies = available_copies -1WHERE book_id ='1';归还图书UPDATE BorrowRecords SET return_date ='2022-01-15'WHERE record_id ='1';UPDATE Books SET available_copies = available_copies +1WHERE book_id ='1';总结本文介绍了学校图书借阅管理系统的数据库设计,包括数据库结构、数据库设计细节、数据库操作等内容。
图书借阅管理系统的设计与实现开题报告当今时代是飞速发展的信息时代。
在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性;同时,建立一个实用而操作简便的检索查询系统也同样重要。
使无论是管理人员或是普通用户通过登录,都可以进入书库管理系统的网页,通过输入关键词,责任者,题名,分类号等任意一个检索点,快速并准确地查询图书的信息。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。
计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
本系统就是为了管理好图书馆信息而设计的。
图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。
根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。
数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。
尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。
数据处理手工操作,工作量大,出错率高,出错后不易更改。
图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。
如要对很长时间以前的图书进行更改就更加困难了。
基于这此问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。
图书馆借阅管理系统及业务管理知识设计一、借阅管理模块借阅管理模块是图书馆借阅业务的核心模块,主要包括借书、还书、图书续借、预约图书等功能。
读者在借阅时需要通过系统登录,并选择所要借阅的图书,系统会自动检查读者的借阅资格和图书的可借阅状态,如果满足借阅条件,则会自动生成借阅记录,并将相应的借阅信息更新到系统数据库。
读者在还书时需要将图书归还到指定的还书点,并通过系统进行归还操作,系统会自动更新借阅记录、图书状态和读者的借阅统计信息。
当读者需要续借图书时,只需登录系统并选择所要续借的图书,系统会自动检查图书的续借次数和续借期限,并生成相应的续借记录和新的借阅期限。
当某本图书被借出后,其他读者可以通过预约图书功能进行预约,系统将根据预约的先后顺序为读者保留图书,并通知读者借阅。
二、图书管理模块图书管理模块是图书馆借阅管理系统的重要模块,主要包括图书入库、图书维护、图书查询等功能。
在图书入库时,图书管理员需要录入图书的相关信息,如书名、作者、出版社、ISBN号等,并生成图书编号。
系统会自动将图书信息保存到数据库,并更新图书的库存数量。
对于现有的图书,图书管理员可以通过系统进行图书信息的维护,如修改图书信息、删除图书、查询图书当前的库存数量等。
读者可以通过系统查询图书的信息,如图书的位置、可借阅状态、馆藏数量等。
三、读者管理模块读者管理模块主要负责读者信息的管理,包括读者的注册、登录、密码找回、信息修改等功能。
读者在注册时需要填写个人基本信息,并选择登录账号和密码,系统会对读者的注册信息做校验和合法性验证,并将读者信息保存到数据库。
读者在登录系统后可以修改个人信息、查询借阅历史、查询预约记录等。
四、流通管理模块流通管理模块主要负责对图书馆的借还流程进行管理,包括借还书流程的自动化、借还书记录的统计和分析等功能。
系统可以自动记录读者的借阅和还书操作,并生成相应的借阅和还书记录,同时系统还能根据借阅记录进行统计和分析,提供借阅热门图书、借阅热门时间段等统计数据,以便图书馆进行决策和优化借阅服务。
图书管理系统程序设计图书管理系统是图书馆日常工作中不可或缺的一部分,它通过计算机技术实现对图书的自动化管理,提高图书馆的管理效率和服务质量。
下面将详细介绍图书管理系统的程序设计。
系统需求分析在设计图书管理系统之前,首先要进行需求分析,明确系统需要实现的功能。
一般来说,一个基本的图书管理系统应包括以下几个功能模块:1. 用户管理:包括用户注册、登录、权限分配等。
2. 图书管理:包括图书的添加、删除、修改和查询。
3. 借阅管理:实现图书的借出、归还、续借等功能。
4. 查询统计:提供图书查询、借阅记录查询、逾期统计等。
5. 系统维护:包括数据备份、恢复、系统设置等。
系统设计1. 系统架构:通常采用B/S(浏览器/服务器)架构,用户通过浏览器访问系统。
2. 数据库设计:数据库是图书管理系统的核心,需要设计合理的数据表结构,如用户表、图书表、借阅记录表等。
3. 用户界面设计:界面应简洁明了,操作方便,提供良好的用户体验。
技术选型1. 前端技术:HTML、CSS、JavaScript,可能还会使用框架如React或Vue.js。
2. 后端技术:Java、Python、Node.js等,根据开发团队熟悉度选择。
3. 数据库技术:MySQL、PostgreSQL、SQLite等关系型数据库。
功能实现1. 用户管理- 用户注册:收集用户信息,如用户名、密码、邮箱等,并存储到数据库。
- 用户登录:验证用户信息,提供登录服务。
- 权限控制:根据用户角色分配不同的操作权限。
2. 图书管理- 图书录入:允许管理员添加新图书信息,包括书名、作者、ISBN、出版社等。
- 图书修改:提供图书信息的更新功能。
- 图书删除:允许管理员从系统中移除不再需要的图书记录。
- 图书查询:提供多种查询方式,如按书名、作者、ISBN等。
3. 借阅管理- 借书操作:记录用户借阅的图书信息,包括借阅日期和预计归还日期。
- 还书操作:更新图书的借阅状态,记录归还日期。
《数据库原理及应用》课程设计报告设计题目:西安理工大学图书借阅管理数据库设计及开发学院理学院专业信息与计算科学班级学号姓名指导教师2012年12月24日——2013年1月4日目录1选题背景及系统目标................................ - 1 -1.1选题背景....................................... - 1 -1.2系统目标....................................... - 1 -2需求分析............................................ - 2 -2.1组织机构分析................................... - 2 -2.2系统功能分析................................... - 2 -2.3业务流程调查与分析............................. - 3 -2.4数据流程调查与分析............................. - 4 -2.5典型数据字典分析............................... - 5 -3系统数据库设计..................................... - 6 -3.1数据库概念结构设计............................. - 6 -3.2数据库逻辑结构设计............................ - 10 -3.3数据库物理结构设计............................ - 13 -3.4数据库关系设计................................ - 14 -4系统主要功能模块设计与实现...................... - 15 -4.1登陆界面模块设计.............................. - 15 -4.2主界面模块设计................................ - 15 -4.3读书类别查询模块设计.......................... - 16 -4.4图书信息管理模块设计.......................... - 17 -4.5图书信息查询模块设计.......................... - 18 -4.6读者类别查询模块设计.......................... - 19 -4.7读者信息管理模块设计.......................... - 20 -4.8读者信息查询模块设计.......................... - 21 -4.9借书信息查询模块设计.......................... - 22 -4.10各模块代码.................................... - 23 -5系统特点与不足.................................... - 48 -5.1优点.......................................... - 48 -5.2需要进一步改进的地方.......................... - 48 -6总结................................................ - 49 -6.1课程设计主要问题及解决办法.................... - 49 -6.2收获与建议.................................... - 49 -7参考文献........................................... - 50 -1选题背景及系统目标1.1选题背景图书馆作为一种信息资源的集散地,包含很多信息数据的管理,随着图书数量的不断增多和图书馆规模的不断扩大,管理这些庞大的图书资源显得非常困难。
根据调查得知,传统的图书管理主要方式是手工管理,比如对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行;对借阅者的借阅权限以及借阅天数等用人工计算、手抄进行。
这种传统的数据信息处理方式,不仅工作量大,容易出错,而且由于数据繁多,容易丢失,不易查找。
基于这些问题,本文所设计的图书管理信息系统,可以使图书管理工作规范化、系统化、科学化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。
1.2系统目标图书管理信息系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序VISUAL BASIC的开发两个方面。
对于前者要求建立起数据一致性和完整性强.数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
系统开发的总体任务是实现各种信息的系统化,规范化和自动化。
(1)基于图书馆:图书馆规模大、图书信息更新快、图书数量多、需要处理和管理的信息量很大。
(2)借阅:管理读者的借书与还书。
(3)管理:包括对读者信息、图书信息、借阅信息、旧书处理信息、会员取消信息等多方面的管理。
2 需求分析2.1 组织机构分析组织机构是一个组织内部部门的划分及其相互之间的关系。
西安理工大学的图书馆分为金花和曲江两个校区,有一名馆长,两名副馆长,其下共有四部两室。
其组织机构分析如图3-1所示:为了对系统有一个全貌性的了解,首先要对系统的内部人员结构、组织及用户情况有所了解。
图书馆系统的组织结构图如图2-1所示:图2-1 组织机构图2.2 系统功能分析功能是指完成某项工作的能力,为了实现系统目标,系统必须具有各种功能,系统功能分析如表2-1所示:馆长采编室学术论文室办公室 财务室图书借阅室电子阅览室期刊阅览室技术支持室表2-1 系统功能分析表2.3业务流程调查与分析业务流程调查主要任务是调查系统中各环节的业务活动,掌握业务的内容、作用及信息的输入、输出、数据存储和信息的处理方法及过程等。
在图书馆的管理系统中,从读者角度考虑的业务流程图如图2-2所示:图2-2 业务流程图2.4数据流程调查与分析数据流程是指数据在系统中产生、传输、加工处理、使用、存储的过程。
数据流程图是全面描述信息系统逻辑模型的工具,它抽象概括的把信息系统中各种业务处理过程联系起来。
西安理工大学图书借阅管理系统的数据流程图如下图所示:图2-3 图书管理流程图图2-4 读者管理流程图图2-5 图书借阅流程图2.5典型数据字典分析数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。
通常包括:数据项说明、数据结构说明、数据流说明、数据存储说明、处理过程说明。
下面对图书借阅管理数据库做典型数据字典的分析。
其中系统设计到的数据项如表2-2所示:表 2-2 数据项分析3系统数据库设计3.1数据库概念结构设计根据学生图书借阅管理系统的需求分析,我们可以先得5个实体:书籍信息、借阅信息、图书类别、读者信息、读者类别。
根据需求分析,抽象出信息结构,可分别得到该系统的局部E-R图和总体E-R图,如图3-1到图3-6所示:图3-3 图书类别E-R 图书籍信息图3-1 书籍信息E-R 图类别图书类别类别名称 类别编号作者出版日期登记日期图书编号书名借阅信息图3-2 借阅信息E-R 图书籍编号书籍名称出借日期还书日期借阅编号读者编号图3-5 读者类别E-R 图读者类别种类名称借书数量 借书期限图3-4 读者信息E-R 图有限期限读者信息性别读者类别工作单位家庭住址 读者姓名读者编号登记日期电话号码已借数目图3-6 总体E-R图3.2数据库逻辑结构设计1)E-R图向关系模型的转换将总体概念结构E-R图转化成关系模型:读者信息(读者编号,读者姓名,性别,读者种类,工作单位,家庭住址,电话号码,登记日期,已借书数量,密码)书籍信息(书籍编号,书名,类别,作者,出版社,出版日期,登记日期,是否被借出)借阅信息(借阅编号,读者姓名,读者编号,书籍编号,书籍名称,出借日期)2)相应的表结构,如表3-1到表3-5所示:表3-1 书籍信息表表3-2 借阅信息表表3-3 读者信息表表3-4 读者类别表表3-5 读书类别表3.3数据库物理结构设计为表建立索引,如图3-8和3-9所示:图3-8 建立索引图3-9 建立索引3.4数据库关系设计根据以上表建立关系图,如图3-10所示:图3-10 图书管理系统关系图4系统主要功能模块设计与实现4.1登陆界面模块设计登陆界面如图4-1所示:图4-1 登陆界面4.2主界面模块设计主界面如图4-2所示:图4-2 主界面4.3读书类别查询模块设计读书类别界面如图4-3所示:图4-3 图书类别查询4.4图书信息管理模块设计图书信息管理界面如图4-4所示:图4-4 图书信息管理4.5图书信息查询模块设计图书信息查询界面如图4-5所示:图4-5 图书信息查询4.6读者类别查询模块设计图书类别查询如图4-6所示:图4-6 读者类别查询4.7读者信息管理模块设计读者信息管理界面如图4-7所示:图4-7 读者信息管理4.8读者信息查询模块设计读者信息查询如图4-8所示:图4-8 读者信息查询4.9借书信息查询模块设计借书信息查询如图4-9所示:图4-9 借书信息查询4.10各模块代码1)全局变量定义:Option ExplicitPublic conn As New ADODB.Connection Public select_menu As StringPublic userID As StringPublic userpow As StringPublic book_num As StringPrivate Sub cmdCancel_Click()'设置全局变量为false'不提示失败的登录LoginSucceeded = FalseMe.HideEnd SubPrivate Sub cmdOK_Click()'检查正确的密码If txtPassword = "user" Then'将代码放在这里传递'成功到calling 函数'设置全局变量时最容易的LoginSucceeded = TrueMe.HideForm1.ShowElseMsgBox "无效的密码,请重试!", , "登录"txtPassword.SetFocusSendKeys "{Home}+{End}"End IfEnd Sub2)窗体名:Form1Private Sub A11_Click()Form2.ShowEnd SubPrivate Sub A12_Click()Form3.ShowEnd SubPrivate Sub A13_Click()Form4.ShowEnd SubPrivate Sub B11_Click()Form5.ShowEnd SubPrivate Sub B12_Click()Form6.ShowEnd SubPrivate Sub B13_Click()Form7.ShowEnd SubPrivate Sub C12_Click()Form4.ShowEnd SubPrivate Sub C13_Click()Form9.ShowEnd SubPrivate Sub C15_Click()Form10.ShowEnd SubPrivate Sub exit_Click()EndEnd Sub3)窗体名:Form2Private Sub Command1_Click()On Error GoTo command1errorCommand2.Enabled = FalseCommand3.Enabled = FalseCommand1.Enabled = False Command4.Enabled = True Command5.Enabled = True DataGrid1.AllowAddNew = True DataGrid1.AllowUpdate = True Exit Subcommand1error:MsgBox Err.DescriptionEnd SubPrivate Sub Command2_Click() On Error GoTo Command2 Command1.Enabled = False Command2.Enabled = False Command3.Enabled = False Command1.Enabled = True Command4.Enabled = True Command5.Enabled = True DataGrid1.AllowUpdate = True Command2:If Err.Number <> 0 Then MsgBox Err.DescriptionEnd IfEnd SubPrivate Sub Command3_Click()Dim answer As StringOn Error GoTo command3erroranswer = MsgBox("确定要删除吗?", vbYesNo, "")If answer = vbYes ThenAdodc1.Recordset.DeleteAdodc1.Recordset.MoveLastEnd IfDataGrid1.RefreshMsgBox "删除成功!", vbOKCancel + vbExclamation, "" DataGrid1.AllowDelete = FalseElseExit Subcommand3error:If Err.Number <> 0 ThenMsgBox Err.DescriptionEnd IfEnd SubPrivate Sub Command4_Click()If Not IsNull(DataGrid1.Bookmark) ThenDataGrid1.RefreshEnd IfCommand1.Enabled = TrueCommand2.Enabled = TrueCommand3.Enabled = TrueCommand5.Enabled = FalseCommand4.Enabled = FalseDataGrid1.AllowUpdate = FalseDataGrid1.AllowAddNew = FalseMsgBox "操作成功!", vbOKCancel + vbExclamation, "" End SubPrivate Sub Command5_Click()DataGrid1.RefreshDataGrid1.AllowAddNew = FalseCommand2.Enabled = TrueCommand1.Enabled = TrueCommand3.Enabled = TrueCommand4.Enabled = FalseCommand5.Enabled = FalseEnd SubPrivate Sub Form_Load()Command4.Enabled = FalseDataGrid1.AllowAddNew = FalseDataGrid1.AllowDelete = FalseDataGrid1.AllowUpdate = FalseIf userpow = "guest" ThenFrame2.Enabled = FalseEnd IfExit Subloaderror:MsgBox Err.DescriptionEnd SubPrivate Sub Form_Unload(Cancel As Integer) Set DataGrid1.DataSource = NothingEnd Sub4)窗体名:Form3Private Sub Command1_Click()Command1.Enabled = FalseCommand2.Enabled = FalseCommand3.Enabled = FalseCommand4.Enabled = TrueCommand5.Enabled = TrueDataGrid1.AllowAddNew = TrueDataGrid1.AllowUpdate = TrueExit Subcommand1error:MsgBox Err.DescriptionEnd SubPrivate Sub Command2_Click()On errror GoTo Command2Command1.Enabled = FalseCommand3.Enabled = FalseCommand2.Enabled = FalseCommand1.Enabled = TrueCommand4.Enabled = TrueCommand5.Enabled = TrueDataGrid1.AllowUpdate = TrueCommand2:If Err.Number <> 0 ThenMsgBox Err.DescriptionEnd IfEnd SubPrivate Sub Command3_Click()Dim answer As StringOn Error GoTo command3erroranswer = MsgBox("确定要删除吗?", vbYesNo, "")If answer = vbYes ThenAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextIf Adodc1.Recordset.EOF = True ThenAdodc1.Recordset.MoveLastEnd IfDataGrid1.RefreshMsgBox "成功删除!", vbOKCancel + vbExclamation, ""DataGrid1.AllowDelete = FalseElseExit SubEnd Ifcommand3error:If Err.Number <> 0 ThenMsgBox Err.DescriptionEnd IfEnd SubPrivate Sub Command4_Click()If Not IsNull(DataGrid1.Bookmark) ThenDataGrid1.RefreshEnd IfCommand1.Enabled = TrueCommand2.Enabled = TrueCommand3.Enabled = TrueCommand4.Enabled = FalseCommand5.Enabled = FalseDataGrid1.AllowAddNew = FalseDataGrid1.AllowUpdate = FalseMsgBox "操作成功!", vbOKCancel + vbExclamation, "" End SubPrivate Sub Command5_Click()DataGrid1.RefreshDataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False Command1.Enabled = TrueCommand2.Enabled = TrueCommand3.Enabled = TrueCommand4.Enabled = FalseCommand5.Enabled = FalseEnd SubPrivate Sub Form_Load()Command4.Enabled = FalseDataGrid1.AllowAddNew = False DataGrid1.AllowDelete = FalseDataGrid1.AllowUpdate = FalseIf userpow = "guest" ThenFrame2.Enabled = FalseEnd IfExit Subloaderror:MsgBox Err.DescriptionEnd SubPrivate Sub Form_Unload(Cancel As Integer) Set DataGrid1.DataSource = NothingEnd Sub5)窗体名:Form4Private Sub Command1_Click(Index As Integer)Dim sql As StringIf Check1.Value = vbChecked Thensql = "书名" & Trim(Text1.Text & " ") & "'"End IfIf Check2.Value = vbcheckde ThenIf Trim(sql) = "" Thensql = "类别='" & Trim(Combo1.Text & " ") & "'"Elsesql = sql & "and 书名='" & Trim(Combo1.Text & "'") & "'"End IfEnd IfIf Check3.Value = vbcheckde ThenIf Trim(sql) = "" Thensql = "作者='" & Trim(Text2.Text & " ") & "'"Elsesql = sql & "and 作者='" & Trim(Text2.Text & " ") & "'"End IfEnd IfIf Check4.Value = vbChecked ThenIf Trim(sql) = "" Thensql = "出版社='" & Trim(Text3.Text & " ") & "'"Elsesql = sql & "and 出版社='" & Trim(Text3.Text & " ") & "'" End IfEnd IfIf Check5.Value = vbChecked ThenIf Trim(sql) = "" Thensql = "书籍编号='" & Trim(Text4.Text & " ") & "'"Elsesql = sql & "and 书籍编号='" & Trim(Text4.Text & " ") & "'" End IfEnd IfIf Trim(sql) = " " ThenMsgBox "请选择查询方式!", vbOKOnly + vbExclamation Exit SubEnd IfAdodc1.RecordSource = "select * from sjxx where " & sql Adodc1.RefreshDataGrid1.AllowAddNew = FalseDataGrid1.AllowDelete = FalseDataGrid1.AllowUpdate = FalseEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Command3_Click()If Trim(book_num) = "" ThenMsgBox "请选择要借阅的图书!", vbOKOnly + vbExclamationExit SubEnd IfIf panduan = "是" ThenMsgBox "此书已被借出!", vbOKOnly + vbExclamationExit SubEnd IfForm9.ShowEnd SubPrivate Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer) If Not Adodc1.Recordset.EOF And Adodc1.Recordset.EOF Thenbook_num = DataGrid1.Columns(0).CellValue(DataGrid1.Bookmark)panduan = DataGrid1.Columns(7).CellValue(DataGrid1.Bookmark)End IfEnd SubPrivate Sub Form_Load()Dim i As IntegerDim sql As StringCombo1.ClearAdodc2.Recordset.MoveFirstFor i = 0 To Adodc2.Recordset.RecordCount - 1Combo1.AddItem Adodc2.Recordset.Fields(0).ValueAdodc2.Recordset.MoveNextNextCombo1.ListIndex = 0End Sub6)窗体名:Form5Private Sub Command1_Click()On Error GoTo command1errorCommand2.Enabled = FalseCommand3.Enabled = FalseCommand4.Enabled = TrueCommand5.Enabled = TrueDataGrid1.AllowAddNew = TrueDataGrid1.AllowUpdate = TrueExit Subcommanderror:MsgBox Err.DescriptionEnd SubPrivate Sub Command2_Click()On Error GoTo Command2Command1.Enabled = FalseCommand2.Enabled = FalseCommand3.Enabled = FalseCommand4.Enabled = TrueCommand5.Enabled = TrueDataGrid1.AllowUpdate = TrueCommand2:If Err.Number <> 0 ThenMsgBox Err.DescriptionEnd IfEnd SubPrivate Sub Command3_Click()Dim answer As StringOn Error GoTo command3erroranswer = MsgBox("确定要删除吗?", vbYesNo, "")If answer = vbYes ThenAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextIf Adodc1.Recordset.EOF = True ThenAdodc1.Recordset.MoveLastEnd IfDataGrid1.RefreshMsgBox "成功删除!", vbOKOnly + vbExclamation, "" DataGrid1.AllowDelete = FalseElseExit SubEnd Ifcommand3error:If Err.Number <> 0 ThenMsgBox Err.DescriptionEnd IfEnd SubPrivate Sub Command4_Click()If Not IsNull(DataGrid1.BackColor) ThenDataGrid1.RefreshEnd IfCommand1.Enabled = TrueCommand2.Enabled = TrueCommand3.Enabled = TrueCommand4.Enabled = FalseCommand5.Enabled = FalseMsgBox "操作成功!", vbOKOnly + vbExclamation, "" End SubPrivate Sub Command5_Click()DataGrid1.RefreshDataGrid1.AllowAddNew = FalseDataGrid1.AllowUpdate = FalseCommand2.Enabled = TrueCommand1.Enabled = TrueCommand3.Enabled = TrueCommand4.Enabled = FalseCommand5.Enabled = FalseEnd SubPrivate Sub Form_Load()Command4.Enabled = FalseDataGrid1.AllowAddNew = FalseDataGrid1.AllowDelete = FalseDataGrid1.AllowUpdate = FalseIf userpow = "guest" ThenFrame2.Enabled = FalseEnd IfExit Subloaderror:MsgBox Err.DescriptionEnd Sub7)窗体名:Form6Private Sub Command1_Click()On Error GoTo commanderrorCommand2.Enabled = FalseCommand3.Enabled = FalseCommand1.Enabled = FalseCommand4.Enabled = TrueCommand5.Enabled = TrueDataGrid1.AllowAddNew = TrueDataGrid1.AllowUpdate = TrueExit Subcommand1error:MsgBox Err.DescriptionEnd SubPrivate Sub Command2_Click()On Error GoTo Command2Command1.Enabled = FalseCommand3.Enabled = FalseCommand2.Enabled = FalseCommand4.Enabled = TrueCommand5.Enabled = TrueCommand1.Enabled = TrueDataGrid1.AllowUpdate = TrueCommand2:If Error.Number <> 0 ThenMsgBox Err.DescriptionEnd IfEnd SubPrivate Sub Command3_Click()Dim answer As StringOn Error GoTo command3erroranswer = MsgBox("确定要删除吗:", vbYesNo, "") If answer = vbYes ThenAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextEnd IfDataGrid1.RefreshMsgBox "成功删除!", vbOKOnly + vbExclamation, "" DataGrid1.AllowDelete = FalseElseExit Subcommand3error:If Err.Number <> 0 ThenMsgBox Err.DescriptionEnd IfEnd SubPrivate Sub Command4_Click()If Not IsNull(DataGrid1.Bookmark) ThenDataGrid1.RefreshEnd IfCommand1.Enabled = TrueCommand2.Enabled = TrueCommand3.Enabled = TrueCommand4.Enabled = FalseCommand5.Enabled = FalseDataGrid1.AllowAddNew = FalseDataGrid1.AllowUpdate = FalseMsgBox "操作成功!", vbOKOnly + vbExclamation, ""End SubPrivate Sub Command5_Click() DataGrid1.RefreshDataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False Command2.Enabled = True Command3.Enabled = True Command4.Enabled = False Command5.Enabled = FalseEnd SubPrivate Sub Form_Load() Command4.Enabled = False DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False If userpow = "guest" Then Frame2.Enabled = FalseEnd IfExit Subloaderror:MsgBox Err.DescriptionEnd SubPrivate Sub Form_Unload(Cancel As Integer)Set DataGrid1.DataSource = NothingEnd Sub8)窗体名:Form7Private Sub Command1_Click()Dim rs_findreader As New ADODB.RecordsetDim sql As StringIf Check1.Value = vbChecked Thensql = "读者编号='" & Trim(Text1.Text & " ") & "'"End IfIf Check2.Value = vbChecked ThenIf Trim(sql) = "" Thensql = "读者姓名='" & Trim(Text2.Text & " ") & "'"Elsesql = sql & "and 读者姓名='" & Trim(Text2.Text & " ") & "'"End IfEnd IfIf Check3.Value = vbChecked ThenIf Trim(sql) = "" Thensql = "读者类别='" & Trim(Combo1.Text & " ") & "'"Elsesql = sql & "and 读者类别='" & Trim(Combo1.Text & " ") & "'"End IfEnd IfIf Trim(sql) = "" ThenMsgBox "请选择查询方式!", vbOKOnly + vbExclamation Exit SubEnd IfAdodc1.RecordSource = "select * from dzxx where " & sql Adodc1.RefreshDataGrid1.ReBindDataGrid1.AllowAddNew = FalseDataGrid1.AllowDelete = FalseDataGrid1.AllowUpdate = FalseEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load()Dim i As IntegerDim sql As StringCombo1.ClearAdodc2.Recordset.MoveFirstFor i = 0 To Adodc2.Recordset.RecordCount - 1Combo1.AddItem Adodc2.Recordset.Fields(0).Value Adodc2.Recordset.MoveNextNextCombo1.ListIndex = 0End Sub9)窗体名:Form8Private Sub Combo1_Change()Combo2.ListIndex = Combo1.ListIndexEnd SubPrivate Sub Combo2_Change()Combo1.ListIndex = Combo2.ListIndexEnd SubOption ExplicitDim leibie As StringDim qixian As IntegerDim shumn As IntegerDim maxnum As IntegerPrivate Sub Command1_Click()Dim rs_borrowbook As New ADODB.RecordsetDim sql As StringAdodc1.RecordSource = "select * from 读者信息where 读者编号='" & Combo1.Text & ","Adodc1.Refreshleibie = Adodc1.Recordset.Fields(3)shumu = Adodc1.Recordset.Fields(8)Adodc1.RecordSource = "select * from 读者类别where 种类名称='" & leibie & "'"Adodc1.Refreshqixian = Adodc1.Recordset.Fields(2)maxnum = Adodc1.Recordset.Fields(1)If shumu >= maxnum ThenMsgBox "该读者借书数额已满!", vbOKOnly + vbExclamationExit SubEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load()Dim i As IntegerAdodc2.RecordSource = "select * from 书籍信息where 书籍编号='" & book_num & "'" Adodc2.RefreshLabel8.Caption = Adodc2.Recordset.Fields(0)Label9.Caption = Adodc2.Recordset.Fields(1)Label10.Caption = Adodc2.Recordset.Fields(2)Label11.Caption = Adodc2.Recordset.Fields(3)Label12.Caption = Adodc2.Recordset.Fields(4)Label13.Caption = Adodc2.Recordset.Fields(5)Label14.Caption = Adodc2.Recordset.Fields(6)Combo1.ClearCombo2.ClearAdodc1.RecordSource = "select * from 读者信息"Adodc1.RefreshAdodc1.Recordset.MoveFirstFor i = 0 To Adodc1.Recordset.RecordCount - 1Combo1.AddItem Adodc1.Recordset.Fields(1).ValueCombo2.AddItem Adodc1.Recordset.Fields(0).ValueAdodc1.Recordset.MoveNextNextCombo1.ListIndex = 0Combo2.ListIndex = 0End SubPrivate Sub Form_Unload(Cancel As Integer)Unload MeEnd Sub10)窗体名:form9Private Sub Command1_Click()Dim sql As StringIf Option1.Value = True Thensql = "是否被借出='是'"End IfIf Option2.Value = True Thensql = "是否被借出='否'"End IfAdodc1.RecordSource = "select * from sjxx where " & sql Adodc1.Refresh。