图书馆图书管理的数据库系统
第一章 概述
1.1数据库及其应用
自20世纪70年代以来,数据库技术得到迅速发展.目前世界上已经有数百万个数据库系统在运行,其应用已经深入到社会生活的各个领域,从企业管理,银行管理,资源管理,经济预测一直到信息检索,档案管理,普查统计等.我国20世纪90年代初在全国范围内装备了12个以数据库为基础的大型计算机系统,这些系统分布在邮电,计委,银行,电力,铁路,气象,民航,情报,公安,军事,航天和财税等行业.
现在,数据库技术还在不断发展,并且不断的与其它计算机技术相互渗透.数据库技术与网络通信技术相结合,产生了分布式数据库系统.数据库技术与面象对象技术相结合,产生了面向对象数据库系统等各种数据库系统.
在人类迈向21世纪知识经济的时候,信息变为经济发展的战略资源,信息技术已成为社会生产力重要的组成部分.人们充分认识到,数据库是信息化社会中信息资源管理与开发利用的基础.对于一个国家,数据库的建设规模,使用水平已成为衡量该国信息化程度的重要标志.因此,数据库的学习是非常重要的.
1.2数据库系统
数据库系统本质上是一个用计算机存储记录的系统。数据库本身可被看作为一种电子文件柜:也就是说,它是收集计算机数据文件的仓库或容器。系统用户可以对这些文件执行插入数据、检索数据、更改数据、删除数据等一系列操作。
总之,数据库系统是一个计算机存储记录的系统,即,它是一个计算机系统,该系统的目标存储信息并支持用户检索和更新所需要的信息。图1-2是一个数据库系统的简图。
图1-2 数据库系统简图
1.3数据库系统简介
本人设计的是一个关于图书馆图书管理的数据库系统,通过这个系统管理员可以简捷、方便的对图书记录查阅、增加、删除等功能,而用户也可以通过这个系统对进行图书查询、借阅、归还等功能。
该数据库应用程序按照用户权限和实现功能的不同分为两部分:外部学生对数据库的查询访问和内部管理人员对数据记录的管理维护.每一部分中包含各自实现的各项功能,对每一项功能的实现,将按照窗体设计以及运行情况的顺序逐一进行设计.
本系统采用microsoft access技术建立数据库,使用VB技术建立数据源的链接,并且生成图书管理的数据库应用程序从而实现数据库的管理功能。
第二章 数据库系统设计
2.1数据库设计概述
计算机信息系统以数据库为核心,在数据库管理系统的支持下,进行信息的收集、整理、存储、检索、更新、加工、统计和传播等操作。
对于数据库应用开发人员来说,为使现实世界的信息流计算机话,并对计算机话的信息进行各种操作,就是如何利用数据库管理系统、系统软件和相关硬件系统,将用户的要求转化成有效的数据结构,并使数据库结构易于实现用户新的要求的过程。
确切的说,数据库设计是指对于一个给定的应用环境,提供一个确定最优数据模型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立起既能反映现实世界信息和信息联系,满足用户数据要求和加工要求,有能被某个数据库管理系统所接受,同时能实现系统目标,并有效存取数据的数据库。
2.2数据库设计周期
根据软件工程的思想,数据库设计的周期可以划分为六个阶段:
(1)规划阶段
确定开发的总目标,给出计划开发的软件系统的功能、性能、可靠性以及接等方面的设想。
(2)需求分析阶段
认真细致地了解用户对数据的加工要求,确定系统的功能与边界。本阶段的最终结果,提供一个可作为设计基础的系统说明书,包括对软硬件环境的要求和一整套完善的数据流程图。
(3)设计阶段
把需求分析阶段所确定的功能细化,主要工作是概念设计阶段、逻辑设计阶段、物理设计阶段,然后,对每个阶段内部设计详细的流程。
(4)程序编制阶段
以一种或几种特定的程序设计语言表达上一阶段确定的各模块控制流程。程序编制时应遵循结构化程序设计方法。
(5)调试阶段
对已编好的程序进行单元调试(分调),整体调试(联调)和系统测试(验收)。
(6)运行和维护阶段
这是整个设计周期最长的阶段,其工作重点是收集和记录系统实际运行的数据。在运行中,必须保持数据库的完整性,必须有效的处理数据故障和进行数据库恢复。同时解决开发过程的遗留问题,改正错误进行功能完善。
如果要全套计算机本科毕业设计参考资料请访问http://www.fjcomputer.net
第三章 图书管理系统具体设计
3.1图书管理系统总体规划
对于数据库系统,规划工作是十分必要的。规划的好坏将直接影响到整个图书管理系统的成功与否,数据库设计中的规划阶段的主要任务是建立数据库的必要性及可行性分析,确定数据库系统在整个图书管理系统的地位。
根据图书管理数据库对技术人员和管理人员的水平、数据采集和管理活动以及借阅者的计算机素质的要求;数据库技术对计算机系统的软硬件的要求。决定把数据库管理系统设计成为一个综合的数据库。此数据库包括所有操作人员的所有活动功能。因为,此图书管理系统应用界面较简单、功能单一。所以,用一个综合的数据库就能满足图书管理要求,而且实现容易。
因此,图书管理系统可以按照用户权限和实现功能的不同分为两部分:外部学生对数据库的查阅访问和内部管理人员对图书记录的管理维护。但是,这两部分都调用的是同一数据库,只不过内部管理人员能实现所有管理功能,而外部学生访问数据库时,一些功能被屏蔽,只能进行查阅。
3.2 需求分析
3.2.1需求描述与分析
设计一个性能良好的数据库系统,明确应用环境对系统的要求是首要的和最基本的。特别是数据应用非常广泛,非常复杂,要是事先没有对信息进行充分和细致的分析,这种设计就很难取得成功。
通过需求分析阶段对图书管理系统的整个应用情况作全面的、详细的调查,确定图书管理的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求,并把这些写成用户和数据库设计者都能够接受的文档。
事实上,需求分析是数据库开发中最难的任务之一。因为,第一,系统本身是可变的,用户的需求必须不断调整,使之与这种变化相适应。第二,用户很难说清某部分工作的功能处理过程。所以,设计人员必须认识到:在整个需求分析以及系统设计过程中,用户参与的重要性,通过各种方法展开调查分析。
3.2.2需求分析的步骤
需求分析大致可分为三步来完成,即需求信息的收集、分析整理和评审通过。
(1)需求信息的收集
需求信息的收集又称为系统调查。为了充分地了解用户可能提出的要求,在调查研究之前,要做好充分的准备工作,要了解调查的目的、调查的内容和调查的方式。
1) 调查的目的
首先,要了解组织的机构设置,主要管理活动和职能。其次,要确定组织的目标,大致管理流程和任务范围划分。
因此,图书管理系统主要是通过对现有的图书管理系统进行考察、研究。并且通过和图书管理人员、学生交流来完善管理功能。
2) 调查的内容
外部要求:信息的性质,响应的时间、频度和如何发生的规则,以及图书管理的要求,安全性及完整性要求。
管理的现状:即图书管理信息的种类,信息流程,信息的处理方式,各种图书服务工作过程。
组织机构:了解图书管理机构的作用、现状、存在的问题,及是否适应计算机管理。
3) 调查方式
通过对图书管理人员的访问、交谈可获得图书管理高层的、内部的管理需求,以及图书管理的管理目标、未来图书管理发展变化趋势和长远规划的有关信息。
并且,还可通过具体借阅活动,了解借阅的流程、借阅的控制方式、日常管理信息,对图书管理系统有一个深刻得了解。
(2)需求信息的分析整理
要想把收集到的信息(如文件、图表、票据、笔记)转化为下一阶段设计工作可用的形式信息,必须对需求信息做分析整理的工作。
1) 管理流程分析
图书管理人员必须完成日常的借书还书工作,还需进行图书馆的维护(图书维护、读者资料维护)和进行图书和读者的查询。
2)注意事项分析
管理员在借书时,应根据读者提供的有效资料(借书证)验证读者的身份合法性,确定读者能不能借书,(根据对管理员的调查结果表明当读者不是本校学生、读者借书超期末还、读者借书总数据超过8本未还者不能借书。)管理员在对系统进行维护时不能对借出的书籍进行修改、删除,不能对借有图书的读者进行修改、删除等。定期对超期未归还图书的读者公告等。
3.3概念设计
按照上述系统设计的构思进行程序设计,根据结构化程序设计的思想,本设计程序的总体结构,依据系统结构模块来划分程序模块。按系统的要求,本系统包括主要有四个方面:借书、还书、系统查询、系统维护。故含有借书、还书、系统查询(包含图书档案查询和读者档案查询)、系统维护(包括图书档案维护和读档案维护),退出、帮助等六个模块。
1、总控模块
总控程序是整个系统控制的中心,也是系统进入各级模块的入口。它由主程序和主菜单组成。
2、借书模块
本模块实现借书功能,用户输入借书证号和图书编号,系统会根据输入的内容判断能否借书,借书日期由系统给出。并且借书成功与否系统都会给出提示。
3、 还书模块
本模块实现还书功能,用户输入借书证号和还书的图书编号,系统会根据输入的内容判断输输入的内容是否正确,并会给出相应的提示。
4、系统查询模块
本系统提供了多种的查询模式,包括对图书的查询和对读者的查询。该模块的功能强大,读者档案查询包括有按借书证号、姓名、班级、专业等四种查询模式;图书档案查询包括有按图书编号、书名、作者、出版社等四种查询模式,另外还可以查询愈期还书读者。
5、系统维护模块
本模块由图书档案维护和读者档案维护两个模块组成,主要完成日常的图书档案和读者维护,包括添加修改,删除,读者档案和图书档案等。
6、退出模块
本模块是一个过程,实现系统的退出。
7、帮助模块
本模块提供了本系统的一些信息。
3.4逻辑设计
为了实现系统功能,本系统设立了一个数据库tsgl.dbc共有三个数据库表,它们分别是:图书档案数据库表ts.dbf,读者档案数据库表dj.dbf,借书记录数据库表js.dbf。
1、 ts.dbf(图书档案 )数据库表结构如下:
字段 字段名 类型 宽度
1 图书编号 字符型 6
2 书名 字符型 20
3 作者 字符型 10
4 单价 字符型 6
5 出版社 字符型 20
2、 dj.dbf(读者档案)数据库表结构如下:
字段 字段名 类型 宽度
1 借书证号 字符型 8
2 姓名 字符型 10
3 性别 字符型 2
4 专业 字符型 10
5 班级 字符型 10
3、 js.dbf(借书记录) 数据库表借物如下:
字段 字段名 类型 宽度
1 借书证号 字符型 8
2 图书编号 字符型、 6
3 借书日期 日期型 8
4 还书日期 日期型 8
下面将本系统的逻辑模型图列出如下:
如果要全套计算机本科毕业设计参考资料请访问http://www.fjcomputer.net
3.5物理设计
以逻辑设计的结果作为输入,结合具体DBMS的特点与存储设备特性进行设计,选定数据库在物理设备上的存储结构和存取方法。
3.5.1索引的选择
本系统针对图书资料和读者资料两个不同的数据库设计两个主索引:图书编号和借书证号。
3.5.2存储结构和存取
本系统的数据直接存放在电脑的硬盘上,进行直接存取方法。
第四章 数据库实现
1、系统主菜单:tsglt.mpr

