图书馆书籍检索与借阅管理系统_第1页
图书馆书籍检索与借阅管理系统_第2页
图书馆书籍检索与借阅管理系统_第3页
图书馆书籍检索与借阅管理系统_第4页
图书馆书籍检索与借阅管理系统_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

1、源代码请联系本人,参见豆丁本人信息。 文档编号:版 本 号: 文档名称:图书馆管理系统开发文档项目名称:图书馆检索与借阅管理系统项目负责人: 编 号: 2009年6月16日校 对: 2009年6月16日审 核: 2009年6月16日批 准: 2009年6月16日开发单位:开发小组 1)需求规格说明书1.1 引言图书管理系统是图书馆管理工作中的不可缺少的部分;对于图书馆的管理者和使用者来说都至关重要,所以图书管理系统应该能够为管理者或读者提供足够的信息和快捷的信息处理手段。但一直以来人们使用传统的人工的方式进行图书管理和借阅管理,这种管理方式存在着许多缺点,例如,效率低,易忘性,保密性差,另外时

2、间一长,将产生大量的数据和文件,这对于查找,更新和维护大批带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能以经为人们深刻认识,它已经进入人类社会的各个方面并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对图书信息进行管理,具有着手工管理的所无法比拟的优点。例如,检索迅速,查找方便,易修改,可靠性高,存储量大,数据处理快捷,保密性好,寿命长,成本低等。1.2 功能需求图书管理信息系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立数据一致性和完整性强,数据库按前行好的库,而对于后者则要求应用

3、程序功能完备,易使用等。系统功能分析是在系统开发的总体任务的基础上完成的,本系统需要完成的功能主要有6个部分。图书基本情况管理模块包括书籍类别标准的制定;类别信息的输入包括类别编号,类别名称;书籍信息的输入包括书籍编号,书籍名称,书籍类别,作者名称,出版社名称,出版日期,登记日期及备注信息等。办理图书卡模块,主要是为新的读者办理借书证。结束管理模块包括借书信息的输入,输入内容含有借书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期及备注信息等;而借书信息的查询包括借书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期及备注信息等。还书管理模块包括还书信息的输入内容。含有还书信

4、息编号,读者编号,书籍编号,书籍名称,借书日期,还书日期及备注信息等;还包括还书信息的查询和修改,包括还书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期及备注信息等。对超期的情况能自动给出提示信息。系统设置模块应该包括对用户组的定义,权限的修改与添加,用户管理及其他系统环境的设置。1.3 系统流程分析系统流程就是用户进入图书馆信息管理系统后的工作过程,本系统对不同的用户设置了不同的权限,因此不同的用户操作流程有所不同,如图1-1所示:本系统的操作流程主要分为用户登陆操作和业务操作两个部分,用户登陆操作和业务操作两个部分,用户登陆操作主要是对用户的帐号和用户的密码进行身份验

5、证,通过验证的进入系统操作界面,身份验证失败时,则给出则给出错误提示。业务操作根据帐号的权限允许或限制用户的行为。流程图第一层数据流程图如图1-2所示:新书入库读者种类D2基本信息录入 D1基本信息录入读者种类信息 书籍类别信息D4D2基本信息录入基本信息录入D5书籍读者书籍信息读者信息借阅信息录入书籍信息返回读者信息返回借阅信息 图 1-2通过上述流程图,可以将管理部分划分成4层模型,书籍信息查询部分业务流程如图1-3所示:除书籍查询流程外,还有借书,还书流程图,它主要是根据读者的信息,经管理员对书籍信息数据,读者信息数据库进行操作和确认,流程图如图1-4所示:Y错误信息借书证和所需数目所借

