软件工程课程设计图书借阅管理系统.docx

上传人:b****5 文档编号:7223420 上传时间:2023-01-22 格式:DOCX 页数:27 大小:312.66KB
下载 相关 举报
软件工程课程设计图书借阅管理系统.docx_第1页
第1页 / 共27页
软件工程课程设计图书借阅管理系统.docx_第2页
第2页 / 共27页
软件工程课程设计图书借阅管理系统.docx_第3页
第3页 / 共27页
软件工程课程设计图书借阅管理系统.docx_第4页
第4页 / 共27页
软件工程课程设计图书借阅管理系统.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

软件工程课程设计图书借阅管理系统.docx

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

软件工程课程设计图书借阅管理系统.docx

软件工程课程设计图书借阅管理系统

 

《软件工程》

课程设计报告书

 

项目名称:

图书借阅管理系统

指导老师:

学生姓名:

专业:

班级:

日期:

 

信息科学与工程系

 

一、项目计划

(一)项目开发背景及内容

随着计算机技术的不断发展,计算机作为知识经济时代的产物,已被广泛应用于社会各个行业和领域。

目前,我国的科技水平高速发展,计算机作为今天使用最广的现代化工具已深入到各个领域,并且正在成为未来社会——信息社会的重要支柱。

在这样的大背景下,现代图书馆的管理方式,资源建设等方面都发生了重大变化,这种变化表现在图书馆工作,管理和服务平台发生的变化,图书馆不再是传统的手工操作,人工管理,而是全面实行计算机管理。

图书馆的正常运营中总是面对大量的读者信息,图书信息以及两者相互作用产生的借书信息,因此要对读者资源,图书资源,借书信息进行管理。

本系统的开发就是在于提高图书借阅管理的工作效率,加强图书馆的管理,全面实行计算机管理。

(2)开发环境

开发环境:

Win7旗舰版

开发工具:

Visualbasic6.0ACCESS

作图软件:

MicrosoftVisio2010

(3)进度安排

该软件应用MicrosoftVisio2010和Visualbasic6.0,ACCESS进行编程作图,历时大概两周,最终完成了这个小型图书借阅管理系统。

由于时间仓促,该小型图书借阅管理系统并不完善。

我用了两天时间查找相关资料,两天时间编写代码和连接数据库。

其余三天开始用MicrosoftVisio2010画数据流图、结构图、流程图、用例图和包图类图。

整个过程系我们三人分工人完成。

二、结构化分析设计

(一)数据流图

图2.2.1系统的数据流图

图2.2.21层数据流图

(2)数据字典

在定义的图书借阅管理系统数据字典中,主要对数据流图中的数据项、数据流、数据存储和处理过程进行说明。

(1)数据项描述

1)数据项名称:

借书证号

含义说明:

惟一标识一个借书证

类型:

字符型

长度:

50

逻辑关系:

不允许为空

2)数据项名称:

用户名

含义说明:

读者的名称

类型:

字符型

长度:

20

逻辑关系:

不允许为空

3)数据项名称:

密码

含义说明:

对用户名和操作员管理员进行加密

类型;字符型

长度:

10

逻辑关系:

允许为空

4)数据项名称:

性别

类型:

字符型

长度:

10

逻辑关系:

允许为空

5)数据项名称:

所在系别

类型;字符型

长度:

10

逻辑关系:

允许为空

6)数据项名称:

所在班级

类型:

字符型

长度:

10

逻辑关系:

允许为空

7)数据项名称:

操作员名称

类型:

字符型

长度:

30

逻辑关系:

不允许为空

8)数据项名称:

操作员简称

含义说明:

惟一标识一个操作员

类型:

字符型

长度:

10

逻辑关系:

不允许为空

9)数据项名称:

操作员级别

含义说明:

对操作员和管理员进行区分

类型:

字符型

长度:

10

逻辑关系:

不允许为空

10)数据项名称:

图书编号

含义说明:

惟一标识一个图书

类型:

字符型

长度:

10

逻辑关系:

不允许为空

11)数据项名称:

图书名称

类型:

字符型

长度:

50

逻辑关系:

不允许为空

12)数据项名称:

作者

类型:

字符型

长度:

50

逻辑关系:

不允许为空

13)数据项名称:

出版社

类型:

字符型

长度:

50

逻辑关系:

不允许为空

14)数据项名称:

出版时间

类型:

日期时间型

长度:

8

逻辑关系:

不允许为空

15)数据项名称:

价格

类型:

整型

长度:

4

逻辑关系:

不允许为空

16)数据项名称:

备注

类型:

字符型

长度:

200

逻辑关系:

允许为空

17)数据项名称:

