文档库 最新最全的文档下载
当前位置:文档库 › 图书管理信息系统开发文档

图书管理信息系统开发文档

编号:

数据库系统原理课程设计

说明书

题目:图书管理信息系统

系别:

学生姓名:

学号:

指导教师:

题目类型:?理论研究?实验研究?工程设计?工程技术研究?软件开发

2018年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>图书管理模块包括新增图书,图书信息等,通过新增图书,可以向数据库中添加书籍,当然包括书籍地所有信息.

<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。

//新书入库

https://www.wendangku.net/doc/512474759.html,mandText:='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>>。

https://www.wendangku.net/doc/512474759.html,mandText:='exec sf_图书归还 '+num+','+fine。

end

else

https://www.wendangku.net/doc/512474759.html,mandText:='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>。

相关文档