案例3 图书管理系统.docx
- 文档编号:9297600
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:91
- 大小:230.71KB
案例3 图书管理系统.docx
《案例3 图书管理系统.docx》由会员分享,可在线阅读,更多相关《案例3 图书管理系统.docx(91页珍藏版)》请在冰豆网上搜索。
案例3图书管理系统
第5章图书管理系统
本章对数据库的连接主要采用Windows自带的ODBC来完成,在应用程序中使用了TDatabase控件。
5.1摘要与关键字
5.1.1摘要
图书资料管理系统主要是针对高校的图书馆作为使用对象而开发的,作为一个典型的信息管理系统(MIS),其系统开发任务主要包括数据库的设计与维护、客户端应用程序的开发等两个方面。
对于前者要求建立起的数据库具有完整性和一致性,且具有一定的数据安全性如用户需要密码才能使用等,而对于后者则要求程序界面友好、功能完备等特点。
经过详细的分析,选用Borland公司的Delphi作为前端开发工具,利用其提供的集成开发环境及各种控件,尤其是对数据库的支持完成对数据库的各种操作,达到对图书资料管理的目的。
首先建立系统应用原型,然后对原型系统进行需求迭代,不断修正和改进,直到形成用户满意的实际可行系统。
5.1.2关键词
图书、管理、设计、实现、SQLServer。
5.2引言
图书资料的管理是高校图书馆都必须切实面对的工作,但一直以来人们使用传统的人工方式管理图书资料,这种管理方式存在着许多缺点,如:
效率低、保密性差且较为烦琐,另外随着图书资料数量的增加,其工作量也将大大增加,这必然增加图书资料管理者的工作量和劳动强度,这将给图书资料信息的查找、更新和维护都带来了很多困难。
经过我们详细的调查,目前我国各类高等院校中有相当一部分单位图书资料管理还停留在人工管理的基础上,尤其是中、小学的图书资料的管理更是如此,这样的管理机制已经不能适应时代的发展,其管理方法将浪费许多人力和物力。
随着科学技术的不断提高,这种传统的手工管理方法必然被以计算机为基础的信息管理方法所取代。
图书资料管理作为计算机应用的一个分支,有着手工管理所无法比拟的优点,如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高图书资料管理的效率。
因此,开发一套能够为用户提供充足的信息和快捷的查询手段的图书资料管理系统,将是非常必要的,也是十分及时的。
因此可以把图书资料管理作为毕业设计的题目,正好可以充分利用几年在校所学的各种专业知识开发一个图书管理系统来帮助相关部门进行有效的管理。
5.3需求分析
5.3.1功能需求
高等院校的图书管理涉及图书信息、系统用户信息、读者信息、图书借阅信息等多种数据管理。
从管理的角度出发可将图书管理分为3类:
图书信息管理、系统用户管理和读者数据管理。
图书信息管理包括图书征订、编目、典藏、借还和查询操作,系统用户管理包括系统用户类别和用户数据管理,读者数据管理包括读者类别管理和读者个人数据的录入、修改、删除。
典型的高校图书管理系统主要应具有以下功能:
●图书征订:
包括图书征订数据的录入、修改、删除等功能。
●图书编目:
包括图书编目信息的录入、修改等功能。
●图书典藏:
包括新书分配、库室调配等功能。
●图书流通:
包括图书借阅、续借,图书返还,图书书目查询等功能。
●系统用户管理:
包括系统用户数据的录入、修改、删除等功能。
●读者数据管理:
包括读者类别管理,读者个人数据的录入、修改、删除等功能。
再进行详细调查,绘制出数据流图,如图5-1所示。
图5-1系统数据流图
5.3.2开发与运行环境
本例的高校图书管理系统开发与运行环境如下:
开发环境:
WindowsXP
开发工具:
Delphi8
数据库管理系统:
SQLServer2000
运行环境:
Windows98/ME/2000/XP
5.4系统设计
5.4.1系统模块设计
根据系统功能分析和高校图书管理的特点,经过模块化的分析得到如图5-2所示的系统功能模块结构图。
图5-2系统功能模块图
5.4.2数据库设计
1.数据字典
根据系统功能模块结构图和高校图书管理流程,以及典型高校图书管理系统的需求,总结出如下的数据字典:
●系统用户数据:
图书馆内部人员使用图书管理系统的身份数据,包含的数据项有用户编号、登录口令、权限代码。
●读者类别数据:
借阅图书读者的类别数据,包含的数据项有读者类别编号、类别名称、借书数量、借书期限、有效期限。
●读者个人数据:
读者个人与图书借阅有关的身份数据,包含的数据项有借阅证编号、读者类别编号、姓名、部门名称、办证时间。
●图书书目数据:
用于图书编目使用的书目数据,包含的数据项有索书号、图书条码、书名、作者、出版社、出版日期、字数、页数、内容简介、关键词。
●新书书目数据:
图书编目产生的书目数据,包含的数据项与图书书目数据相同。
●馆藏书目数据:
新书书目经典藏之后形成馆藏图书书目数据,包含的数据项有索书号、图书条码、书名、作者、出版社、出版日期、字数、页数、内容简介、关键词、入馆日期、复本数、可借数、库室名。
●图书征订数据:
征订图书的相关数据,包含的数据项有书名、作者、出版社、出版日期、数量、征订日期。
●图书借阅数据:
包含的数据项有图书条码、借阅证编号、借阅日期、还书日期、图书所在库室编号。
●操作日志数据:
包含的数据项有用户名、操作时间、操作动作。
2.数据库结构设计
根据系统需求,分析出实体-关系图,如图5-3所示。
图5-3实体-关系图
根据实体-关系图和数据字典,设计出高校图书管理系统数据库中的各个数据表。
根据用户使用要求得到系统用户数据表,根据读者实体得到读者个人数据表,根据数据字典对读者的要求得到读者类别数据表,根据图书实体得到图书书目数据表,根据新书实体得到新书书目数据表,根据馆藏图书实体得到馆藏书目数据表,根据征订关系得到图书征订数据表,根据借阅关系得到图书借阅数据表,根据系统要求记录操作日志得到操作日志数据表。
数据表名称与结构如下:
系统用户数据表:
表名“t_user”,结构见表5-1。
表5-1t_user表结构
字段名
类型
大小
索引
说明
Bh
Char
5
是
编号
Passwd
Char
6
密码
Limit
Tinyint
权限
读者个人数据表:
表名“t_dzb”,结构见表5-2。
表5-2t_dzb表结构
字段名
类型
大小
索引
说明
Zh
Char
5
是
证号
Lxdm
Tinyint
类型代码
Xm
Char
20
姓名
Bm
Char
20
部门
Rq
Datetime
日期
读者类别数据表:
表名“t_lxdm”,结构见表5-3。
表5-3t_lxdm表结构
字段名
类型
大小
索引
说明
Lxdm
Tinyint
是
类型代码
Lxmc
Char
10
类型名称
Jsl
Tinyint
借书量
Jsq
Tinyint
借书期
Yxq
Tinyint
有效期
图书书目数据表:
表名“t_tsb”,结构见表5-4。
表5-4t_tsb表结构
字段名
类型
大小
索引
说明
Id
Bigint
是
自动增长
Tm
Char
7
条码
Syh
Varchar
30
索引号
Sm
Varchar
60
书名
Zz
Varchar
30
作者
Cbs
Varchar
60
出版社
Cbrq
Datetime
出版日期
Zs
Int
字数
Ys
Int
页数
Nrjj
Varchar
200
内容简介
Gjz
Varchar
100
关键字
新书书目数据表:
表名“t_xsb”,结构同上。
馆藏书目数据表:
表名“t_csb”,结构见表5-5。
表5-5t_csb表结构
字段名
类型
大小
索引
说明
Tm
Char
7
条码
Syh
Varchar
30
索引号
Sm
Varchar
60
书名
Zz
Varchar
30
作者
Cbs
Varchar
60
出版社
Cbrq
Datetime
出版日期
Zs
Int
字数
Ys
Int
页数
Nrjj
Varchar
200
内容简介
Gjz
Varchar
100
关键字
Rgrq
Datetime
入馆日期
Jbs
Smallint
基本数
Kjs
Smallint
可借数
Ksm
Char
20
库室名
图书征订数据表:
表名“t_dgb”,结构见表5-6。
表5-6t_dgb表结构
字段名
类型
大小
索引
说明
Sm
Varchar
60
书名
Zz
Varchar
30
作者
Cbs
Varchar
60
出版社
Cbrq
Datetime
出版日期
Sl
Int
数量
Dgrq
Datetime
定购日期
图书借阅数据表:
表名“t_jyb”,结构见表5-7。
表5-7t_jyb表结构
字段名
类型
大小
索引
说明
Tm
Char
7
是
条码
Zh
Char
6
证号
Jsrq
Datetime
借书日期
Hsrq
Datetime
还书日期
Yh
Tinyint
已还
Kh
Tinyint
库号
操作日志数据表:
表名“t_log”,结构见表5-8。
表5-8t_log表结构
字段名
类型
大小
索引
说明
Name
Char
10
是
用户名
Czsj
Datetime
操作时间
Czlog
Varchar
200
操作动作
5.5系统实现
5.5.1建立数据库
本例数据库使用SQLServer2000,数据库名为TSGL。
在SQLServer2000数据库服务器上建立数据库以及各数据表的过程,在这里不作介绍,有关内容参阅SQLServer相关书籍。
5.5.2建立连接
本例使用ODBC数据源连接数据库,数据源名为mybase。
建立过程可参阅第四章内容。
5.5.3程序设计
1.主窗体
主窗体保存为main.pas。
主窗体界面如图5-4所示,包含一个Database组件、一个MainMenu组件和一个StatusBar组件。
图5-4主窗体
窗体主要组件属性设置见表5-9。
表5-9主窗体组件属性设置
组件
属性值
Form1
Name='MainForm'FormStyle=fsMDIFormCaption='高校图书管理系统'
MainMenu1
Database1
DatabaseName=mybaseLoginPrompt=False
StatusBar1
其中Database1的Params属性添加两项USERNAME和PASSWORD分别设置为SQLServer的登录用户名和密码。
主窗体中定义全局变量dlname,用于保存登录的用户名。
编写一个过程addlog完成日志记录,和一个函数getnettime用来取得服务器时间,保证系统时间的一致性。
过程和函数的代码如下:
//取得服务器时间函数
functionTMainForm.getnettime:
string;
begin
withTQuery.Create(nil)do
begin
try
Close;
SessionName:
=MainForm.Database1.SessionName;
DatabaseName:
=MainForm.Database1.DatabaseName;
SQL.Clear;
SQL.Add('selectgetdate()asaa');
Open;
result:
=FieldByName('aa').AsString;
finally
Free;
end;
end;
end;
//日志记录过程
procedureTMainForm.addlog(varname,czsj,czlog:
string);
varsqlstr:
string;
begin
//生成将参数传递的信息写入日志数据表的SQL语句
sqlstr:
='insertintot_log(name,czsj,czlog)values('''+name+''','''+czsj+''','''+czlog+''')';
withTQuery.Create(nil)do
begin
try
Close;
SessionName:
=MainForm.Database1.SessionName;
DatabaseName:
=MainForm.Database1.DatabaseName;
SQL.Clear;
SQL.Add(sqlstr);
ExecSQL;
finally
Free;
end;
end;
end;
2.用户登录窗体
用户登录功能是在启动系统后,要求用户登录,只有输入合法的用户名和密码,系统才分配具体的功能模块。
用户登录窗体保存为login.pas。
界面如图5-5所示,包含一个Panel组件、两个Label组件、两个Edit组件和两个Button组件。
图5-5用户登录窗体
主要组件属性设置见表5-10。
表5-10用户登录窗体主要组件属性
组件
属性值
Form2
FormStyle=fsMDIChildBorderStyle=bsSingleBorderIcons=[biSystemMenu]
Name=LoginFormCaption='用户登录窗口'
Panel1
Caption=''BevelOuter=bvLowered
Label1(Panel1)
Caption='用户名'
Label2(Panel1)
Caption='密码'
Edit1(Panel1)
Text=''Name=Name_Edit
Edit2(Panel1)
PasswordChar=*Text=''Name=Password_Edit
Button1
Caption='确定'
Button2
Caption='取消'
主要代码如下:
usesmain;
//确定按钮单击事件
procedureTLoginForm.Button1Click(Sender:
TObject);
var
aname,apassword,sqlstr:
string;
a,b:
integer;
begin
//有输入时,从数据库中检验用户信息
if(Length(Trim(Name_Edit.Text))>0)or(Length(Trim(Password_Edit.Text))>0)then
begin
aname:
=Trim(Name_Edit.Text);
apassword:
=Trim(Password_Edit.Text);
sqlstr:
='select*fromt_usera,t_qxbbwhere(a.name='''+aname+''')and
(a.passwd='''+apassword+''')and(a.name=b.name)orderbyb.cdx';
withTQuery.Create(nil)do
try
Close;
SessionName:
=MainForm.Database1.SessionName;
DatabaseName:
=MainForm.Database1.DatabaseName;
SQL.Clear;
SQL.Add(sqlstr);
Open;
ifRecordCount>0then
//验证通过,根据权限设置菜单项的可访问性
begin
First;
whilenotEofdo
begin
a:
=StrToInt(Copy(FieldByName('cdx').AsString,1,1));
b:
=StrToInt(Copy(FieldByName('cdx').AsString,2,2));
MainForm.MainMenu1.Items.Items[a].Visible:
=True;
MainForm.MainMenu1.Items.Items[a].Items[b].Visible:
=True;
Next;
end;
//关闭登录窗口
LoginForm.Close;
//主窗体状态栏显示登录用户名
MainForm.StatusBar1.Panels[0].Text:
=aname;
MainForm.dlname:
=aname;
end
else
//验证不通过,提示错误信息
begin
ShowMessage('请确认登录的用户名和密码是否正确!
');
Name_Edit.SetFocus;
Name_Edit.SelectAll;
end;
finally
Free;
end;
end
else
//无输入,提示错误信息
begin
ShowMessage('请输入登录用户名和密码!
');
Name_Edit.SelectAll;
end;
end;
3.用户管理窗体设计
用户管理需要根据不同的用户类型,分配不同的权限,便于系统的维护。
主要功能包括用户数据(包括编号、密码和权限)的添加、删除和浏览等操作。
高级管理员可以管理系统中所以的用户数据,而普通用户则只能修改自己的密码。
图5-6用户管理窗体设计
用户管理窗体保存为usergl.pas,界面设计如图5-6所示,包含一个PopupMenu组件、一个Query组件、一个DataSource组件和一个DBGrid组件。
窗体的主要组件属性设置见表5-11。
表5-11用户管理窗体主要组件属性
组件
属性值
Form3
FormStyle=fsMDIChildName=usergl_FormCaption='用户管理'
PopupMenu1
MenuItem1Name=N11Caption='添加用户'
MenuItem2Name=N12Caption='修改用户'
MenuItem3Name=N13Caption='删除用户'
Query1
DataSource1
DataSet=Query1
DBGrid1
DataSource=DataSource1PopupMenu=PopupMenu1
用户管理窗体主要代码如下:
public
modi:
Boolean;//用于标识添加/修改用户
xx:
string;//用于设置添加/修改用户窗体标题栏
end;
procedureTusergl_Form.FormCreate(Sender:
TObject);
begin
Query1.SessionName:
=MainForm.Database1.SessionName;
Query1.DatabaseName:
=MainForm.Database1.DatabaseName;
modi:
=False;
end;
//数据网格双击事件
procedureTusergl_Form.DBGrid1DblClick(Sender:
TObject);
begin
//相当于修改用户操作
N12.Click;
end;
procedureTusergl_Form.FormShow(Sender:
TObject);
varsqlstr:
string;
begin
sqlstr:
='select*fromt_userorderbyyhm';
Query1.SQL.Clear;
Query1.SQL.Add(sqlstr);
Query1.Open;
//根据数据查询结果,设置弹出菜单项的可访问性
ifQuery1.RecordCount>0then
begin
N12.Enabled:
=True;
N13.Enabled:
=True;
end
else
begin
N12.Enabled:
=False;
N13.Enabled:
=False;
end;
end;
//“添加用户”弹出菜单单击事件
procedureTusergl_Form.N11Click(Sender:
TObject);
begin
//设置标识
modi:
=False;
xx:
='添加用户';
//打开添加/修改用户窗体
Application.CreateForm(Tmodiuser_Form,modiuser_Form);
modiuser_Form.ShowModal;
end;
//“修改用户”弹出菜单单击事件
procedureTusergl_Form.N12Click(Sender:
TObject);
begin
//设置标识
modi:
=True;
xx:
='修改用户';
//打开添加/修改用户窗体
Application.CreateForm(Tmodiuser_Form,modiuser_Form);
modiuser_Form.ShowModal;
end;
//“删除用户”弹出菜单单击事件
procedureTusergl_Form.N13Click(Sender:
TObject);
varname,id:
string;
begin
try
name:
=Query1.FieldByName('name').AsString;
//弹出确认删除对话框
ifMessageDlg('确认要删除选中的记录码?
',mtConfirmation,[mbYes,mbNo],0)=mrYesthen
begin
id:
=Query1.FieldByName('id').AsString;
withTQuery.Create(nil)do
begin
try
Close;
SessionName:
=MainForm.Database1.SessionName;
DatabaseName:
=MainForm.Database1.DatabaseName;
SQL.Clear;
//删除用户表数据
SQL.Add('deletefromt_userwhereid='''+id+'''');
ExecSQL;
SQL.Clear;
//删除权限表数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 案例3 图书管理系统 案例 图书 管理 系统