借书日期

类型:

日期时间

长度:

8

逻辑关系:

不允许为空

18)数据项名称:

还书日期

类型:

日期时间

长度:

8

逻辑关系:

不允许为

(2)数据结构描述

1)数据流名称:

用户情况

含义说明:

定义了一个读者的有关信息

组成结构:

用户情况=用户名+借书证号+密码+性别+所在系别+所在班级

2)数据流名称:

操作员情况

含义说明:

定义了一个操作员的有关信息

组成结构:

操作员情况=操作员名称+操作员简称+操作员级别+操作员密码

3)数据流名称:

图书情况

含义说明:

定义了一个图书的有关信息

组成结构:

图书情况=图书编号+图书名称+作者+出版社+出版时间+价格+备注

(3)数据流描述

1)数据流名称:

借书

含义:

读者借书时的记录

来源:

读者

去向:

审核借书

数据流量:

>50份/天

组成:

借书单=借书证号+图书编号+借书日期

2)数据流名称:

还书

含义:

读者还书时要填写的记录

来源:

读者

去向:

审核还书

数据流量:

>25份/天

组成:

还书单=图书编号+还书日期

(4)数据存储说明

1)数据存储名称:

图书数据表

含义说明:

存放图书的有关信息

组成结构:

图书编号+图书名称+作者+出版社+出版时间+价格+备注

说明;书号具有惟一性和非空性

2)数据存储名称:

用户信息表

含义说明:

存放读者的注册信息

组成结构:

用户名+借书证号+密码+性别+所在系别+所在班级

说明:

证号具有惟一性和非空性,性别只能是男和女

3)数据存储名称:

借书记录

含义说明:

存放读者的借书,还书信息

组成结构:

借书证号+图书编号+借书日期+还书日期

说明:

要求能够立即查询

(5)处理过程说明

1)处理过程名称:

图书管理

输入:

图书情况,

输出:

图书记录

处理说明:

对馆内所有图书按图书编号进行管理,将图书数据数据化,存储图书数据表中。

2)处理过程名称:

读者管理

输入:

读者情况,

输出:

读者记录

处理说明:

建立读者信息表,对读者进行统一编号,实现读者记录表的增删改维护功能。

3)处理过程名称:

查看数目

输入:

借书请求,读者

输出:

借书记录,图书信息

处理说明:

实现根据图书编号等查询图书。

4)处理过程名称:

借书处理

输入:

图书情况,读者,借书记录

输出:

借书记录

处理说明:

确认读者符合借书条件,办理借书手续。

5)处理过程名称:

还书处理

输入:

图书情况,

输出:

借书记录

处理说明:

对照相应的图书编号可办理还书手续。

6)处理过程名称:

安全管理

输入:

操作员情况,用户情况

输出:

操作员级别,操作员记录,用户记录

处理说明:

通过用户名和口令,确认用户身份,保证系统的安全型。

(三)加工说明(可用结构化语言描述、判定表、判定树)

图2.3.1借阅管理系统的判定树

(四)结构图

图2.4.1系统的结构图

(5)流程图

图2.5.1系统登录流程图

图2.5.2系统的借书流程图

图2.5.3系统的还书流程图

三、面向对象分析设计

(一)用例图

用例图在需求分析阶段有重要作用,它是作为参与者的外部用户所能观察到的系统功能模型图。

整个开发过程都是围绕需求阶段用例进行的。

图3.1.1系统的用例图

(2)对象行为模型

图3.2.1系统状态图

图3.1.2系统活动图

(三)系统包图

图3.3.1系统的包图

数据库包:

包含数据库中所有的数据信息

用户包:

包含要使用系统的用户及其属性

管理员包:

包含要使用系统的管理员及其属性

接口包:

表示系统和数据库的借口

系统包:

表示图书借阅管理系统

(四)类图

类是面对对象系统组成的核心。

类是对一组相同属性、操作、关系和语义的对象的描述。

这些对象包括了对现实世界中的物理实体、商业事务、逻辑事务、应用事务和行为事务等,甚至也包括了纯粹概念性的事务,它们都是类的实例。

图3.4.1系统的类图

(五)配置图

图3.5.1系统配置图

四、系统实现

(一)程序代码

图书借阅管理:

PublicSchCndAsString

PrivateSubCmd_Add_Click()

'初始化FrmBorrowEdit信息

'设置借阅编号为当前编号最大值+1

DimJYNoAsString

'取表中的最大借阅编号

JYNo="00"+Trim(Str(Val(MyBorrow.GetMaxNo())+1))

FrmBorrowEdit.txtBorrowNo="JY"+JYNo

FrmBorrowEdit.txtBorrowDate=Date

