信息系统分析与设计课程设计 图书管理系统.docx

上传人:b****5 文档编号:11646624 上传时间:2023-03-29 格式:DOCX 页数:40 大小:1.66MB
下载 相关 举报
信息系统分析与设计课程设计 图书管理系统.docx_第1页
第1页 / 共40页
信息系统分析与设计课程设计 图书管理系统.docx_第2页
第2页 / 共40页
信息系统分析与设计课程设计 图书管理系统.docx_第3页
第3页 / 共40页
信息系统分析与设计课程设计 图书管理系统.docx_第4页
第4页 / 共40页
信息系统分析与设计课程设计 图书管理系统.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

信息系统分析与设计课程设计 图书管理系统.docx

《信息系统分析与设计课程设计 图书管理系统.docx》由会员分享,可在线阅读,更多相关《信息系统分析与设计课程设计 图书管理系统.docx(40页珍藏版)》请在冰豆网上搜索。

信息系统分析与设计课程设计 图书管理系统.docx

信息系统分析与设计课程设计图书管理系统

河南理工大学

计算机科学与技术学院

课程设计报告

2010—2011学年第二学期

 

课程名称信息系统分析与设计

设计题目图书借阅管理系统

学生姓名孟凡伟

学号310809030117

专业班级信管08-01

指导教师吴岩

2011年07月01日

1前言……………………………………………………………………

2系统分析……………………………………………………………

3系统设计……………………………………………………………

3.1概念结构设计………………………………………………

3.2逻辑结构设计…………………………………………………

4系统实现…………………………………………………………

5总结………………………………………………………………

6参考文献……………………………………………………………

图书借阅管理系统

1前言

随着图书馆和书店的图书的数量逐渐增加,图书的品种也越来越多,并且书籍的借出、归还日益频繁,需要处理大量的数据,假如使用计算机进行图书的购入、借出和归还以及读者、图书的管理和查询进行管理,就可以大大提高工作效率。

所以图书管理系统的开发显得尤为重要。

我就做了图书借阅管理系统这一项目。

关键词:

图书管理、用例图、交互图、需求分析。

2系统分析

图书管理系统在我们实际生活中,特别是大学生的生活中有非常实用的价值它的实用性主要表现在以下几个方面:

(1)可以加强对读者借阅情况的控制,防止信息遗漏。

(2)可以提高对数据处理的及时性和准确性。

(3)使得在图书信息管理上更科学,便于查阅。

(4)大大降低了管理的成本。

本图书管理系统的主要功能有:

系统管理、信息管理、日常操作和信息查询四大主要模块。

系统管理包括:

系统登录、修改密码、关于界面。

信息管理包括:

图书信息管理和读者信息管理。

日常操作包括:

图书借阅操作和图书归还操作。

信息查询包括:

图书资料查询和读者资料查询。

图1-1图书借阅管理系统用例图

 

登录系统用例的描述:

简短描述

登录系统用例使管理者与借阅者可以进入系统。

逐步描述

1.管理者与借阅者分别输入自己的用户名与密码。

2.当用户名与密码符合时,进入系统。

查询用例的描述:

简短描述

查询用例使管理者与借阅者可以查询相关信息。

逐步描述

1.管理者与借阅者进入系统。

2.管理者与借阅者登陆查询界面。

3.管理者可以查询图书借出量和图书剩余量。

4.借阅者查询自己已借书数量,归还日期,已借书的剩余天数,可以借的书的名称,还可以查询自己的学籍信息。

借书用例的描述:

简短描述

借书用例使借阅者可以借阅书籍。

逐步描述

1.借阅者把要借的书籍展示给管理者。

2.管理者进入借书界面。

3.管理者扫描图书上的条形码,与此同时扫描借阅卡。

4.当此借阅者存在,并且借阅数量未超过所规定的最大数量时,显示借书成功。

否则,借书失败。

还书用例的描述:

简短描述

还书用例使借阅者可以把已借图书归还到图书馆。

逐步描述

1.借阅者把要还的图书显示给管理者。

2.管理者进入还书界面。

3.管理者扫描图书上的条形码。

4.当该图书未超期时,显示还书成功;当该图书超期时,扫描借阅卡,扣除相应的费用,然后显示还书成功。

预约图书用例的描述:

简短描述

预约图书用例使借阅者可以预先约定要借的图书,以便以后借阅。

