最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

图书管理系统论文

来源:动视网 责编:小OO 时间:2025-09-23 18:50:05
文档

图书管理系统论文

第一章 开发单位图书管理系统的重要性? 1.1计算机已经成为我们学习和工作的得力助手:今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全,等等。1.2在单位图书室使用计算机管理图书的意义现在我国的很多单位图书室图书馆中图书的管理水平还停留在纸介质的基础上,这样的机制已经不能
推荐度:
导读第一章 开发单位图书管理系统的重要性? 1.1计算机已经成为我们学习和工作的得力助手:今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全,等等。1.2在单位图书室使用计算机管理图书的意义现在我国的很多单位图书室图书馆中图书的管理水平还停留在纸介质的基础上,这样的机制已经不能
第一章  开发单位图书管理系统的重要性?

 1.1计算机已经成为我们学习和工作的得力助手:

今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以

下几个方面:

首先,计算机可以代替人工进行许多繁杂的劳动;

其次,计算机可以节省许多资源;

第三,计算机可以大大的提高人们的工作效率;

第四,计算机可以使敏感文档更加安全,等等。

1. 2在单位图书室使用计算机管理图书的意义

现在我国的很多单位图书室图书馆中图书的管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。

我作为一个计算机及应用专业的本科生,希望可以在这方面有所贡献。改革的总设计师同志曾经说过:“科学技术是第一生产力”,我希望能用我这三年的所学编制出一个实用的应用程序来帮助这些单位图书室图书馆进行更有效的图书管理。 

归纳起来,好处大约有以下几点:

(1) 可以存储所有的图书档案,安全、高效;

(2) 只需一到二名图书录入员即可操作系统,节省大量人力;

(3) 可以迅速查到所需信息。

1.3图书档案的设计分析

根据实际情况,我们使用原型法(Rapid Prototyping)即以少量代价快速地构造一个可执行的软件系统模型。使用户和开发人员可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。此时模块也发展成为最终产品了。

 

第二章 图书管理系统如何开发?

2.1 编程环境

Microsoft公司的Visual Foxpro6.0是Windows应用程序开发工具,是目前最为广泛的、易学易用的面向对象的开发工具。Visual Foxpro6.0提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。另外,VF 还具有:用户通过各种动作控制应用程序的流程, 简单的Visual Foxpro语言与丰富而功能强大的内置函数,面向对象的编程,跨平台开发, 与数据库的连接性等一系列的优点,因此,实现本系统,VF是一个相对较好的选择。

 

2.2 关系型数据库的实现

Visual Foxpro6.0本身就是一种关系数据库,它体积虽小但功能强大,支持多种平台,几乎拥有其它大型关系型数据库的所有功能,如触发器、存储过程等。由于Visual Foxpro6.0本身已经是一个完整的数据库系统,所以在项目的开发阶段,单机即可开发大型数据库应用。开发完成后,几乎不用更改,把开发出的应用系统升迁到网络中即可运行在其它数据库上。VF可以通过标准的SQL语句及自身的语言来访问数据库,从而实现数据检索。

第三章 Windows下的Visual Foxpro6.0 编程环境简介

 

3.1 Visual Foxpro简介

Microsoft Visual FoxPro 6.0是创建高性能、优秀数据库组件和解决方案的优秀工具。Visual FoxPro 6.0 提供给开发人员必要的工具管理数据--组织信息表格、运行查询、创建关系型数据库管理系统(DBMS)、为终端用户设计数据管理应用程序。 

Visual FoxPro 6.0 同样提供了创建应用程序的工具,并结合客户机/服务器和Internet 。Visual FoxPro 的设计工具、面向对象的以数据为中心的语言机制、快速数据引擎、创建组件功能使它成为一种功能强大的开发工具,开发人员可以使用它作为开发工具参加基于Windows分布式内部网应用程序(Windows Distributed interNet Applications --DNA)的企业应用程序开发。 

Visual FoxPro 6.0 是FoxPro的进一步发展,从面向过程的桌面数据库系统到面向对象的开发环境,这个开发环境带有开发人员创建优秀的客户机/服务器数据库和Internet数据库的组件及应用程序的工具。 

Visual FoxPro具有完全的面向对象的类设计能力,包括继承、子类、 封装、多态。可以创建可视的、不可视的可重用类库,以便动态地减少开发时间。 

