资源描述
河北工业职业技术学院
专项任务报告书
任务题目
图书管理系统的设计与实现
系 别
计算机技术系
专业年级
11级软件1班
学生姓名
吴维康
学 号
35091001015
指导教师
张三 李四
职称
高级工程师 讲师
完成地点
河北善理软件科技有限公司
日 期
2013-05-20
河北工业职业技术学院
专项任务书
专项任务名称 图书管理系统的设计与实现
姓名 吴维康 专业 软件技术 班级 1班 学号 35091001015
一、 任务情况描述:
现今社会上的个体书店,其日常管理工作都是人工操作,历史数据很难保存和利用,对于书店的经营非常不利。针对这种状况,计划开发一个面向个体书店的图书管理系统,实现对人员、物流的全面管理,以帮助这些书店早日实现书店管理信息化。
二、 任务完成计划:
第一阶段:3.15-3.20需求分心,确定论文题目。
第二阶段:3.21-4.1设计分析,流程图和确定模块功能。
第三阶段:4.2-4.15开发阶段,创建表,数据库。
第四阶段:4.16-5.10 程序编码测试,程序维护。
第五阶段:5.11-5.25 论文撰写及打印准备答辩。
三、 计划答辩时间:2013.5.25日论文答辩
实习指导教师(签字): 系学生顶岗实习领导小组组长(签字):
年 月 日 年 月 日
目 录
一、序言 1
二、需求分析说明书 2
1.系统介绍 2
2.系统面向的用户群体 2
3.系统的功能性需求 2
4.系统的非功能性需求 3
三、可行性分析报告 4
1.技术可行性 4
2.时间、设备可能性 4
3.文档要求 4
四、软件界面设计标准与规范 5
1.编写目的 5
2.界面设计思想 5
3.界面设计原则 5
4.界面设计样式 5
5.常见提示信息样式 5
6.常见错误信息样式 6
7.其他界面约定 6
五、软件编码设计标准与规范 7
1.对象命名约定 7
2.常量和变量命名约定 7
3.结构化编码约定 8
4.数据源的约定 10
5.数据库访问约定 11
6.其他约定 11
六、数据库分析与设计 12
1.数据库环境说明 12
2.数据库命名标准与规范 12
3.数据库逻辑设计 12
4.数据库物理设计 13
七、软件体系结构设计说明书 14
1.系统概述 14
2.设计约束 14
3系统概要设计说明书 14
4.系统详细设计说明书 17
八、用户界面设计报告 34
1.界面设计规范 34
2.主界面设计 34
4.子界面设计 34
5.界面资源设计 35
九、软件测试分析报告 36
1.测试范围与主要内容 36
2.测试方法 36
3.测试报告 36
十、软件使用说明书 38
1.系统安装 38
2.使用说明 38
参考资料 45
《山庄酒店办公无线网络设计与实现》
序言
对于很多中小企业的各种办公室来说,如何快速安全的组建网络,接入Internet,跨入信息化之门,是其迫切需要解决的问题。尽管现在很多企业都选择了有线的方式来组建局域网,但同时也会受到种种限制,例如,布线会影响办公场所的整体设计,而且也不雅观等。通过无线局域网不仅可以解决线路布局,在实现有线网络所有功能的同时,还可以实现无线共享上网,凭借着种种优点和优势,越来越多的中小企业开始把注意力转移到了无线局域网上,而究竟该怎么样来架设这种中小企业办公网络呢?下面就来。如何采用无线局域网技术来组建企业办公无线局域网详细的解析。
二、需求分析说明书
1.系统介绍
操作系统选择目前常用的Windows XP。系统性质为管理信息系统或财务软件。
本系统采用会员制管理,系统功能应包含进书管理、售书管理、退货管理、库存管理、统计分析、相关人员管理等。系统界面力求简洁、易用,在标准化的基础上考虑界面的美观和新颖。
2.系统面向的用户群体
系统主要面向中个体书店,用户群体为这些书店的经理、采购员/仓库管理员、图书销售人员、书店的会员/游客等。
3.系统的功能性需求
序号
功能名称
功能说明
1
供应商管理
包含供应商信息的登记、修改等
2
图书种类管理
包含图书大类、小类的创建
3
图书资料管理
包含图书资料的添加、修改等
4
新书入库管理
登记新书的数量、单价、金额等
5
库存统计
分门别类统计图书现有库存量、入库时间等
6
进货记录查询
查询历次进货记录
7
退货登记
登记供应商、图书种类、退货的数量、原因等
8
退货统计
按供应商统计退货记录
9
退货记录查询
查询历次退货记录
10
图书销售管理
登记销售的种类、数量、单价、折扣、顾客/会员等
11
会员管理
包含会员的创建、修改、删除等
12
优惠政策管理
包含优惠政策的制定与执行
13
本日售书统计
统计本日销售图书的数量、金额等
14
售书记录查询
查询历次售书记录
15
员工管理
包含员工帐号的创建、修改、删除等
16
统计分析
按年月日时段统计书店经营状况
17
图书检索
提供按图书的编号、书名、责任者、出版社等途径的检索
18
系统帐号管理
提供上级对下级的资料、密码管理,
19
资料、密码管理
提供修改个人资料、密码的工具
4.系统的非功能性需求
(1)用户界面需求
简洁、易用、易懂,美观、大方、标准,具备一定的兼容性。
(2)软硬件环境需求
软件环境:兼容当前主流操作系统 Windows 2003/XP 等。
硬件环境:打印机、扫描仪等。
(3)软件质量需求
易用、健壮、兼容性好、运行稳定、有一定安全保障。
三、可行性分析报告
1.技术可行性
系统的性质为管理信息系统或财务软件,因而数据库的设计与操纵是系统设计的核心。在校期间成功完成了“学校运动会管理系统”的开发与维护任务,具备一定的系统分析与设计能力,熟悉数据库的设计与操纵;指导老师姜彦芬多年从事数据库的教学与研究工作,因而该系统的实现在技术上是可行的。
2.时间、设备可能性
系统设计与开发工作预计耗时一个月,所有参与开发的人员均能够保证按时完成任务。实验设备如:计算机、打印机、扫描仪等不足,上机任务可以完成,打印机、扫描仪的实验根据具体条件暂时延缓执行。
3.文档要求
依据国家《计算机软件产品开发文件编制指南》和《现代软件工程》的理论与原则编制标准的软件技术文档。
四、软件界面设计标准与规范
1.编写目的
制定界面设计标准规范的目的是为了规范和统一软件界面设计制定软件界面设计标准与规范。
2.界面设计思想
首先考虑标准化,在标准化的基础上进行界面的美工设计。
3.界面设计原则
简单易用、简洁明了、兼容性好、标准、规范。
4.界面设计样式
工具条
采用标准Windows界面,自上至下依次为:标题栏、菜单栏、工具条、工作区、状态栏等。如下图示:
菜单栏
状态栏
工作区
图1.系统界面
5.常见提示信息样式
提示信息按以下标准进行:采用标准Windows对话框样式,添加信息图标,后接提示信息文本和相应按钮。
如下图示:
信息图标
提示文本
按钮
图2.常见提示信息样式
6.常见错误信息样式
错误信息依据提示信息样式设计,将信息图标更改为警告图标。
如下图示:
警告图标
提示文本
图3.常见错误信息样式
7.其他界面约定
除主界面外,所有子界面均采用模式窗体,即该窗体不消失,不可以在本程序内将焦点移出子窗体。
五、软件编码设计标准与规范
1.对象命名约定
对象名
对象类型
命名约定(前缀码)
Form
窗体
Frm
Command
按钮
Cmd
Label
标签
Lab
TextBox
文本框
Txt
ComboBox
组合框
ComB
ListBox
列表框
LstB
Adodb
数据库访问对象
Adodb
DataGrid
数据表格显示组件
DataGrid
Frame
框架
Fam
Option
单选框
Opt
CheckBox
复选框
Chk
PictureBox
图象显示组件
PtB
CommonDialog
通用对话框组件
ComDlg
Timer
时间组件
Tim
ToolBar
工具栏
TlBar
Menu
菜单
Mnu
SSTab
页框
SSTab
ImageList
界面资源组件
ImgLst
2.常量和变量命名约定
变量名
数据类型
变量类型
含义
UserShenFen
String
全局变量
用户身份标志
LogOK
Boolean
全局变量
登陆状态
UserName
String
全局变量
用户名
GongYingShangID
String
全局变量
供应商编号
GongYingShang
String
全局变量
供应商名称
TuShuBianHao
String
全局变量
图书编号
DingJia
Single
全局变量
图书定价
ShuMing
String
全局变量
书名
HuiYuanKaHao
String
全局变量
会员卡号
HYXingMing
String
全局变量
会员姓名
HYDengJi
String
全局变量
会员等级
3.结构化编码约定
编码应清晰、可读性好,运用缩进、空行,结合大小写区别等方法保持程序结构良好。凡与数据库操作相关的模块一律加上容错代码,涉及多表操作的模块应运用“事务”处理,以保持数据完整性。
编码风格参照下例进行:
Public Sub CheckUser(userID As String, passwd As String)
Dim userDB As Database
Dim userRD As Recordset
Dim dbName As String
Dim STRSQL As String
Screen.MousePointer = 11
On Error GoTo errEnd
dbName = App.Path
If Right(dbName, 1) <> "、" Then dbName = dbName + "、"
dbName = dbName + "DataBase、WFSSDataBase.mdb"
STRSQL = "select [用户身份] from [Admin] where [用户ID]=""" & userID & """ and [用户密码]=""" & passwd & """"
'打开数据库
Set userDB = DBEngine.Workspaces(0).OpenDatabase(dbName, False, True)
'检索用户,验证密码
Set userRD = userDB.OpenRecordset(STRSQL, dbOpenSnapshot)
If userRD.RecordCount > 0 Then
'设置用户身份
UserShenFen = userRD![用户身份]
'关闭数据库
userRD.Close
Set userRD = Nothing
userDB.Close
Set userDB = Nothing
'进入用户环境
Load FrmMain
FrmMain.Show
Unload FrmLogIn
logOK = True
userName = userID
Screen.MousePointer = vbDefault
Else
'关闭数据库
userRD.Close
Set userRD = Nothing
userDB.Close
Set userDB = Nothing
logOK = False
Screen.MousePointer = vbDefault
MsgBox "用户名或密码错误!请重新输入!", vbOKOnly + vbExclamation, "登陆失败"
End If
Exit Sub
errEnd:
Screen.MousePointer = vbDefault
MsgBox Err.Description, vbOKOnly + vbExclamation, "登陆错误"
logOK = False
Err.Clear
'关闭数据库
userRD.Close
Set userRD = Nothing
userDB.Close
Set userDB = Nothing
Exit Sub
End Sub
4.数据源的约定
需用数据源的组件如:DataGrid一律采用Adodb控件。有特殊需求的情况如:身份验证应引用DAO(数据访问对象)。
5.数据库访问约定
数据库引擎采用Microsoft.Jet.OLEDB.4.0,由Adodb组件进行数据库的访问,并为其他组件提供数据源。特殊情况、身份验证等由 DAO访问数据库。
6.其他约定
无需数据显示的情况由DAO提供数据库支持,有数据显示的情况由ADODB组件提供数据库支持。
六、数据库分析与设计
1.数据库环境说明
考虑该系统的定位与现有技术力量,决定采用Microsoft Access 2000/2002作为系统的后台数据库开发环境。
2.数据库命名标准与规范
说明:下表所列为数据库及各表、视图的命名方法,具体信息请参阅7.4.1表、视图汇总。
名称
类型
命名办法约定
WFSSDataBase
系统数据库
字母
表
基本表
汉字或字母
查询
查询
汉字
字段
字段
汉字或字母
3.数据库逻辑设计
会员政策
会员级别
…
会员表
会员级别
会员卡号
…
Admin
用户ID
…
员工表
员工帐号
…
图书分类
图书分类号
…
Book
图书分类号
图书编号
…
售书记录
会员卡号
图书编号
…
图书进价表
图书编号
…
供应商
供应商编号
…
进书记录
图书编号
供应商编号
…
退货记录
图书编号
供应商编号
…
图4.数据库逻辑结构图
4.数据库物理设计
(1)表、视图汇总
视图/表名
说明
Admin
集中保存系统用户的帐号、密码
Book
集中存放书目信息
员工表
存放员工资料
供应商
供应商资料
会员表
会员资料
会员政策
会员标准及优惠政策
进书记录
进书历史记录
客户反馈
客户反馈信息
售书记录
售书历史记录
书店简介
书店简介
图书分类
图书类别
图书进价表
图书进价列表
退货记录
退货历史记录
读者查询
提供给所有用户的书目查询界面
基本统计
基本的统计分析
进书查询
进书记录查询,含进书统计
售书查询
图书销售记录查询
售书统计
图书销售记录统计
退货查询
退货记录查询
退货统计
退货统计
员工信息
员工信息查询
库存统计
现有库存统计
反馈信息
客户反馈信息查询
七、软件体系结构设计说明书
1.系统概述
在单机环境下进行系统安全的考虑,有必要进行用户权限的划分与控制,因而系统在总体上应包含安全子系统之下的各类用户工作环境。用户权限的合理划分与有效控制是本系统体系结构设计的核心。
2.设计约束
系统将实现人员、物流的全面管理,而物流管理是系统的核心部件,怎样实现二者的共存,互不干扰,是本系统设计的难点。本系统必须实现对用户权限的有效合理控制。
3系统概要设计说明书
(1)图例说明
过程、模块
1.处理过程:
数据表
2.数据存储:
决策
3.条件判断:
4.数据流:(单向)
5.数据流:(双向)
实体
6.外部实体:
7.带有变动历史的数据存储:
数据表
(2)系统总体结构图
登陆验证
基本统计
身份鉴别
安全子系统
权限控制
进货统计
库存统计
统计分析
退货统计
员工管理
会员政策
经理子系统
销售统计
书店概况
图书管理系统
供应商管理
仓库管理员子系统
进货子系统
库存管理
退货子系统
入库登记
书目管理
创建帐号
销售子系统
修改资料
会员管理
售书员子系统
删除帐号
销售统计
修改密码
个人资料
会员子系统
购书记录
书目检索
游客子系统
会员注册
信息反馈
图10.系统总体结构图
(3)销售子系统流程图
售书员
选择图书
选择会员
Book
图书销售
会员表
优惠政策
会员表
售书记录
图11. 销售子系统流程图
(4)退货子系统流程图
选择供应商
仓管员
供应商
选择品种
退货记录
退货登记
Book
进货记录
图13.退货子系统流程图
4.系统详细设计说明书
(1)系统模块汇总
模块名
原型或声明
模块说明
CheckUser
Public Sub CheckUser(userID As String, passwd As String)
用户帐号、密码验证和身份鉴别
LogOff
Public Sub LogOff()
注销模块
Sys_exit
Public Sub Sys_exit()
系统退出摸块
Form_Load
Private Sub Form_Load()
初始化模块,连接数据库
GetKuCun
Public Function GetKuCun(bianHao As String) As String
获取、检验图书现有库存量
CmdSellBook_Click
Private Sub CmdSellBook_Click()
图书销售模块
checkFenLei
Public Function checkFenLei(UID As String) As Boolean
检测图书分类是否已经存在
CmdNewFenLei_Click
Private Sub CmdNewFenLei_Click()
创建类别
checkUserID
Public Function checkUserID(UID As String) As Boolean
检测用户帐号是否存在
CmdChgPass_Click
Private Sub CmdChgPass_Click()
修改密码
CmdRegMe_Click
Private Sub CmdRegMe_Click()
创建员工、会员帐号
GetJinJia
Public Function GetJinJia(bianHao As String) As String
提取图书进价
CmdTH_Click
Private Sub
CmdTH_Click()
退货模块
CmdSaveContinue_Click
Private Sub CmdSaveContinue_Click()
供应商信息登记
(2)系统核心模块详解
全局变量定义:
'用户身份标志
Public UserShenFen As String
'登陆状态
Public logOK As Boolean
'用户名
Public userName As String
'供应商编号
Public GongYingShangID As String
'供应商
Public GongYingShang As String
'图书编号
Public TuShuBianHao As String
'定价
Public DingJia As String
'书名
Public ShuMing As String
'会员卡号
Public HuiYuanKaHao As String
'会员姓名
Public HYXingMing As String
'会员等级
Public HYDengJi As String
模块名:CheckUser (用户帐号、密码验证和身份鉴别
原型:Public Sub CheckUser(userID As String, passwd As String)
代码:
Public Sub CheckUser(userID As String, passwd As String)
Dim userDB As Database
Dim userRD As Recordset
Dim dbName As String
Dim STRSQL As String
Screen.MousePointer = 11
On Error GoTo errEnd
dbName = App.Path
If Right(dbName, 1) <> "\" Then dbName = dbName + "\"
dbName = dbName + "DataBase\WFSSDataBase.mdb"
STRSQL = "select [用户身份] from [Admin] where [用户ID]=""" & userID & """ and [用户密码]=""" & passwd & """"
'打开数据库
Set userDB = DBEngine.Workspaces(0).OpenDatabase(dbName, False, True)
'检索用户,验证密码
Set userRD = userDB.OpenRecordset(STRSQL, dbOpenSnapshot)
If userRD.RecordCount > 0 Then
'设置用户身份
UserShenFen = userRD![用户身份]
'关闭数据库
userRD.Close
Set userRD = Nothing
userDB.Close
Set userDB = Nothing
'进入用户环境
Load FrmMain
FrmMain.Show
Unload FrmLogIn
logOK = True
userName = userID
Screen.MousePointer = vbDefault
Else
'关闭数据库
userRD.Close
Set userRD = Nothing
userDB.Close
Set userDB = Nothing
logOK = False
Screen.MousePointer = vbDefault
MsgBox "用户名或密码错误!请重新输入!", vbOKOnly + vbExclamation, "登陆失败"
End If
Exit Sub
errEnd:
Screen.MousePointer = vbDefault
MsgBox Err.Description, vbOKOnly + vbExclamation, "登陆错误"
logOK = False
Err.Clear
'关闭数据库
userRD.Close
Set userRD = Nothing
userDB.Close
Set userDB = Nothing
Exit Sub
End Sub
模块名:CmdNewFenLei_Click (创建类别
模块原型:Private Sub CmdNewFenLei_Click()
代码:
Private Sub CmdNewFenLei_Click()
On Error GoTo errEnd
If TxtBianHao.Text = "" Then
MsgBox "请填写图书分类号!", vbOKOnly + vbExclamation, "创建分类"
TxtBianHao.SetFocus
Exit Sub
End If
If TxtLeiBie.Text = "" Then
MsgBox "请填写图书分类名称!", vbOKOnly + vbExclamation, "创建分类"
TxtLeiBie.SetFocus
Exit Sub
End If
If checkFenLei(TxtLeiBie.Text) Then
MsgBox "图书分类名称不唯一,请另选一个!", vbOKOnly + vbExclamation, "创建分类"
TxtLeiBie.SetFocus
TxtLeiBie.SelStart = 0
TxtLeiBie.SelLength = Len(TxtLeiBie.Text)
Exit Sub
End If
If ComboFuLei.Text <> "" And ComboFuLei.Text <> "选择父类" Then
If Not checkFenLei(ComboFuLei.Text) Then
MsgBox "所选父类不存在!请重试!", vbOKOnly + vbExclamation, "选择父类"
ComboFuLei.SetFocus
Exit Sub
End If
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select [图书分类号] from [图书分类] where [图书分类号]=[所属父类编号] and [图书分类]=""" & ComboFuLei.Text & """"
Adodc1.Refresh
Adodc1.Recordset.MoveFirst
FuLeiBianHao = Adodc1.Recordset!图书分类号
End If
If checkGYSID(TxtBianHao.Text) Then
MsgBox "图书分类编号不唯一,请另选一个!", vbOKOnly + vbExclamation, "创建分类"
TxtBianHao.SetFocus
TxtBianHao.SelStart = 0
TxtBianHao.SelLength = Len(TxtBianHao.Text)
Exit Sub
End If
If FuLeiBianHao = "" Then FuLeiBianHao = TxtBianHao.Text
Adodc1.CommandType = adCmdTable
Adodc1.RecordSource = "图书分类"
Adodc1.Refresh
Adodc1.Recordset.AddNew
Adodc1.Recordset!图书分类号 = TxtBianHao.Text
Adodc1.Recordset!图书分类 = TxtLeiBie.Text
Adodc1.Recordset!所属父类编号 = FuLeiBianHao
Adodc1.Recordset.Update
MsgBox "创建分类成功!", vbOKOnly + vbInformation, "创建分类"
TxtBianHao.Text = ""
TxtLeiBie.Text = ""
ComboFuLei.Text = "选择父类"
FuLeiBianHao = ""
TxtFuLei.Text = ""
TxtBianHao.SetFocus
Exit Sub
errEnd:
MsgBox "更新数据库失败!", vbOKOnly + vbExclamation, "数据库出错"
End Sub
模块名:CmdChgPass_Click (修改密码
模块原型:Private Sub CmdChgPass_Click()
代码:
Private Sub CmdChgPass_Click()
On Error GoTo errEnd
If TxtUserID.Text = "" Then
MsgBox "请输入你的帐号!", vbOKOnly + vbExclamation, "更改密码"
TxtUserID.SetFocus
Exit Sub
End If
If TxtPasswd.Text = "" Then
MsgBox "请输入你的旧密码!", vbOKOnly + vbExclamation, "更改密码"
TxtPasswd.SetFocus
Exit Sub
End If
If TxtNewPasswd.Text = "" Then
MsgBox "请输入你的新密码!", vbOKOnly + vbExclamation, "更改密码"
TxtNewPasswd.SetFocus
Exit Sub
End If
If TxtNewPasswd.Text <> TxtNewPasswdC.Text Then
MsgBox "密码输入不一致,请重试!", vbOKOnly + vbExclamation, "更改密码"
TxtPasswd.Text = ""
TxtNewPasswd.Text = ""
TxtNewPasswdC.Text = ""
TxtPasswd.SetFocus
Exit Sub
End If
If checkUserID(TxtUserID.Text) Then
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from [Admin] where [用户密码]=""" & TxtPasswd.Text & """ and [用户ID]=""" & TxtUserID.Text & """"
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
Adodc1.Recordset.MoveFirst
Adodc1.Recordset!用户密码 = TxtNewPasswd.Text
Adodc1.Recordset.Update
Else
MsgBox "用户密码验证错误!你无权修改密码!", vbOKOnly + vbExclamation, "密码错误"
TxtPasswd.Text = ""
TxtNewPasswd.Text = ""
TxtNewPasswdC.Text = ""
Exit Sub
End If
MsgBox "用户密码修改成功!请牢记!", vbOKOnly + vbInformation, "更改密码"
TxtPasswd.Text = ""
TxtNewPasswd.Text = ""
TxtNewPasswdC.Text = ""
Else
MsgBox "该用户不存在!无法修改密码!", vbOKOnly + vbExclamation, "更改密码"
TxtPasswd.Text = ""
TxtNewPasswd.Text = ""
TxtNewPasswdC.Text = ""
End If
Exit Sub
errEnd:
MsgBox Err.Description & vbCrLf & "更改密码失败!", vbOKOnly + vbExclamation, "操作数据库出错"
End Sub
模块名:CmdRegMe_Click (创建员工会员账号
模块原型:Private Sub CmdRegMe_Click()
代码:
Private Sub CmdRegMe_Click()
On Error GoTo errEnd
If TxtCard.Text = "" Then
MsgBox "请填写员工帐号!", vbOKOnly + vbExclamation, "创建员工帐号"
TxtCard.SetFocus
Exit Sub
End If
If TxtUName.Text = "" Then
MsgBox "请填写员工的姓名!", vbOKOnly + vbExclamation, "创建员工帐号"
TxtUName.SetFocus
Exit Sub
End If
If ComboShenFen.Text = "" Or ComboShenFen.Text = "请选择员工身份" Then
MsgBox "请选择员工的身份!", vbOKOnly + vbExclamation, "创建员工帐号"
ComboShenFen.SetFocus
Exit Sub
End If
If TxtUDanWei.Text = "" Then TxtUDanWei.Text = "无"
If TxtUDiZhi.Text = "" Then
MsgBox "请填写员工的地址!", vbOKOnly + vbExclamation, "创建员工帐号"
TxtUDiZhi.SetF
展开阅读全文