1、软件工程课程设计报告书项目名称: 图书借阅管理系统 指引教师: 学生姓名: 专 业: 班 级: 日 期: 信息科学与工程系目录一、项目筹划1(一)项目开发背景及内容1(二) 开发环境1(三) 进度安排1二、构造化分析设计2(一)数据流图2(二) 数据字典3(三)加工阐明(可用构造化语言描述、鉴定表、鉴定树)8(四)构造图9(五) 流程图9三、面向对象分析设计11(一)用例图11(二) 对象行为模型12(三)系统包图13(四)类图14(五)配备图15四、系统实现15(一)程序代码15(二)功能演示(界面)25五、测试27六、软件发布28七、参照文献28八、总结体会29一、项目筹划(一)项目开发背
2、景及内容随着计算机技术不断发展,计算机作为知识经济时代产物,已被广泛应用于社会各个行业和领域。当前,国内科技水平高速发展,计算机作为今天使用最广当代化工具已进一步到各个领域,并且正在成为将来社会信息社会重要支柱。在这样大背景下,当代图书馆管理方式,资源建设等方面都发生了重大变化,这种变化体当前图书馆工作,管理和服务平台发生变化,图书馆不再是老式手工操作,人工管理,而是全面实行计算机管理。 图书馆正常运营中总是面对大量读者信息,图书信息以及两者互相作用产生借书信息,因而要对读者资源,图书资源,借书信息进行管理。本系统开发就是在于提高图书借阅管理工作效率,加强图书馆管理,全面实行计算机管理。(二)
3、 开发环境开发环境:Win 7 旗舰版开发工具:Visualbasic6.0 ACCESS 作图软件:Microsoft Visio (三) 进度安排 该软件应用Microsoft Visio 和Visualbasic6.0 ,ACCESS进行编程作图,历时大概两周,最后完毕了这个小型图书借阅管理系统。由于时间仓促,该小型图书借阅管理系统并不完善。我用了两天时间查找有关资料,两天时间编写代码和连接数据库。别的三天开始用Microsoft Visio 画数据流图、构造图、流程图、用例图和包图类图。整个过程系咱们三人分工人完毕。二、构造化分析设计(一)数据流图图2.2.1 系统数据流图图2.2.2
4、 1层数据流图(二) 数据字典在定义图书借阅管理系统数据字典中,重要对数据流图中数据项、数据流、数据存储和解决过程进行阐明。(1)数据项描述 1)数据项名称:借书证号 含义阐明:惟一标记一种借书证 类型:字符型 长度:50 逻辑关系:不容许为空 2)数据项名称:顾客名 含义阐明:读者名称 类型:字符型 长度:20 逻辑关系:不容许为空 3)数据项名称:密码 含义阐明:对顾客名和操作员管理员进行加密 类型;字符型 长度:10 逻辑关系:容许为空 4)数据项名称:性别 类型:字符型 长度:10 逻辑关系:容许为空 5)数据项名称:所在系别 类型;字符型 长度:10 逻辑关系:容许为空 6)数据项名
5、称:所在班级 类型:字符型 长度:10 逻辑关系:容许为空 7)数据项名称:操作员名称 类型:字符型 长度:30 逻辑关系:不容许为空 8)数据项名称:操作员简称 含义阐明:惟一标记一种操作员 类型:字符型 长度:10 逻辑关系:不容许为空 9)数据项名称:操作员级别 含义阐明:对操作员和管理员进行区别 类型:字符型 长度:10 逻辑关系:不容许为空 10)数据项名称:图书编号 含义阐明:惟一标记一种图书 类型:字符型 长度:10 逻辑关系:不容许为空 11)数据项名称:图书名称 类型:字符型 长度:50 逻辑关系:不容许为空 12)数据项名称:作者 类型:字符型 长度:50 逻辑关系:不容许
6、为空 13)数据项名称:出版社 类型:字符型 长度:50 逻辑关系:不容许为空 14)数据项名称:出版时间 类型:日期时间型 长度:8 逻辑关系:不容许为空 15)数据项名称:价格 类型:整型 长度:4 逻辑关系:不容许为空 16)数据项名称:备注 类型:字符型 长度:200 逻辑关系:容许为空 17)数据项名称:借书日期 类型:日期时间 长度:8 逻辑关系:不容许为空 18)数据项名称:还书日期 类型:日期时间 长度:8 逻辑关系:不容许为(2)数据构造描述 1)数据流名称:顾客状况 含义阐明:定义了一种读者关于信息构成构造:顾客状况=顾客名+借书证号+密码+性别+所在系别+所在班级 2)数
7、据流名称:操作员状况 含义阐明:定义了一种操作员关于信息 构成构造:操作员状况=操作员名称+操作员简称+操作员级别+操作员密码3) 数据流名称:图书状况 含义阐明:定义了一种图书关于信息 构成构造:图书状况=图书编号+图书名称+作者+出版社+出版时间+价格+备注(3) 数据流描述 1)数据流名称:借书 含义:读者借书时记录 来源:读者 去向:审核借书 数据流量:50份/天 构成:借书单=借书证号+图书编号+借书日期 2)数据流名称:还书 含义:读者还书时要填写记录 来源:读者 去向:审核还书 数据流量:25份/天 构成:还书单=图书编号+还书日期(4) 数据存储阐明1) 数据存储名称:图书数据
8、表 含义阐明:存储图书关于信息 构成构造:图书编号+图书名称+作者+出版社+出版时间+价格+备注 阐明;书号具备惟一性和非空性 2) 数据存储名称:顾客信息表 含义阐明:存储读者注册信息 构成构造:顾客名+借书证号+密码+性别+所在系别+所在班级 阐明:证号具备惟一性和非空性,性别只能是男和女 3) 数据存储名称:借书记录 含义阐明:存储读者借书,还书信息 构成构造:借书证号+图书编号+借书日期+还书日期 阐明:规定可以及时查询(5) 解决过程阐明 1)解决过程名称:图书管理 输入:图书状况, 输出:图书记录 解决阐明:对馆内所有图书按图书编号进行管理,将图书数据数据化,存储图书数据表中。 2
9、)解决过程名称:读者管理 输入:读者状况, 输出:读者记录 解决阐明:建立读者信息表,对读者进行统一编号,实现读者登记表增删改维护功能。 3)解决过程名称:查看数目 输入:借书祈求,读者 输出:借书记录,图书信息 解决阐明:实现依照图书编号等查询图书。 4)解决过程名称:借书解决 输入:图书状况,读者,借书记录 输出:借书记录 解决阐明:确认读者符合借书条件,办理借书手续。 5)解决过程名称:还书解决 输入:图书状况, 输出:借书记录 解决阐明:对照相应图书编号可办理还书手续。 6)解决过程名称:安全管理 输入:操作员状况,顾客状况 输出:操作员级别,操作员记录,顾客记录 解决阐明:通过顾客名
10、和口令,确认顾客身份,保证系统安全型。(三)加工阐明(可用构造化语言描述、鉴定表、鉴定树)图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 系统包图数据库包:包括数据库中所有数据信息顾客包:包括要使用系统顾客及其属
11、性管理员包:包括要使用系统管理员及其属性接口包:表达系统和数据库借口系统包:表达图书借阅管理系统(四)类图 类是面对对象系统构成核心。类是对一组相似属性、操作、关系和语义对象描述。这些对象涉及了对现实世界中物理实体、商业事务、逻辑事务、应用事务和行为事务等,甚至也涉及了纯粹概念性事务,它们都是类实例。图3.4.1 系统类图(五)配备图图3.5.1 系统配备图四、系统实现(一)程序代码图书借阅管理:Public SchCnd As StringPrivate Sub Cmd_Add_Click() 初始化FrmBorrowEdit信息 设立借阅编号为当前编号最大值+1 Dim JYNo As S
12、tring 取表中最大借阅编号 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
13、 = 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 设立图书信息不能用 Fr
14、mBorrowEdit.Frame2.Enabled = False 启动编辑窗体 FrmBorrowEdit.Show 1 刷新DataGrid表格内容 GridRefreshEnd Sub单击“返回”按钮Private Sub Cmd_Back_Click() Unload MeEnd SubPrivate Sub Cmd_Push_Click()列出离应归还日期不大于等于5天图书 FrmPush.Show 1End SubPrivate Sub Cmd_Return_Click() 归还调用FrmReturnEdit窗体,需要输入借阅证号,提取该证借阅信息 FrmReturnEdit.S
15、how 1 GridRefreshEnd SubPrivate Sub ComboFlag_click() GridRefreshEnd Sub启动窗体Private Sub Form_Load() 设立借阅状态为借阅 ComboFlag.ListIndex = 0 刷新DataGrid表格内容 GridRefreshEnd SubPrivate Sub GridRefresh() If ComboFlag.ListIndex 0 Then SchCnd = AND l.Status= + Trim(ComboFlag.Text) + Else SchCnd = End If 设立ADO控件连
16、接字符串 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 姓名, _ + BorrowDat
17、e 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 DataGri
18、d1.Columns(2).Width = 1200 DataGrid1.Columns(3).Width = 1400 DataGrid1.Columns(4).Width = 1400 DataGrid1.Columns(5).Width = 1200 DataGrid1.Columns(6).Width = 1400End Sub编辑顾客信息:Public Modify As BooleanPublic OriUser As StringPrivate Sub Cmd_Cancel_Click() Unload MeEnd SubPrivate Sub Cmd_OK_Click() If
19、 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 txtPa
20、ss2.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 = Make
21、Str(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 Wit
22、h Unload MeEnd SubPrivate Sub Form_Load()End SubPrivate Sub txtPass_Change()End Sub顾客管理:Private Sub Cmd_Add_Click() With FrmUserEdit .txtUserName = .txtPass = .txtPass2 = .Modify = False .Show 1 End With AdoUserList.Refresh DataList1_ClickEnd SubPrivate Sub Cmd_Back_Click() Unload MeEnd SubPrivate S
23、ub 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 IfEnd SubPrivate Sub Cmd_Mod
24、i_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 AdoUser
25、List.Refresh DataList1_ClickEnd SubPrivate 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 IfEnd SubPrivate Sub Form_Load() lblUse
26、rType = 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.RefreshEnd SubPrivate Sub Frame2_DragDrop(Source As Control,X As Singl
27、e,Y As Single)End Sub (二)功能演示(界面)图4.2.1图书借阅管理系统主界面图图4.2.2 顾客登录图图4.2.3借阅管理图图4.2.4顾客管理图图4.2.5编辑顾客信息图五、测试序号测试内容测试数据盼望成果测试成果测试结论1合法输入格式00001王明 00001 女20123456计算机王明 00001 女20123456计算机对的2错误证件号名10060028提示“请输入对的证件号!”提示“请输入对的证件号!”对的3空数据Null提示“请输入对的证件号!”提示“请输入对的证件号!”对的系统顾客管理测试用例序号测试内容测试数据盼望成果测试成果测试结论1合法输入格式20
28、天没超期没超期对的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史济民,顾春华,郑红。软件工程原理、办法与应用。高等教诲出版社,