FrmBorrowEdit.txtReturnDate=""

FrmBorrowEdit.txtBCount=0

FrmBorrowEdit.txtCardNo=""

FrmBorrowEdit.txtName=""

FrmBorrowEdit.txtCardType=""

FrmBorrowEdit.txtMaxCount=0

FrmBorrowEdit.txtMaxDays=0

FrmBorrowEdit.txtBookNo=""

FrmBorrowEdit.txtBookName=""

FrmBorrowEdit.txtBookType=""

FrmBorrowEdit.txtLCount=0

FrmBorrowEdit.txtTotal=0

'设置添加图书按钮不能用

FrmBorrowEdit.Cmd_Add.Enabled=False

FrmBorrowEdit.Cmd_Del=False

FrmBorrowEdit.Cmd_Ok.Enabled=False

'设置图书信息不能用

FrmBorrowEdit.Frame2.Enabled=False

'启动编辑窗体

FrmBorrowEdit.Show1

'刷新DataGrid表格的内容

GridRefresh

EndSub

'单击“返回”按钮

PrivateSubCmd_Back_Click()

UnloadMe

EndSub

PrivateSubCmd_Push_Click()

'列出离应归还日期小于等于5天的图书

FrmPush.Show1

EndSub

PrivateSubCmd_Return_Click()

'归还调用FrmReturnEdit窗体,需要输入借阅证号,提取该证借阅信息

FrmReturnEdit.Show1

GridRefresh

EndSub

PrivateSubComboFlag_click()

GridRefresh

EndSub

'启动窗体

PrivateSubForm_Load()

'设置借阅状态为"借阅"

ComboFlag.ListIndex=0

'刷新DataGrid表格的内容

GridRefresh

EndSub

PrivateSubGridRefresh()

IfComboFlag.ListIndex>0Then

SchCnd="ANDl.Status='"+Trim(ComboFlag.Text)+"'"

Else

SchCnd=""

EndIf

'设置ADO控件的连接字符串

Adodc1.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="_

+App.Path+"\Books.mdb;PersistSecurityInfo=False"'刷新DataGrid记录

'设置数据源

Adodc1.RecordSource="SELECTl.BookNoAS图书编号,i.BookNameAS图书名称,"_

+"l.BCountAS借阅数量,b.BorrowNoAS借阅编号,b.CardNoAS借阅证编号,c.NameAS姓名,"_

+"BorrowDateAS借阅日期"_

+"FROMBorrowb,BorrowListl,Cardsc,BookInfoi"_

+"WHEREl.BNo=b.BorrowNoANDb.CardNo=c.CardNoANDl.BookNo=i.BookNo"+SchCnd_

+"ORDERBYl.BookNo,b.BorrowDateDESC"

'MsgBox(Adodc1.RecordSource)

Adodc1.Refresh

DataGrid1.Columns(0).Width=1200

DataGrid1.Columns

(1).Width=1600

DataGrid1.Columns

(2).Width=1200

DataGrid1.Columns(3).Width=1400

DataGrid1.Columns(4).Width=1400

DataGrid1.Columns(5).Width=1200

DataGrid1.Columns(6).Width=1400

EndSub

编辑用户信息:

PublicModifyAsBoolean

PublicOriUserAsString

PrivateSubCmd_Cancel_Click()

UnloadMe

EndSub

PrivateSubCmd_OK_Click()

IfTrim(txtUserName)=""Then

MsgBox"请输入用户名"

txtUserName.SetFocus

ExitSub

EndIf

IfLen(txtPass)<6Then

MsgBox"密码长度不能小于6"

txtPass.SetFocus

txtPass.SelStart=0

txtPass.SelLength=Len(txtPass2)

ExitSub

EndIf

IftxtPass<>txtPass2Then

MsgBox"密码和确认密码不相同,请重新确认"

txtPass2.SetFocus

txtPass2.SelStart=0

txtPass2.SelLength=Len(txtPass2)

ExitSub

EndIf

WithMyUser

IfModify=FalseOrOriUser<>Trim(txtUserName)Then

If.In_DB(MakeStr(txtUserName))=TrueThen

MsgBox"用户名已经存在,请重新输入"

txtUserName.SetFocus

txtUserName.SelStart=0

txtUserName.SelLength=Len(txtUserName)

ExitSub

EndIf

EndIf

.UserName=MakeStr(txtUserName)

.Pwd=MakeStr(txtPass)

IfModify=FalseThen

.Insert

MsgBox"添加完成"

Else

.Update(OriUser)

MsgBox"修改完成"

'如果修改自身用户名,则更新CurUser对象

