资源描述
图书管理信息系统开发文档
———————————————————————————————— 作者:
———————————————————————————————— 日期:
2
个人收集整理 勿做商业用途
编号:
数据库系统原理课程设计
说明书
题 目: 图书管理信息系统
系 别:
学生姓名:
学 号:
指导教师:
题目类型:¨理论研究 ¨实验研究 ¨工程设计 ¨工程技术研究 þ软件开发
2011年2 月26 日
摘要
图书馆管理信息系统——规划报告1。系统背景:长期以来,人们使用传统的人工方式管理图书馆的日常业务,其操作流程比较繁琐。在借书时,读者首先要将借的书和借阅证交给工作人员,工作人员然后将每本书的信息卡片和读者的借阅证放在一个小格栏里,最后在借阅证和每本书贴的借阅条上填写借阅信息。在还书时,读者首先将要还的书交给工作人员,工作人员然后根据图书信息找到相应的借书卡和借阅证,并填写相应的还书信息.从上述中可以发现,传统的手工流程存在着种种不足。首先处理借书、还书业务流程的效率很低;其次处理能力较低,一般时间内,所能服务的读者认识只能是很有限的。为此,图书信息管理系统需要为不同的图书馆解决上述问题,提供快速的图书信息检索功能及快捷的图书借阅、归还流程
关键词:图书管理信息系统,软件开发,数据库
目 录
引言 ………………………………………………………………………5
1系统概述…………………………………………………………………5
2 系统需求分析 …………………………………………………………………… 6
2。 1系统的详细需求…………………………………………………………6
2.1.1功能需求……………………………………………………………6
2。1.2使用范围……………………………………………………………6
2.1.2适用范围……………………………………………………………6
2.1.3业务流程……………………………………………………………6
2.1。4用户界面……………………………………………………………6
2。1。5故障处……………………………………………………………7
2。 2使用环境……………………………………………………………………………7
2.2。1网络环境……………………………………………………………7
2.2.2硬件环境……………………………………………………………7
2.2.3软件环境……………………………………………………………7
2. 3可行性分析………………………………………………………………………… 7
2.3.1技术可行性……………………………………………………………6
2。3。2经济可行性……………………………………………………………7
2.3。3影响系统开发的因素……………………………………………………7
3 软件开发过程…………………………………………………………8
3.1系统设计…………………………………………………………8
3.1.1 数据库设计…………………………………………………………8
3.1.2 E-R图设计…………………………………………………………………………8
3。1.3 系统结构图…………………………………………………………9
3.2软件设计……………………………………………………………………………10
4 软件测试过程 ……………………………………………………………14
4.1测试环境…………………………………………………………14
4.1。1 硬件环境 …………………………………………………………………………14
4.1.2 软件环境 …………………………………………………………………………14
4。1。3 数据环境 …………………………………………………………………………14
4。1.4 网络环境 …………………………………………………………………………14
4.1 功能测试…………………………………………………………14
4。2。1模拟现场测试……………………………………………………………………15
4.2.2 应用现场测试…………………………………………………………………… 15
5 结论…………………………………………………………………16
6参考文献 ………………………………………………………………16
附录 ……………………………………………………………………17
1系统概述
图书馆作为社会文化服务部门,提供给社会的是文献服务.作为社会的重要文化信息部门,也需要一套有效的图书管理信息系统来提高管理效率。
以前图书管理一直采用手工操作,入库、借阅、查询等各个环节都大量消耗了人力、物力,工作人员难以对图书数据进行准确的统计、分析,致使在工作中经常出现错误和漏洞.采用计算机管理系统管理图书,可以充分利用计算机技术规范操作,高效地进行图书信息管理,并且由系统自动进行图书入库、出库等计算,相关信息不需要重复录入,杜绝了差错,大大提高了工作效率.
2.系统需求分析
2.1系统的详细需求
2.1。1 功能需求
通过调查,要求系统需要有以下功能。
1> 要有良好的人机界面。
2> 完全人性化设计,无需专业人士指导,即可使用系统.
3> 系统具有数据备份及数据还原功能,能够保证系统数据的安全性。
4> 方便的全方面的数据查询,支持模糊查询。
5> 业务模块能够自由增加、修改、删除信息方便简单,数据稳定性好。
6> 退出系统。
2.1.2 适用范围
对所有图书馆都适合。
2。1.3业务流程
主要指图书借阅与归还,读者可以通过编号查阅自己所借书的相关信息,这些书籍是否过期,管理员可以管理读者信息,如添加,修改,删除等,也可以管理图书信息,如图书入库等,也可以管理读者借书,还书等,如过期了,可以进行罚款,所借数目过多了,也不能进行借书了.
2。1.4用户界面
2.1。5 故障处
故障处理要求可能的硬件故障有:突然断电、网络中断、死机等.短时间可以修复的故障,待故障修复后继续工作。如故障不能马上修复,可用手工方式继续工作,待故障修复后将数据补充输入计算机。
2.2使用环境
2。2。1网络环境
本机使用,不用宽带连接.可以在别人机上运行。
2.2。2软件环境
Delphi7、SQL server2000
2。2。3硬件环境
CPU 1GHz 硬盘:320G
2.3可行性分析
2.3.1技术可行性分析
开发任何一个基于计算机的系统,都会受到时间和资源上的限制。因此,在接受任何一个项目开发任务之前,必须根据客户可能提供的时间和资源条件进行可行性分析,以减少项目开发的风险,避免人力、物力和财力的浪费。
本系统数据库采用目前比较流行的SQL Server2000,该数据库处理数据库比较方便,对于普通用户操作起来也比较方便;开发工具采用delphi2007,delphi2007是目前应用最广泛的数据库系统开发工具,可以快速开发Windows应用程序。
2.3.2经济可行性分析
开发这个系统,只需要一台电脑,如干书籍,所以经济是允许的。
2.3。3影响系统开发的因素
该系统要受硬件、软件、运行环境、开发环境、技术、资金、寿命、社会等系列因素的制约和限制。
3。软件开发过程
3.1系统设计
3。1.1数据库设计
系统管理员表
图书信息表
读者信息表
读者类型表
新增图书表
图书借阅表
图书归还表
3.1.2E-R图设计
限制
续借次数
可借册数
类型
读者类型
编号
类型
姓名
性别
条形码
出生日期
操作员
读者信息表
图书借阅次数
有效证件
联系方式
登记日期
有效期至
证件号码
类型
书名
图书编号
作者
出版社
条形码
操作员
借出次数
价格
入库时间
库存总量
书架名称
页码
图书信息
续借次数
状态
图书借阅
归还时间
借阅时间
读者编号
图书编号
借阅编号
权限
密码
用户名
系统管理员
3 总体设计
3.1项目规划
图书管理系统是一个典型的数据库应用系统,由系统管理模块,读者管理模块,图书管理模块,图书流通模块,图书过期模块,打印报表模块,退出系统模块组成。
〈1>系统管理模块包括用户角色转换,退出系统两个功能,用户可以通过用户角色转换角色,查看其他功能,角色分为学生和管理员两个权限,不同角色拥有着不同的权限.
〈2〉读者管理模块包括读者身份和读者信息,通过读者身份,可以查阅读者类型,可借册书,续借次数,是否有限制图书;通过读者信息,可以查阅读者学号,姓名,性别,联系方式,有效证件等信息。
〈3>图书管理模块包括新增图书,图书信息等,通过新增图书,可以向数据库中添加书籍,当然包括书籍的所有信息.
〈4>图书过期模块包括是否过期,是否罚款,通过是否过期,可以查阅那些书籍已经过期了,是否已罚款。
<5>打印报表模块,可以打印读者信息,图书信息。
〈6>退出系统,通过这个模块,用户可以直接退出所在的系统。
3.2功能框架图
3。2。软件设计
用户登陆界面
读者类型
读者信息
图书信息
借书
报表
4.软件测试过程
4。1测试环境
4.1.1硬件环境
CPU 1.8300GHz 硬盘:320G
4.1.2软件环境
Delphi7
4。1.3数据环境
SQL server 2000
4.1.4网络环境
不用
4。2功能测试
4.2。1模拟现场测试
由登录主界面登录,进入主菜单,然后选择功能块还可以用户之间得切换.
4。2.2应用现场测试
可以借阅,归还,读者信息管理等,图书入库等.
5.结论
两个星期的数据库课程设计,首先自己初步弄出了一个图书管理信息系统,刚开始觉得蛮不错的,但是在验收的时候,通过老师的指点,才知道自己对于这个系统还有很多欠缺的地方。不可否认的是自己对数据库的相关知识有了更深刻的认识。对于图书管理信息系统有了更直观的认识。
6参考文献和附录
1刘前进 《Delphi数据库编程技术》
2〈〈数据库系统概论〉> 王珊 萨师煊 编著 高等教育出版社
3肖永顺 《Delphi 程序设计》
部分核心代码:
ADOQuery1.Close;
ADOQuery1。SQL。Clear;
ADOQuery1.SQL。Text:='select * from 系统管理员 where 用户名=’'’+Trim(Edit1.Text)+'’’and 密码=''’+Trim(Edit2.Text)+’’'’;
ADOQuery1.Open;
issuper:=trim(ADOQuery1。FieldByName('权限’)。AsString);
if ADOQuery1。Recordset.RecordCount=0 then
begin
MessageBox(handle,’用户名或密码错误,请重新输入’,’提示’,mb_IconWarning+mb_OK);
Edit1。Clear;
Edit2。Clear;
Edit1。SetFocus;
end
begin
inherited;
adoquery1。Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(’select max(入库编号) 最大编号 from 新增图书’);
adoquery1.Open;
maxnum:=adoquery1。FieldByName('最大编号')。AsInteger;
maxnum:=maxnum+1;
newnum:=inttostr(maxnum);
if length(newnum)=1 then
dbedit1。Text:=’000000’+newnum;
if length(newnum)=2 then
dbedit1。Text:='00000'+newnum;
if length(newnum)=3 then
dbedit1。Text:='0000’+newnum;
if length(newnum)=4 then
dbedit1.Text:='000'+newnum;
if length(newnum)=5 then
dbedit1.Text:='00'+newnum;
if length(newnum)=6 then
dbedit1。Text:=’0'+newnum;
//插入当前时间(订购时间)
dbedit8。Text:=datetostr(date)+’ ’+timetostr(time);
//新加入的图书都是未验收的,所以此项必须是false
dbcombobox1。SelText:='False’;
end;
procedure TaddbookF。DBEdit6KeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if(key<=#39)and(key〉=#30) then
dbedit6.Text:=dbedit6。Text+key;
end;
procedure TaddbookF.DBEdit7KeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if(key〈=#39)and(key〉=#30) then
dbedit7.Text:=dbedit7。Text+key;
end;
procedure TaddbookF.BitBtn2Click(Sender: TObject);
var
newform:TselectF;
begin
inherited;
newform:=TselectF。Create(application);
end;
procedure TaddbookF。FormActivate(Sender: TObject);
begin
inherited;
if panel2。Enabled=true then
dbedit2.Text:=listF。Formcap;
end;
procedure TaddbookF.DBEdit2Change(Sender: TObject);
begin
inherited;
//设置书名的显示
adoquery1。Close;
adoquery1.SQL.Clear;
adoquery1。SQL。Add(’select 书名 from 图书信息 where 图书编号=’’’+dbedit2.Text+’’'');
adoquery1。Open;
edit4。Text:=adoquery1.FieldByName('书名’).AsString;
end;
procedure TaddbookF。BitBtn3Click(Sender: TObject);
begin
inherited;
//新书入库
adocommand1。CommandText:='exec sf_新增图书';
adocommand1.Execute;
//更新数据库
adotable1.Active:=false;
adotable1.Active:=true;
end;
adoquery1。Close;
adoquery1.SQL.Clear;
adoquery1.SQL。Add(’select a。*,b。*,c。* from 图书借阅 a,图书信息 b,读者信息 c');
adoquery1。SQL。Add(’where (a.图书编号=b。图书编号)and(a.读者编号=c。编号)and(状态=’’未还'')');
adoquery1.SQL.Add('and(c.编号 like ’’%'+edit1。Text+’%'’)');
adoquery1。SQL.Add('and(a.图书编号 like ''%’+edit2。Text+’%’')’);
adoquery1。SQL.Add('and(c。姓名 like ’'%'+edit3.Text+'%’')’);
adoquery1.Open;
//将查询得到的数据复制到数据表中
adotable1.Clone(adoquery1,ltUnspecified);
end;
procedure TbookbackF。BitBtn2Click(Sender: TObject);
var
returndate:TDateTime;
money:double;
fine,num:string;
begin
inherited;
returndate:=adotable1。FieldByName('应还时间').AsDateTime;
num:=adotable1。FieldByName(’借阅编号’)。AsString;
//搜索数据库中有无此书
if num='’ then showmessage(’已无此书');
if (date+time—returndate)〉0 then
begin
//超期图书按每天0.1元交纳罚金
money:=0.1*(date—returndate);
fine:= InputBox(’该书已经过期,需交纳罚金’, ’应交纳的罚金', floattostr(money));
adocommand1。CommandText:=’exec sf_图书归还 '+num+','+fine;
end
else
adocommand1.CommandText:='exec sf_图书归还 '+num+’,0';
adocommand1.Execute;
//更新数据库
adoquery1.Active:=false;
adoquery1.Active:=true;
adotable1.Clone(adoquery1,ltunspecified);
//注销掉从父窗体中继承来的代码,因为父窗体中是从一个表中查询的,这里因为需要用到多表查询
//inherited;
adoquery1。Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(’select a.*,b。*,c。* from 图书借阅 a,图书信息 b,读者信息 c');
adoquery1.SQL.Add('where (a.图书编号=b.图书编号)and(a.读者编号=c。编号)and(状态=''未还’')’);
adoquery1。SQL.Add(’and(c。编号 like ''%'+edit1.Text+'%'’)');
adoquery1.SQL。Add(’and(a。图书编号 like ''%'+edit2。Text+'%'')');
adoquery1.SQL。Add('and(c.姓名 like '’%’+edit3。Text+’%'')');
adoquery1。Open;
//将查询得到的数据复制到数据库中
adotable1。Clone(adoquery1,ltUnspecified);
展开阅读全文