图书管理系统分析报告
图书馆管理系统
1. 介绍
1.1 编写目的
本需求的编写是为了研究利用大型数据库做基础的图书管理系统软件的开发途径和应用方法。同时它也是进行项目策划、概要设计和详细设计的基础,是维护人员进行内部维护,信息更新,验收和测试的依据。
1.2 课程设计的背景和意义
图书馆在正常运营中面对大量书籍、读者信息以及两者间相互联系产生的借书信息、还书信息。现有的人工记录方法既效率低又错误过多,大大影响了图书馆的正常管理工作。因此需要对书籍资源、读者资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利用管理效率的提高。
2. 需求概述
2.1 目标
“图书管理系统”主要提供图书信息和读者基本信息的维护以及借阅等功能。本系统是提高图书管理工作的效率,减少相关人员的工作量,使学校的图书管理工作真正做到科学、合理的规划,系统、高效的实施。
2.2 功能分析
本系统主要包括三大模块,分别是图书管理模块,读者管理模块,借阅管理模块。每个模块的功能如下:
1. 图书管理模块功能:
(1)实现图书信息的查询;
(2)实现图书信息的更新,包括增加、删除、修改功能;
2. 读者管理模块功能:
(1)实现读者信息的查询;
(2)实现读者信息的更新,包括增加、删除、修改功能;
3. 借阅管理模块功能:
实现对图书出借与归还的管理。
3. 系统设计
3.1 功能模块图
图书馆管理系统功能模块如图所示:
3.2 功能模块图
图书馆管理系统ER如图所示:
3.3 数据流图—顶层图
图书馆管理系统顶层图如图所示:
1.开发项目概述
图书馆是信息交换和资源流通的重要媒介,对图书馆的信息化管理将大大提高图书资源的利用和信息的交换速度。图书管理系统是通过将借阅信息以数据库的形式由网络传输来完成各用户(教师或学生)所要的借阅方面的需求(如借阅,归还,预订,查询等)。以打破传统的人工借书模式,极大地方便了使用人员和管理人员,节约了时间和空间,实现图书借阅自动化,自由化,使图书资源得到充分利用。建立图书管理系统,能使每个用户自由地选到自己需要的图书,避免传统借书模式的繁琐、低效率、借阅程序臃肿等等的缺点,减轻相关人员的负担。
本图书管理系统需要实现的基本功能有管理员登录、图书信息管理、读者帐号管理、记录借还图书信息、图书借阅状态查询以及信息维护等功能的图书管理系统。
2.系统的目标和开发的可行性
本系统要达到的目标有如下几点:
①新书入库操作要简单方便
②读者能查询图书借阅状态
③读者自助续借图书的功能
④读者账号管理挂失功能
开发本系统的可行性
由于本系统可使学校图书馆工作发生“简捷化、快速化、自动化”的改革,加之如今的社会各行各业都在走信息化管理的道路,可见开发本系统的重要性。在得到学校大力支持的前提下,本系统的开发在经济上得到了可靠的保证。开发人员由我校信息专业的同学组成,结合学校图书馆实际情况,很具使用性。
3.学校图书楼分布图
4.业务流程及其分析
顶层图:
图2.0
(1)借书
图3.0
(2)还书
图4.0
(3)图书信息维护
图5.0
(4)读者信息维护
图6.0
业务分析:
借书:读者在书架上找到其想要借阅的书籍后,将书籍拿到管理员柜台处,并出示借书证,办理登记手术即可借阅。
还书:在未超期的情况下,读者拿着书籍来到管理员处,将书交还给管理员,管理员进入还书系统,消除借阅记录,还书完成。如果超期或图书丢失按管理规定进行罚款。
图书信息维护:当采编室采编到新书时,需要作新书入库操作。相应书架的管理员在采编室领取新书后,应办理新书入库程序。管理员进入图书馆里子系统新增书籍系统,将新书信息录入数据库即可。当有书籍破损或因某些原因不存在了,即需要做销书操作,管理员进入书籍维护系统删除相关书籍信息即可。
读者信息维护:每当新学期开始,图书管理人员就应该把毕业生的帐号销掉,然后增加新生帐号。当读者密码丢失或者借书证丢失时,管理员需要帮助找回密码,既重设。丢失时要挂失。
第二篇:学校图书管理系统课程设计报告正文
目录
第1章 绪论... 2
第2章 需求分析... 2
第3章 总体设计... 3
第4章 数据库设计... 4
§4.1 概念结构设计... 4
§4.2 逻辑结构与物理结构设计... 5
第5章 详细设计... 7
第6章 编码... 8
第7章 测试... 15
§7.1 测试... 15
§7.2 发现错误和解决方法... 16
第8章 设计总结... 16
学习体会(附录1)... 16
致谢(附录2)... 16
参考文献(附录3)... 16
第1章 绪论
图书馆是信息交换和资源流通的重要媒介,对图书馆的信息化管理将大大提高图书资源的利用和信息的交换速度。图书管理系统是通过将借阅信息以数据库的形式由网络传输来完成各用户(教师或学生)所要的借阅方面的需求(如借阅,归还,预订等)。以打破传统的人工选课模式,极大地方便了使用人员和管理人员,节约了时间和空间,实现图书借阅自动化,自由化,使图书资源得到充分利用。建立图书管理系统,使每个用户自由地选到自己需要的图书,避免传统借书模式的繁琐、低效率、借阅程序臃肿等等的缺点,减轻相关人员的负担。
本图书管理系统运用SQLServer20##、C++Builder等软件实现了基本的管理员登录、图书管理、读者管理、借还图书、图书查询以及信息维护等功能的图书管理系统。
第2章 需求分析
图书管理系统主要包括系统管理、读者管理、图书采购、图书编目、图书流通、统计、查询等一系列的功能。
1、读者管理
(1).新学期建立新班级,删除毕业班读者。
(2).为新生办理新借阅证。
(3).读者管理能完成读者调动、借书证挂失、补办、停止借阅、单独打印读者条码等日常事务。
(4).读者类别可以分类,可为每一类读者指定借阅规则。
(5).读者可以通过管理员远程预约图书。
2、采编管理
(1).有完善的采编功能,能对新采购图书可以进行有效采编。
(2).图书采编能对相关图书进行分类别号编号,借助可扩展的编目库减轻编目人员的工作。
(3).图书注销有完整的备查档案。
3、 流通管理
(1).借书完全通过输入借阅证号,识别借书证是否有效,根据设定的规则进行管理。提示读者已借书数、超期图书应缴罚款等参考信息。 根据图书的种类确定借阅期限。罚款单价根据图书种类确定。
(2).还书完全通过条码识别,自动作超期记录。
(3).图书预约可以为读者提供方便,可以进行管理及打印到书通知。
(4).图书损坏、丢失处理能显示每本书上次损坏的记录以及其它信息。
4、 统计管理
(1).综合统计统计图书馆目前的各种指标。
(2).馆藏统计可以统计、分析各时期的图书馆藏量、分类馆藏量,并以表格两种显示。
5、 查询管理
(1).读者可以通过WEB进行图书检索,可以随意安排检索条件、检索项目。
(2).借阅综合查询可以查询按全体读者、各类别读者、某个部门、班级、个人进行借阅图书、超期图书 、借还书日期、借阅天数的查询。
(3).超期图书汇总可以按部门查询已超期图书,可打印催还图书通知单。
(4).可查询图书的被借阅史、读者的借阅史。
(5).应收超期罚款、已收罚金的明细、汇总帐。
(6).已注销、损坏图书查询。
6、 其它辅助功能
(1).借阅人信息维护:对借阅人信息修改、删除。
(2).管理员信息维护:可以执行管理员密码修改、信息更新及删除。
第3章 总体设计
1、系统软件结构图
图3-1 【图书管理系统登录】结构图
2、系统边界图
图3-2 【系统边界图】结构图
3、安全设计
(1).数据库的安全性
数据库表的完整性设计,如主键和外键的确定。
(2).访问权限的设计
管理员才具有登陆本系统的权限,在管理员登陆的前提下进行借书、还书、信息维护等操作。
(3).密码保护
a.登陆界面时,密码以*形式显示;
b.登录时连续三次密码错误则强制退出;
c.修给管理员密码时需要输入两次以确认。
第4章 数据库设计
§4.1 概念结构设计
图书管理系统ER图如下:
图4-1 图书管理系统的ER图
该系统中所有操作都由图书管理员完成。因此将管理员设为单独的一个表。
借阅人、借书证分别作为一个实体,也是必不可少的。
首先由管理员对采购的图书进行馆藏号编号,所以有实体图书。
系统红需要图书类别以确定借阅人限购数量,因此创建图书类别表。
便于图书馆内图书信息的统计与查询,因此出版社作为实体存在。
借阅人持借书证借书,产生表借阅,以及显示信息借阅历史。
借阅人所需图书已借出时,可以通过管理员对所需图书预约,因此有表预约
§4.2 逻辑结构与物理结构设计
1.逻辑结构设计
逻辑结构设计,将概念模型转化为关系模型。
图书馆的关系模型根据图4-1图书馆管理的ER图设计。并用关系模式的形式表示。
借阅(借阅证号,馆藏号,借书时间,还书时间,到期时间,罚款金额,实交金额)
借阅人(借阅证号,姓名,借阅人类别号* ,联系方式)
借阅人类别(借阅人类别号,类别名,限借数量)
借阅历史(借书证号,馆藏号,借书时间,还书时间,罚款数额)
借阅证(借阅证号,状态编号*,现借数量,密码)
借阅证类别(类别编号,类别名)
出版社(出版社编号,社名,地址)
图书(馆藏号,图书名,在库情况,作者,类型,出版社编号,单价,购书时间,isbn*,备注)
图书类别(isbn,书目名,库存量,剩余数量)
登录人员表(登录帐号,密码)
管理员(编号,姓名,密码)
预约(借阅证号,预约时间,截止时间,isbn*)
2.物理结构设计
第5章 详细设计
在这次图书管理系统的设计中,我负责借阅人信息维护和管理员信息维护两个模块,两个模块功能类似。现以管理员信息维护为例具体如下。
图5-1 管理员信息维护的流程图
连接数据库,在窗体中通过各个组件来完成界面的设计。
管理员信息管理,可以进行查询数据并进行相关处理,可以新增数据,删除数据,返回主页面或退出该管理系统。
在借阅人信息维护中,与管理员信息维护功能相似,不同之处是,只能对查询所得数据进行修改,而不能删除或新增。
第6章 编码
鉴于两个模块功能及实现方式相似,所以现同样以管理员信息维护模块为例叙述编码过程.
管理员信息维护界面截图如下:
所用控件有:TDataSource、TADOQuery、TADOConnection、TLabel、TEdit、TButton、TDBGird。
主要程序如下:
void __fastcall Tadmisterinfor::Button5Click(TObject *Sender)
{
if(Edit5->Text=="")
{
ShowMessage("请输入管理员编号!");
return;
}
else
{
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("UPDATE 管理员 SET 编号='" + Edit5->Text + "' where 编号='"+Edit1->Text+"'");
ADOQuery1->ExecSQL();
ShowMessage("编号修改成功!");
Edit1->Text=Edit5->Text;
Edit5->Text="";
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from 管理员 where 编号='"+Edit1->Text+"'");
ADOQuery1->ExecSQL();
ADOQuery1->Active=true;
}
}
void __fastcall Tadmisterinfor::Button1Click(TObject *Sender)
{
if(Edit1->Text=="")
{
ShowMessage("请输入编号!");
return;
}
else
{
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from 管理员 where 编号="+Edit1->Text);
ADOQuery1->ExecSQL();
ADOQuery1->Active=true;
ADOQuery1->Open();
if(ADOQuery1->IsEmpty())
ShowMessage("无此管理员!");
}
}
//---------输入编号并查询数据----------
void __fastcall Tadmisterinfor::Button2Click(TObject *Sender)
{
if(Edit2->Text=="")
{
ShowMessage("请输入管理员姓名!");
return;
}
else
{
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("UPDATE 管理员 SET 姓名='" + Edit2->Text + "' where 编号='"+Edit1->Text+"'");
ADOQuery1->ExecSQL();
ShowMessage("姓名修改成功!");
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from 管理员 where 编号='"+Edit1->Text+"'");
ADOQuery1->ExecSQL();
ADOQuery1->Active=true;
}
}
//--------修改信息-----------------------------------------
void __fastcall Tadmisterinfor::Button3Click(TObject *Sender)
{
if(Edit3->Text==""||Edit4->Text=="")
{
ShowMessage("请输入密码和确认密码!");
return;
}
else
{
if(Edit3->Text==Edit4->Text)
{
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("UPDATE 管理员 SET 密码='" + Edit3->Text + "' where 编号='"+Edit1->Text+"'");
ADOQuery1->ExecSQL();
ShowMessage("密码修改成功!");
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from 管理员 where 编号='"+Edit1->Text+"'");
ADOQuery1->ExecSQL();
ADOQuery1->Active=true;
}
else
{
ShowMessage("两次密码输入不一致!");
return;
}
}
}
//--------------修改并确认密码----------------------------------------
void __fastcall Tadmisterinfor::Button4Click(TObject *Sender)
{
if(Edit1->Text=="")
{
ShowMessage("请输入管理员编号!");
return;
}
else
{
if(mrYes==MessageDlg("确定删除?",mtWarning,TMsgDlgButtons()<<mbYes<<mbNo,0))
{
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("delete from 管理员 where 编号='"+Edit1->Text+"'");
ADOQuery1->ExecSQL();
ShowMessage("删除成功!");
Edit1->Text=="";
}
else
return;
}
}
//--------------------删除信息-----------------------------------------
void __fastcall Tadmisterinfor::Button6Click(TObject *Sender)
{
if(Edit6->Text==""||Edit7->Text==""||Edit8->Text==""||Edit9->Text=="")
{
ShowMessage("请输入全部信息!");
return;
}
else
{
if(Edit7->Text==Edit8->Text)
{
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from 管理员 where 编号='"+Edit9->Text+"'");
ADOQuery1->ExecSQL();
ADOQuery1->Open();
if(!ADOQuery1->IsEmpty())
{
ShowMessage("此编号已存在!");
return;
}
else
{
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("insert into 管理员(编号,姓名,密码) values('" + Edit9->Text +"','"+Edit6->Text+"','"+Edit7->Text+"')");
ADOQuery1->ExecSQL();
ShowMessage("新增管理员成功!");
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from 管理员 where 编号='"+Edit9->Text+"'");
ADOQuery1->ExecSQL();
ADOQuery1->Active=true;
Edit9->Text="";
Edit8->Text="";
Edit7->Text="";
Edit6->Text="";
}
}
else
{
ShowMessage("两次密码输入不一致!");
return;
}
}
}
//--------------新增管理员---------------
设置控件属性如下:
借阅人信息维护界面截屏如下:
所用控件有:TDataSource、TADOQuery、TADOConnection、TLabel、TEdit、TButton、TDBGird。
第7章 测试
§7.1 测试
1. 对管理员信息维护的测试
1)输入 2008101 点击确定
2)在信息修改处依次输入 2008111
黄
123
123
3)新增
输入 123
华
123
123
4)删除
记录删除
2. 对借阅人信息维护测试
与上例相似,略去不举
§7.2 发现错误和解决方法
发现错误:修改信息后,edit中仍显示刚输入信息。
解决方法:在代码后加一段重复,问题解决。
第8章 设计总结
本图书馆管理系统主要实现了基础信息维护、读者管理、图书管理、图书流通管理等功能,建立了包含在图书管理系统主窗体下的六个功能子窗体,即借书、还书、图书信息维护、图书证信息维护、借阅人信息维护以及管理员信息维护,实现了一个图书管理系统的基本维护与实现。
就总体而言,这次课程设计的结果相当满意,但由于数据量比较小、实现功能都比较基础简单,我们的作品还有改进空间
对我个人所做的借阅人信息维护和管理员信息维护,我则找到了和其他组员的差距。虽然要求的功能都能一一实现,但对于控件的使用,界面的设计与规划等都较为稚嫩,有待提高。
学习体会(附录1)
在这次课程设计中,我们不仅组建团队,完成图书管理系统数据库的物理及逻辑结构的设计,同时也分工完成数据库的建立,用户界面设计以及相关功能的实现。通过这次课程设计,并把所学与实际结合起来,为以后对项目的接手,处理打下基础。更重要的是,在这次课程设计中,我深深体会到了团队精神的重要性,对于我们团队意识的培养有极大的促进作用。总之,在这次数据库课程设计中,我受益匪浅。
致谢(附录2)
在此感谢,此次课程设计中给予指导的刘勇老师、赵海霞老师、魏汪洋老师、李冠峰老师,以及黄东华、梁子兴等同学的帮助。
参考文献(附录3)
[1] 王珊,萨师煊·数据库系统概论〔第四版〕·北京·高等教育出版社·20##·/*中文教材*/
[2] 康诺利等著·何玉洁等译·数据库设计教程(第二版)·北京·机械工业出版社·2005.1·/*译著*/