IfOriUser=CurUser.UserNameAndTrim(txtUserName)<>OriUserThen

CurUser.UserName=Trim(txtUserName)

CurUser.GetInfo(CurUser.UserName)

EndIf

EndIf

EndWith

UnloadMe

EndSub

PrivateSubForm_Load()

EndSub

PrivateSubtxtPass_Change()

EndSub

用户管理:

PrivateSubCmd_Add_Click()

WithFrmUserEdit

.txtUserName=""

.txtPass=""

.txtPass2=""

.Modify=False

.Show1

EndWith

AdoUserList.Refresh

DataList1_Click

EndSub

PrivateSubCmd_Back_Click()

UnloadMe

EndSub

PrivateSubCmd_Del_Click()

IfDataList1.Text=""Then

MsgBox"请选择要删除的用户"

ExitSub

EndIf

IfMyUser.UserName="Admin"Then

MsgBox"此用户不能删除"

ExitSub

EndIf

'确认删除

IfMsgBox("是否删除当前用户",vbYesNo,"请确认")=vbYesThen

MyUser.Delete(DataList1.Text)

MsgBox"成功删除"

AdoUserList.Refresh

DataList1_Click

EndIf

EndSub

PrivateSubCmd_Modi_Click()

IfDataList1.Text=""Then

MsgBox"请选择要修改的用户"

ExitSub

EndIf

WithFrmUserEdit

.OriUser=MyUser.Overcame

.txtUserName=MyUser.UserName

.txtPass=MyUser.Pwd

.txtPass2=MyUser.Pwd

IfTrim(MyUser.UserName)="Admin"Then

.txtUserName.Enabled=False

EndIf

.Modify=True

.Show1

EndWith

AdoUserList.Refresh

DataList1_Click

EndSub

PrivateSubDataList1_Click()

IfDataList1.Text=""Then

ExitSub

EndIf

'读取用户数据

MyUser.GetInfo(DataList1.Text)

lblUserName=MyUser.UserName

IfTrim(MyUser.UserName)="Admin"Then

lblUserType="系统管理员"

Else

lblUserType="普通用户"

EndIf

EndSub

PrivateSubForm_Load()

lblUserType=""

lblUserName=""

'设置ADO控件的连接字符串

AdoUserList.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="_

+App.Path+"\Books.mdb;PersistSecurityInfo=False"

'设置数据源

AdoUserList.RecordSource="SELECT*FROMUsers"

AdoUserList.Refresh

EndSub

PrivateSubFrame2_DragDrop(SourceAsControl,XAsSingle,YAsSingle)

EndSub

(二)功能演示(界面)

图4.2.1图书借阅管理系统主界面图

 

图4.2.2用户登录图

图4.2.3借阅管理图

图4.2.4用户管理图

图4.2.5编辑用户信息图

五、测试

序号

测试内容

测试数据

期望结果

测试结果

测试结论

1

合法输入格式

00001

王明00001

20

123456

计算机

王明00001

20

123456

计算机

正确

2

错误证件号名

10060028

提示“请输入正确的证件号!

提示“请输入正确的证件号!

正确

3

空数据

Null

提示“请输入正确的证件号!

提示“请输入正确的证件号!

正确

系统用户管理测试用例

序号

测试内容

测试数据

期望结果

测试结果

测试结论

1

合法输入格式

20天

没超期

没超期

正确

2

超期

40天

超期,交罚金

超期,交罚金

正确

还书模块测试用例

序号

测试内容

测试数据

期望结果

测试结果

测试结论

1

合法输入格式

00001

索书号为:

00001,书名为:

Java程序设计,现有数量为1

,出版社为:

清华大学出版社,作者为:

沈泽刚

索书号为:

00001,书名为:

Java程序设计,现有数量为1

,出版社为:

清华大学出版社,作者为:

沈泽刚

正确

2

错误索书号

0

提示“对不起,没有您要找的书籍!

提示“对不起,没有您要找的书籍!

正确

3

空索书号

Null

提示“对不起,没有您要找的书籍!

提示“对不起,没有您要找的书籍!

正确

借书模块测试用例

6、软件发布

1.电脑操作系统:

Win7旗舰版,开发工具:

Visualbasic6.0ACCESS

2.系统配置说明:

分别给开发工具配置特定环境,特别注意连接数据库的语句是否匹配。

3.登录用户名:

admin密码:

admin

登录用户名:

079041密码:

079041

七、参考文献

[1]窦万峰.软件工程方法与实践[M].机械工业出版社,2009

[2]史济民,顾春华,郑红。

软件工程—原理、方法与应用。

高等教育出版社,2009

 

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

当前位置:首页 > 初中教育 > 学科竞赛

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

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