Visual FoxPro 远程视图使用ODBC (开放式数据库连接--Open Database Connectivity)与 SQL数据库保持联系,使Visual FoxPro成为一种创建客户机/服务器应用程序的优秀工具,因为把文件从服务器应用程序移到客户机应用程序不需要做额外的工作。 

开发人员可以利用Visual FoxPro 创建定制COM (组件对象模型--Component Object Model) 组件。开发人员可以创建以数据为中心的中间级事务对象,可以被其他应用程序简单地调用和重用。另外,组件还可以用来创建基于Visual FoxPro的Internet数据库应用程序。 

根据开发人员的反馈意见,Microsoft在开发Visual FoxPro 6.0时,重点做了以下改进: 

∙创建高性能的可重用组件。Visual FoxPro 6.0 是一种优秀的组件创建工具,创建出的组件可以在客户机/服务器、Internet、intranet环境中使用。这些组件是典型的控制服务器和处理本地异地数据的其他组件的中间级事务, 

∙方便学习使用。Visual FoxPro 6.0 较从前版本更容易学习和使用,它提供了更多的内置功能和在应用程序中使用的可重用组件,使那些使用Microsoft FoxPro? 2.x的开发人员很容易掌握新版本。 

∙更好的开发环境。Visual FoxPro 6.0 有一套更好的开发环境。改进的开发环境和开发工具使开发人员可以更充分地发挥他们的能力去进一步改进环境。 

∙企业应用程序开发。Visual FoxPro 6.0 支持Windows DNA 框架,将它作为Visual Studio 的一个成员。使用Visual FoxPro的开发人员可以创建基于组件的应用程序,可以使用Visual Studio 企业版提供的工具创建企业应用程序。 

创建高性能、可升级组件

"软件开发世界正在进行一场无声的,采用组件的软件为用户和开发人员提供了许多方便。在过去,一旦运作环境改变,整个系统都要更新。有了组件以后,只需要改变系统的一部分。而且用户可以从开发人员那里得到最为合适的新的组件。" 

基于组件开发的优势是显而易见的。然而,这一新的开发方式还面临一些挑战: 

∙使用FoxPro 的开发人员如何继续使用Visual FoxPro 去创建和使用组件? 

∙怎样移植现有应用程序,重用现有代码和数据? 

∙怎样在保护现有投资情况下向下相容? 

Microsoft 设计和创建Visual FoxPro 6.0 面临的挑战就是如何解决以上这些问题。关键是Visual FoxPro 提供了一些为开发人员准备的工具,开发人员在开发实际需要的、可伸缩的、分布式的、基于组件的应用程序时可以对这些工具进行修改。使用FoxPro的开发人员不愿看到自己被计算机的发展抛在后面。 

在Visual FoxPro 6.0中,Microsoft主要为开发人员提供了许多工具,包括创建组件、实现客户机/服务器功能、实现Web 功能。 

∙创建可以被其他人使用和重用的组件。

Windows DNA应用程序是多级的、基于组件的系统,每级都提供一项服务。开发人员可以使用COM向中间级服务器写数据,中间级服务器链接前台数据与后台数据,并且提供诸如数据检索、数据操作、合法性检测这样的事务服务。因为COM是与语言无关的,开发人员可以使用他们熟悉的语言和工具创建组件。他们可以重用现有代码,实现向上相容,以保护他们的投资。 

∙提供创建Web数据库应用程序的方法。使用Visual FoxPro的开发人员创     建功能强大的数据库应用程序已经有许多年历史了。使用合适的工具和程序构造,他们可以利用这种知识创建Internet数据库应用程序,应用程序中Visual FoxPro代码接收来自浏览器的请求、检索数据、操作数据、建立发回到浏览器的HTML文件。开发人员可以使用现有代码和技巧在Web上实现他们的应用。 

∙提供可调整的应用程序。应用程序必须能够支持上百个要求COM组件服务的用户。Microsoft传输服务器(Microsoft Transaction Server)可被用来处理组件的多用户请求--自动实现,不须任何编码。如果一个COM组件要用于分布式应用程序,支持传输服务器是很重要的。 

方便学习和使用你也许会把从FoxPro 2.x 到Visual FoxPro 的转化看成是二十一世纪的献礼,也许会把它看作是一场灾难。" 

越来越多使用FoxPro的开发人员开始使用Visual FoxPro。短短不到六个月的时间,已经有36%的用户使用了Visual FoxPro 。然而,开发人员从FoxPro移植到Visual FoxPro的一般感觉是,尽管FoxPro 2.x中的许多东西没有改变,在开发应用程序中仍有太多的新特性新变化使得好象换了一种开发工具。使用Visual FoxPro 的开发人员中,有48%的人感到学习掌握这一新产品比他们预计的要难。 