逐步描述

1.借阅者登录系统,进入预约图书界面。

2.输入想要借阅图书的相关信息进行查询。

3.当该图书未被借走时,点击预约,可以预约该图书,显示预约成功;当该图书已被借走时,则不能预约该图书,显示预约失败。

管理信息用例的描述:

简短描述

管理信息用例使管理者可以添加、修改、删除读者的信息以及图书的信息。

逐步描述

1.管理者登录系统,进入管理信息界面。

2.根据新购入的图书,管理者添加新入图书的信息;当一些图书信息需要修改时,修改相关图书信息:

当一些图书需要出库时,管理者删除这些图书的信息。

3.当有新的借阅者时候,添加新借阅者的信息;当一些借阅者的信息需要修改的时候,点击修改这些借阅者的信息;当一些借阅者退出,即不是该书库的借阅者的时候,删除这些借阅者的信息。

维护系统用例的描述:

简短描述

维护系统用例使管理者可以修改登录的密码,使系统更加安全。

逐步描述

1.管理者进入系统,进入维护系统界面。

2.点击修改密码按钮,输入两次旧密码,在输入两次新密码。

3.当两次旧密码一样并且正确,同时两次新密码相同时,显示修改密码成功。

该信息自动保存到系统。

退出系统用例的描述:

简短描述

退出系统用例使管理者与借阅者可以退出该系统。

逐步描述

1.管理员与借阅者进入系统主界面。

2.当管理员与借阅者点击退出系统按钮时,则退出该系统。

图1-2图书借阅管理系统的类图

图1-3图书借阅管理系统的状态图

查询用例的方案描述:

借阅者希望获得图书的相关信息

1.借阅者登录进入系统。

2.借阅者进入查询界面,输入查询条件。

3.借阅者获得了所需要的信息。

借书用例的方案描述:

借阅者希望借阅所需图书

1.管理者登录系统,进入借书界面。

2.借阅者把图书和借阅卡给管理者。

3.管理者扫描借阅卡和图书的条形码。

4.当借阅者借书的数量不超过所规定的数量时,借书成功,系统自动更新图书信息和借阅者的借阅记录。

 

还书用例的方案描述:

借阅者希望归还所借的图书

1.管理者登录系统,进入还书界面。

2.借阅者把图书给管理者,管理者扫描图书上的条形码。

3.当图书不超期时,显示还书成功,系统自动更新图书信息和借阅者的借阅记录。

读者管理用例的方案描述:

管理者希望对借阅者的信息进行操作

1.管理者登录系统,进入读者管理界面。

2.管理者对读者信息进行添加、修改、删除等操作。

3.管理者把操作结果保存到系统中。

图书管理用例的方案描述:

管理者希望对图书信息进行操作

1.管理者登录系统,进入图书管理界面。

2.管理者对图书信息进行添加、修改、删除等操作。

3.管理者把操作结果保存到系统中。

图1-4查询协作图

图1-5图书借阅协作图

图1-6还书协作图

图1-7读者管理协作图

图1-8图书管理协作图

图1-9查询活动图

图1-10借书活动图

图1-11还书活动图

图1-12添加图书活动图

图1-13修改图书活动图

图1-14删除图书活动图

3系统设计

3.1概念结构设计

概念结构设计以用户易于理解的形式表达信息,这与数据库的具体细节无关它涉及的数据独立于具体的DBMS和计算机硬件。

它能真实、充分地反映现实世界中事务和事务之间的联系,能满足用户对数据的各种处理要求。

易于改进和扩充。

本系统的E-R图如下:

 

出版时间

出版社

作者

类别

书名

现存数量

条形码

借书时间

图书借阅

还书时间

编号

已借书数

还书时间

借书时间

登记时间

读者

性别

类别

姓名

图书总数

入馆时间

借书期限

图书价格

图书编号

图书

 

n

 

1

 

住址

单位部门

 

图1-15系统E-R图

 

3.2逻辑结构设计

该系统需要的数据库中应包括四个数据表。

表1-1读者信息表

表1-2图书信息表

表1-3图书借阅记录表

表1-4用户信息表

关系模式如下:

图书信息表(图书编号,条形码,书名,作者,出版社,出版时间,类别,现存数量,图书总数,入馆时间,图书价格,借书期限)