6、图书读者信息数据库书籍信息数据库图书管理员读者 图 1-4 书籍信息管理模块主要是管理员根据情况对新书进行登记入库,旧书删除,修改操作,并将这些信息返书籍信息数据库,它的业务流程如图1-5:另一层为读者信息管理模块,它的主要功能是对新读者的相关信息录入到数据库中,并实时的对读者信息数据库进行更新,业务流程图如图1-6: 文档编号:000002 版 本 号:000001 文档名称:图书馆管理系统概要设计文档 项目名称:图书馆检索与借阅管理系统 项目负责人: 编 号: 0001 2009年6月16日校 对: 2009年6月16日审 核: 2009年6月16日批 准: 老师 2009年6月16日开发

7、单位: 开发小组2)概要设计说明书项目开发环境:windows xp操作系统 SQL sever 2000Delphi 72.1 系统层次模块图在功能分析的基础上,根据delphi程序编制的特点,得到如图1-7所示的系统功能模块图:系统数据结构针对一般图书管理信息系统的要求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所述的数据项和数据结构。读者种类信息属性:种类编号,种类名称,借书数量,借书期限。主码:种类编号。读者信息属性:读者编号,读者姓名,读者种类编号,读者性别,证件种类,证件号码。主码:读者编号。3书籍类别信息属性:类别编号,类别名称。主码:类别编号。4.书籍信息属性:书籍

8、编号,书籍名称,书籍类别,作者姓名,出版社名称,出版日期,备注信息,定价,总数量,剩余数量。主码:书籍编号。5.借阅信息 属性:读者编号,书籍编号,书籍名称,借书日期,还书日期,数量。 主码:用户帐号,图书编号。6.用户组信息表属性:组号,组名,最大天数,最大数量。主码:组号。数据块逻辑结构设计登陆用户词表主要是在系统登陆时,对用户的权限,密码进行验证,对同权限的操作员产生不同的用户界面,表的结构如表1所示: 表1 登陆用户表借阅信息表借阅信息表包括用户帐号,图书编号,借书日期等字段,主要用在用户借阅书籍,还书时需要用到,如图表2: 表2 借阅信息表图书类别表图书类别表只含有两个字段类别和类名

9、,此表在新书登记,书籍查询等功能模块中需要用到,如下表3: 图书信息表图书信息表包括图书信息编号,类别,书名,作者等相关信息,在系统中使用比较多,在有关书的操作中都要用到,如下表4:用户表用户表包括用户帐号,姓名,性别等相关信息,它主要是在读者借阅,还书,读者查询模块中用到,具体结构如下表5:组用户表包括组号,组名,最大天数,最大数量4个字段,主要是在读者图书借阅时对用户借书总数进行限制,而且可在还书时检查是否超期。如下表6:数据表的创建通过以上的数据流程分析和数据库逻辑结构的设计,得到数据表的基本项,建表的SQL语句如下:建数据库:create database TSG建表:use TSGg