Visual FoxPro 6.0使所有开发人员,特别是那些新手,在创建应用程序时,更加容易地使用面向对象程序设计编程。 

∙预编译类库提供了一般功能。面向对象程序设计可以大大减少开发时间,因为开发人员可以根据应用程序的需要重用这些类。重用的关键在于拥有一个庞大的已测试类库集。 

∙面向对象应用程序框架。面向对象应用程序框架由提供用于任何应用程序核心服务的类组成。因为开发人员不需要在每次创建新应用程序时都重写那些代码,他们可以把精力集中在特定应用程序代码上。开发和维护都更简单了,因为每个使用框架创建的应用程序具有相似的结构和行为。 

∙创建基于面向对象框架应用程序的简单方法。面向对象应用程序应该使用一种简单的方法"挂接"诸如表格、报表这样的组件到应用程序,而不要求对面向对象程序设计、应用程序框架内部结构的详细知识。 

∙新改进的向导。向导自动完成一般任务和复杂任务,节约了开发人员的时间和精力。向导对生成那些开发人员不熟悉的新东西特别有帮助,比如在Web上公布数据。 

功能更强大的开发环境

开发人员希望Visual FoxPro的每个版本都使开发过程更加便利,能提供一套解决商业问题的改进工具。Microsoft在Visual FoxPro 6.0中添加了以下功能,使它的功能更强大、更易扩充: 

∙2000年问题的解决。Visual FoxPro 6.0中的安全卫士帮助开发人员在应用程序中解决了2000年问题。 

∙现有应用程序向Web的简单移植。创建Visual FoxPro 表格或完整应用程序,将它们作为活动文档,可以在Microsoft Internet Explorer下看到,这种能力提供了一种简单的移植现有应用程序到Web、在浏览器中实现Visual FoxPro功能的方法。 

∙对类库更好的管理。Visual FoxPro中使用面向对象程序设计性能,开发人员可以创建可重用类库。但是管理类是一项耗时耗力的工作。Visual FoxPro 6.0的工具简化了类库管理,因此开发人员可以在应用程序开发中简单地定位和使用相应的类。 

∙创建更好的应用程序。当Visual FoxPro开发人员在客户机/服务器和Internet应用程序中创建和使用组件时,创建牢固可靠的应用程序更为重要。组件越是稳定可靠,就越是容易创建、测试、配置基于组件的应用程序。 

∙应用程序之间更方便的数据共享。使用OLE拖放工具(Drag and Drop)在应用程序之间实现数据共享,更加便利地使用Windows平台。向Visual FoxPro 中增加这种数据共享能力使得开发人员可以创建用户界面更加友好的应用程序。同时,还使开发环境更容易使用。 

∙应用程序中更多的控制。使用Visual FoxPro 6.0的开发人员可以为类定义的属性添加合法代码,更多地控制用户行为。 

∙设计时间环境中更多的控制。开发人员不再需要为扩展Project Manager功能,手工存取和修改工程文件。工程挂钩授予项目管理器(Project Manager )程序访问控制权,可以创建与代码连接的工程级事件。 

企业应用程序发展(Enterprise Application Development)

因为对信息技术的利用在不断变化以适应新的商业需求,"企业应用程序"这一定义也在发展。在企业内部结构和应用程序发生极大改变的现在,普遍认为企业应用程序的特征包括: 

∙基于组件,这是从灵活性和可调整性来考虑的。 

∙要求支持生命周期,包括设计、开发、管理和分析。 

∙要求更加复杂的数据库结构。 

∙由开发小组开发。 

∙实现分布式,终端用户各不相同。 

购买Visual Studio 的Visual FoxPro 开发人员,如果购买的是企业版,将得到他所需要的额外的企业开发支持特性,包括:一整套基于组件的开发环境、企业数据库特性、高效的应用程序设计、性能分析、配置工具、开发小组开发支持,以及应用程序服务器的Microsoft BackOffice家族的新版本。 

Visual Studio为企业应用程序发展提供了许多工具。使用Visual FoxPro的开发人员可以使用这些工具作为Visual FoxPro 开发环境的补充。 

∙支持全程数据存取。Visual FoxPro 6.0 开发人员可以使用ODBC和OLE DB 从企业的多个数据源去查询和操作数据。另外,可以在大量其它工具中使用Visual FoxPro 数据。 

