图书管理系统报告.docx
《图书管理系统报告.docx》由会员分享,可在线阅读,更多相关《图书管理系统报告.docx(51页珍藏版)》请在冰豆网上搜索。
图书管理系统报告
图书管理系统
设计报告
学院:
信息科学与工程学院
专业班级:
姓名:
学号:
摘要
本课程设计是一个图书信息管理系统的后台数据库的设计。
由于时间和精力的限制本设计仅实现了图书管理系统基本功能的设计与实现。
通过本次课程设计,达到了了解数据库应用系统的开发过程,熟悉了系统分析和设计的过程和方法的目的。
在实践中掌握了知识,达到了学以致用的目标。
本次设计首先通过查阅资料对图书领域的基本知识有一定的认识,了解用户各个方面的需求,包括现有的以及将来的可能增加的需求。
然后按照数据库设计的六个阶段进行了设计与实现:
需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库的运行和维护。
数据库在各种信息的提供、保存、更新和查询方面都要求满足各种信息的输出和输入,符合用户的基本需求。
实现这些需要持久的学习和研发。
应用sql建立数据库,选用Delphi作为开发工具,完成了对图书管理系统的实现。
索引关键词:
数据库设计sql数据库应用Delphi设计
第一章绪论
随着数据库技术在各行各业的广泛应用,强大的数据库窗口技术、良好的数据库访问能力和友好的用户界面,日益成为设计者的得力助手,很好的运用好这些东西,对我们大学生以后的工作学习有很大的帮助。
1.1课题研究现状分析
在现今信息化发达的社会,图书的发行量与日俱增。
传统的图书馆需要制作有署名与对应编号的书卡,由读者按分类查找再交由图书管理员来处理借书工作,还书也要人工翻阅大量的记录,这样使得工作量大并及其繁琐,效率变得低下。
因此需要对书籍资源、读者资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利用管理效率的提高。
建立网上电子图书管理系统的目的是实现无纸化图书管理,减轻管理员的工作量,方便读者查阅所需的图书,还可以利用网络实现提醒读者还书的功能。
管理员还可以对各种图书进行分析统计,对过时、损坏的图书进行删除,预约图书供应商订购更新的图书。
达到降低成本提高工作效率的目标。
1.2选题的目的及意义
目的:
图书管理系统主要目的是对图书馆种类繁多的书籍进行管理,并且合理管理好用户的借还信息。
提高图书馆的工作效率,降低管理成本。
意义:
通过完成从用户需求分析、数据库设计到上机编程、调试和应用等全过程,进一步了解和掌握本书中所讲解的内容,了解数据库的结构和操作,从而到达熟悉数据库的目的。
第二章系统需求分析
2.1用户调查
1.图书馆工作人员对功能的需求
工作人员对功能的需求细分如下:
1、教师信息的输入,查询,修改;
2、书籍信息的输入,查询,修改;
3、学生信息的输入,查询,修改;
4、借书信息的输入,查询;
5、还书信息的输入。
6、读者信息的查询。
2.读者对功能的需求
1、图书信息检索:
范围可按书名,作者,出版社,等检索款目进行任意条件组合精确或模糊检索,最快时间查找目标书籍;
2、读者人个信息的输入、修改。
查询。
建立读者个人信息档案,获取当前读者的个人信息。
并根据学号查询当前读者当前的借书情况,历史借书情况等。
2.2图书管理系统数据流图
2.3数据字典
一、主要数据项的定义
1.图书信息表
属性名
数据类型
长度
允许空
备注
分类号
char
15
N
书名
char
20
N
作者
char
10
Y
出版社
char
20
Y
储书总量
Int
4
Y
借出量
Int
4
Y
2.学生基本信息表
属性名
数据类型
长度
允许空
备注
学生学号
char
10
N
唯一
姓名
char
10
N
性别
char
4
N
年龄
Int
4
Y
民族
char
8
Y
所在专业
char
10
Y
所在学院
Char
20
Y
联系方式
char
15
Y
入学年份
char
5
Y
3.教师基本信息表
属性名
数据类型
长度
允许空
备注
教工号
char
10
N
唯一
教师姓名
char
10
N
教师性别
char
4
N
教师年龄
Int
4
Y
教师职称
char
10
Y
联系方式
char
15
Y
4.教师借阅信息表
属性名
数据类型
长度
允许空
备注
教工号
char
10
N
唯一
教师姓名
Char
10
N
图书分类号
char
15
N
图书书名
char
20
Y
借书日期
char
8
Y
续借次数
char
4
Y
5.学生借阅信息表
属性名
数据类型
长度
允许空
备注
学生学号
char
10
N
学生姓名
char
10
N
图书分类号
char
20
N
图书书名
Char
20
N
借书日期
Char
10
Y
续借次数
char
4
Y
6.借书表
属性名
数据类型
长度
允许空
备注
分类号
char
15
N
学生学号/教工号
char
10
N
借出日期
char
10
N
已续借次数
Char
10
N
应还日期
Char
10
Y
7.还书表
属性名
数据类型
长度
允许空
备注
分类号
char
15
N
学生学号/教工号
char
10
N
是否归还
char
8
Y
归还日期
Char
10
Y
第三章数据库设计
3.1数据库概念结构设计
1.数据库需要表述的信息有以下几种:
(1)图书基本信息,
(2)学生基本信息,
(3)教师基本信息
(4)学生借阅信息表
(5)教师借阅信息表
(6)借书表
(7)还书表
通过分析整理可得图书管理系统E-R图为:
由系统E-R图可得其主要处理过程:
(1)处理过程:
学生信息
输入:
学生学号输出:
读者的注册信息
处理操作:
对所有注册的读者信息建表,用学号作为读者统一编号,编号是唯一的。
(2)处理过程:
教师信息
输入:
教工号
输出:
教师的基本信息
处理操作:
对所有教师编号,建立教师基本信息表,教工号具有唯一性,
(3)处理过程:
图书管理
输入:
分类号
输出:
图书的基本信息
处理操作:
对所有进馆的图书编号,建立图书信息表,图书分类号具有唯一性,
(4)处理过程:
图书查询
输入:
分类号
输出:
所查询图书的相关信息
处理操作:
用户登录后可以查询图书信息,按图书编号可以查询到某本书的详细情况,也可以通过书名,作者,进行模糊查询
(5)处理过程:
图书借出
输入:
分类号,学号
输出:
图书借阅信息
处理操作:
添加图书借阅记录,建立图书借阅信息表。
(6)处理过程:
图书归还
输入:
分类号
输出:
图书归还信息
处理操作:
添加图书归还记录,建立图书归还信息表。
3.2数据库逻辑结构设计
通过E/R模型到关系模型的转化,可以得到如下关系模式:
图书(分类号,书名,作者,类别,出版社,储书总量,借出量)。
学生(学生学号,学生姓名,性别,年龄,所属学院,所在专业,联系方式)。
教师(教工号,姓名,性别,年龄,职称,联系电话)。
教师借阅表(教工号,教师姓名,分类号,书名,借书日期,续借次数)
学生借阅图书表(分类号,书名,学号,姓名,借书日期,续借次数)。
借书表(分类号,教工号/学生学号,借出日期,应还日期,续借次数)
归还图书(分类号,学生学号/教工号,还书日期,续借次数)。
每个关系模式的主键码都用下划线标出。
(1)分类号是图书的键码,每本书有唯一的分类号。
一个读者可以同时借阅多本书,
一个管理员可以处理多个读者的借阅事宜。
(2)同一本书可以借给不同的同学,同一个读者可以再次借同一本书。
于是借书关系的键码为分类号,学号和借书日期的组合。
3.3数据库实施
1、数据库及表结构的创建
设本系统使用的数据库名为图书管理系统,根据已设计的关系模式及各模式的完整性要求,现在就可以在SQLServer2005数据库系统中实现这些逻辑结构。
下面是使用sqlserver2005建立的图书管理系统:
图书基本信息:
学生基本信息:
教师信息表:
借阅信息表:
借书表:
还书表:
各表之间的关系表:
第四章图书管理系统使用说明
4.1系统登录界面
登录时可由“admin”“teacher”“student”三种身份登录,登录密码分别为admin、tea、stu。
点击确定后,如果输入的用户名为空,则会提示“请输入用户名”;如果输入用户名,没有输入密码时,则会提示“请输入密码”;登录成功时,提示信息:
“登陆成功”。
登录界面实现的代码为:
procedureTdenglu.BitBtn1Click(Sender:
TObject);
begin
ifedit1.text=''thenshowmessage('请输入用户名')else
ifedit2.Text=''thenshowmessage('请输入密码')
else
begin
if(edit1.Text='admin')and(edit2.text='admin')then
begin
showmessage('登陆成功');
denglu.Hide;
zhujiemian.Show;
end
elseif(edit1.Text='teacher')and(edit2.Text='tea')then
begin
showmessage('登陆成功');
denglu.Hide;
zhujiemian.Show;
end
elseif(edit1.Text='student')and(edit2.Text='stu')then
begin
showmessage('登陆成功');
denglu.Hide;
zhujiemian.Show;
end
else
begin
showmessage('密码或用户名不正确');
edit1.Text:
='';
edit2.Text:
='';
edit1.setfocus;
end
end;
end;
end.
4.2主界面
该窗体是本系统的主体界面。
它是系统的结构匡架,便于对整个系统的观摩、管理.主要使用Label和panl以及manu、imagelist等控件实现的。
Image控件使得界面得以美化。
由于每次操作不一定会用到所有的数据库,所以没有必要在每次运行时生成所有的数据库别名。
主界面下可以分为系统管理(未实现)、图书信息管理、借阅管理、教师信息管理、学生信息管理、帮助、退出这七个板块功能。
在主菜单下面有“图书信息、借阅信息、教师信息、学生信息、借书、还书、数据备份(还未实现)、帮助、退出系统”共九个快捷键。
通过各个键的作用,导出各个板块的内容,从而实现对图书的管理查询等功能。
相关代码如下:
procedureTzhujiemian.N6Click(Sender:
TObject);
begin
jiaoshixinxi.Show;
end;
procedureTzhujiemian.N7Click(Sender:
TObject);
begin
jiaoshixinxi.Show;
end;
procedureTzhujiemian.N8Click(Sender:
TObject);
begin
jiaoshixinxi.Show;
end;
procedureTzhujiemian.N5Click(Sender:
TObject);
begin
ifmessagedlg('确定要退出系统?
',mtinformation,[mbno,mbyes],0)=mrYes
thenApplication.Terminate;
end;
procedureTzhujiemian.N9Click(Sender:
TObject);
begin
xueshengxinxi.Show;
end;
procedureTzhujiemian.N10Click(Sender:
TObject);
begin
xueshengxinxi.Show;
end;
procedureTzhujiemian.N11Click(Sender:
TObject);
begin
xueshengxinxi.Show;
end;
procedureTzhujiemian.N12Click(Sender:
TObject);
begin
tushuxinxi.Show;
end;
procedureTzhujiemian.N13Click(Sender:
TObject);
begin
tushuxinxi.Show;
end;
procedureTzhujiemian.N14Click(Sender:
TObject);
begin
tushuxinxi.Show;
end;
procedureTzhujiemian.N20Click(Sender:
TObject);
begin
jieyuexinxi.Show;
end;
procedureTzhujiemian.N21Click(Sender:
TObject);
begin
jieyuexinxi.Show;
end;
procedureTzhujiemian.N22Click(Sender:
TObject);
begin
jiehuanshu.Show;
end;
procedureTzhujiemian.N24Click(Sender:
TObject);
begin
about.Show;
end;
procedureTzhujiemian.ToolButton1Click(Sender:
TObject);
begin
tushuxinxi.Show;
end;
procedureTzhujiemian.ToolButton3Click(Sender:
TObject);
begin
jieyuexinxi.Show;
end;
procedureTzhujiemian.ToolButton5Click(Sender:
TObject);
begin
jiaoshixinxi.Show;
end;
procedureTzhujiemian.ToolButton7Click(Sender:
TObject);
begin
xueshengxinxi.Show;
end;
procedureTzhujiemian.ToolButton15Click(Sender:
TObject);
begin
jiehuanshu.Show;
end;
procedureTzhujiemian.ToolButton17Click(Sender:
TObject);
begin
jiehuanshu.Show;
end;
procedureTzhujiemian.N23Click(Sender:
TObject);
begin
bangzhu.Show;
end;
procedureTzhujiemian.ToolButton11Click(Sender:
TObject);
begin
bangzhu.Show;
end;
4.3图书信息界面
此板块共有三个功能:
图书基本信息查询、新书添加、旧书删除。
通过数据库间的连接,直接将修改、添加、删除的数据在SQL中修改,从而实现图书的基本信息的操作。
可通过“分类号、书名、作者名”三个关键字进行查找。
当有新图书入库时,通过输入图书信息,然后点击“添加”按钮即可。
1、图书基本信息:
可通过“分类号、书名、作者”对图书进行查找,界面右侧将显示所查图书的信息。
也可对查到的图书进行信息的修改,从而实现数据库的更新。
2、新书入库表:
通过在右侧输入新图书的信息,添加图书。
3、旧书删除:
对于过期的图书,可将其信息删除,先通过“分类号、书名、作者”查找所要删除的图书,然后确定要删除信息后,点击删除即可。
此板块的代码如下:
procedureTtushuxinxi.Button1Click(Sender:
TObject);
begin
adoquery1.Edit;
ifradiobutton1.Checkedthen
begin//////
adoquery1.Active:
=true;
adoquery1.Edit;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:
='select*from图书信息表where分类号='''+edit1.Text+'''';
adoquery1.open;
ifadoquery1.RecordCount=0then
beginshowmessage('没有符合条件的纪录');///
edit1.Text:
='';///
end
else
begin///
showmessage('纪录已经查找到了');
edit1.Text:
='';
end;///
end;//////
ifradiobutton2.Checkedthen
begin
adoquery1.Active:
=true;
adoquery1.Edit;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:
='select*from图书信息表where书名='''+edit2.Text+'''';
adoquery1.Open;
ifadoquery1.RecordCount=0then
beginshowmessage('没有符合条件的纪录');
edit2.Text:
='';
end
else
begin
showmessage('纪录已经查找到了');
edit2.Text:
='';
end;
end;
ifradiobutton3.Checkedthen
begin
adoquery1.Active:
=true;
adoquery1.Edit;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:
='select*from图书信息表where作者='''+edit3.Text+'''';
adoquery1.Open;
ifadoquery1.RecordCount=0then
beginshowmessage('没有符合条件的纪录');
edit3.Text:
='';
end
else
begin
showmessage('纪录已经查找到了');
edit3.Text:
='';
end;
end;
end;
procedureTtushuxinxi.Button2Click(Sender:
TObject);
begin
close;
end;
procedureTtushuxinxi.BitBtn1Click(Sender:
TObject);
begin
ifmessagedlg('确实要修改该图书的信息?
',mtInformation,[mbOK,mbCancel],0)=mrokthen
begin
adoquery1.Edit;
adoquery1.Fields[0].AsString:
=dbedit1.Text;
adoquery1.Fields[1].AsString:
=dbedit2.Text;
adoquery1.Fields[2].AsString:
=dbedit3.Text;
adoquery1.Fields[3].AsString:
=dbedit4.Text;
adoquery1.Fields[4].AsString:
=dbedit5.Text;
adoquery1.Fields[5].AsString:
=dbedit6.Text;
adoquery1.Fields[6].AsString:
=dbedit7.Text;
adoquery1.post;
showmessage('信息修改成功');
end
elseshowmessage('信息没有修改');
end;
procedureTtushuxinxi.BitBtn2Click(Sender:
TObject);
begin
adoquery1.Append;
end;
procedureTtushuxinxi.BitBtn3Click(Sender:
TObject);
begin
ifedit4.Text=''thenshowmessage('请输入分类号')
elseifedit5.Text=''thenshowmessage('请输入书名')
elseifedit6.Text=''thenshowmessage('请输入作者')
elseifedit7.Text=''thenshowmessage('请输入出版社')
elseifedit8.Text=''thenshowmessage('请输入类别')
elseifedit9.Text=''thenshowmessage('请输入储书总量')
elseifedit10.Text=''thenshowmessage('请输入借出量')
else
begin
ifmessagedlg('确实要添加该图书?
',mtInformation,[mbOK,mbCancel],0)=mrokthen
begin
adoquery1.Edit;
adoquery1.Append;
adoquery1.FieldByName('分类号').AsString:
=edit4.Text;
adoquery1.FieldByName('书名').AsString:
=edit5.Text;
adoquery1.FieldByName('作者').AsString:
=edit6.Text;
adoquery1.FieldByName('出版社').AsString:
=edit7.Text;
adoquery1.Fie