读者信息表(编号,姓名,性别,类别,单位部门,住址,登记时间,借书时间,还书时间,已借书数)

图书借阅记录表(图书编号,条形码,书名,编号,借阅者,借还时间,借还状态)

用户信息表(用户名,密码,权限)

4系统实现

系统登录界面及其代码:

“确定”按钮的click事件代码:

setexacton

LOCATEFORALLTRIM(用户名)=ALLTRIM(thisform.text1.Value)

IFFOUND()ANDALLTRIM(密码)=ALLTRIM(thisform.text2.Value)

userquanxian=alltrim(用户信息表.权限)

messagebox("欢迎使用本系统",4+32,"系统提示")

DOFORM系统界面

thisform.Release()

else

messagebox("帐号或密码错误",48,"系统警告")

thisform.text1.Value=""

thisform.text2.Value=""

thisform.text1.SetFocus()

ENDIF

SETEXACTOFF

“退出”按钮click事件的代码:

thisform.release

clearevents

quit

系统主界面及代码如下:

Init事件代码:

do图书管理菜单.mprwiththis,.T.

mand1.visible=.F.

mand2.visible=.F.

mand3.visible=.F.

mand4.visible=.F.

mand5.visible=.F.

mand6.visible=.F.

mand7.visible=.F.

mand8.visible=.F.

mand9.visible=.F.

docase

caseuserquanxian="2"

mand1.visible=.T.

mand2.visible=.T.

mand6.visible=.T.

mand7.visible=.T.

mand8.visible=.T.

mand9.visible=.T.

caseuserquanxian="1"

mand1.visible=.T.

mand2.visible=.T.

mand3.visible=.T.

mand4.visible=.T.

mand5.visible=.T.

mand6.visible=.T.

mand7.visible=.T.

mand8.visible=.T.

mand9.visible=.T.

endcase

“借书”按钮的click事件代码:

doform借书

“还书”按钮的click事件代码:

doform还书

“图书管理”按钮的click事件代码:

doform图书管理

“读者管理”按钮的click事件代码:

doform读者管理

“资料查询”按钮的click事件代码:

thisform.pageframe1.visible=.T.

“打印报表”按钮的click事件代码:

doform打印报表

“密码维护”按钮的click事件代码:

doform密码维护

“关于”按钮的click事件代码:

doform关于

“退出”按钮的click事件代码:

yorn=messagebox("确定退出",4+32,"图书管理系统")

ifyorn=6

thisform.release

clearevents

quit

endif

读者管理界面及代码:

“确定”按钮click事件代码:

sele读者信息表

locatefor编号=upper(allt(thisform.text1.value))

ifnotfound()