∙设计类和组件的更好工具。利用Visual FoxPro中的工具,开发人员可以快速地创建由可重用组件组成的分布式应用程序。当应用程序中的组件数目增加时,复杂度也随之增加。因此创建基于组件的、规模不一的企业和Internet应用程序需要进行建模。 

∙可视化数据库工具。客户机/服务器开发中,此开发工具具有查询、设计、改变计划、存储调试的功能。使用Visual FoxPro 的开发人员可以使用可视化数据库工具与SQL Server 、Oracle相联系。 

 

 

第四章 使用Visual FoxPro实现关系型数据库

4.1 数据库的概念

 

数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数据库含

有各个不同部分的术语,象记录、域等。 

 

4. 2新建一个数据库

创建任何一个数据库的第一步是仔细的规划数据库,设计必须

是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模

型设计。

(1) 标识需要的数据;

(2) 收集被标识的字段到表中;

(3) 标识主关键字字段;

(4) 绘制一个简单的数据图表;

(5) 规范数据;

(6) 标识指定字段的信息;

(7) 创建物理表。

 

 创建数据库

参照VF自带的数据库,可以很方便地创建了本系统将要使用的本地数据库。

表说明如下:

  Book_recno.dbf      借书登记表

  Book_table.dbf        图书资料表

  B_table.dbf           读者类别查询中间表    

 Group_table.dbf       图书类别查询中间表

  Pass_word.dbf     管理员ID密码表

  User_table.dbf        读者资料表

 

表结构介绍:

 Book_recno.dbf      借书登记表

字段名称字段类型字段说明
TSBHC(10)图书编号
TXMC(10)条形码
SMC(20)书名
BHC(10)编号
XMC(10)姓名
JSBZC(4)借书标志
JSSJD(8)借书日期
 

 

Book_table.dbf        图书资料表

字段名称字段类型字段说明
TSBHC(10)图书编号
TXMC(10)条形码
SMC(20)书名
ZZC(20)作者
CBSC(40)出版社
CBSJD(8)出版时间
LBC(20)类别
XCSLN(3)现存数量
TSZSN(3)图书总数
RGSJD(8)入馆时间
TSJGN(8,2)

价格 
ZCCSN(5)借出次数
JSQXN(2)借书时限
 

B_table.dbf           读者类别查询中间表    

字段名称字段类型字段说明
CHINA_LBC(10)中间字段
LBC(15)中间字段
 

Group_table.dbf       图书类别查询中间表

字段名称字段类型字段说明
CHINA_LBC(10)中间字段
LBC(15)中间字段
 

Pass_word.dbf     管理员ID密码表

字段名称字段类型字段说明
GLY_IDC(10)管理员ID

MMC(10)管理员密码
GLY_NAMEC(10)管理员姓名
 

 

 

User_table.dbf        读者资料表

字段名称字段类型字段说明
BHC(10)编号
XMC(10)姓名
XBC(2)性别
DWBMC(20)单位部门
ZZC(40)住址
YJSSN(4)已借已数
BZC(20)备注
LBC(10)职业
DJRQD(8)登记日期
JSRQD(8)借书日期
HSRQD(8)还书日期 
第五章   系统总体规划

 

5.1 系统功能

5. 1.1系统功能概述

 

     图书管理软件是随着计算机产业的高速发展和计算机在各个领域普及,针对图书管理的普遍性和特殊性而提出的一套全面的、系统的现代化管理方法。使用户从繁忙、复杂的手工记录工作程序中解脱出来,并可以从多方面掌握图书管理的详细情况,为用户提供准确的、可靠的数据。

     毕业论文设计的图书管理系统是专为小型图书馆/信息中心/资料室设计的自动化集成系统。适合馆员少,藏书量不大的单位。所有工作模块集中在同一界面,工作流程一目了然,方便工作人员操作掌握。

 

5.1.2图书管理系统的定位

 

    针对图书馆的日常工作,单位图书管理系统在完成从图书的采购到入库,外借到收回.其中包括了,逾期滞纳金的收取,丢失图书的处理等等各个方面的工作.能够在单位图书管理中实现快捷、方便等特点。作为单位管理的一部分。 

5.1.3图书管理系统的开发目标

 

