1、图书馆系统的实现功能和实现步骤图书馆管理系统1.信息描述图书馆中有各种类型的图书,图书信息包括:图书编号、图书名称、作者、出版社、种类、价格、出版时间等;读者信息包括:姓名、性别、单位、出生日期等。2.预计功能描述1. 基础数据维护。2. 图书的插入。1)3. 图书的删除与修改。4. 图书查询。5. 图书借阅与归还。begin FrmLogin.Caption:=管理员登陆。 /把登陆界面标题改为“管理员登陆” FrmLogin.ShowModal。 /显示登陆界面end。在“用户登录”中输入以下代码:procedure TMain.CoLoginClick(Sender: TObject。b
2、egin FrmLogin.Caption:=用户登陆。 /把登陆界面标题改为“用户登录” FrmLogin.ShowModal。 /显示登陆界面end。在“退出”中输入以下代码。begin close。end。3.2登录界面的设置登录界面的主要控件:2个Lable、2个Edit、2个BitButton、ADOQuery、DataSourse。如图:在确定按钮中输入以下代码:procedure TFrmLogin.BtnOKClick(Sender: TObject。Var CmdStr: String。 /CmdStr存放查询语句 UsrType: integer。 /UsrType存放用户
3、类型begin ADOQryUser.SQL.Clear。 CmdStr:=select* From 用户+and 口令=+QuotedStr(EdtPass.Text。 AdoQryUser.SQL.Add(CmdStr。 AdoQryUser.Open。 if AdoQryUser.RecordCount0 then /确认该用户存在 begin UsrType:=ADOQryUser.FieldList2.AsInteger。 if UsrType=0 then /0为普通用户 if FrmLogin.Caption=管理员登陆 then /如果用户点了管理员登陆,提醒其换登陆 begi
4、n messagedlg(此账号不是管理员,请使用用户登录,mtinformation,mbyes,mbno,0。 close。 end /登陆成功 else begin FrmWork.Caption:=用户使用。 /主界面标题改为“用户使用” FrmWork.BkManage.Enabled:=false。 /图书管理按钮不可用 FrmWork.BkRdManage.Enabled:=false。 /用户管理按钮不可用 FrmWork.BkBorL.Enabled:=False。 /图书借阅及归还按钮不可用 FrmWork.BkReader.Enabled:=true。 /读者服务按钮可用
5、 FrmWork.BkSearch.Enabled:=true。 /图书查询按钮可用 FrmWork.BkExit.Enabled:=true。 /退出登录按钮可用 FrmWork.ShowModal。 /显示主界面 end else if UsrType=1 then /1为普通管理员 if FrmLogin.Caption=用户登录 then begin messagedlg(此账号不是用户,请使用管理员登录,mtinformation,mbyes,mbno,0。 close。 end else begin FrmWork.Caption:=管理员使用。 FrmWork.BkManage.
6、Enabled:=true。 /普通管理员可以使用图书管理 FrmWork.BkRdManage.Enabled:=false。 FrmWork.BkBorL.Enabled:=true。 /普通管理员可以使用图书借阅及归还 FrmWork.BkReader.Enabled:=true。 FrmWork.BkSearch.Enabled:=true。 FrmWork.BkExit.Enabled:=true。 FrmWork.ShowModal。 end else /其他的是顶级管理员 if FrmLogin.Caption=用户登录 then begin messagedlg(此账号不是用户
7、,请使用管理员登录,mtinformation,mbyes,mbno,0。 close。 end else begin FrmWork.Caption:=管理员使用。 FrmWork.BkManage.Enabled:=true。 FrmWork.BkRdManage.Enabled:=true。 /顶级管理员可以使用用户管理 FrmWork.BkBorL.Enabled:=true。 FrmWork.BkReader.Enabled:=true。 FrmWork.BkSearch.Enabled:=true。 FrmWork.BkExit.Enabled:=true。 FrmWork.Sho
8、wModal。 end end else if(messagedlg(输入的用户名与口令不对!是否要重输?,mtinformation,mbyes,mbno,0mryes then Close。end。3.3工作主界面 工作主界面的主要控件为:6个Button、2个Lable。如图:此界面的主要代码如下:procedure TFrmWork.BkExitClick(Sender: TObject。begin close。end。procedure TFrmWork.BkSearchClick(Sender: TObject。begin FrmBkSearch.ShowModal。 /显示图书查
9、询界面end。procedure TFrmWork.BkRdManageClick(Sender: TObject。begin FrmRdManage.ShowModal。 /显示用户管理界面end。procedure TFrmWork.BkManageClick(Sender: TObject。begin FrmBkManage.ShowModal。 /显示图书管理界面end。procedure TFrmWork.BkReaderClick(Sender: TObject。begin FrmReader.ShowModal。 /显示读者服务界面end。procedure TFrmWork.B
10、kBorLClick(Sender: TObject。begin FrmBkBandL.showModal。 /显示图书借阅与归还界面end。3.4图书查询界面 图书查询界面的主要控件为:Lable、DBEdit、Button、BitButton、RadioGroup、DBGrid、DataSourse和ADOQurey。如图:选择查询条件的代码为:procedure TFrmBkSearch.rdgClick(Sender: TObject。 /查询条件的改变begin ADOQryCondtion.Close。 ADOQryConDtion.SQL.Clear。 Case rdg.Item
11、Index of 0: begin ADOQryCondtion.SQL.Add(select 图书名称 from 图书。 DBEditBook.DataField:=图书名称。 end。 1: begin ADOQryCondtion.SQL.Add(select 作者 from 图书。 DBEditBook.DataField:=作者。 end。 2: begin ADOQryCondtion.SQL.Add(select 出版社 from 图书。 DBEditBook.DataField:=出版社。 end。 3: begin ADOQryCondtion.SQL.Add(select
12、种类 from 图书。 DBEditBook.DataField:=种类。 end。 4: begin ADOQryCondtion.SQL.Add(select * from 图书。 ADOQryCondtion.Active:=true。 end。 end。 ADOQryCondtion.Active:=true。end。点击搜索的代码为:procedure TFrmBkSearch.Button1Click(Sender: TObject。 /确认查询var CID:String。 /CID中存放查询语句begin ADOQryXx.Close。 ADOQryXx.SQL.Clear。
13、case rdg.ItemIndex of 0:CID:=select* from 图书 where 图书名称 LIKE +QuotedStr(%+DBEditBook.Text+%。 1:CID:=select* from 图书 where 作者 LIKE +QuotedStr(%+DBEditBook.Text+%。 2:CID:=select* from 图书 where 出版社 LIKE +QuotedStr(%+DBEditBook.Text+%。 3:CID:=select* from 图书 where 种类 LIKE +QuotedStr(%+DBEditBook.Text+%。
14、 4:CID:=select* from 图书。 end。 ADOQryXx.SQL.Add(CID。 /写入SQL语句 ADOQryXx.Active:=true。 /显示查询结果end。3.5读者服务界面读者服务界面的主要控件为:DataSourse、ADOQuery、Edit、Table、PageControl、bitbutton、DBGrid等。1.用户信息查询:此TabSheet的OnShow事件代码为:procedure TFrmReader.TabSheet1Show(Sender: TObject。 /实现了用户信息查询var chazhao: String。 /保存查询语句
15、leixin: integer。 /保存用户类型begin ADOQryJieshu.Close。 ADOQryJieshu.SQL.Clear。 chazhao:=select* From 用户+and 口令=+QuotedStr(FrmLogin.EdtPass.Text。 ADOQryJieshu.SQL.Add(chazhao。 ADOQryJieshu.Open。 /显示各种查询到的信息 Edit1.text:=ADOQryJieshu.FieldList3.AsString。 Edit2.text:=ADOQryJieshu.FieldList4.AsString。 Edit3.t
16、ext:=ADOQryJieshu.FieldList6.AsString。 Edit4.text:=ADOQryJieshu.FieldList5.AsString。 Edit8.Text:=ADOQryJieshu.FieldList7.AsString。 leixin:=ADOQryJieshu.FieldList2.AsInteger。 case leixin of 0: Edit9.Text:=普通用户。 1: Edit9.Text:=管理员。 2: Edit9.Text:=顶级管理员。 end。end。2.图书借阅查询此TabSheet的OnShow事件代码为:procedure
17、TFrmReader.TabSheet2Show(Sender: TObject。 /实现该用户所借书籍的显示var chaxun: String。begin ADOQuery1.Close。 ADOQuery1.SQL.Clear。 chaxun:=select* From 借书 Where 用户名=+QuotedStr(FrmLogin.EdtUserName.Text。 ADOQuery1.SQL.Add(chaxun。 ADOQuery1.Open。 ADOQuery1.Active:=true。end。3.密码修改点击确认修改按钮的代码是:procedure TFrmReader.B
18、itBtn2Click(Sender: TObject。 /实现密码的修改var xiugai: String。 /保存修改语句begin ADOQuery1.Close。 ADOQuery1.SQL.Clear。 if Edit5.TextFrmLogin.EdtPass.Text then /确认原密码正确 messagedlg(原密码错误,请重输,mtinformation,mbyes,mbno,0 else if Edit6.TextEdit7.Text then /确保两次输入密码相同 messagedlg(确认密码与新密码不匹配,请重输,mtinformation,mbyes,mb
19、no,0 /修改密码 else begin xiugai:=Update 用户。 ADOQuery1.SQL.text:=xiugai。 ADOQuery1.Parameters.ParamByName(口令.Value:=trim(Edit6.Text。 ADOQuery1.ExecSQL。 end。 Edit5.Text:=。 Edit6.Text:=。 Edit7.Text:=。end。3.6图书借阅与归还界面图书借阅与归还界面主要控件为:PageControl、DataSource、ADOQuery、Button、Edit、DBGrid等。1.图书借阅修改用户名时的代码为:proced
20、ure TFrmBkBandL.Edit1Change(Sender: TObject。 /当用户更改时,即时显示该用户借阅的书籍var chaxun: String。begin ADOQuery1.close。 ADOQuery1.sql.clear。 chaxun:=select* from 借书 where 用户名=+quotedstr(Edit1.Text。 ADOQuery1.sql.Add(chaxun。 ADOQuery1.open。 ADOQuery1.ACtive:=true。end。点击确认借阅按钮的代码为:procedure TFrmBkBandL.Button1Clic
21、k(Sender: TObject。 /按此按钮确认借书var chaxun: String。 /保存查询语句 YH: String。 /保存用户姓名 TS: String。 /保存图书名称 YHSL: Integer。 /保存用户现在的借阅数量 TSSL: Integer。 /保存图书的现有数量begin if edit1.text= then begin showmessage(用户名不能为空,请重输!。 edit1.SetFocus。 end else if edit2.Text= then begin showmessage(图书编号不能为空,请重输!。 edit2.SetFocus。
22、 end /以上确保用户名与图书编号均不为空 else begin ADOQuery1.close。 ADOQuery1.sql.Clear。 chaxun:=select* from 用户。 ADOQuery1.sql.Add(chaxun。 ADOQuery1.open。 YHSL:=ADOQuery1.FieldList7.ASInteger。 if(ADOQuery1.recordcount=0 then /确保用户存在 begin showmessage(该用户不存在,请重输!。 edit1.SetFocus。 end else if(YHSL=5 then /确保该用户借书量未满
23、begin showmessage(该用户书籍已借满,请重输!。 edit1.SetFocus。 end else begin ADOQuery1.close。 ADOQuery1.sql.Clear。 chaxun:=select* from 图书 where 图书编号=+quotedstr(edit2.Text。 ADOQuery1.sql.Add(chaxun。 ADOQuery1.open。 TSSL:=ADOQuery1.FieldList7.ASInteger。 if(ADOQuery1.recordcount=0 then /确保该图书在库中 begin showmessage(
24、该图书不存在,请重输!。 edit2.SetFocus。 end else if(TSSL then /确保该图书还有存货 begin showmessage(该书籍库存已尽,请重输!。 edit2.SetFocus。 end /以下为借书步骤 else begin ADOQuery1.close。 ADOQuery1.sql.Clear。 chaxun:=select* from 图书 where 图书编号=+quotedstr(edit2.Text。 ADOQuery1.sql.Add(chaxun。 ADOQuery1.open。 TS:=ADOQuery1.FieldList1.ASS
25、tring。 /提取该编号的图书名称 ADOQuery1.close。 ADOQuery1.sql.Clear。 chaxun:=select* from 用户。 ADOQuery1.sql.Add(chaxun。 ADOQuery1.open。 YH:=ADOQuery1.FieldList3.ASString。 /提取该用户的姓名 /以下是借书步骤 ADOQuery1.close。 ADOQuery1.sql.Clear。 ADOQuery1.sql.Text:=insert into 借书(用户名,图书编号,用户姓名,图书名称,借书日期,应还日期 values(:用户名,:图书编号,:用
26、户姓名,:图书名称,:借书日期,:应还日期。 ADOQuery1.PArameters.ParamByName(用户名.Value:=trim(Edit1.Text。 /设置用户名 ADOQuery1.PArameters.ParamByName(图书编号.Value:=trim(Edit2.Text。 /设置图书编号 ADOQuery1.PArameters.ParamByName(用户姓名.Value:=trim(YH。 /设置用户姓名为YH ADOQuery1.PArameters.ParamByName(图书名称.Value:=trim(TS。 /设置图书名称为TS ADOQuery1
27、.PArameters.ParamByName(借书日期.Value:=Datetostr(date(。 /设置结束日期为当前日期 ADOQuery1.PArameters.ParamByName(应还日期.Value:=Datetostr(date(+30。 /设置应还日期为一个月后 ADOQuery1.ExecSQl。 /执行SQL语句,到此“借书”表中插入了一条记录 /更新“图书”表,把刚借走的图书的现有数量减1 ADOQuery1.close。 ADOQuery1.sql.clear。 ADOQuery1.sql.Text:=update 图书 set 现有数量=:现有数量 where 图书编号=+quotedstr(Edit2.Text。 ADOQuery1.PArameters.ParamByName(现有数量.Value:=TSSL-1。 ADOQuery1.ExecSQl。 /更新“用户管理员)”表,把刚借书的用户的借书数量加1 ADOQuery1.close。 ADOQuery1.sql.clear。 ADOQuery1.sql.Text:=update 用户。 ADOQuery1.PArameters.ParamByName(已借图书.Value:=YHSL+1。 ADOQ
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1