10、ocreate table yonghu(readerID nvarchar(10) PRIMARY KEY, name nvarchar(10), sex nvarchar(2), rgroup nvarchar(2), zjlx nvarchar(10), zID nvarchar(20);use TSGgocreate table lend(readerID nvarchar(10), bcode nvarchar(10), outdate datetime, deadline datetime, amount smallint, intime datetime);use TSGgocr

11、eate table yhz(znum nvarchar(2) PRIMARY KEY, zname nvarchar(10), maxdate smallint, maxnum smallint);use TSGgocreate table tsclass(class nvarchar(4), classname nvarchar(40);use TSGgocreate table book(bcode nvarchar(10) PRIMARY KEY, bclass nvarchar(4), bname nvarchar(20) UNIQUE, bauthor nvarchar(10),

12、boutdate datetime, bpress nvarchar(20), bcost smallint, bamount smallint, bsheng smallint, remark nvarchar(1000);use TSGgocreate table yhdl(num nvarchar(10) PRIMARY KEY, name nvarchar(10), password nvarchar(10), rights nvarchar(10); 文档编号:000003 版 本 号:000001 文档名称:图书馆管理系统详细设计文档 项目名称:图书馆检索与借阅管理系统 项目负责人

13、: 编 号: 2009年6月16日校 对: 2009年6月16日审 核: 2009年6月16日批 准: 老师 2009年6月16日开发单位:开发小组3)详细设计说明书主界面设计1.登陆窗体登陆窗体主要是通过验证用户帐号给不同的用户登陆系统不同的权限,从而可以对系统进行一系列管理。登陆窗体中各控件的设置如下表所示:类型对象属性属性值TButtonEnterCaption登陆系统TbuttonExitCaption取消登陆TLabelLabel1Caption帐号TLabelLabel2Caption密码TEditMMPasswordChar*TComboBoxXMStyplecsDropDwon

14、ListTXPMenuXPMenul1ActiveTrue调整控件布局和大小,设置号相关控件属性,最后“登陆”界面的实现如下图所示:在系统启动时创建数据连接,并将用户表中的姓名放置于ComboBox中完成初始化,这些功能代码放置于Oncreate事件中,相关代码如下:procedure Tdenglu.FormCreate(Sender: TObject);begin with ADOQuery1 do begin Close; SQL.Clear; SQL.Add(select name from yhdl); Open; while not Eof do begin YHM_CB.Item

15、s.Add(FieldValuesname); next; end; YHM_CB.ItemIndex:=0; close; end;end;完成相关控件的初始化后,“登陆”界面将用户列出到ComboBox中。当用户输入密码完毕后,单击登陆系统,系统响应OnClick事件,在事件代码中判断用户密码是否正确,并统计密码错误输入的次数,提示输入错误的次数,当超过3次时,系统自动关闭。代码如下:procedure Tdenglu.EnterClick(Sender: TObject);var Password:string;begin with ADOQuery1 do begin Close; S

16、QL.Clear; SQL.Add(select password,rights from yhdl where name=:name); Parameters.ParamByName(name).Value:=YHM_CB.Text; Open; if RecordCount0 then begin Password:=FieldValuespassword; if MM_E.Text=Password then begin UserName:=YHM_CB.Text; QX:=FieldValuesrights; application.MessageBox(登陆成功,提示信息,64);

17、self.Hide; main.Show; end else begin Logintimes:= Logintimes+1; if Logintimes3 then begin messageBox(handle,pchar(密码第+IntTostr(Logintimes)+次错误,请重新输入!),密码错误,MB_OK OR MB_ICONERROR); MM_E.Text:=; MM_E.SetFocus; end else begin MessageBox(handle,密码三次错误,请关闭!,密码错误,MB_ICONERROR); application.Terminate; end;

18、 end; end; end;end;2.主界面设计系统主界面包括各个功能模块,新建窗体main是系统主界面,主界面的设置如下表所示:控件类型对象属性属性值TcoolbarCoolBar1BandsTImageImage1AlignClientTmainMenuMainMenu1ItemsTstatusBarStatusBar1Ctl3DTrueTtimerTimer1Align1000TXPMenuXpMenu1ActiveTrue通过主界面上的MainMenu1控件来设计各功能菜单的内容,双击MainMenu1控件,对菜单内容进行设置,如下表所示:类型对象属性属性值TbuttonFile_

19、TCaption文件TbuttonClose_TCaption退出TbuttonOperator_TCaption操作TbuttonViewF_TCaption显示文件TbuttonViewBM_TCaption显示图书管理TbuttonViewSM_TCaption显示环境管理TbuttonViewH_TCaption显示帮助TbuttonChangBG_TCaption返回登陆TbuttonBookM_TCaption图书管理TbuttonXSRK_TCaption新书入库TbuttonTSZL_TCaption办借书卡TbuttonBJSK_TCaption图书整理TbuttonTSJH

20、_TCaption图书整理TbuttonQuery_TCaption查询TbuttonSETM_TCaption环境管理TbuttonQXGL_TCaption权限设置TbuttonZYHGL_TCaption组用户设置TbuttonBFHY_TCaption备份还原TbuttonHelp_TCaption帮助TButtonGY_TCaption关于通过上述步骤,调整布局大小,主界面设置完成如下图所示:双击Oncreate事件,在OnCreate中的相关代码添加如下:procedure Tmain.FormCreate(Sender: TObject);begin statusbar1.pan

21、els.items0.width:=200; statusbar1.panels.items1.width:=200; statusbar1.panels.items2.width:=200; statusbar1.panels.items3.width:=200; ViewF_T.Checked:=ViewFile; CoolBar1.Bands0.Visible:=ViewF_T.Checked; ViewF_T.Checked:=ViewBookMgr; CoolBar1.Bands1.Visible:=ViewBM_T.Checked; ViewSM_T.Checked:=ViewSe

22、ttingMgr; CoolBar1.Bands2.Visible:=ViewSM_T.Checked; ViewH_T.Checked:=ViewAbout; CoolBar1.Bands3.Visible:=ViewH_T.Checked; StatusBar1.Panels2.Text:=日期:+datetimetostr(date);end;当系统主界面被调用时,根据登陆用户服务的级别可以设置用户服务的操作权限,也就是对不同权限的用户显示不同窗口和控件,该过程的相关操作和设置时在form的OnShow事件中添加的,相关代码如下:procedure Tmain.FormShow(Send

23、er: TObject);var myini:TIniFile; OldcheckDay:string; num,maxnum:integer;begin StatusBar1.Panels0.Text:=用户名:+UserName; if QX=超级管理员 then StatusBar1.Panels1.Text:=用户描述:超级管理员 else if QX=普通管理员 then StatusBar1.Panels1.Text:=用户描述:普通管理员 else statusBar1.Panels1.Text:=用户描述:读者; if QX=读者 then begin XSRK_T.Enabl

24、ed:=false;/读者菜单上很多功能不能用 TSZL_T.Enabled:=false; BJSK_T.Enabled:=false; TSJH_T.Enabled:=false; QXGL_T.Enabled:=false; QTSZ_T.Enabled:=false; BFHY_T.Enabled:=false; ZYHGL_T.Enabled:=false; BJSK_SB.Enabled:=false; /读者工具条上很多功能不能用 TSZL_SB.Enabled:=false; TSJH_SB.Enabled:=false; XSRK_SB.Enabled:=false; QXG

25、L_SB.Enabled:=false; ZYHGL_SB.Enabled:=false; BFHY_SB.Enabled:=false; exit; end else if QX=普通管理员 then begin XSRK_T.Enabled:=false;/普通管理员菜单上很多功能不能用 TSZL_T.Enabled:=false; QXGL_T.Enabled:=false; ZYHGL_T.Enabled:=false; TSZL_SB.Enabled:=false;/普通管理员工具条上很多功能不能用 XSRK_SB.Enabled:=false; QTSZ_T.Enabled:=fa

26、lse; BFHY_T.Enabled:=false; QXGL_SB.Enabled:=false; ZYHGL_SB.Enabled:=false; BFHY_SB.Enabled:=false; end; myini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+set.ini); OldCheckDay:=myini.ReadString(set,OldCheckDay,); Maxnum:=myini.ReadInteger(set,MaxCheckNum,0); if maxnum=0 then exit; if Old

27、CheckDay=DateToStr(date) then begin num:=myini.ReadInteger(set,Checked,0); if nummaxnum then begin num:=num+1; myini.WriteInteger(set,Checked,num); end; end else begin myini.WriteString(set,OldCheckDay,dateTostr(date); myini.WriteInteger(set,Checked,1); end;end;图书管理模块的实现图书管理模块主要是对相关书籍进行管理,如新书的入库登记、旧

28、书的删除,书籍相关信息的修改、图书类别的编辑。下面时各功能的设计和实现:新书入库管理主要是将新购进书的相关信息,如书名、ISDN号、出版日期、作者等相关信息添加到数据库中,方便读者借阅时查询。界面布局如下:添加相关控件,控件类型,属性及相关属性设置和如下表所示:类型对象属性属性值TgroupBoxgroupBox1Caption图书相关信息TEditBH对应Lable编号TeditBZ对应Lable备注TeditCBRQ对应Lable出版日期TeditCBS对应Lable出版社TeditDJ对应Lable定价TeditLBstyle类别TconboBoxLM对应LablecsDropListT

29、EditSL对应Lable数量TeditSM对应Lable书名TEditZZ对应Lable作者在public中添加GetClassName和CheckError函数,分别用于获得书籍类别名称和对输入数据的合法性进行检查。这两个函数的实现如下所示:function TXSRK1.IsNumber(Vaule:String):Boolean; /判断Vaule是不是数字var i:integer; begin for i:=1 to length(Vaule) do if not (vaulei in 0.9) then begin result:=false; exit; end; result

30、:=true; end;function TXSRK1.GetClassName(ClassName:String):String;var h:String;begin h:=ClassName; with ADOQuery1 do begin try Close; SQL.Clear; SQL.Add(select class from tsclass where classname=:classname); Parameters.ParamByName(classname).Value:=h; Open; if RecordCount = 0 then Result := else Res

31、ult:=FieldValuesclass; Close; except Result := ; end; end;end;function TXSRK1.CheckError:boolean; /检查输入的数据是否有错误begin result:=false; if (length(BH.Text)10)or (not IsNumber(BH.Text) then /图书编号是否合法 begin MessageBox(handle,图书编号即图书的条形码为10位数字!,图书编号错误,MB_OK or MB_ICONERROR); result:=true; exit; end else be

32、gin with ADOQuery1 do begin Close; SQL.Clear; SQL.Add(Select * From book Where bcode=:bcode); Parameters.ParamByName(bcode).Value:=BH.Text; Open; if RecordCount0 then begin MessageBox(handle,你输入的图书编号已经存在!,编号重复,MB_OK or MB_ICONERROR); result:=true; exit; end; end; end; if SM.Text= then begin MessageB

33、ox(handle,书名不能为空!,书名有误,MB_OK or MB_ICONERROR); result:=true; exit; end; if ZZ.Text= then begin MessageBox(handle,作者不能为空!,作者有误,MB_OK or MB_ICONERROR); result:=true; exit; end; if CBS.Text= then begin MessageBox(handle,出版社不能为空!,出版社有误,MB_OK or MB_ICONERROR); result:=true; exit; end; if DJ.Text= then be

34、gin MessageBox(handle,定价不能为空!,定价有误,MB_OK or MB_ICONERROR); result:=true; exit; end; try /判断定价是否正确 StrToFloat(DJ.Text); except MessageBox(handle,定价不对!,定价错误,MB_OK or MB_ICONERROR); result:=true; exit; end; try /判断日期格式是否正确 StrToDate(CBRQ.Text); except MessageBox(handle,日期格式不对,正确格式形如:2004-8-5!,日期错误,MB_O

35、K or MB_ICONERROR); result:=true; exit; end; try /入库数量必须为整数 StrToInt(SL.Text); except MessageBox(handle,入库数量必须为大于0的整数!,数量错误,MB_OK or MB_ICONERROR); result:=true; exit; end;end;在窗体创建时需要对ComboBox类别进行初始化,在OnCreate中实现,代码如下:procedure TXSRK1.FormCreate(Sender: TObject);begin with ADOQuery1 do begin close;

36、 SQL.Clear; SQL.Add(select classname from tsclass); Open; while not Eof do begin LM.Items.Add(FieldByName(classname).AsString); Next; end; LB.Enabled:=false; LM.ItemIndex:=0; LB.Text:=GetClassName(LM.Items0); Close; end;end;为LM控件添加OnChange事件代码,它的功能主要时在用户单击ComboBox时,将书籍的所有类别显示在下拉列表中,代码如下:procedure TX

37、SRK1.LMChange(Sender: TObject);begin LB.Text:=GetClassName(LM.ItemsLM.ItemIndex);end;当用户单击“入库”按钮时,系统对用户输入的信息进行合法性检查,然后再将相关信息插入到数据库中。单击“入库”的事件为OnClick,相关代码如下:procedure TXSRK1.BitBtn1Click(Sender: TObject);begin if Checkerror then exit;/检查信息合法性 with ADOQuery1 do begin Close; SQL.Clear; SQL.Add(insert

38、into book(bcode,bclass,bname,bauthor,boutdate,bpress,bcost,bamount,bsheng,remark); SQL.Add(values(:bcode,:bclass,:bname,:bauthor,:boutdate,:bpress,:bcost,:bamount,:bsheng,:remark); Parameters.ParamByName(bcode).Value:=BH.Text; Parameters.ParamByName(bclass).Value:=LB.Text; Parameters.ParamByName(bna

39、me).Value:=SM.Text; Parameters.ParamByName(bauthor).Value:=ZZ.Text; Parameters.ParamByName(boutdate).Value:=StrToDate(CBRQ.Text); Parameters.ParamByName(bpress).Value:=CBS.Text; Parameters.ParamByName(bcost).Value:=StrToFloat(DJ.Text); Parameters.ParamByName(bamount).Value:=StrToInt(SL.Text); Parame

40、ters.ParamByName(bsheng).Value:=StrToInt(SL.Text); Parameters.ParamByName(remark).Value:=BZ.Text; ExecSQL; MessageBox(handle,此书已成功入库,入库成功,MB_OK or MB_ICONINFORMATION); BH.Text:=; SM.Text:=; ZZ.Text:=; CBRQ.Text:=; CBS.Text:=; DJ.Text:=; SL.Text:=; BZ.Text:=; close; end;end;2.图书维护图书修改、删除功能是按照图书的编号和操作

41、方式对图书进行相关操作,操作的fangshi 包括修改、删除两种。界面布局如下:(1)控件的初始化如下:procedure TTSZL1.FormCreate(Sender: TObject);begin with ADOQuery1 do begin close; SQL.Clear; SQL.Add(select class,classname from tsclass); Open; LBXX.Columns0.FieldName:=class; LBXX.Columns0.Title.Caption:=类别代码; LBXX.Columns1.FieldName:=classname;

42、LBXX.Columns1.Title.Caption:=类别名称; while not Eof do begin LB.Items.Add(FieldValuesclassname); Next; end; LB.ItemIndex:=0; TJLB.Checked:=true; end;end;(2)在图书修改删除页面上,当用户输入图书编号并单击“查找”按钮时,系统自动搜索相关数据并显示,如果输入的数据有误,则将弹出警告对话框告知错误,相关代码如下:procedure TTSZL1.CZClick(Sender: TObject);begin with ADOQuery1 do begin

43、 Close; SQL.Clear; SQL.Add(select * from book); Open; if Locate(bcode,TSBH.Text,) then begin BH.Text:=TSBH.Text; SM.Text:=FieldValuesbname; ZZ.Text:=FieldValuesbauthor; CBRQ.Text:=dateToStr(FieldValuesboutdate); CBs.Text:=FieldValuesbpress; DJ.Text:=FloatToStr(FieldValuesbcost); SL.Text:=IntToStr(Fi

44、eldValuesbamount); BZ.Text:=FieldValuesremark; with ADOQuery1 do begin Close; SQL.Clear; SQL.Add(select class from tsclass); Open; Locate(class,Fieldvaluesclass,); LB.ItemIndex:=LB.Items.IndexOf(FieldValuesclass); XG.Checked:=true; ZX.Enabled:=true; end; end else begin MessageBox(handle,记录没有找到,请检查输入

45、的编号是否正确!,没有找到图书记录,MB_OK or MB_ICONERROR); end; end;end;用户可对查询出来的记录选择操作方式,如修改、删除,当用户单击“执行“按钮时,系统响应执行对应的操作,Onclick响应函数代码如下:procedure TTSZL1.ZXClick(Sender: TObject);var Del:integer;begin if XG.Checked then begin if TSZL1.CheckError1 then exit; with ADOQuery1 do begin Close; SQL.Clear; SQL.Add(select *

46、 from book); Open; Locate(bcode,BH.Text,); Edit; FieldValuesbclass:=LB.Text; FieldValuesbname:=SM.Text; FieldValuesbauthor:=ZZ.Text; FieldValuesboutdate:=StrToDate(CBRQ.Text); FieldValuesbpress:=CBS.Text; FieldValuesbcost:=StrToFloat(DJ.Text); FieldValuesbamount:=StrToInt(SL.Text); FieldValuesbsheng

47、:=StrToInt(SL.Text); FieldValuesremark:=BZ.Text; Post; MessageBox(handle,记录已成功修改,修改成功,MB_OK or MB_ICONINFORMATION); end; end else begin Del:=MessageBox(handle,警告:删除是永久不可恢复的!确认删除吗?,删除确认,MB_OKCANCEL or MB_ICONWarning); if Del=IDCancel then exit; with ADOQuery1 do begin Close; SQL.Clear; SQL.Add(delete

48、 book where bcode =:bcode); Parameters.ParamByName(bcode).Value:=BH.Text; ExecSQL; MessageBox(handle,记录已成功删除,删除成功,MB_OK or MB_ICONINFORMATION); TSBH.Text:=; BH.Text:=; SM.Text:=; ZZ.Text:=; CBRQ.Text:=; CBS.Text:=; DJ.Text:=; SL.Text:=; BZ.Text:=; LB.Text:=; LB.Enabled:=false; end; end;end;3.图书类别管理图

49、书类别管理主要是根据书籍的类型进行分类,方便读者进行查询,提高查询速度。图书类别管理分为修改和添加两种操作,它与图书管理在同一窗体中,只需新建一个TabSheet即可,界面布置如下所示:用户选中DBGrid中某一列记录,单击“删除”按钮,将分类记录信息从数据库中移除。在删除前弹出警告对话框提示操作的危险性,只有在用户确认的情况下删除记录,代码如下:procedure TTSZL1.DELClick(Sender: TObject);Var Del:integer;begin Del:=MessageBox(handle,警告:删除是永久不可恢复的!确认删除吗?,删除确认,MB_OKCANCEL

50、 or MB_ICONWarning); if Del=IDCancel then exit; LBXX.DataSource.DataSet.Delete; MessageBox(handle,记录已成功删除,删除成功,MB_OK or MB_ICONINFORMATION); LBDM.Text:=; LBDM.Enabled:=true; LBMC.Text:=; TJLB.Enabled:=true;end;选中修改类别按钮时,将DBGrid中的内容显示在类别代码和类别名称编辑控件中,并使“执行”按钮可见。代码如下:procedure TTSZL1.XGLBClick(Sender:

51、TObject);begin LBDM.Text:=LBXX.DataSource.DataSet.FieldValuesclass; LBmc.Text:=LBXX.DataSource.DataSet.FieldValuesclassname; LBZX.Enabled:=true; LBDM.Enabled:=false;End;选中添加类别按钮时,在信息GroupBox下的两个Edt控件中输入相关信息,并使“执行”可见。代码如下:procedure TTSZL1.TJLBClick(Sender: TObject);begin LBDM.Text:=; LBDM.Enabled:= t

52、rue; LBMC.Text:=;end;(4)在“执行”按钮可见的情况下,用户单击“执行”按钮,系统根据操作方式进行不同的响应事件,处理代码如下:procedure TTSZL1.LBZXClick(Sender: TObject);begin if LBDM.Text= then begin MessageBox(handle,类别代码不能为空!,类别代码错误,MB_OK or MB_ICONERROR); exit; end; if LBMC.Text= then begin MessageBox(handle,类别名称不能为空!,类别名称错误,MB_OK or MB_ICONERROR

53、); exit; end; if TJLB.Checked then begin with ADOQuery1 do begin Close; SQL.Clear; SQL.Add(select class,classname from tsclass); Open; if Locate(class,LBDM.Text,) then begin MessageBox(handle,类别代码已经存在!,错误,MB_OK or MB_ICONERROR); LBDM.SetFocus; exit; end; if Locate(classname,Lbmc.Text,) then begin Me

54、ssageBox(handle,类别名称已经存在!,错误,MB_OK or MB_ICONERROR); LBDM.SetFocus; exit; end; Append; FieldValuesclass:=LBDM.Text; FieldValuesclassname:=LBMc.Text; Post; MessageBox(handle,类型记录添加成功!,添加成功,MB_OK or MB_ICONINFORMATION); end; end else begin with ADOQuery1 do begin Close; SQL.Clear; SQL.Add(select class

55、,classname from tsclass); Open; Locate(class,LBDM.Text,); edit; FieldValuesclassname:=LBMC.Text; Post; MessageBox(handle,类型记录修改成功!,修改成功,MB_OK or MB_ICONINFORMATION); end; end; end;procedure TTSZL1.LBXXCellClick(Column: TColumn);begin if XGLB.Checked then begin LBDM.Text:=ADOQuery1.Fields0.AsString;

56、LBMC.Text:=ADOQuery1.Fields1.AsString; LBDM.Enabled:=false; end else begin LBDM.Text:=; LBMC.Text:=; end;end;四、书籍借阅模块的实现书籍借阅模块主要时服务读者的借书、还书,在此基础上添加相关的判断,如在借书时,检查的是借阅人所属群组、最大借阅书籍数、已借阅书籍数。在归还书籍时页需要判断所环的书籍是否超期,并对超期书籍进行罚金统计,下面两个部分的实现。窗体的初始化程序如下:procedure TTSJH1.JSClick(Sender: TObject);begin Label2.Capt

57、ion:=图书编号:; HS_T.TabVisible:=false; JS_T.TabVisible:=true; TSBH.Text:=;end;在用户输入图标编号后,单击“检查”按钮时,查检ID是否合法,并判断时还书还是借书,并对相关信息进行初始化,此部分是借书和还书的共有部分,具体代码如下:procedure TTSJH1.JCClick(Sender: TObject);var s:string;begin if JS.Checked then begin with ADOQuery1 do begin Close; SQL.Clear; SQL.Add(select * from

58、book where bcode=:bcode); Parameters.ParamByName(bcode).Value:=TSBH.Text; Open; if Bof and Eof then begin MessageBox(handle,输入的图书编号有错!请重新输入!,错误,MB_OK or MB_ICONERROR); TSBH.Text:=; JS_T.TabVisible:=false; end else begin MessageBox(handle,图书编号存在,成功,MB_OK or MB_ICONINFORMATION); JS_T.TabVisible:=true;

59、 HS_T.TabVisible:=false; SM.Text:=FieldValuesbname; ZZ.Text:=FieldValuesbauthor; CBs.Text:=FieldValuesbpress; SYSL.Text:=IntToStr(FieldValuesbsheng); CBRQ.Text:=dateToStr(FieldValuesboutdate); s:=FieldValuesbclass; with ADOQuery1 do begin Close; SQL.Clear; SQL.Add(select * from tsclass where class=:

60、class); Parameters.ParamByName(class).Value:=s; Open; LB.Text:=FieldValuesclassname; end; end; end; end; if HS.Checked then begin with ADOQuery1 do begin Close; SQL.Clear; SQL.Add(select * from yonghu where readerID=:readerID); Parameters.ParamByName(readerID).Value:=TSBH.Text; Open; if Bof and Eof

温馨提示

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

评论

0/150

提交评论