图书管理系统的开发目标:为图书馆管理提供可靠的、先进的、适应性强的应用系统。从多方面为学生以及教职工提供及时、准确的借书服务。单位图书管理系统应使用统一标准化的数据字典、统一数据标识编码;必须具有:统一的与其它系统和接口,包括:统一的协议栈、统一的数据格式。

 

5.1.4 系统边界定义

单位图书管理系统的边界定义从两个方面来描述:1)系统处理的业务种类;2)系统包括的处理功能。基于此两类划定,可决定单位图书管理系统与其它业务处理/管理系统的接口。

 

第六章 系统具体实现

 

6.1 系统开发平台

    开发平台:

        操作系统: Microsoft Windows XP 

        开发工具: Microsoft Visual Foxpro 6.0         

硬件配置:

        联想开天4800商用机

        CPU: intel 1.7G

        DDR:  256M

        HD:    40G

 

6.2 用户界面的实现

程序菜单功能介绍:

借书------根据您提供的图书条形码和图书编号确认图书,再根据读者的编号确认读者后把此书借给这位读者。

还书------根据您提供的图书条形码和图书编号确认图书,再根据读者的编号确认读者后把此书归还。

图书管理------对所有图书的资料进行添加,修改和删除等操作。

读者管理------对所有读者的资料进行添加,修改和删除等操作。

查询------所有图书、不在馆图书,今天借出图书、今日归还图书、今日新进图书和有条件查询。

管理员------在这里修改管理员的登录密码。

系统程序构成:

 图书管理系统的所有模块都包括在一个项目中,这个项目我们命名为Tsgl.pjx,项目由数据、文档、类库、代码、其它五部分组成。其中数据又分为数据库和自由表;文档分为表单、报表和标签;代码分为程序、API、01/10应用程序;其它分为菜单文件、文本文件、其它文件。系统构成图表如下图:

 项目的各部分完成系统的不同任务,但从总体上讲,可分成两个方面分析,一个是数据源,为程序处理提供原始数据;一个是程序模块,是数据处理的方法和平台。把这两者有机的结合起来,就是一个完整的程序应用系统。

 

程序运行界面见下图:

 

说明:系统登录界面,只有输入正确的ID和密码才能进行图书管理系统。

 

说明:图书管理系统主界面。

 

说明:借书子程序操作界面。

 

说明:还书子程序操作界面。

 

说明:图书管理操作界面。提供图书新增、修改、删除等功能。

 

说明:读者管理操作界面。提供读者新增、修改、删除等功能。

说明:打印模块具有打印图书信息的功能

说明:管理员密码维护操作界面。

第七章 结束语

经过两个多月的设计和开发,《图书管理系统》已经开发完成。其功能基本符合用户需求。我认为在这次毕业设计的过程中,通过将所的理论知识与实际情况相结合,思考,全面分析,灵活运用所学知识,解决具体问题,将有力地促进理论水平的进一步提高。同时,对心理素质的锻炼和工作作风的培养,将有助于今后的工作与生活。但是,由于毕业设计时间较短,工作任务繁重,加上本人能力有限,所以该系统还有许多不尽如人意的地方,比如:联机文档比较少,用户界面不够美观,出错处理机制不够等一些问题,这些都有待进一步的改善。 

在本次毕业设计中,我从指导老师身上学到了很多东西。老师认真负责工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给予我很大的帮助,使我得到不少的提高,这对于我以后工作和学习都有一种巨大的帮助,在此深表感谢。

 

主要参考资料:

1、孙立明 刘琳等  Visual FoxPro 7.0高级编程  清华大学出版社 2002-6-1

2、 章立民 Visual FoxPro 6.0程序设计与应用  中国铁道出版社  2003-1-1

3、王晶莹、王国辉等 Visual FoxPro数据库开发实例解析 机械工业出版社 2003年9月 

4.王国辉、董韶华等Visual FoxPro 精彩编程200例 机械工业出版社 2004年9月

5.周桓、张雨、王国辉  Visual foxpro数据库开发关键技术与实例应用 人民邮电出版社 2004年5月

