学校图书管理系统课程设计报告正文.docx

上传人:b****9 文档编号:25249262 上传时间:2023-06-06 格式:DOCX 页数:25 大小:400.22KB
下载 相关 举报
学校图书管理系统课程设计报告正文.docx_第1页
第1页 / 共25页
学校图书管理系统课程设计报告正文.docx_第2页
第2页 / 共25页
学校图书管理系统课程设计报告正文.docx_第3页
第3页 / 共25页
学校图书管理系统课程设计报告正文.docx_第4页
第4页 / 共25页
学校图书管理系统课程设计报告正文.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

学校图书管理系统课程设计报告正文.docx

《学校图书管理系统课程设计报告正文.docx》由会员分享,可在线阅读,更多相关《学校图书管理系统课程设计报告正文.docx(25页珍藏版)》请在冰豆网上搜索。

学校图书管理系统课程设计报告正文.docx

学校图书管理系统课程设计报告正文

 

软件工程课程作业

用软件工程分析一个图书管理系统

 

 

计算机科学与技术学院

王灵()

范玖豪()

向双()

余其林()

 

目录

第1章绪论3

第2章需求分析3

第3章总体设计6

第4章数据库设计8

第5章详细设计11

第6章编码12

第7章测试18

第8章设计总结20

 

第1章绪论

图书馆是信息交换和资源流通的重要媒介,对图书馆的信息化管理将大大提高图书资源的利用和信息的交换速度。

图书管理系统是通过将借阅信息以数据库的形式由网络传输来完成各用户(教师或学生)所要的借阅方面的需求(如借阅,归还,预订等)。

以打破传统的人工选课模式,极大地方便了使用人员和管理人员,节约了时间和空间,实现图书借阅自动化,自由化,使图书资源得到充分利用。

建立图书管理系统,使每个用户自由地选到自己需要的图书,避免传统借书模式的繁琐、低效率、借阅程序臃肿等等的缺点,减轻相关人员的负担。

本图书管理系统运用SQLServer2000、C++Builder等软件实现了基本的管理员登录、图书管理、读者管理、借还图书、图书查询以及信息维护等功能的图书管理系统。

第2章需求分析

2.1基本需求规格说明

2.1.1系统概貌

本系统是一个基于图书信息管理的系统,通过对数据库的调用实现对各用例功能的实现。

2.1.2功能要求

在图书管理系统中,管理员要为每个读者建立借阅账户,并給读者发放不同类的借阅卡(借阅卡可提供卡号、读者姓名),账户内存储读者的个人信息和借阅记录信息。

持有借阅卡的读者可以通过管理员(作为读者的代理人与系统交互)借阅、归还图书,不同类别的读者可借阅图书的范围、数量和期限不同,可通过互联网或图书馆内查询终端查询图书信息和个人借阅情况,以及续借图书(系统审核符合续借条件)。

借阅图书时,先输入读者的借阅卡号,系统验证借阅卡的有效性和读者是否可继续借阅图书,无效则提示其原因,有效则显示读者的基本信息(包括照片),供管理员人工核对。

然后输入要借阅的书号,系统查阅图书信息数据库,显示图书的基本信息,供管理员人工核对。

最后提交借阅请求,若被系统接受则存储借阅纪录,并修改可借阅图书的数量。

归还图书时,输入读者借阅卡号和图书号(或丢失标记号),系统验证是否有此借阅纪录以及是否超期借阅,无则提示,有则显示读者和图书的基本信息供管理员人工审核。

如果有超期借阅或丢失情况,先转入过期罚款或图书丢失处理。

然后提交还书请求,系统接受后删除借阅纪录,并登记并修改可借阅图书的数量。

图书管理员定期或不定期对图书信息进行入库、修改、删除等图书信息管理以及注销(不外借),包括图书类别和出版社管理。

为系统维护人员提供权限管理、数据备份等通用功能。

2.1.3性能要求

安全性:

提供身份验证,用户信息保密,用户数据安全策略

友好性:

提供有好的图形界面

稳定性:

系统提供7*24的无间断服务,并保证数据安全备份。

系统安全性:

增强系统安全级别,管理各个管理员权限,防止非法人员盗用管理员权限进行非法操作。

2.2用例分析

 

2.3数据流图分析

2.3.1顶层数据流图

2.3.20层数据流图

2.3.31层数据流图

2.3.3.1读者信息管理

2.3.3.2图书信息管理

2.3.3.3图书借还管理

2.3.3.4统计信息

2.3.3.5系统设置

第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.物理结构设计

实体

属性

说明

备注

借阅人

借阅证号(primarykey)

姓名

借阅人类别号(foreignkey)

联系方式

借阅主体

去图书馆借书的人

借阅证

借阅证号(primarykey)

类别编号

状态编号

借阅数量

密码

借阅的凭证

借书时需要的证件,借书时只认证件不认人。

图书

馆藏号(primarykey)

图书名

在库情况

作者

类型

出版社编号

单价

购书时间

Isbn(foreignkey)

被借阅的主体

图书馆里的物品

管理员

编号(primarykey)

姓名

密码

管理图书馆的人