=messagebox("没有该读者的编号!

",0+64+0,"提示")

gotop

endif

thisform.refresh

“清除”按钮click事件代码:

thisform.text1.value=''

thisform.text1.setfocus

“向左”按钮click事件代码:

sele读者信息表

if.not.bof()

skip-1

mand1.setfocus

thisform.refresh

endif

“向右”按钮click事件代码:

sele读者信息表

if.not.eof()

skip

mand2.setfocus

thisform.refresh

endif

“删除”按钮click事件代码:

x=messagebox("真的删除编号为"+allt(thisform.text2.value)+"的信息吗?

",4+32+256,"重要提示")

ifx=6

delete

thisform.refresh

else

return.F.

endif

“增加”按钮click事件代码:

sele读者信息表

appendblank

gobottom

thisform.refresh

“关闭”按钮click事件代码:

thisform.release

图书管理表单界面及代码:

“确定”按钮click事件代码:

sele图书信息表

ifthisform.optiongroup1.option1.value=0

locatefor条形码=upper(allt(thisform.text2.value))

ifnotfound()

=messagebox("没有该图书的条形码!

",0+64+0,"提示")

gotop

endif

endif

ifthisform.optiongroup1.option1.value=1

locatefor图书编号=upper(allt(thisform.text1.value))

ifnotfound()

=messagebox("没有该图书编号!

",0+64+0,"提示")

gotop

endif

endif

mand3.enabled=.T.

thisform.refresh

“清除”按钮click事件代码:

thisform.text2.value=''

thisform.text1.value=''

thisform.text1.setfocus

“前一条记录”按钮click事件代码:

sele图书信息表

if.not.bof()

skip-1

mand3.setfocus

thisform.refresh

endif

“后一条记录”按钮click事件代码:

sele图书信息表

if.not.eof()

skip

mand4.setfocus

thisform.refresh

endif

“删除”按钮click事件代码:

x=messagebox("真的删除编号为"+allt(thisform.txt图书编号.value)+"的图书吗?

",4+32+256,"重要提示")

ifx=6

delete

thisform.refresh

else

return.F.

endif

“增加”按钮click事件代码:

sele图书信息表

appendblank

gobottom

thisform.refresh

“关闭”按钮click事件代码:

thisform.release

资料查询界面及其代码:

图书查询界面及代码:

“查询”按钮click事件代码:

select图书信息表

docase

casethisform.pageframe1.page1.Combo1.displayvalue="图书编号"

setfilterto图书信息表.图书编号=alltrim(thisform.pageframe1.page1.text1.value)

thisform.refresh

casethisform.pageframe1.page1.Combo1.displayvalue="条形码"

setfilterto图书信息表.条形码=alltrim(thisform.pageframe1.page1.text1.value)

thisform.refresh

casethisform.pageframe1.page1.Combo1.displayvalue="书名"

setfilterto图书信息表.书名=alltrim(thisform.pageframe1.page1.text1.value)

thisform.refresh

casethisform.pageframe1.page1.Combo1.displayvalue="作者"

setfilterto图书信息表.作者=alltrim(thisform.pageframe1.page1.text1.value)

thisform.refresh

casethisform.pageframe1.page1.Combo1.displayvalue="出版社"

setfilterto图书信息表.出版社=alltrim(thisform.pageframe1.page1.text1.value)

thisform.refresh

casethisform.pageframe1.page1.Combo1.displayvalue="类别"

setfilterto图书信息表.类别=alltrim(thisform.pageframe1.page1.text1.value)

thisform.refresh

casethisform.pageframe1.page1.Combo1.displayvalue="现存数量"

setfilterto图书信息表.现存数量=val(thisform.pageframe1.page1.text1.value)

thisform.refresh

endcase

“刷新”按钮click事件代码:

thisform.pageframe1.page1.refresh

“退出查询”按钮click事件代码:

thisform.pageframe1.visible=.F.

读者查询及代码如下:

“查询”按钮click事件代码:

select读者信息表

docase

casebo1.displayvalue="编号"

setfilterto读者信息表.编号=alltrim(thisform.pageframe1.page2.text1.value)

thisform.refresh

casebo1.displayvalue="姓名"

setfilterto读者信息表.姓名=alltrim(thisform.pageframe1.page2.text1.value)

thisform.refresh

casebo1.displayvalue="性别"

setfilterto读者信息表.性别=alltrim(thisform.pageframe1.page2.text1.value)

thisform.refresh

casebo1.displayvalue="住址"

setfilterto读者信息表.住址=alltrim(thisform.pageframe1.page2.text1.value)

thisform.refresh

casebo1.displayvalue="已借书数"

setfilterto读者信息表.已借书数=val(thisform.pageframe1.page2.text1.value)

thisform.refresh

endcase

“刷新”按钮click事件代码:

thisform.pageframe1.page2.refresh

“退出查询”按钮click事件代码:

thisform.pageframe1.visible=.F.

借书界面及其代码:

图书编号的“确定”按钮click事件代码:

sele图书信息表

ifthisform.optiongroup1.option1.value=0

locatefor条形码=upper(allt(thisform.text2.value))

ifnotfound()

=messagebox("没有该图书的条形码!

",0+64+0,"提示")

gotop

else

mand3.enabled=.T.

endif

endif

ifthisform.optiongroup1.option1.value=1

locatefor图书编号=upper(allt(thisform.text1.value))

ifnotfound()

=messagebox("没有该图书的编号!

",0+64+0,"提示")

gotop

else

mand3.enabled=.T.

endif

endif

thisform.refresh

“清除”按钮click事件代码:

thisform.text2.value=''

thisform.text1.value=''

thisform.text1.setfocus

读者信息的“确定”按钮click事件代码:

sele读者信息表

locatefor编号=(allt(thisform.text13.value))

ifnotfound()

=messagebox("没有该读者的编号",0+64+0,"提示")

gotop

endif

thisform.refresh

“清除”按钮click事件代码:

thisform.text13.value=''

thisform.text13.setfocus

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

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

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

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