致   谢

    很认真的做完了毕业设计,在这里我不但学到了文化知识,实践动手能力,更形成了我的许多价值观,学会了许多做人做事的道理,除了自己的成长和收获不说,我真的很像感谢很多人。

    我要感谢我的毕业设计指导老师王老师,是您严谨的治学,适时的督促,不断地知道使我顺利完成了我的毕业设计,在整个毕业设计期间您不断地给与我帮助和指导使我不止完成了我的设计任务还学的了很多相关的专业知识,老师不但经验丰富知识领域宽广而且和善可亲,在完成毕设的过程您不但教授了我很多专业知识,还为我的未来发展学业工作提出了很多宝贵的意见,我们不但是亲切的师生,也是彼此的朋友,在我整个毕业设计的指导过程中您给我的印象就是认真负责,在这里我想对我可敬可亲的黄老师说一声:“谢谢!”

      非常感谢我的同学们我的老师们当我在毕业设计过程中遇到问题和困难时,是你们给我提出许多关键性的意见和建议,使我对整个毕业设计的思路有了总体的把握,并耐心的帮我解决了许多实际问题,使我获益良多。是你们教授了我丰富的知识,教会了我学习知识的能力。

      谢谢我的学校对我的教育,我将以更加饱满的热情投入到研究生阶段的学习中去,充实自己,完善自己,向着自己的目标不断地前进,用我的所学去实现我心中的梦想! 

 

附录 

程序功能介绍: 

**\\\\-------主控程序: main_tsgl.prg

clear all  从内存中释放所有的内存变量和数组以及所有用户自定义菜单栏、菜单和窗口的定义。

_screen.visible=.f.  主窗口VFP不可见 

set escape off     禁止运行的程序和命令在按 Esc 键后被中断。

set talk off           阻止对话结果传送到 Visual FoxPro 主窗口、系统信息窗口

set excl off   (私有数据工作期的默认方式)允许网络上的任何用户共享和修改网络上打开的表

set safety off         指定在改写已有文件时不显示对话框。

set dele on    使用范围子句处理记录(包括在相关表中的记录)的命令忽略标有删除标记的记录

set century on  指定在包含 10 个字符(包括日期分隔符)的日期格式中,用四位数字表示年。

set date to YMD        决定日期在日期时间表达式中的格式: yy/mm/dd

public M_js,M_hs,mypath,tsgl,demo[3]   定义变量、数组为公共变量

M_js= .T.    为变量赋值

M_hs= .T.

mypath=left(sys(16),rat("\\",sys(16))) 把当前路径赋给一个变量

set defa to &mypath  指定默认的驱动器、目录或文件夹

***------------------------------

dimension demo[3]    创建一维内存变量数组

     store '.F.' to demo[1]   为数组赋值

     store '.F.' to demo[2]

     store '.F.' to demo[3]

***----------传递ID、密码变量-----

sele 1                   激活指定工作区1 ,以下类似

 use book_table          打开一个表,以下类似

sele 2

 use group_table

sele 3

 use b_table

sele 4  

 use user_table

do form login_form    运行表单

 read events          当发出 READ EVENTS 命令时,Visual FoxPro 启动事件处理

说明:

   设置程序运行的环境参数、变量等。

**\\\\---- 密码验证表单: Login_form.scx

  **\\\\---- 控件: command1

  **\\\\---- click事件代码如下:

select gly_id,mm,gly_name from pass_word ;

where gly_id=allt(thisform.text1.value) and ;

mm=allt(thisform.text2.value)  into array demo

                       

if demo[1]='.F.' 

  = messagebox('登录ID或密码错误!',0+16+0,'提示')    信息提示窗口

  thisform.text1.setfocus       控件text1获得了焦点

 * return .T.

else    

 thisform.release   从内存中释放表单集或表单

 do login_app     运行程序

endif  

代码说明:

  SQL语句从密码表“Pass_word.dbf中选出gly_id,mm,gly_name三个字段的记录与所输入的数据进行比较,如果相等。则把它们赋值到一个数组中,然后执行下一步程序。否则数组为最初所赋的值“.F.”,程序返回到数据输入状态,直到正确输入或者退出。

    

  **\\\\---- 控件: command2

  **\\\\---- click事件代码如下:

thisform.release

clear events             发出 CLEAR EVENTS 命令停止事件处理

代码说明:

 释放当前表单,清除当前事件。

**\\\\-------联接程序: main_tsgl.prg

DO FORM tsgl.scx name tsgl &&窗口句柄传递

DO Menu_tsgl.mpr WITH tsgl,.t.,.t.     运行菜单

 

代码说明:

  运行图书管理主表单以后,再运行菜单组件。

**\\\\---- 图书管理主表单:Tsgl.scx 

    主要属性:  

    AlwaysOnTop = .F.    其他窗口可以覆盖住表单窗口。

     AutoCenter  = .T. 指定表单对象第一次显示于 Visual FoxPro 主窗口时,自动居中放置

     ShowWindows = 2    作为顶层表单

     Caption = 江苏沛县疾病预防控制中心图书管理系统   表单标题

