图书馆管理系统.docx
- 文档编号:27957142
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:45
- 大小:173.67KB
图书馆管理系统.docx
《图书馆管理系统.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统.docx(45页珍藏版)》请在冰豆网上搜索。
图书馆管理系统
经济管理学院本科课程设计论文
数据库开发与应用课程设计
学号:
姓名:
班级:
专业:
系别:
指导教师:
2010年1月8日
第一章、需求分析
一、软件概述
1、软件名称:
图书馆管理系统
2、软件说明:
本图书管理信息系统是利用计算机管理信息处理的迅速、准确、可靠且具有强大存储能力的突出特点,全面提高图书馆的管理水平和工作效率,并以及时、完整的业务经营资料,为图书馆的及时转换提供一定的支持。
本图书3、管理系统涵盖了六个主要的子系统:
图书资料管理、读者资料管理、借书操作、还书操作、修改密码和查询处理,并通过信息的收集、整理、存储、传递将它们有机地结合起来,提高了工作的准确率和效率。
预期读者:
图书管理员,学生,外界人士。
图1-1各模块功能图
第二章、概要设计说明
一.数据说明
表2-1管理员信息
字段名
字段类型
字段长度
字段意义
用户号
长整型
用户名
文本
8
密码
文本
30
表2-2用户信息
字段名
字段类型
字段长度
字段说明
用户号
长整型
用户名
文本
8
密码
文本
20
性别
文本
2
院系
文本
20
年级
文本
4
专业
文本
22
班级
文本
2
身份
文本
10
(专科生,本科生,研究生,教师)
表2-3访客注册
字段名
字段类型
字段长度
字段意义
用户号
长整型
用户名
文本
16
密码
文本
12
性别
文本
2
学历
文本
8
(专科生,本科生,研究生)
身份
文本
8
默认为外界人士
表2-4图书信息
字段名
字段类型
字段长度
字段说明
图书编号
长整型
图书分类
文本
20
书名
文本
40
作者
文本
8
出版社
文本
40
单价
货币
入库日期
日期/时间
长日期
状态
文本
4
在库,借出,丢失
赔偿比例
货币
百分比
表2-5借书证信息
字段名
字段类型
字段长度
字段说明
借书证号
长整型
姓名
文本
8
类别
文本
6
(专,本,研,教师)
可借数量
字节
根据类别界定
已借数量
字节
身份证
文本
20
家庭住址
文本
50
有效标志
布尔
有效true
挂失false
表2-6借阅与归还
字段名
字段类型
字段长度
字段说明
借阅证号
长整型
图书编号
长整型
图书分类
文本
20
书名
文本
40
借阅时间
日期/时间
常规日期
归还时间
日期/时间
常规日期
办理借阅人
文本
8
办理借阅的图书管理员
办理归还人
文本
8
办理归还的图书管理员
二.数据项的页码设计
1、对于读者编号:
为便于查找采用层次码。
如:
06(年级,入学年份)21(学院代码)07(专业代码)001(编号)
2、图书编号:
采用层次码。
如:
101(类别)001(编号)
注:
101——计算机类102——英语103——医学
104——哲学105——数学
第三章、详细设计说明
一.窗体描述
窗体名称:
about
窗体内容:
系统信息
单元文件名:
about
图3-1系统信息窗体
2.窗体名称:
bookmar
窗体内容:
主界面
单元文件名:
bookmar
图3-2主界面窗体
程序代码:
interface
private
{Privatedeclarations}
procedurelistextimebook;//列举用户超时图书情况
public
{Publicdeclarations}
procedureviewmenu(p:
integer);
procedurelistbookinfo;//列举用户图书借阅情况
end;
var
mainfrm:
Tmainfrm;
implementation
usesglobal,login,regulation,setpath,about,uquery,newbook,borrowbooks,exbookinfo,
enc,userinfo,returnbook,delrec,modify,mgrquery;
{$R*.dfm}
procedureTmainfrm.listextimebook;
begin
//初始化处理
exbook_num:
=0;
extimebookfrm.ListView1.Items.Clear;
withquery1do
begin
first;
whilenoteofdo
begin
iffieldbyname('罚金').AsFloat<>0then
withextimebookfrm.ListView1.Items.Adddo
begin
caption:
=query1.fieldbyname('图书编号').AsString;
subitems.Add(query1.fieldbyname('书名').AsString);
subitems.Add(query1.fieldbyname('作者').AsString);
subitems.Add(query1.fieldbyname('出版社').AsString);
subitems.Add(query1.fieldbyname('借出时间').AsString);
subitems.Add(query1.fieldbyname('超时').AsString);
subitems.Add(query1.fieldbyname('罚金').AsString);
inc(exbook_num);
end;
next;
end;
end;
end;
procedureTmainfrm.viewmenu(p:
integer);
begin
casepof
-1:
begin//没有用户登录
k_encf.Visible:
=false;
n5.Visible:
=false;
n2.Visible:
=false;
n3.Visible:
=false;
coolbar1.Bands[1].Visible:
=false;
panel1.Visible:
=false;
coolbar1.Bands[2].Visible:
=false;
k_longin.Caption:
='登录系统';
loginbtn.Caption:
='登录系统';
statusbar1.Panels[0].Text:
='没有用户登录!
';
end;
1:
begin//学生登录
listbookinfo;
panel1.Visible:
=true;
n2.Visible:
=false;
n3.Visible:
=true;
coolbar1.Bands[1].Visible:
=true;
coolbar1.Bands[2].Visible:
=false;
k_encf.Visible:
=true;
n5.Visible:
=true;
k_longin.Caption:
='注销';
loginbtn.Caption:
='注销';
statusbar1.Panels[0].Text:
='';
edit1.Text:
=username;
end;
0:
begin//管理员登录
panel1.Visible:
=false;
coolbar1.Bands[2].Visible:
=true;
n2.Visible:
=true;
n3.Visible:
=false;
coolbar1.Bands[1].Visible:
=false;
k_encf.Visible:
=true;
n5.Visible:
=true;
k_longin.Caption:
='注销';
loginbtn.Caption:
='注销';
statusbar1.Panels[0].Text:
='管理员:
'+username;
end;
end;
end;
procedureTmainfrm.listbookinfo;
begin
withQuery1do
begin
Close;
DatabaseName:
=dbname;
SQL.Clear;
SQL.Add('selectb.图书编号,b.书名,b.作者,b.出版社,b.类别,a.借出时间'+
'fromborrow_infoa,book_infob'+
'wherea.学生证号='''+userpwd+'''anda.图书编号=b.图书编号');
Open;
listextimebook;//查看是否有超时图书
end;
end;
procedureTmainfrm.k_regClick(Sender:
TObject);
begin
regfrm.ShowModal;
end;
procedureTmainfrm.k_longinClick(Sender:
TObject);
begin
ifcopy(k_longin.Caption,1,4)='登录'then
loginfrm.ShowModal
else
ifmessagedlg('确实要注销"'+username+'"吗?
',mtconfirmation,[mbYes,mbNo],0)=mrYesthen
begin
username:
='';
userpwd:
='';
viewmenu(-1);
end;
end;
procedureTmainfrm.loginbtnClick(Sender:
TObject);
begin
k_longin.OnClick(self);
end;
procedureTmainfrm.exitbtnClick(Sender:
TObject);
begin
k_exit.OnClick(self);
end;
procedureTmainfrm.k_exitClick(Sender:
TObject);
begin
close;
end;
procedureTmainfrm.k_setpathClick(Sender:
TObject);
begin
setpathfrm.showmodal;
end;
procedureTmainfrm.FormCreate(Sender:
TObject);
begin
viewmenu(-1);
end;
procedureTmainfrm.Query1CalcFields(DataSet:
TDataSet);
begin
return_time.Value:
=query1.fieldbyname('借出时间').Value+P_days;
ifreturn_time.Value ex_time.Value: =daysbetween(date,return_time.Value) elseex_time.Value: =0; fj.Value: =p_momey*ex_time.Value; end; procedureTmainfrm.DBGrid1DrawColumnCell(Sender: TObject; constRect: TRect;DataCol: Integer;Column: TColumn; State: TGridDrawState); begin withdbgrid1.Canvasdo ifquery1.FieldByName('罚金').Value>0then begin brush.Color: =clRed; font.Color: =clWhite; end; dbgrid1.DefaultDrawDataCell(Rect,column.Field,State); end; procedureTmainfrm.k_aboutClick(Sender: TObject); begin aboutfrm.ShowModal; end; procedureTmainfrm.k_queryClick(Sender: TObject); begin uqueryfrm.ShowModal; end; procedureTmainfrm.querybtnClick(Sender: TObject); begin k_query.OnClick(self); end; procedureTmainfrm.k_newClick(Sender: TObject); begin newfrm.ShowModal; end; procedureTmainfrm.k_borrowClick(Sender: TObject); begin borrowfrm.ShowModal; end; procedureTmainfrm.borrowbtnClick(Sender: TObject); begin k_borrow.OnClick(self); end; procedureTmainfrm.k_returnClick(Sender: TObject); begin returnbookfrm.ShowModal; end; procedureTmainfrm.returnbtnClick(Sender: TObject); begin k_return.OnClick(self); end; procedureTmainfrm.k_encfClick(Sender: TObject); begin ifpanel1.Visiblethen begin p1visible: =true; panel1.Visible: =false; end elsep1visible: =false; encfrm.ShowModal; end; procedureTmainfrm.user_encfbtnClick(Sender: TObject); begin k_encf.OnClick(self); end; procedureTmainfrm.k_infomgrClick(Sender: TObject); begin userinfofrm.ShowModal; end; procedureTmainfrm.newbtnClick(Sender: TObject); begin k_new.OnClick(self); end; procedureTmainfrm.arrangebtnClick(Sender: TObject); begin k_arrange.OnClick(self); end; procedureTmainfrm.modifybtnClick(Sender: TObject); begin k_modify.OnClick(self); end; procedureTmainfrm.queryuserbtnClick(Sender: TObject); begin k_queryuser.OnClick(self); end; procedureTmainfrm.regbtnClick(Sender: TObject); begin k_reg.OnClick(self); end; procedureTmainfrm.infomgrbtnClick(Sender: TObject); begin k_infomgr.OnClick(self); end; procedureTmainfrm.setpathbtnClick(Sender: TObject); begin k_setpath.OnClick(self); end; procedureTmainfrm.mgr_encfbtnClick(Sender: TObject); begin k_encf.OnClick(self); end; procedureTmainfrm.k_arrangeClick(Sender: TObject); begin delfrm.ShowModal; end; procedureTmainfrm.k_modifyClick(Sender: TObject); begin modifyfrm.ShowModal; end; procedureTmainfrm.k_queryuserClick(Sender: TObject); begin mgrqfrm.ShowModal; end; procedureTmainfrm.FormCloseQuery(Sender: TObject;varCanClose: Boolean); begin ifmessagedlg('真的要退出系统吗? ',mtconfirmation,[mbYes,mbNo],0)=mrNothen canclose: =false; end; end. 3.窗体名称: borrowbook 窗体内容: 图书借阅 单元名称: borrowbooks 程序代码: var borrowfrm: Tborrowfrm; implementation usesglobal,login,main,regulation,exbookinfo; {$R*.dfm} procedureTborrowfrm.addbookinfo(varq: Tquery;varv: Tlistview;flg: integer); begin q.First; whilenotq.Eofdo begin withv.Items.Adddo begin caption: =q.fieldbyname('图书编号').AsString; subitems.Add(q.fieldbyname('书名').AsString); subitems.Add(q.fieldbyname('作者').AsString); subitems.Add(q.fieldbyname('出版社').AsString); ifflg=1thensubitems.Add(q.fieldbyname('借阅次数').AsString) elsesubitems.Add(q.fieldbyname('类别').AsString); ifisborrowed(caption)thensubitems.Add('是')elsesubitems.Add('否'); end; q.Next; end; end; //------新入库新书推荐-------// procedureTborrowfrm.listnewbooks; varq: tquery; begin q: =tquery.Create(nil); q.DatabaseName: =dbname; q.SQL.Add('select*frombook_infowhere入库时间>=: mintimeand入库时间<=: maxtime'); q.ParamByName('mintime').AsDate: =date-p_betdays; q.ParamByName('maxtime').AsDate: =date; q.Open; addbookinfo(q,listview1,0); label1.Caption: ='共'+inttostr(listview1.Items.Count)+'本'; q.Close; q.Free; end; //---------借阅排行榜----------// proceduretborrowfrm.listtopbooks; varq: tquery; begin q: =tquery.Create(nil); q.DatabaseName: =dbname; q.SQL.Add('select*frombook_infoorderby借阅次数DESC'); q.Open; addbookinfo(q,listview2,1); label2.Caption: ='共'+inttostr(listview2.Items.Count)+'本'; q.Close; q.Free; end; //--------借书--------// proceduretborrowfrm.borrowbook(b_no: string); varq: tquery; begin q: =tquery.Create(nil); q.DatabaseName: =dbname; q.SQL.Add('insertintoborrow_info(图书编号,学生证号,借出时间)'+ 'values(: book_no,: stud_no,: borrow_date)'); q.ParamByName('book_no').AsString: =b_no; q.ParamByName('stud_no').AsString: =userpwd; q.ParamByName('borrow_date').AsDate: =date; q.ExecSQL; q.Close; q.SQL.Clear;//更新借阅次数 q.SQL.Add('updatebook_infoset借阅次数=借阅次数+1where图书编号=: book_no'); q.ParamByName('book_no').AsString: =b_no; q.ExecSQL; q.Close; q.Free; mainfrm.listbookinfo; end; //--------借书确认-----------// procedureTborrowfrm.borrowproc(varv: Tlistview); varch: integer; book_no,b_out: string; begin ifv.Items.Count=0thenexit; ifv.Selected=nil
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理 系统