图书馆管理系统的实现功能和实现步骤.docx
- 文档编号:15244483
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:38
- 大小:316.12KB
图书馆管理系统的实现功能和实现步骤.docx
《图书馆管理系统的实现功能和实现步骤.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统的实现功能和实现步骤.docx(38页珍藏版)》请在冰点文库上搜索。
图书馆管理系统的实现功能和实现步骤
图书馆管理系统
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(’已借图书').Val
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理 系统 实现 功能 步骤
![提示](https://static.bingdoc.com/images/bang_tan.gif)