软件工程课程设计图书借阅管理系统.docx
《软件工程课程设计图书借阅管理系统.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计图书借阅管理系统.docx(27页珍藏版)》请在冰豆网上搜索。
软件工程课程设计图书借阅管理系统
《软件工程》
课程设计报告书
项目名称:
图书借阅管理系统
指导老师:
学生姓名:
专业:
班级:
日期:
信息科学与工程系
一、项目计划
(一)项目开发背景及内容
随着计算机技术的不断发展,计算机作为知识经济时代的产物,已被广泛应用于社会各个行业和领域。
目前,我国的科技水平高速发展,计算机作为今天使用最广的现代化工具已深入到各个领域,并且正在成为未来社会——信息社会的重要支柱。
在这样的大背景下,现代图书馆的管理方式,资源建设等方面都发生了重大变化,这种变化表现在图书馆工作,管理和服务平台发生的变化,图书馆不再是传统的手工操作,人工管理,而是全面实行计算机管理。
图书馆的正常运营中总是面对大量的读者信息,图书信息以及两者相互作用产生的借书信息,因此要对读者资源,图书资源,借书信息进行管理。
本系统的开发就是在于提高图书借阅管理的工作效率,加强图书馆的管理,全面实行计算机管理。
(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