资源描述
《软件工程》
课程设计汇报书
项目名称: 图书借阅管理系统
指导老师:
学生姓名:
专 业:
班 级:
日 期:
信息科学和工程系
目录
一、项目计划 1
(一)项目开发背景及内容 1
(二) 开发环境 1
(三) 进度安排 1
二、结构化分析设计 2
(一)数据流图 2
(二) 数据字典 3
(三)加工说明(可用结构化语言描述、判定表、判定树) 8
(四)结构图 9
(五) 步骤图 9
三、面向对象分析设计 11
(一)用例图 11
(二) 对象行为模型 12
(三)系统包图 13
(四)类图 14
(五)配置图 15
四、系统实现 15
(一)程序代码 15
(二)功效演示(界面) 25
五、测试 27
六、 软件公布 28
七、参考文件 28
八、总结体会 29
一、项目计划
(一)项目开发背景及内容
伴随计算机技术不停发展,计算机作为知识经济时代产物,已被广泛应用于社会各个行业和领域。现在,中国科技水平高速发展,计算机作为今天使用最广现代化工具已深入到各个领域,而且正在成为未来社会——信息社会关键支柱。在这么大背景下,现代图书馆管理方法,资源建设等方面全部发生了重大改变,这种改变表现在图书馆工作,管理和服务平台发生改变,图书馆不再是传统手工操作,人工管理,而是全方面实施计算机管理。
图书馆正常运行中总是面对大量读者信息,图书信息和二者相互作用产生借书信息,所以要对读者资源,图书资源,借书信息进行管理。本系统开发就是在于提升图书借阅管理工作效率,加强图书馆管理,全方面实施计算机管理。
(二) 开发环境
开发环境:Win 7 旗舰版
开发工具:Visualbasic6.0 ACCESS
作图软件:Microsoft Visio
(三) 进度安排
该软件应用Microsoft Visio 和Visualbasic6.0 ,ACCESS进行编程作图,历时大约两周,最终完成了这个小型图书借阅管理系统。因为时间仓促,该小型图书借阅管理系统并不完善。我用了两天时间查找相关资料,两天时间编写代码和连接数据库。其它三天开始用Microsoft Visio 画数据流图、结构图、步骤图、用例图和包图类图。整个过程系我们三人分工人完成。
二、结构化分析设计
(一)数据流图
图2.2.1 系统数据流图
图2.2.2 1层数据流图
(二) 数据字典
在定义图书借阅管理系统数据字典中,关键对数据流图中数据项、数据流、数据存放和处理过程进行说明。
(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 系统结构图
(五) 步骤图
图2.5.1系统登录步骤图
图2.5.2 系统借书步骤图
图2.5.3 系统还书步骤图
三、面向对象分析设计
(一)用例图
用例图在需求分析阶段相关键作用,它是作为参与者外部用户所能观察到系统功效模型图。整个开发过程全部是围绕需求阶段用例进行。
图3.1.1 系统用例图
(二) 对象行为模型
图3.2.1 系统状态图
图3.1.2 系统活动图
(三)系统包图
图3.3.1 系统包图
数据库包:包含数据库中全部数据信息
用户包:包含要使用系统用户及其属性
管理员包:包含要使用系统管理员及其属性
接口包:表示系统和数据库借口
系统包:表示图书借阅管理系统
(四)类图
类是面对对象系统组成关键。类是对一组相同属性、操作、关系和语义对象描述。这些对象包含了对现实世界中物理实体、商业事务、逻辑事务、应用事务和行为事务等,甚至也包含了纯粹概念性事务,它们全部是类实例。
图3.4.1 系统类图
(五)配置图
图3.5.1 系统配置图
四、系统实现
(一)程序代码
图书借阅管理:
Public SchCnd As String
Private Sub Cmd_Add_Click()
'初始化FrmBorrowEdit信息
'设置借阅编号为目前编号最大值+1
Dim JYNo As String
'取表中最大借阅编号
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.Show 1
'刷新DataGrid表格内容
GridRefresh
End Sub
'单击“返回”按钮
Private Sub Cmd_Back_Click()
Unload Me
End Sub
Private Sub Cmd_Push_Click()
'列出离应归还日期小于等于5天图书
FrmPush.Show 1
End Sub
Private Sub Cmd_Return_Click()
'归还调用FrmReturnEdit窗体,需要输入借阅证号,提取该证借阅信息
FrmReturnEdit.Show 1
GridRefresh
End Sub
Private Sub ComboFlag_click()
GridRefresh
End Sub
'开启窗体
Private Sub Form_Load()
'设置借阅状态为"借阅"
ComboFlag.ListIndex = 0
'刷新DataGrid表格内容
GridRefresh
End Sub
Private Sub GridRefresh()
If ComboFlag.ListIndex > 0 Then
SchCnd = " AND l.Status='" + Trim(ComboFlag.Text) + "'"
Else
SchCnd = ""
End If
'设置ADO控件连接字符串
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
+ App.Path + "\Books.mdb;Persist Security Info=False" '刷新DataGrid统计
'设置数据源
Adodc1.RecordSource = "SELECT l.BookNo AS 图书编号,i.BookName AS 图书名称, " _
+ "l.BCount AS 借阅数量,b.BorrowNo AS 借阅编号,b.CardNo AS 借阅证编号,c.Name AS 姓名," _
+ "BorrowDate AS 借阅日期 " _
+ " FROM Borrow b,BorrowList l,Cards c,BookInfo i " _
+ " WHERE l.BNo=b.BorrowNo AND b.CardNo=c.CardNo AND l.BookNo =i.BookNo" + SchCnd _
+ " ORDER BY l.BookNo,b.BorrowDate DESC"
' 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
End Sub
编辑用户信息:
Public Modify As Boolean
Public OriUser As String
Private Sub Cmd_Cancel_Click()
Unload Me
End Sub
Private Sub Cmd_OK_Click()
If Trim(txtUserName) = "" Then
MsgBox "请输入用户名"
txtUserName.SetFocus
Exit Sub
End If
If Len(txtPass) < 6 Then
MsgBox "密码长度不能小于6"
txtPass.SetFocus
txtPass.SelStart = 0
txtPass.SelLength = Len(txtPass2)
Exit Sub
End If
If txtPass <> txtPass2 Then
MsgBox "密码和确定密码不相同,请重新确定"
txtPass2.SetFocus
txtPass2.SelStart = 0
txtPass2.SelLength = Len(txtPass2)
Exit Sub
End If
With MyUser
If Modify = False Or OriUser <> Trim(txtUserName) Then
If .In_DB(MakeStr(txtUserName)) = True Then
MsgBox "用户名已经存在,请重新输入"
txtUserName.SetFocus
txtUserName.SelStart = 0
txtUserName.SelLength = Len(txtUserName)
Exit Sub
End If
End If
.UserName = MakeStr(txtUserName)
.Pwd = MakeStr(txtPass)
If Modify = False Then
.Insert
MsgBox "添加完成"
Else
.Update (OriUser)
MsgBox "修改完成"
'假如修改本身用户名,则更新CurUser对象
If OriUser = CurUser.UserName And Trim(txtUserName) <> OriUser Then
CurUser.UserName = Trim(txtUserName)
CurUser.GetInfo (CurUser.UserName)
End If
End If
End With
Unload Me
End Sub
Private Sub Form_Load()
End Sub
Private Sub txtPass_Change()
End Sub
用户管理:
Private Sub Cmd_Add_Click()
With FrmUserEdit
.txtUserName = ""
.txtPass = ""
.txtPass2 = ""
.Modify = False
.Show 1
End With
AdoUserList.Refresh
DataList1_Click
End Sub
Private Sub Cmd_Back_Click()
Unload Me
End Sub
Private Sub Cmd_Del_Click()
If DataList1.Text = "" Then
MsgBox "请选择要删除用户"
Exit Sub
End If
If MyUser.UserName = "Admin" Then
MsgBox "此用户不能删除"
Exit Sub
End If
'确定删除
If MsgBox("是否删除目前用户", vbYesNo, "请确定") = vbYes Then
MyUser.Delete (DataList1.Text)
MsgBox "成功删除"
AdoUserList.Refresh
DataList1_Click
End If
End Sub
Private Sub Cmd_Modi_Click()
If DataList1.Text = "" Then
MsgBox "请选择要修改用户"
Exit Sub
End If
With FrmUserEdit
.OriUser = MyUser.Overcame
.txtUserName = MyUser.UserName
.txtPass = MyUser.Pwd
.txtPass2 = MyUser.Pwd
If Trim(MyUser.UserName) = "Admin" Then
.txtUserName.Enabled = False
End If
.Modify = True
.Show 1
End With
AdoUserList.Refresh
DataList1_Click
End Sub
Private Sub DataList1_Click()
If DataList1.Text = "" Then
Exit Sub
End If
'读取用户数据
MyUser.GetInfo (DataList1.Text)
lblUserName = MyUser.UserName
If Trim(MyUser.UserName) = "Admin" Then
lblUserType = "系统管理员"
Else
lblUserType = "一般用户"
End If
End Sub
Private Sub Form_Load()
lblUserType = ""
lblUserName = ""
'设置ADO控件连接字符串
AdoUserList.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
+ App.Path + "\Books.mdb;Persist Security Info=False"
'设置数据源
AdoUserList.RecordSource = "SELECT * FROM Users"
AdoUserList.Refresh
End Sub
Private Sub Frame2_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
(二)功效演示(界面)
图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
提醒“对不起,没有您要找书籍!”
提醒“对不起,没有您要找书籍!”
正确
借书模块测试用例
六、 软件公布
1. 电脑操作系统:Win 7 旗舰版,开发工具:Visualbasic6.0 ACCESS
2.系统配置说明:分别给开发工具配置特定环境,尤其注意连接数据库语 句是否匹配。
3.登录用户名:admin 密码:admin
登录用户名:079041 密码:079041
七、参考文件
[1] 窦万峰.软件工程方法和实践[M].机械工业出版社,
[2]史济民,顾春华,郑红。软件工程—原理、方法和应用。高等教育出版社,
展开阅读全文