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

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

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

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

图书馆管理系统的实现功能和实现步骤.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;

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

当前位置:首页 > 经管营销 > 经济市场

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

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