属性说明:

  当前表单优先居前,自动居中,为顶层表单,表单标题为“江苏沛县疾病预防控制中心图书管理系统”。

   **\\\\---- Init 事件代码如下:

sele 5

 store mcsz.no_1 to xxx

thisform.caption = xxx 

   **\\\\---- QueryUnload 事件代码如下:

thisform.release   从内存中删除内存变量和数组。

clear events

**\\\\-------借书子程序:Jies.scx

  **\\\\---- 控件: command1  

  **\\\\---- click事件代码如下:

sele 1

if thisform.optiongroup1.option1.value=0  当前单选框的值为0

  locate for txm=upper(allt(thisform.text2.value))  从表中查找输入的条形码

     if not found()    

      =messagebox('没有该图书的条形码!',0++0,'提示')

      go top        指针定位到表头

     else

      thisform.command3.enabled=.T.     指定对象可以响应用户引发的事件

     endif

 endif  

if thisform.optiongroup1.option1.value=1    当前单选框的值为1

  locate for tsbh=upper(allt(thisform.text1.value))

   if not found()

      =messagebox('没有该图书编号!',0++0,'提示')

      go top

    else

     thisform.command3.enabled=.T.

   endif

  endif      

  thisform.refresh

代码说明:

  根据图书的条形码或图书编号查询所借书目。只有所借书目存在,才能对读者信息进行操作。

  **\\\\---- 控件: command2  

  **\\\\---- click事件代码如下:

 thisform.text2.value=' '    赋文本框text2的值为空

 thisform.text1.value=' '

 thisform.text1.setfocus

  **\\\\---- 控件: command3  

  **\\\\---- click事件代码如下:

sele 4

  locate for bh=upper(allt(thisform.text12.value)) 

     if not found()

      =messagebox('没有该读者的编号!',0++0,'提示')

      go top

     endif

thisform.command5.enabled=.T.

thisform.refresh

代码说明:

  对借书读者的资料进行确认。

  **\\\\---- 控件: command5  

  **\\\\---- click事件代码如下:

nAnswer = MESSAGEBOX('确认所借书目的资料无误吗?',4+32+0,'重要提示')

DO CASE

   CASE nAnswer = 6

       sele 1      

     If xcsl=0

       =messagebox('该图书已经没有库存!',0++0,'提示') 

        return .T.

     Else     

     replace xcsl with xcsl-1 ,zccs with zccs+1    现存数量减1,借出数量加1

      insert into book_recno (tsbh,txm,sm,bh,xm,jssj,jsbz) ;

         values( upper(allt(thisform.text7.value)), ;

                 upper(allt(thisform.text4.value)), ;

                 upper(allt(thisform.text3.value)), ;

                 upper(allt(thisform.text13.value)),;

                 upper(allt(thisform.text14.value)),;

     datetime(),'借出' )    把当前资料插入到表book_recno中

       sele 4

     replace yjss with yjss+1     读者资料表中的已借书数加1

     Endif               

   CASE nAnswer = 7

   ENDCASE

代码说明:

  在确认所输入的图书和读者资料无误后,程序开始对图书资料表、读者资料表、借录表这三个表进行修改和录入。 

MESSAGEBOX( ) 对应每个按钮的返回值。

返回值  按钮

1        确定

2        取消

3        放弃

4        重试

5       忽略

6       是

7        否

**\\\\-------还书子程序:Jies.scx

  **\\\\---- 控件: command1  

  **\\\\---- click事件代码如下:

sele 1

if thisform.optiongroup1.option1.value=0       

  locate for txm=upper(allt(thisform.text2.value)) 

     if not found()

      =messagebox('没有该图书的条形码!',0++0,'提示')

      go top

     endif

 endif  

if thisform.optiongroup1.option1.value=1 

  locate for tsbh=upper(allt(thisform.text1.value))

   if not found()

      =messagebox('没有该图书编号!',0++0,'提示')

      go top

   endif

 endif      

 thisform.command3.enabled=.T.

 thisform.refresh

**\\\\---- 控件: command3  

  **\\\\---- click事件代码如下:

  thisform.text13.visible= .T.    显示当前文本框text13

sele 4

   locate for bh=upper(allt(thisform.text12.value)) 

     if not found()

        =messagebox('输入的读者编号有错吧?',0+32+0,'提示')

        go top   

     else     

       thisform.refresh

       thisform.command5.enabled=.T.

     endif

