1、目 录摘要第一章 图书馆管理信息系统概述.41.系统目标设计.42.开发设计思想.43.开发/运行环境选择.44.系统功能分析45.系统功能模块分析.5第二章 图书馆管理系统开发工具简介6系统开发工具简介 VISUAL FOXPRO 6.06第三章 图书馆管理系统需求分析71.数据库需求分析72.数据库逻辑结构设计.93.图书馆管理信息系统数据流图.11第四章 图书馆管理系统总体设计.121.功能模块的划分.121.1系统功能主界面的设计.131.2系统用户管理模块的划分151.3读者种类管理模块的划分151.4读者信息管理模块的划分151.5书籍种类信息模块的划分161.6书籍信息管理模块的
2、划分161.7借阅信息管理模块的划分162.数据库的结构设计.16第五章 图书馆管理信息系统模块设计.171.借阅信息管理模块流程图.172.书籍信息管理模块流程图.183.读者信息管理模块流程图.18第六章 图书馆管理信息系统程序设计181.系统用户管理模块的设计.181.1用户登录181.2添加系统用户202.借阅信息管理模块的设计.212.1添加借阅信息模块的设计212.2浏览/修改借书信息模块的设计.262.3添加还书信息模块的设计.27第七章 图书馆信息管理系统调试及运行.301.设置主文件.302.构造主文件.303.在.app和.exe文件中包含和排除文件.314.运行结果.31
3、体会与收获.36致谢37参考文献.38摘 要图书馆管理系统是一些单位不可缺少的部分,书籍是人类不可缺少的精神食粮,尤其对一些学校来说,尤其重要。所以图书馆管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理图书、期刊、试卷合订本等,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对图书资源信息进行管理,具有着手工管理所
4、无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书馆管理的效率,也是企业、学校的科学化、正规化管理,与世界接轨的重要条件。图书馆管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强.数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。经过分析如此情况,我们使用微软公司的VISUAL FOXPRO 6.0开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统
5、应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。由于我们能力有限,所做的数据库也只能达到目前这种水平,希望能够得到老师的指导与帮助。关键词:数据库,SQL语言,数据库组件,图书管理,窗体SummaryThe administrative system of the library is an indispensable part of some units, the books are mankinds indispensable nourishment for the mind, especially for some schools, it is e
6、specially important. So the administrative system of the library can offer sufficient information and swift inquiry means to user . But people use tradition artificial way manage books , periodical , paper bound volume ,etc. all the time, this kind of management style has a lot of shortcomings, for
7、instance: Efficiency is low, privacy is bad, as time goes by in addition, a large number of file and data will emerge, this for looking for, be newer and maintain and all bring many difficultying. With the constant improvement of science and technology, computer science is ripe day by day, its stron
8、g function has already been peoples deep understanding, it has been already entering each field of the human society and playing a more and more important role. As a part that the computer used , use the computer to manage resource information of the books, have incomparable advantage of administrat
9、ive institute of crafts. For example: Search helping , dependability high , storing amount great , privacy is good , longe-lived , cost low grade rapidly , find out. These advantages can improve the efficiency of management of the library greatly , is managed by scientific process , regularization o
10、f the enterprise , school too, important condition integrated with the world. The administrative system of the library is a typical information management system (MIS ), it develops two respects of main development including setting-up and maintenance and front application program of backstage suppo
11、rters database . Demand to set up the consistency of the data and integrality to the former strongly. Storehouse of the data with good security . Require to the latter the function of the application program is complete , apt characteristic of using etc. . Through analysing such situation, we use VI
12、SUAL FOXPRO 6.0 developing instruments of Microsoft, utilize various kinds of target -oriented developing instrument that offer it, especially data window this can convenient succinct to handle intelligent target of the database, set up system use prototype , then go on demand change and take the pl
13、ace of to initial prototype system within short time at first, revise and improve constantly, until forming the feasible system that users are satisfied with. Because we have limited ability , the databases done can only reach this kind of level at present , hope to get the teachers guidance and hel
14、p.Keyword:The database , SQL language, the package of the database , taking care of books, window body第一章 图书馆管理信息系统概述1.系统目标设计通过一个图书馆管理信息系统,使图书馆的信息管理工作系统化、规范化、自动化,从而达到提高企业人事管理效率的目的。2.开发设计思想本系统的开发设计思想:l 系统应符合图书馆信息管理的规定,满足图书馆日常管理的工作需要,并达到操作过程中的直观、方便、实用、安全等要求;l 系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参加开发的技术维
15、护人员补充、维护;l 系统应具备数据库维护功能,及时根据用户需要进行数据的添加、删除、修改、备份等操作。3.开发和运行环境选择开发工具:Visual FoxPro 6.0运行环境:Windows 9x、Windows NT 或Windows 20004.系统功能分析l 有关读者种类标准的制定、种类信息的输入,包括种类编号、种类名称、借书数量、借书期限、有效期限、备注等。l 读者种类信息的修改、查询等。l 读者基本信息的输入,包括读者编号、读者姓名、读者种类、读者性别、工作单位、家庭住址、电话号码、电子邮件地址、登记日期、备注等。l 读者基本信息的查询、修改,包括读者编号、读者姓名、读者种类、读
16、者性别、工作单位、家庭住址、电话号码、电子邮件地址、登记日期、备注等等。l 书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称、关键词、备注信息等。l 书籍类别信息的查询、修改,包括类别编号、类别名称、关键词、备注信息等。l 书籍信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、书籍页码、关键词、登记日期、是否被借出、备注信息等。l 书籍信息的查询、修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、书籍页码、关键词、登记日期、是否被借出、备注信息等。l 借书信息的输入,包括借阅编号、读者编号、读者姓名、书籍编号、书籍名称、出借日期、还书
17、日期、备注信息等。l 借书信息的查询、修改,包括借阅编号、读者编号、读者姓名、书籍编号、书籍名称、出借日期、还书日期、备注信息等。l 还书信息的输入,包括选择借阅编号、读者编号、书籍编号、书籍名称、借书日期、还书日期、备注信息等。l 还书信息的查询和修改,包括选择借阅编号、读者编号、书籍编号、书籍名称、借书日期、还书日期、备注信息等。5.系统功能模块设计在系统功能分析的基础上,考虑Visual FoxPro 6.0程序编制的特点,得到如图1-1所示的系统功能模块图。 图书馆管理信息系统系统管理读者信息管理书籍信息管理借阅信息管理用户管理读者种类管理读者信息管理书籍类别管理书籍信息管理还书信息管
18、理借书信息管理 读者种类添加读者种类修改读者信息添加读者信息修改读者信息查询书籍类别添加书籍类别修改书籍信息添加书籍信息修改书籍信息查询借书信息添加借书信息修改借书信息查询还书信息添加还书信息修改还书信息查询 图1-1 系统功能模块图第二章 图书馆管理系统开发工具简介Visual FoxPro6.0是全球最大的软件生产商Microsoft公司开发的一个功能强大的数据库管理系统。为适应当今社会信息产业特别是Internet的飞速发展,Microsoft公司于1998年推出了最新的版本Visual FoxPro6.0,又称为Visual FoxPro98。 Visual FoxPro 6.0 是M
19、icrosoft公司推出的全新的PC平台关系型数据库管理系统。它具有强大的性能、完整而丰富的工具、极其友好的图形用户界面、简单的数据存取方式、良好的兼容性、独一无二的跨平台特性以及真正的可编译性。它不仅可以简化数据管理,而且使应用程序的开发流程更为合理。Visual FoxPro 6.0 使组织数据、定义数据库规则和建立应用程序等工作变得简单易行。利用可视化的设计工具和向导,可以快速创建表单、查询和报表。Visual FoxPro 还提供了一个集成化的开发环境,不仅拥有面向对象程序设计工具以及客户/服务器功能,而且支持ActiveX,这些特点为快速开发功能全面的应用程序创造了良好的条件。这些都
20、使Visual FoxPro 6.0成了目前较完美的数据库系统。Visual FoxPro 6.0不但兼容早期的dBASE以及FoxBASE的各种版本,同时还提供了许多基于Windows 98的崭新功能。Visual FoxPro 6.0为计算机2000年问题提供了有效的解决方案。Visual FoxPro 6.0是一个32位的数据库开发系统,可运行于Windows 98和Windows NT操作系统。Visual FoxPro 6.0是一个既具有Visual 系列的功能强大、直观易用、面向对象的优点,又兼有Windows和FoxPro的长处,提供了向导、设计器和生成器等工具,使得数据库的管理
21、工作变得十分容易,因此不再需要用户通过编写程序代码来完成任务。第三章 图书馆管理系统需求分析1.数据库需求分析用户的需求具体体现现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详细的数据字典,为后面的具体设计打下基础。仔细分析调查有关图书管理信息需求的基础上,将得到如图3-1所示的本系统所处理的数据流程 书籍类别设置 读者种类设置基本信息录入基本信息录入 书籍类别信息管理 书籍登记 读者登记 读者种类信息管理基本信息录入基本信息录入 书籍信息管理 读者信息管理借阅信息输入读者信息返回书籍信息返回 借阅信息
22、管理图3-1 图书馆管理信息系统数据流程图针对一般图书馆管理信息系统的需求,通过对图书馆管理工作过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:l 读者种类信息,包括的数据项有:种类编号、种类名称、借书数量、借书期限、有效期限、备注等。l 读者信息,包括的数据项有:读者编号、读者姓名、读者种类、读者性别、工作单位、家庭住址、电话号码、电子邮件地址、办证日期、备注等。l 书籍类别信息,包括的数据项有:类别编号、类别名称、关键词、备注信息等。l 书记信息,包括的数据项有:书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、书籍页数、关键词、登记日期、备注信息等。l 借阅信息,
23、包括的数据项有:借阅信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期、备注信息等。 有了上面的数据结构、数据项和数据流程,我们就能进行下面的数据库设计。2 数据库逻辑结构设计现在需要将上面的数据库概念结构转化为Visual FoxPro 数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。图书馆管理信息系统数据库中各个表格的设计结果如下表格所示。每个表格表示在数据库中的一个表。表3-1 读者种类信息表列名数据类型可否为空种类编号字符型(4)否种类名称字符型(10)否借书数量字符型(4)是借书期限字符型(4)是有效期限字符型(4)是备注字符型(20)是表3-2 读者信息表
24、列名数据类型可否为空读者编号字符型(10)否读者姓名字符型(10)否读者性别字符型(3)是读者种类字符型(10)是工作单位字符型(40)是家庭地址字符型(40)是电话号码字符型(10)是电子邮件地址字符型(20)是登记日期日期型(8)是备注字符型(20)是表3-3书籍类别信息表列名数据类型可否为空类别编号字符型(10)否类别名称字符型(20)是关键词字符型(20)是备注字符型(40)是表3-4书籍信息表列名数据类型可否为空书籍编号字符型(10)否书籍名称字符型(40)否书籍类别字符型(20)否书籍作者字符型(20)否出版社名称字符型(20)是出版日期日期型(8)是书籍页码整型(4)是关键词字符
25、型(20)是登记日期日期型(8)是是否被借出字符型(3)是备注字符型(40)是 表3-5借阅信息表列名数据类型可否为空借阅编号字符型(10)否读者编号字符型(10)否读者姓名字符型(20)否书籍编号字符型(10)否书籍名称字符型(20)是出借日期日期型(8)是还书日期日期型(8)是备注信息字符型(40)是表3-6 系统用户表列名数据类型可否为空用户名称字符型(10)否用户密码字符型(10)是用户描述字符型(10)是3.图书馆管理信息系统数据管理员记录单借/还书管理系统管理借阅者 凭证密码借阅凭证 管理者书籍管理借书记录 还书记录借/ 借/还书报表 书籍清单 凭证新书第四章 图书馆管理系统总体设
26、计1功能模块的划分1.1系统功能主界面的设计这一模块的主要功能是作为系统主界面为进入本系统不同功能界面选择提供一个接口。打开“图书馆信息管理系统”项目后,在项目管理器中展开“其他”文件夹,用鼠标选中菜单,单击右侧的“新建”按钮,在弹出的对话框中将该数据库文件存储为d:毕业设计菜单.mnx。然后单击右侧的“插入”按钮,在左侧填入菜单第一项的名称,将“结果”设为“子菜单”,再单击“创建”按钮;象上面介绍的一样再次添加菜单项,名称为“添加用户”,结果设为“过程”,再单击“创建”按钮,在弹出的代码窗口中加入代码:do form d:毕业设计添加系统用户.scx反复进行上述操作,建立如下结构的菜单。系统
27、添加用户退出读者管理读者种类管理读者信息管理书籍管理书籍类别管理书籍信息管理借阅信息管理借书信息管理添加借书信息浏览/修改借书信息还书信息管理添加还书信息帮助关于本软件这样就完成了对系统菜单的设计,为了让程序在启动时候能够调用上面创建的菜单,还应当新建一个运行程序。打开“图书馆信息管理系统”项目后,在项目管理器中展开“代码”文件夹,用鼠标选中菜单,单击右侧的“新建”按钮,在弹出的对话框中将该数据库文件存储为d:毕业设计主程序.prg 图4-1新建主程序单击右侧的“修改”按钮,在主程序内加入如下代码:set defa to d:毕业设计set directory to curdir()*将程序的
28、资源路径设为当前程序所在文件夹_screen.windowstate=2_screen.width=625_screen.height=550*设定原始窗口大小_screen.autocenter=.T.*将窗口定义在屏幕中间显示push menu _msysmenu*保存原来的系统菜单do 菜单.mpr*执行系统菜单do form 系统登录*运行系统登录on shutdown quit*这行代码的作用是为窗口提供关闭功能read events*等代事件pop menu _msysmenu*还原系统菜单保存菜单。保存“主程序.prg”后,继续在“代码”文件夹下面,鼠标选中“主程序.prg”右键
29、单击,在出现的菜单中选择“设置为主文件”,这样就把“主程序.prg”设置成为了主文件,由它调用其他的功能模块。1. 2系统用户管理模块系统用户管理模块主要实现如下功能:l 用户登录l 添加用户1.3读者种类管理模块图书馆需要管理不同种类的读者,并且不同读者享受的服务不同。读者种类管理模块主要实现如下功能:l 添加读者种类l 修改读者种类l 删除读者种类1.4读者信息管理模块读者信息管理模块主要实习那如下功能:l 添加读者信息l 修改读者信息l 删除读者信息l 查询读者信息1. 5书籍种类信息模块书籍类别管理模块主要实现如下功能:l 添加书籍类别l 修改书籍类别l 删除订书信息1. 6书籍信息管
30、理模块书籍信息管理模块主要实现如下功能:l 添加书籍信息l 修改书籍信息l 删除书籍信息l 查询书籍信息1.7借阅信息管理模块借书信息管理模块主要实现如下功能:l 添加借书信息l 修改借书信息l 删除借书信息l 查询借书信息还书信息管理模块主要实现如下功能:l 添加还书信息2. 数据库的结构设计首先建立一个“图书馆管理信息系统”的项目,以便管理本系统中所有的数据,用鼠标选中数据库,单击右侧的“新建”按钮,在弹出的对话框中将该数据库文件存储为D:毕业设计数据1.dbc。在弹出的数据库设计器中单击鼠标右键,选择“新建表”,为数据库添加数据表。将表存储为D:毕业设计读者信息种类.dbf。在弹出的表设
31、计器中填写表的内容。每个表的字段设置完成后,单击“确定”按钮后可以为表输入数据,如不想输入,可以先“取消”,以后再输入。具体方法如下:(1)选中要输入数据的表,单击“浏览”按钮;(2)弹出无数据的表,在Visual foxPro 的主窗口中选择“显示”,选择“编辑”,再选择“追加方式”就可以在表中输入数据了。第五章 图书馆管理信息系统模块设计1.借阅信息管理模块流程图借/还管理制凭证系统管理审核密码借阅者书籍管理登记记录单借/还报表借/还管理编制记录借书记录还书记录2书籍信息管理模块流程图书籍管理员审查/登记入单凭证新书书籍清单3 读者信息管理模块流程图管理员审核/制凭证凭证读者密码读者记录管
32、理员登记第六章 图书馆管理信息系统程序设计 1.系统用户管理模块的设计 系统用户管理模块主要实现:l 用户登录l 添加用户1.1用户登录打开“图书馆管理信息系统”项目后,在项目管理器中展开“文档”文件夹。用鼠标选中表单,单击右侧的“新建”按钮,在弹出的对话框中将该数据库文件存储为D:毕业设计系统登录.scx。然后将新建的Form1的Caption属性改为登录,在登录表单中添加表6-1所示控件。 图6-1为用户登录运行界面。控件名控件类型属性名称属性值Label1标签Caption图书馆管理信息系统Label2标签Caption用户名Label3标签Caption用户密码Text1文本框Name
33、用户名Text2文本框Name用户密码Command1命令按钮Caption确定Command2命令按钮Caption取消表6-1 “用户登录”控件的主要属性在Command1添加如下代码:use d:毕业设计系统用户表.dbfcname=alltrim(thisform.用户名.value)ppassword=alltrim(thisform.用户密码.value)set order to 用户名称seek cnameif (系统用户表.用户密码)=ppasswordthisform.release useendif在Command2添加如下代码:thisform.release图6-1 用
34、户登录界面1.2添加系统用户打开“图书馆管理信息系统”项目后,在项目管理器中展开“文档”文件夹。用鼠标选中表单,单击右侧的“新建”按钮,在弹出的对话框中将该数据库文件存储为D:毕业设计添加系统用户.scx。然后将新建的Form1的Caption属性改为添加系统用户,在添加系统用户表单中添加表6-2所示控件,图6-2为添加系统用户运行界面。表6-2 “添加系统用户”控件的主要属性控件名控件类型属性名称属性值Label1标签Caption用户名称Label2标签Caption用户密码Label3标签Caption用户描述Text1文本框Name用户名称Text2文本框Name用户密码Text3文本
35、框Name用户描述Command1命令按钮Caption确定Command2命令按钮Caption取消在Command1添加如下代码:insert into 系统用户表(用户名称,用户密码,用户描述);values(thisform.用户名称.value,thisform.用户密码.value,thisform.用户描述.value)thisform.release在Command2添加如下代码:thisform.release图6-2 添加系统用户2.借阅信息管理模块的设计借书信息管理模块主要实现如下功能:l 添加借书信息l 修改借书信息l 删除借书信息l 查询借书信息还书信息管理模块主要实
36、现如下功能:l 添加还书信息2.1添加借阅信息模块的设计首先新建一个空表单,命名为“添加借书信息表”,并为数据环境添加读者信息表和书籍信息表。设计表单界面,在表单中添加表6-3所示控件,并调整位置如图6-3所示表6-3 “添加借阅信息表”控件的主要属性控件名控件类型属性名称属性值借阅编号1文本框Value空读者编号1组合框Value空书籍名称1文本框ReadOnly.T.-真书籍编号1组合框Value空读者姓名1文本框ReadOnly.T.-真出借日期1文本框Value空还书日期1文本框Value空备注信息1文本框Value空Command1命令按钮Caption确认添加Commacd2命令按
37、钮Caption取消添加Image1图象Form1Caption添加借阅信息表图6-3 添加借阅信息表界面由于在数据库中我们把读者编号和书籍编号作为主键,因此通过读者编号就能在读者信息表中找到对应的读者姓名,同样在书籍信息表中也能找到对应的书籍名称。此外表单中的组合框用来选择所用可用的书籍和读者。下面的代码将实现上述功能。在组合框读者编号1的Init事件中添加代码如下:this.clear*清空组合框里的Item。在使用该表单前读者信息表已经存在记录。local aCountries,country*定义临时变量dimension aCountries1*定义变量数组用来存放不同的读者编号se
38、lect distinct 读者编号 from 读者信息表 into array aCountriesfor each m.cCountry in aCountries*将所选出的不同记录添加到组合框的选项中if !empty(m.cCountry) this.additem(m.cCountry) endif endfor在组合框读者编号1的InteractiveChange事件中添加代码如下:select 读者姓名 from 读者信息表;where (读者编号=thisform.读者编号1.value) into array resultthisform.读者姓名1.value = res
39、ult(1)*根据选择的读者编号,把读者姓名回显到文本框中在组合框书籍编号1的Init事件中添加代码如下:this.clear*清空组合框里的Item。在使用该表单前书籍信息表已经存在记录。local aCountries,country*定义临时变量dimension aCountries1*定义变量数组用来存放不同的书籍编号select distinct 书籍编号 from 书籍信息表 into array aCountriesfor each m.cCountry in aCountries*将所选出的不同记录添加到组合框的选项中 if !empty(m.cCountry) this.a
40、dditem(m.cCountry) endif endfor在组合框书籍编号1的InteractiveChange事件中添加代码如下:select 书籍名称 from 书籍信息表;where (书籍编号=thisform.书籍编号1.value) into array resultthisform.书籍名称1.value = result(1)*根据选择的书籍编号,把书籍名称回显到文本框中在命令按钮Command1的Click事件中添加代码如下:insert into 借阅信息表 (借阅编号,读者编号,读者姓名,书籍编号,书籍名称,出借日期,还书日期,备注信息);values(thisfor
41、m.借阅编号1.value,thisform.读者编号1.value,thisform.读者姓名1.value,thisform.书籍编号1.value,thisform.书籍名称1.value,;ctod(thisform.出借日期1.value),ctod(thisform.还书日期1.value),thisform.备注信息1.value)*将借书信息保存到借阅信息表中thisform.release*释放当前表单在命令按钮Command2的Click事件中添加代码如下:thisform.release保存表单,并在系统菜单中添加调用该表单的过程,代码如下;do form d:毕业设计添加借阅信息.scx表单运行结果如图6-4所示 图6-4 添加借阅信息表运行结果2.2浏览/修改借书信息模块