资源描述
《软件工程》
课程设计报告书
项目名称: 图书借阅管理系统
指引教师:
学生姓名:
专 业:
班 级:
日 期:
信息科学与工程系
目录
一、项目筹划 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]史济民,顾春华,郑红。软件工程—原理、办法与应用。高等教诲出版社,
展开阅读全文