图书馆系统的实现功能和实现步骤.docx

上传人:b****5 文档编号:8045911 上传时间:2023-01-28 格式:DOCX 页数:32 大小:316.01KB
下载 相关 举报
图书馆系统的实现功能和实现步骤.docx_第1页
第1页 / 共32页
图书馆系统的实现功能和实现步骤.docx_第2页
第2页 / 共32页
图书馆系统的实现功能和实现步骤.docx_第3页
第3页 / 共32页
图书馆系统的实现功能和实现步骤.docx_第4页
第4页 / 共32页
图书馆系统的实现功能和实现步骤.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

图书馆系统的实现功能和实现步骤.docx

《图书馆系统的实现功能和实现步骤.docx》由会员分享,可在线阅读,更多相关《图书馆系统的实现功能和实现步骤.docx(32页珍藏版)》请在冰豆网上搜索。

图书馆系统的实现功能和实现步骤.docx

图书馆系统的实现功能和实现步骤

图书馆管理系统

1.信息描述

图书馆中有各种类型的图书,图书信息包括:

图书编号、图书名称、作者、出版社、种类、价格、出版时间等;读者信息包括:

姓名、性别、单位、出生日期等。

2.预计功能描述

1.基础数据维护。

2.图书的插入。

<数量>1)

3.图书的删除与修改。

4.图书查询。

5.图书借阅与归还。

<可以查询图书当前被谁借走及剩余数量。

每人能同时最多能借5本书,超过5本不能再借阅。

6.读者查询。

可以查询读者目前已借的图书信息及借阅时间与归还时间

7.权限设置。

8.帮助等。

3.功能的实现

3.1主界面设置

主界面中仅有一个MainMenu控件,如图所示:

在“管理员登录”中输入以下代码:

procedureTMain.AdLoginClick(Sender:

TObject>。

begin

FrmLogin.Caption:

='管理员登陆'。

//把登陆界面标题改为“管理员登陆”

FrmLogin.ShowModal。

//显示登陆界面

end。

在“用户登录”中输入以下代码:

procedureTMain.CoLoginClick(Sender:

TObject>。

begin

FrmLogin.Caption:

='用户登陆'。

//把登陆界面标题改为“用户登录”

FrmLogin.ShowModal。

//显示登陆界面

end。

在“退出”中输入以下代码<为简便起见,下文中未注明的“退出”与“取消”按钮与此操作相同,不予以再次注明):

procedureTMain.ExitClick(Sender:

TObject>。

begin

close。

end。

3.2登录界面的设置

登录界面的主要控件:

2个Lable、2个Edit、2个BitButton、ADOQuery、DataSourse。

如图:

在确定按钮中输入以下代码:

procedureTFrmLogin.BtnOKClick(Sender:

TObject>。

Var

CmdStr:

String。

//CmdStr存放查询语句

UsrType:

integer。

//UsrType存放用户类型

begin

ADOQryUser.SQL.Clear。

CmdStr:

='select*From用户<管理员)Where用户名='+QuotedStr(EdtUserName.Text>+'and口令='+QuotedStr(EdtPass.Text>。

AdoQryUser.SQL.Add(CmdStr>。

AdoQryUser.Open。

ifAdoQryUser.RecordCount<>0then//确认该用户存在

begin

UsrType:

=ADOQryUser.FieldList[2].AsInteger。

ifUsrType=0then//0为普通用户

ifFrmLogin.Caption='管理员登陆'then//如果用户点了管理员登陆,提醒其换登陆

begin

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。

//读者服务按钮可用

FrmWork.BkSearch.Enabled:

=true。

//图书查询按钮可用

FrmWork.BkExit.Enabled:

=true。

//退出登录按钮可用

FrmWork.ShowModal。

//显示主界面

end

elseifUsrType=1then//1为普通管理员

ifFrmLogin.Caption='用户登录'then

begin

messagedlg('此账号不是用户,请使用管理员登录',mtinformation,[mbyes,mbno],0>。

close。

end

else

begin

FrmWork.Caption:

='管理员使用'。

FrmWork.BkManage.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//其他的是顶级管理员

ifFrmLogin.Caption='用户登录'then

begin

messagedlg('此账号不是用户,请使用管理员登录',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.ShowModal。

end

end

else

if(messagedlg('输入的用户名与口令不对!

是否要重输?

',mtinformation,[mbyes,mbno],0><>mryes>then

Close。

end。

3.3工作主界面

工作主界面的主要控件为:

6个Button、2个Lable。

如图:

此界面的主要代码如下:

procedureTFrmWork.BkExitClick(Sender:

TObject>。

begin

close。

end。

procedureTFrmWork.BkSearchClick(Sender:

TObject>。

begin

FrmBkSearch.ShowModal。

//显示图书查询界面

end。

procedureTFrmWork.BkRdManageClick(Sender:

TObject>。

begin

FrmRdManage.ShowModal。

//显示用户管理界面

end。

procedureTFrmWork.BkManageClick(Sender:

TObject>。

begin

FrmBkManage.ShowModal。

//显示图书管理界面

end。

procedureTFrmWork.BkReaderClick(Sender:

TObject>。

begin

FrmReader.ShowModal。

//显示读者服务界面

end。

procedureTFrmWork.BkBorLClick(Sender:

TObject>。

begin

FrmBkBandL.showModal。

//显示图书借阅与归还界面

end。

3.4图书查询界面

图书查询界面的主要控件为:

Lable、DBEdit、Button、BitButton、RadioGroup、DBGrid、DataSourse和ADOQurey。

如图:

选择查询条件的代码为:

procedureTFrmBkSearch.rdgClick(Sender:

TObject>。

//查询条件的改变

begin

ADOQryCondtion.Close。

ADOQryConDtion.SQL.Clear。

Caserdg.ItemIndexof

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种类from图书'>。

DBEditBook.DataField:

='种类'。

end。

4:

begin

ADOQryCondtion.SQL.Add('select*from图书'>。

ADOQryCondtion.Active:

=true。

end。

end。

ADOQryCondtion.Active:

=true。

end。

点击搜索的代码为:

procedureTFrmBkSearch.Button1Click(Sender:

TObject>。

//确认查询

varCID:

String。

//CID中存放查询语句

begin

ADOQryXx.Close。

ADOQryXx.SQL.Clear。

caserdg.ItemIndexof

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+'%'>。

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事件代码为:

procedureTFrmReader.TabSheet1Show(Sender:

TObject>。

//实现了用户信息查询

var

chazhao:

String。

//保存查询语句

leixin:

integer。

//保存用户类型

begin

ADOQryJieshu.Close。

ADOQryJieshu.SQL.Clear。

chazhao:

='select*From用户<管理员)Where用户名='+QuotedStr(FrmLogin.EdtUserName.Text>+'and口令='+QuotedStr(FrmLogin.EdtPass.Text>。

ADOQryJieshu.SQL.Add(chazhao>。

ADOQryJieshu.Open。

//显示各种查询到的信息

Edit1.text:

=ADOQryJieshu.FieldList[3].AsString。

Edit2.text:

=ADOQryJieshu.FieldList[4].AsString。

Edit3.text:

=ADOQryJieshu.FieldList[6].AsString。

Edit4.text:

=ADOQryJieshu.FieldList[5].AsString。

Edit8.Text:

=ADOQryJieshu.FieldList[7].AsString。

leixin:

=ADOQryJieshu.FieldList[2].AsInteger。

caseleixinof

0:

Edit9.Text:

='普通用户'。

1:

Edit9.Text:

='管理员'。

2:

Edit9.Text:

='顶级管理员'。

end。

end。

2.图书借阅查询

此TabSheet的OnShow事件代码为:

procedureTFrmReader.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.密码修改

点击确认修改按钮的代码是:

procedureTFrmReader.BitBtn2Click(Sender:

TObject>。

//实现密码的修改

var

xiugai:

String。

//保存修改语句

begin

ADOQuery1.Close。

ADOQuery1.SQL.Clear。

ifEdit5.Text<>FrmLogin.EdtPass.Textthen//确认原密码正确

messagedlg('原密码错误,请重输',mtinformation,[mbyes,mbno],0>

else

ifEdit6.Text<>Edit7.Textthen//确保两次输入密码相同

messagedlg('确认密码与新密码不匹配,请重输',mtinformation,[mbyes,mbno],0>

//修改密码

else

begin

xiugai:

='Update用户<管理员)set口令=:

口令where用户名='+QuotedStr(FrmLogin.EdtUserName.Text>。

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.图书借阅

修改用户名时的代码为:

procedureTFrmBkBandL.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。

点击确认借阅按钮的代码为:

procedureTFrmBkBandL.Button1Click(Sender:

TObject>。

//按此按钮确认借书

var

chaxun:

String。

//保存查询语句

YH:

String。

//保存用户姓名

TS:

String。

//保存图书名称

YHSL:

Integer。

//保存用户现在的借阅数量

TSSL:

Integer。

//保存图书的现有数量

begin

ifedit1.text=''then

begin

showmessage('用户名不能为空,请重输!

'>。

edit1.SetFocus。

end

elseifedit2.Text=''then

begin

showmessage('图书编号不能为空,请重输!

'>。

edit2.SetFocus。

end

//以上确保用户名与图书编号均不为空

else

begin

ADOQuery1.close。

ADOQuery1.sql.Clear。

chaxun:

='select*from用户<管理员)where用户名='+quotedstr(edit1.Text>。

ADOQuery1.sql.Add(chaxun>。

ADOQuery1.open。

YHSL:

=ADOQuery1.FieldList[7].ASInteger。

if(ADOQuery1.recordcount=0>then//确保用户存在

begin

showmessage('该用户不存在,请重输!

'>。

edit1.SetFocus。

end

elseif(YHSL>=5>then//确保该用户借书量未满

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.FieldList[7].ASInteger。

if(ADOQuery1.recordcount=0>then//确保该图书在库中

begin

showmessage('该图书不存在,请重输!

'>。

edit2.SetFocus。

end

elseif(TSSL<=0>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.FieldList[1].ASString。

//提取该编号的图书名称

ADOQuery1.close。

ADOQuery1.sql.Clear。

chaxun:

='select*from用户<管理员)where用户名='+quotedstr(edit1.Text>。

ADOQuery1.sql.Add(chaxun>。

ADOQuery1.open。

YH:

=ADOQuery1.FieldList[3].ASString。

//提取该用户的姓名

//以下是借书步骤

ADOQuery1.close。

ADOQuery1.sql.Clear。

ADOQuery1.sql.Text:

='insertinto借书(用户名,图书编号,用户姓名,图书名称,借书日期,应还日期>values(:

用户名,:

图书编号,:

用户姓名,:

图书名称,:

借书日期,:

应还日期>'。

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.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用户<管理员)set已借图书=:

已借图书where用户名='+quotedstr(Edit1.Text>。

ADOQuery1.PArameters.ParamByName('已借图书'>.Value:

=YHSL+1。

ADOQ

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1