**\\\\---- 控件: command5  

  **\\\\---- click事件代码如下:

sele 1

  replace xcsl with xcsl+1      现存数量加1

   insert into book_recno (tsbh,txm,sm,bh,xm,jssj,jsbz) ;

         values( upper(allt(thisform.text7.value)), ;

                 upper(allt(thisform.text4.value)), ;

                 upper(allt(thisform.text3.value)), ;

                 upper(allt(thisform.text12.value)),;

                 upper(allt(thisform.text13.value)),;

                 datetime(),'还回' )  

thisform.refresh               

     =messagebox('操作完成,该书已经归档!',0++0,'完成')

   thisform.command5.enabled=.F.  

代码说明:

  还书程序代码和借书程序代码比较相似,请看借书程序代码说明。

**\\\\---- 控件: command7  

  **\\\\---- click事件代码如下:

M_hs= .T.

thisform.release

**\\\\-------图书管理子程序:Tsgl_tsgl.scx

  **\\\\---- 控件: command1  

  **\\\\---- click事件代码如下:

sele 1

if thisform.optiongroup1.option1.value=0       

  locate for txm=upper(allt(thisform.text2.value)) 

     if not found()

      =messagebox('没有该图书的条形码!',0++0,'提示')

      go top

     endif

 endif  

if thisform.optiongroup1.option1.value=1 

  locate for tsbh=upper(allt(thisform.text1.value))

   if not found()

      =messagebox('没有该图书编号!',0++0,'提示')

      go top

   endif

 endif      

 thisform.refresh

代码说明:

  根据图书的条形码或图书编号查询图书。并且可以对当前所选定的图书进行修改。

**\\\\---- 控件: command3  

  **\\\\---- click事件代码如下:

sele 4

if .not.bof()    如果不到表头

    skip -1    指针上移一条记录

   thisform.command1.setfocus

   thisform.refresh

  endif  

代码说明:

  当前所查询的图书资料上翻一条。

**\\\\---- 控件: command4  

  **\\\\---- click事件代码如下:

sele 4

if .not.eof()   如果不到表尾

    skip       指针下移一条记录

   thisform.command2.setfocus

   thisform.refresh

  endif  

代码说明:

  当前所查询的图书资料下翻一条。 

**\\\\---- 控件: command5  

  **\\\\---- click事件代码如下:

x=messagebox("真的删除编号为 "+allt(thisform.text1.value)+"的图书吗?",4+32+256,"重要提示")

    if x=6

      delete        对当前记录作删除标记

       thisform.refresh

    else

      return .F.

    endif

代码说明:

    删除所选定的当前图书资料。

**\\\\---- 控件: command7  

  **\\\\---- click事件代码如下:

sele 4

   append blank     增加一条空记录 

     go bottom   指针到表尾

       thisform.refresh

代码说明:

    新增加一条图书资料。

**\\\\-------密码维护子程序:Password.scx

  **\\\\---- Init 事件代码如下:

thisform.label6.caption=demo[1,3]  当前标签的内容为登录时管理员的姓名

代码说明:

  数组Demo[1,3]的值为最初管理员输入ID所对应的名字。在密码维护表单中,用以提醒管理员修改的ID和密码所对应名字。

**\\\\---- 控件: command1  

  **\\\\---- click事件代码如下:

store allt(thisform.text1.value) to dl_1  把TEXT11的值赋到变量dl_1中

store allt(thisform.text3.value) to dl_3

if thisform.text1.value = thisform.text2.value and ;

    thisform.text3.value = thisform.text4.value

    update  pass_word set gly_id=dl_1 where gly_name=allt(demo[1,3])

    update  pass_word set     mm=dl_3 where gly_name=allt(demo[1,3])

    对密码表进行更新

    =messagebox('ID和密码修改成功!',0++0,'信息')

else

  =messagebox('ID或密码验证不统一,请重输入!',0++0,'错误')  

endif    

代码说明:

  表单共有ID修改及验证、密码修改及验证四个文本输入框。用以保证ID及密码修改的准确性。

文档

图书管理系统论文

第一章 开发单位图书管理系统的重要性? 1.1计算机已经成为我们学习和工作的得力助手:今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全,等等。1.2在单位图书室使用计算机管理图书的意义现在我国的很多单位图书室图书馆中图书的管理水平还停留在纸介质的基础上,这样的机制已经不能
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top