软件工程课程设计图书借阅管理系统Word文档格式.docx
《软件工程课程设计图书借阅管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计图书借阅管理系统Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
长度:
50
逻辑关系:
不允许为空
2)数据项名称:
用户名
读者的名称
20
3)数据项名称:
密码
对用户名和操作员管理员进行加密
类型;
10
允许为空
4)数据项名称:
性别
5)数据项名称:
所在系别
6)数据项名称:
所在班级
7)数据项名称:
操作员名称
30
8)数据项名称:
操作员简称
惟一标识一个操作员
9)数据项名称:
操作员级别
对操作员和管理员进行区分
10)数据项名称:
图书编号
惟一标识一个图书
11)数据项名称:
图书名称
12)数据项名称:
作者
不允许为空
13)数据项名称:
出版社
14)数据项名称:
出版时间
日期时间型
8
15)数据项名称:
价格
整型
4
16)数据项名称:
备注
200
17)数据项名称:
借书日期
日期时间
18)数据项名称:
还书日期
不允许为
(2)数据结构描述
1)数据流名称:
用户情况
定义了一个读者的有关信息
组成结构:
用户情况=用户名+借书证号+密码+性别+所在系别+所在班级
2)数据流名称:
操作员情况
定义了一个操作员的有关信息
组成结构:
操作员情况=操作员名称+操作员简称+操作员级别+操作员密码
3)数据流名称:
图书情况
定义了一个图书的有关信息
组成结构:
图书情况=图书编号+图书名称+作者+出版社+出版时间+价格+备注
(3)数据流描述
借书
含义:
读者借书时的记录
来源:
读者
去向:
审核借书
数据流量:
>
50份/天
组成:
借书单=借书证号+图书编号+借书日期
还书
读者还书时要填写的记录
审核还书
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
PrivateSubCmd_Push_Click()
列出离应归还日期小于等于5天的图书
FrmPush.Show1
PrivateSubCmd_Return_Click()
归还调用FrmReturnEdit窗体,需要输入借阅证号,提取该证借阅信息
FrmReturnEdit.Show1
PrivateSubComboFlag_click()
启动窗体
PrivateSubForm_Load()
设置借阅状态为"
借阅"
ComboFlag.ListIndex=0
PrivateSubGridRefresh()
IfComboFlag.ListIndex>
0Then
SchCnd="
ANDl.Status='
+Trim(ComboFlag.Text)+"
Else
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
编辑用户信息:
PublicModifyAsBoolean
PublicOriUserAsString
PrivateSubCmd_Cancel_Click()
PrivateSubCmd_OK_Click()
IfTrim(txtUserName)="
Then
MsgBox"
请输入用户名"
txtUserName.SetFocus
ExitSub
IfLen(txtPass)<
6Then
密码长度不能小于6"
txtPass.SetFocus
txtPass.SelStart=0
txtPass.SelLength=Len(txtPass2)
IftxtPass<
txtPass2Then
密码和确认密码不相同,请重新确认"
txtPass2.SetFocus
txtPass2.SelStart=0
txtPass2.SelLength=Len(txtPass2)
WithMyUser
IfModify=FalseOrOriUser<
Trim(txtUserName)Then
If.In_DB(MakeStr(txtUserName))=TrueThen
用户名已经存在,请重新输入"
txtUserName.SelStart=0
txtUserName.SelLength=Len(txtUserName)
.UserName=MakeStr(txtUserName)
.Pwd=MakeStr(txtPass)
IfModify=FalseThen
.Insert
添加完成"
.Update(OriUser)
修改完成"
如果修改自身用户名,则更新CurUser对象
IfOriUser=CurUser.UserNameAndTrim(txtUserName)<
OriUserThen
CurUser.UserName=Trim(txtUserName)
CurUser.GetInfo(CurUser.UserName)
EndWith
PrivateSubtxtPass_Change()
用户管理:
WithFrmUserEdit
.txtUserName="
.txtPass="
.txtPass2="
.Modify=False
.Show1
AdoUserList.Refresh
DataList1_Click
PrivateSubCmd_Del_Click()
IfDataList1.Text="
请选择要删除的用户"
IfMyUser.UserName="
Admin"
此用户不能删除"
确认删除
IfMsgBox("
是否删除当前用户"
vbYesNo,"
请确认"
)=vbYesThen
MyUser.Delete(DataList1.Text)
成功删除"
PrivateSubCmd_Modi_Click()
请选择要修改的用户"
.OriUser=MyUser.Overcame
.txtUserName=MyUser.UserName
.txtPass=MyUser.Pwd
.txtPass2=MyUser.Pwd
IfTrim(MyUser.UserName)="
.txtUserName.Enabled=False
.Modify=True
PrivateSubDataList1_Click()
读取用户数据
MyUser.GetInfo(DataList1.Text)
lblUserName=MyUser.UserName
lblUserType="
系统管理员"
普通用户"
lblUserName="
AdoUserList.ConnectionString="
AdoUserList.RecordSource="
SELECT*FROMUsers"
PrivateSubFrame2_DragDrop(SourceAsControl,XAsSingle,YAsSingle)
(二)功能演示(界面)
图4.2.1图书借阅管理系统主界面图
图4.2.2用户登录图
图4.2.3借阅管理图
图4.2.4用户管理图
图4.2.5编辑用户信息图
五、测试
序号
测试内容
测试数据
期望结果
测试结果
测试结论
1
合法输入格式
00001
王明00001
女
123456
计算机
正确
2
错误证件号名
10060028
提示“请输入正确的证件号!
”
3
空数据
Null
系统用户管理测试用例
20天
没超期
超期
40天
超期,交罚金
还书模块测试用例
索书号为:
00001,书名为:
Java程序设计,现有数量为1
,出版社为:
清华大学出版社,作者为:
沈泽刚
错误索书号
提示“对不起,没有您要找的书籍!
空索书号
借书模块测试用例
6、软件发布
1.电脑操作系统:
Win7旗舰版,开发工具:
Visualbasic6.0ACCESS
2.系统配置说明:
分别给开发工具配置特定环境,特别注意连接数据库的语句是否匹配。
3.登录用户名:
admin密码:
admin
登录用户名:
079041密码:
079041
七、参考文献
[1]窦万峰.软件工程方法与实践[M].机械工业出版社,2009
[2]史济民,顾春华,郑红。
软件工程—原理、方法与应用。
高等教育出版社,2009