`
*********************************************************
* *
* * TSGLXT.MPR
*
* *********************************************************
* *
* * 菜单定义
* *
* *********************************************************
SET SYSMENU TO
SET SYSMENU AUTOMATIC
DEFINE PAD _0y40w84b0 OF _MSYSMENU PROMPT "借书" COLOR SCHEME 3
DEFINE PAD _0y40w84b3 OF _MSYSMENU PROMPT "还书" COLOR SCHEME 3
DEFINE PAD _0y40w84b4 OF _MSYSMENU PROMPT "系统查询" COLOR SCHEME 3
DEFINE PAD _0y40w84b5 OF _MSYSMENU PROMPT "系统维护" COLOR SCHEME 3
DEFINE PAD _0y40w84b6 OF _MSYSMENU PROMPT "退出" COLOR SCHEME 3
DEFINE PAD _0y40w84b7 OF _MSYSMENU PROMPT "帮助" COLOR SCHEME 3
ON SELECTION PAD _0y40w84b0 OF _MSYSMENU do form js
ON SELECTION PAD _0y40w84b3 OF _MSYSMENU do form hs
ON PAD _0y40w84b4 OF _MSYSMENU ACTIVATE POPUP 新菜单项
ON PAD _0y40w84b5 OF _MSYSMENU ACTIVATE POPUP _0xg1eijc4
ON SELECTION PAD _0y40w84b6 OF _MSYSMENU quit
ON SELECTION PAD _0y40w84b7 OF _MSYSMENU do form sx
DEFINE POPUP 新菜单项 MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF 新菜单项 PROMPT "图书查询"
DEFINE BAR 2 OF 新菜单项 PROMPT "读者查询"
DEFINE BAR 3 OF 新菜单项 PROMPT "查询逾期还书读者"
ON BAR 1 OF 新菜单项 ACTIVATE POPUP _0xg1ebks9
ON BAR 2 OF 新菜单项 ACTIVATE POPUP _0xg1eevn6
ON SELECTION BAR 3 OF 新菜单项 ;
DO _0y40w84bg ;
IN LOCFILE("\TSGLXT\TSGLXT" ,"MPX;MPR|FXP;PRG" ,"WHERE is TSGLXT?")
DEFINE POPUP _0xg1ebks9 MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF _0xg1ebks9 PROMPT "按编号查询"
DEFINE BAR 2 OF _0xg1ebks9 PROMPT "按书名查询"
DEFINE BAR 3 OF _0xg1ebks9 PROMPT "按作者查询"
DEFINE BAR 4 OF _0xg1ebks9 PROMPT "按出版社查询"
ON SELECTION BAR 1 OF _0xg1ebks9 do form cqts
ON SELECTION BAR 2 OF _0xg1ebks9 do form asncqts
ON SELECTION BAR 3 OF _0xg1ebks9 do form azzcqts
ON SELECTION BAR 4 OF _0xg1ebks9 do form acbscqts
DEFINE POPUP _0xg1eevn6 MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF _0xg1eevn6 PROMPT "按借书证号查询"
DEFINE BAR 2 OF _0xg1eevn6 PROMPT "按姓名查询"
DEFINE BAR 3 OF _0xg1eevn6 PROMPT "按专业查询"
DEFINE BAR 4 OF _0xg1eevn6 PROMPT "按班级查询"
ON SELECTION BAR 1 OF _0xg1eevn6 do form ajsxhcqdj
ON SELECTION BAR 2 OF _0xg1eevn6 do form axmcqdj
ON SELECTION BAR 3 OF _0xg1eevn6 do form ajycqdj
ON SELECTION BAR 4 OF _0xg1eevn6 do form abjcqdj
DEFINE POPUP _0xg1eijc4 MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF _0xg1eijc4 PROMPT "图书档案维护"
DEFINE BAR 2 OF _0xg1eijc4 PROMPT "读者档案维护"
ON BAR 1 OF _0xg1eijc4 ACTIVATE POPUP _0xg1eivt0
ON BAR 2 OF _0xg1eijc4 ACTIVATE POPUP _0xg1elfhv
DEFINE POPUP _0xg1eivt0 MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF _0xg1eivt0 PROMPT "添加图书档案"
DEFINE BAR 2 OF _0xg1eivt0 PROMPT "修改图书档案"
DEFINE BAR 3 OF _0xg1eivt0 PROMPT "删除图书档案"
DEFINE BAR 4 OF _0xg1eivt0 PROMPT "清空记录"
ON SELECTION BAR 1 OF _0xg1eivt0 do form tjts
ON SELECTION BAR 2 OF _0xg1eivt0 do form syxgtsh
ON SELECTION BAR 3 OF _0xg1eivt0 do form sysqtsh
ON SELECTION BAR 4 OF _0xg1eivt0 ;
DO _0y40w84br ;
IN LOCFILE("\TSGLXT\TSGLXT" ,"MPX;MPR|FXP;PRG" ,"WHERE is TSGLXT?")
如果要全套计算机本科毕业设计参考资料请访问http://www.fjcomputer.net
DEFINE POPUP _0xg1elfhv MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF _0xg1elfhv PROMPT "添加读者档案"
DEFINE BAR 2 OF _0xg1elfhv PROMPT "修改读者档案"
DEFINE BAR 3 OF _0xg1elfhv PROMPT "删除读者档案"
DEFINE BAR 4 OF _0xg1elfhv PROMPT "清空记录"
ON SELECTION BAR 1 OF _0xg1elfhv do form tjdj
ON SELECTION BAR 2 OF _0xg1elfhv do form syxgdjh
ON SELECTION BAR 3 OF _0xg1elfhv do form sysqdjh
ON SELECTION BAR 4 OF _0xg1elfhv ;
DO _0y40w84bv ;
IN LOCFILE("\TSGLXT\TSGLXT" ,"MPX;MPR|FXP;PRG" ,"WHERE is TSGLXT?")
* *********************************************************
* *
* * _0Y40W84BG ON SELECTION BAR 3 OF POPUP 新菜单项
* *
* * Procedure Origin:
* *
* * From Menu: TSGLXT.MPR, Record: 19
* * Called By: ON SELECTION BAR 3 OF POPUP 新菜单项
* * Prompt: 查询逾期还书读者
* * Snippet: 1
* *
* *********************************************************
*
PROCEDURE _0y40w84bg
SELECT Dj.*, Js.借书日期, Ts.图书编号, Ts.书名, Ts.单价;
FROM tsgl!dj INNER JOIN tsgl!js;
INNER JOIN tsgl!ts ;
ON Js.图书编号 = Ts.图书编号 ;
ON Dj.借书证号 = Js.借书证号;
WHERE Js.借书日期 > Js.还书日期;
AND Js.借书日期 < date( )-90
* *********************************************************
* *
* * _0Y40W84BR ON SELECTION BAR 4 OF POPUP _0xg1eivt0
* *
* * Procedure Origin:
* *
* * From Menu: TSGLXT.MPR, Record: 27
* * Called By: ON SELECTION BAR 4 OF POPUP _0xg1eivt0
* * Prompt: 清空记录
* * Snippet: 2
* *
* *********************************************************
*
PROCEDURE _0y40w84br
use ts
zap
* *********************************************************
* *
* * _0Y40W84BV ON SELECTION BAR 4 OF POPUP _0xg1elfhv
* *
* * Procedure Origin:
* *
* * From Menu: TSGLXT.MPR, Record: 33
* * Called By: ON SELECTION BAR 4 OF POPUP _0xg1elfhv
* * Prompt: 清空记录
* * Snippet: 3
* *
* *********************************************************
*
如果要全套计算机本科毕业设计参考资料请访问http://www.fjcomputer.net
PROCEDURE _0y40w84bv
use dj
zap
2、借书表单(JS.scx):

程序:
Form1.Init:
thisform.text3.value=date()
Command1(确定). Click
select dj
locate for dj.借书证号=thisform.text1.value
if found()=.f.
messagebox("没有这个借书证号,请查证后重新输入",0+64)
thisform.text1.value=""
else
select ts
locate for ts.图书编号=thisform.text2.value
if found()=.f.
messagebox("没有这本书,请查证后重新输入",0+64)
thisform.text2.value=""
else
select js
set delete on
locate for js.图书编号=thisform.text2.value
if found( ) and js.借书日期 > js.还书日期
messagebox("这本书借出未还!",0+48)
thisform.text2.value=" "
ELSE
locate for 借书证号=thisform.text1.value
if found() and date()-js.借书日期 >30
messagebox("此人有书超期未还,不能借书!!",0+64)
else
go bottom
append blank
replace js.借书证号 with thisform.text1.value,js.图书编号 with thisform.text2.value;
js.借书日期 with thisform.text3.value
messagebox("借书成功",0+64)
thisform.text1.value=""
thisform.text2.value=""
endif
endif
ENDIF
endif
thisform.refresh
Commnand2(取消).Click
thisform.RELEASE
3、还书表单(hs.scx)

程序:
Form1.Init
thisform.text3.value=date()
Command1(确定).Click
select dj
locate for 借书证号=thisform.text1.value
if found()=.f.
messagebox("没有这个读者记录,请查证后重新输入!",0+64)
thisform.text1.value=""
thisform.text1.setfocus
ELSE
select ts
set delete on
locate for 图书编号=thisform.text2.value
if found()=.f.
messagebox("没有这本书或这本书已归还了,请重新输入!",0+64)
thisform.text2.value=""
thisform.text2.setfocus
ELSE
SELECT js
locate for 借书证号=thisform.text1.value and 图书编号 = thisform.text2.value
if found()=.f.
messagebox("此输入有误,请重新输入!",0+16)
thisform.text1.value=" "
thisform.text2.value=" "
else
replace 还书日期 with thisform.text3.value
delete
messagebox("还书成功",0+64)
thisform.text1.value=""
thisform.text2.value=""
ENDIF
ENDIF
ENDIF
thisform.refresh
Command2(返回).Click
thisform.release
4、系统查询模块:
1)、按编号查询图书(cqts.scx)

程序:
Command1(确定).Click
use ts
locate for 图书编号=thisform.text1.value
if found()=.t.
thisform.text2.value=ts.图书编号
thisform.text3.value=ts.书名
thisform.text4.value=ts.作者
thisform.text5.value=ts.出版社
thisform.text6.value=ts.单价
else
messagebox("没有这个书名,请重新输入",0+64)
thisform.text1.value=""
endif
thisform.refresh
Command2(取消).Click
thisform.release
2)、按书名查询图书(asncqts.scx)

Command1(确定).Click
close all
use ts
locate for 书名=trim(sm)
if not found()
messagebox("经查询没有这个书名,请查证后再输入",0+32)
else
use ts
sele all 图书编号, 书名, 作者, 出版社, 单价 from ts where 书名=trim(sm)
endif
thisform.release
Command2(返回).Click
thisform.release
3)、按作者查询图书表单(azzcqts.scx)

程序:
Command1(确定).Click
close all
use ts
locate for 作者=trim(au)
if not found()
messagebox("经查询没有这个作者的书,请查证后再输入",0+32)
else
use ts
sele all 图书编号, 书名, 作者, 出版社, 单价 from ts where 作者=trim(au)
endif
thisform.release
Command2.(返回).Click
thisform.release

4)、按出版社查询(acbscqts.scx)
程序:
Command1(确定).Click
close all
use ts
locate for 出版社=trim(pu)
if not found()
messagebox("经查询没有这个出版社的书,请查证后再输入",0+32)
else
use ts
sele all 图书编号, 书名, 作者, 出版社, 单价 from ts where 出版社=trim(pu)
endif
thisform.release
Command2(返回).Click
thisform.release
5)、按借书证号查询读者(ajsxhcqdj.scx)

程序:
Command1(确定).Click
use dj
locate for 借书证号=thisform.text1.value
if found()=.f.
messagebox("没有这个记录,请查证后重新输入",0+64)
thisform.text1.value=""
thisform.text1.setfocus
else
thisform.text2.value=借书证号
thisform.text3.value=姓名
thisform.text4.value=性别
thisform.text5.value=专业
thisform.text6.value=班级
thisform.refresh
endif
Command2(取消).Click
thisform.release
如果要全套计算机本科毕业设计参考资料请访问http://www.fjcomputer.net
6)、按姓名查询读者(axmcqdj.scx)

程序:
Command1(确定).Click
close all
use dj
locate for 姓名=trim(xm)
if not found()
messagebox("经查询没有这个姓名,请查证后再输入",0+32)
else
use dj
sele all 借书证号, 姓名, 性别, 专业, 班级 from dj where 姓名=trim(xm)
endif
thisform.release
Command2(取消).Click
thisform.release
7)、按专业查询读者(azycqdj.scx)表单

程序:
Command1(确定).Click
close all
use dj
locate for 专业=trim(jy)
if not found()
messagebox("经查询没有这个专业的学生,请查证后再输入",0+32)
thisform.text1.value=" "
thisform.text1.gotfocus
else
use dj
sele all 借书证号, 姓名, 性别, 专业, 班级 from dj where 专业=trim(jy)
thisform.release
endif
Command2(返回).Click
thisform.release
8)、按班级查询读者表单(abjcqdj.scx)

程序:
Command1(确定).Click
close all
use dj
locate for 班级=trim(bj)
if not found()
messagebox("经查询没有这个班级的学生,请查证后再输入",0+32)
thisform.text1.value=" "
thisform.text1.gotfocus
else
use dj
sele all 借书证号, 姓名, 性别, 专业, 班级 from dj where 班级=trim(bj)
thisform.release
endif
Command2(返回).Click
thisform.release
5、系统维护模块
1)、添加图书档案表单(tjts.scx)
程序:
Command1(添加).Click
close all
use ts
if thisform.command1.caption="添加"
go bottom
append blank
thisform.command1.caption="保存"
thisform.command2.caption="放弃"
else
locate for 图书编号=thisform.text1.value
if found()=.t.
messagebox("书号已存在,请重新输入!",0+64,"信息")
thisform.text1.value=" "
else
go bottom
replace 图书编号 with thisform.text1.value, 书名 with thisform.text2.value;
作者 with thisform.text3.value,出版社 with thisform.text4.value;
单价 with thisform.text5.value
thisform.text1.value=""
thisform.text2.value=""
thisform.text3.value=""
thisform.text4.value=""
thisform.text5.value=""
thisform.command1.caption="添加"
thisform.command2.caption="关闭"
thisform.text1.setfocus
endif
endif
thisform.refresh
Command2(关闭).Click
if thisform.command2.caption="关闭"
thisform.release
else
if thisform.command1.caption="保存"
delete
pack
thisform.text1.value=""
thisform.text2.value=""
thisform.text3.value=""
thisform.text4.value=""
thisform.text5.value=""
thisform.command1.caption="添加"
thisform.command2.caption="关闭"
thisform.text1.setfocus
endif
thisform.refresh
endif
2)、修改图书模块
(1)、输入修改图书号表单(syxgtsh.scx)

程序:
public jszh
jszh=thisform.text1.value
Command1(确定).Click
close all
use ts
locate for 图书编号=trim(tsbh)
if not found()
messagebox("经查询没有这个记录,请查证后再输入",0+32)
thisform.text1.value=" "
thisform.text1.gotfocus
else
do form xgtsda
thisform.release
endif
Command2(取消).Click
thisform.release
(2)修改图书档案表单(xgtsda.scx)

程序:
close all
use ts
locate for 图书编号=trim(tsbh)
thisform.text1.value=图书编号
thisform.text2.value=书名
thisform.text3.value=作者
thisform.text4.value=出版社
thisform.text5.value=单价
thisform.refresh
Command1(修改).Click
close all
use js
locate for 图书编号=trim(tsbh)
if found() and js.借书日期 > js.还书日期
messagebox("这本书借出未还,不能修改!",0+16,"警告")
else
close all
use ts
locate for 图书编号=trim(tsbh)
private i
i=messagebox("真的要修改这名读者吗?",4+32,"警告")
if i=6
replace 图书编号 with thisform.text1.value, 书名 with thisform.text2.value;
作者 with thisform.text3.value,出版社 with thisform.text4.value;
单价 with thisform.text5.value
messagebox("成功修改该记录!",0+64,"信息")
endif
thisform.release
endif
Command2(关闭).Click
thisform.release
如果要全套计算机本科毕业设计参考资料请访问http://www.fjcomputer.net
3)、删除图书档案
(1)、输入删除图书号表单(syxqtsh.scx)

程序:
public tsh
tsh=thisform.text1.value
Command1(确定).Click
close all
use ts
locate for 图书编号=trim(tsh)
if not found()
messagebox("经查询没有这个学生,请查证后再输入",0+32)
thisform.text1.value=" "
thisform.text1.gotfocus
else
do form sqtsda
thisform.release
endif
Command2(返回).Click
thisform.release
(2)、删除图书档案表单(sytsda.scx)

程序:
Form1.Init
close all
use ts
locate for 图书编号=trim(tsh)
thisform.text1.value=图书编号
thisform.text2.value=书名
thisform.text3.value=作者
thisform.text4.value=出版社
thisform.text5.value=单价
thisform.refresh
Command1(删除).Click
close all
use js
locate for 图书编号=trim(tsh)
if found() and js.借书日期 > js.还书日期
messagebox("这本书借出未还,不能删除!",0+16,"警告")
else
close all
use ts
locate for 图书编号=trim(tsh)
private i
i=messagebox("真的要删除这个记录吗?",4+32,"警告")
if i=6
delete
pack
messagebox("成功删除了该记录!",0+64,"信息")
thisform.release
endif
endif
Command2(关闭).Click
thisform.release
4)、清空图书档案程
use ts
zap
如果要全套计算机本科毕业设计参考资料请访问http://www.fjcomputer.net

5)、添加读者档案表单(tjdj.scx)
程序:
Command1(添加).Click
close all
use dj
if thisform.command1.caption="添加"
go bottom
append blank
thisform.command1.caption="保存"
thisform.command2.caption="放弃"
else
locate for 借书证号=thisform.text1.value
if found()=.t.
messagebox("借书证号已存在,请重新输入!",0+64,"信息")
thisform.text1.value=" "
else
go bottom
replace 借书证号 with thisform.text1.value, 姓名 with thisform.text2.value;
性别 with thisform.text3.value,专业 with thisform.text4.value;
班级 with thisform.text5.value
thisform.text1.value=""
thisform.text2.value=""
thisform.text3.value=""
thisform.text4.value=""
thisform.text5.value=""
thisform.command1.caption="添加"
thisform.command2.caption="关闭"
thisform.text1.setfocus
endif
endif
thisform.refresh
Command2(关闭).Click
close all
use dj
if thisform.command1.caption="添加"
go bottom
append blank
thisform.command1.caption="保存"
thisform.command2.caption="放弃"
else
locate for 借书证号=thisform.text1.value
if found()=.t.
messagebox("借书证号已存在,请重新输入!",0+64,"信息")
thisform.text1.value=" "
else
go bottom
replace 借书证号 with thisform.text1.value, 姓名 with thisform.text2.value;
性别 with thisform.text3.value,专业 with thisform.text4.value;
班级 with thisform.text5.value
thisform.text1.value=""
thisform.text2.value=""
thisform.text3.value=""
thisform.text4.value=""
thisform.text5.value=""
thisform.command1.caption="添加"
thisform.command2.caption="关闭"
thisform.text1.setfocus
endif
endif
thisform.refresh
如果要全套计算机本科毕业设计参考资料请访问http://www.fjcomputer.net
6)、修改读者档案模块
(1) 输入修改读者借书号(sysgdjh.scx)

程序:
public jszh
jszh=thisform.text1.value
Command1(确定).Click
close all
use dj
locate for 借书证号=trim(jszh)
if not found()
messagebox("经查询没有这个学生,请查证后再输入",0+32)
thisform.text1.value=" "
thisform.text1.gotfocus
else
do form xgdjda
thisform.release
endif
Command2(返回).Click
thisform.release
(2)修改读者档案(xgdjda.scx)

程序:
Form1.Init
sele dj
locate for dj.借书证号=trim(jszh)
thisform.text1.value=dj.借书证号
thisform.text2.value=姓名
thisform.text3.value=性别
thisform.text4.value=专业
thisform.text5.value=班级
thisform.refresh
Command1(修改).Click
close all
use js
locate for 借书证号=trim(jszh)
if found() and js.借书日期 > js.还书日期
messagebox("这名读者有书未还,不能修改!",0+16,"警告")
else
close all
use dj
locate for dj.借书证号=trim(jszh)
private i
i=messagebox("真的要修改这名读者吗?",4+32,"警告")
if i=6
replace 借书证号 with thisform.text1.value, 姓名 with thisform.text2.value;
性别 with thisform.text3.value,专业 with thisform.text4.value;
班级 with thisform.text5.value
messagebox("成功修改该记录!",0+64,"信息")
endif
thisform.release
endif
Command2(关闭).Click
thisform.release
7)删除读者档案

(1)、输入删除读者号(sysqdjh.scx)
程序:
Text1.Lostfocus
public jsh
jsh=thisform.text1.value
Command1(确定).Click
close all
use dj
locate for 借书证号=trim(jsh)
if not found()
messagebox("经查询没有这个学生,请查证后再输入",0+32)
thisform.text1.value=" "
thisform.text1.gotfocus
else
do form sqdjda
thisform.release
endif
Command2(返回).Click
thisform.release
(2)删除读者档案(sqdjda.scx)
程序:
Form1.Init
sele dj
locate for dj.借书证号=trim(jsh)
thisform.text1.value=dj.借书证号
thisform.text2.value=姓名
thisform.text3.value=性别
thisform.text4.value=专业
thisform.text5.value=班级
thisform.refresh
Command1(删除).Click
close all
use js
locate for 借书证号=trim(jsh)
if found() and js.借书日期 > js.还书日期
messagebox("这名读者有书未还,不能删除!",0+16,"警告")
else
close all
use dj
locate for dj.借书证号=trim(jsh)
private i
i=messagebox("真的要删除这名读者吗?",4+32,"警告")
if i=6
delete
pack
messagebox("成功删除了该记录!",0+64,"信息")
thisform.release
endif
endif
Command2(关闭).Click
thisform.release
8)清空读者档案过程
use dj
zap
6、退出模块
使用命令,退出本系统。 命令:QUIT
7、帮助模块:
列出了有关系统的一些有关约定和作者的一些信息。
第五章 结束语
本系统经过了多次的上机调试,在Windowsxp平台上测试通过。本次毕业设计历时三个多月,我和同组的成员分工合作,从需求分析、资料收集、模型设计到整个管理系统的完成做了大量的工作。设计基本能满足日常的图书馆管理工作,当然由于设计者的水平有限,以及分析欠全面和时间的问题,未能做得更好。毕业设计是对我大专三年所学知识的一个综合,通过了本次的设计,我能从中学到的更多的东西,使自己的计算机程序设计水平得到了一定的提高,这是最重要的。本次设计得到了很多人的帮忙,包括指导老师和同组的各位学员,在此我深表感谢!
附参考文献:
1、《数据库基础与应用》 王利编著 中央电大出版社
2、《数据库基础与应用课程设计指导用书》 徐孝凯 钟声编 中央电大出版社
3、《Visual Foxpro 及其应用系统开发》 史济民 汤观全 清华大学出版社
4、《Visual Foxpro 6.0入门与应用实例》 李俊德编著 清华大学出版社
如果要全套计算机本科毕业设计参考资料请访问http://www.fjcomputer.net
|
Copyright ©青苹果计算机论文参考 2003 |
|
|