图书馆里的管理人员,负责图书的管理工作。

预约

借阅证号(primarykey)

时间(primarykey)

isbn(foreignkey)

提前预订要借的图书

图书类别

isbn(primarykey)

书目名

库存量

剩余数量

图书的具体属于哪类,已经是具体的一类书

出版社

出版社编号(primarykey)

社名

地址

出版该图书的机构

借阅

借阅证号(primarykey)

馆藏号(primarykey)

借书时间(primarykey)

还书时间

到期时间

罚款

借书的有关信息

借阅历史

借阅证号(primarykey)

馆藏号(primarykey)

借书时间(primarykey)

还书时间

罚款数额

之前的借书记录

借阅人类别

借阅人类别号(primarykey)

类别名

限借数量

借阅人主体的分类,决定借书权限。

借阅证状态

状态编号(primarykey)

状态名

是否可用

图书在库情况

在库编号(primarykey)

在库名

是否在库

第5章详细设计

在这次图书管理系统的设计中,我负责借阅人信息维护和管理员信息维护两个模块,两个模块功能类似。

现以管理员信息维护为例具体如下。

 

图5-1管理员信息维护的流程图

连接数据库,在窗体中通过各个组件来完成界面的设计。

管理员信息管理,可以进行查询数据并进行相关处理,可以新增数据,删除数据,返回主页面或退出该管理系统。

在借阅人信息维护中,与管理员信息维护功能相似,不同之处是,只能对查询所得数据进行修改,而不能删除或新增。

第6章编码

鉴于两个模块功能及实现方式相似,所以现同样以管理员信息维护模块为例叙述编码过程.

管理员信息维护界面截图如下:

所用控件有:

TDataSource、TADOQuery、TADOConnection、TLabel、TEdit、TButton、TDBGird。

主要程序如下:

void__fastcallTadmisterinfor:

:

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__fastcallTadmisterinfor:

:

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__fastcallTadmisterinfor:

:

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__fastcallTadmisterinfor:

:

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__fastcallTadmisterinfor:

:

Button4Click(TObject*Sender)

{

if(Edit1->Text=="")

{

ShowMessage("请输入管理员编号!

");

return;

}

else

{

if(mrYes==MessageDlg("确定删除?

",mtWarning,TMsgDlgButtons()<

{

ADOQuery1->Active=false;

ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add("deletefrom管理员where编号='"+Edit1->Text+"'");

ADOQuery1->ExecSQL();

ShowMessage("删除成功!

");

Edit1->Text=="";

}

else

return;

}

}

//--------------------删除信息-----------------------------------------

void__fastcallTadmisterinfor:

:

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("insertinto管理员(编号,姓名,密码)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;

}

}

}

//--------------新增管理员---------------

设置控件属性如下:

组件名

属性名

属性新内容

admisterinfor

Caption

管理员信息维护

Edit1

Text

Edit2

Text

Edit9

Text

Label1

Caption

请输入管理员编号

Autosize

False

Label2

Caption

姓名

Autosize

False

Lable3

Caption

密码

Autosize

False

Lable4

Caption

密码确认

Autosize

False

Lable5

Caption

编号

Autosize

False

Lable6

Caption

姓名

Autosize

False

Lable7

Caption

密码

Autosize

False

Lable8

Caption

密码确认

Autosize

False

Lable9

Caption

编号

Autosize

False

Button1

Caption

查询

Button2

Caption

确认修改

Button3

Caption

确认修改

Button4

Caption

删除该账号

Button5

Caption

确认修改

Button6

Caption

新增管理员

Dbgrid1

Datasource

Datasource1

借阅人信息维护界面截屏如下:

所用控件有:

TDataSource、TADOQuery、TADOConnection、TLabel、TEdit、TButton、TDBGird。

第7章测试

§7.1测试

1.对管理员信息维护的测试

1)输入点击确定

2)在信息修改处依次输入

123

123

3)新增

输入123

123

123

4)删除

记录删除

2.对借阅人信息维护测试

与上例相似,略去不举

§7.2发现错误和解决方法

发现错误:

修改信息后,edit中仍显示刚输入信息。

解决方法:

在代码后加一段重复,问题解决。

第8章设计总结

本图书馆管理系统主要实现了基础信息维护、读者管理、图书管理、图书流通管理等功能,建立了包含在图书管理系统主窗体下的六个功能子窗体,即借书、还书、图书信息维护、图书证信息维护、借阅人信息维护以及管理员信息维护,实现了一个图书管理系统的基本维护与实现。

就总体而言,这次课程设计的结果相当满意,但由于数据量比较小、实现功能都比较基础简单,我们的作品还有改进空间

在这次课程设计中,我们不仅组建团队,完成图书管理系统数据库的物理及逻辑结构的设计,同时也分工完成数据库的建立,用户界面设计以及相关功能的实现。

通过这次课程设计,并把所学与实际结合起来,为以后对项目的接手,处理打下基础。

更重要的是,在这次课程设计中,我深深体会到了团队精神的重要性,对于我们团队意识的培养有极大的促进作用。

总之,在这次数据库课程设计中,我受益匪浅。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1