山西大学继续教育学院
毕 业 论 文
类 别 年 级 2006级 专 业 计算机信息与管理 姓 名 赵利华 学 号
论文题目 关于图书管理系统开发和维护技术文档
论 文 评 语
建议成绩 指导老师 年 月 日
目 录
论文提要 ························5 第一章 需求分析说明书 ··················6 1.1系统面向的用户群体 ·················6 1.2系统的功能性需求 ··················6 1.3系统的非功能性需求 ·················第二章 可行性分析报告 ··················2.1技术可行性 ·····················2.2时间、设备可能性 ··················2.3代码工作量 ·····················2.4文档要求 ······················第三章 开发环境与项目规划 ················3.1开发环境 ······················3.2项目规划与管理 ···················第四章 软件界面设计标准与规范 ··············4.1编写目的 ······················4.2界面设计思想 ····················4.3界面设计原则 ····················4.4界面设计样式 ····················第五章 软件编码设计标准与规范 ··············5.1对象命名约定 ····················5.2结构化编码约定 ···················5.3数据源的约定 ····················5.4数据库访问约定 ···················第六章 数据库分析与设计 ·················6 6 6 7 7 7 7 7 7 8 8 8 8 8 8 9 10 10 10 11
6.1数据库环境说明 ···················11 6.2数据库命名标准与规范·················11 6.3数据库逻辑设计 ···················11 6.4数据库物理设计 ···················11 第七章 软件系统结构设计说明书 ··············13 7.1系统概述 ······················7.2设计约束 ······················7.3系统概要设计说明书 ·················7.4系统详细说明书 ···················第八章 用户界面设计报告 ·················8.1系统窗体汇总 ····················8.2主界面设计 ·····················8.3子界面设计 ·····················第九章 软件测试分析报告 ·················9.1测试范围与主要内容 ·················9.2测试方法 ······················参考资料 ························
13 13 13 15 30 30 30 31 36 36 36 39
论 文 提 要
图书管理系统的设计与推出是多方面原因促成的,比如学校的图书管理,日常管理工作都是人工操作,历史数据很难保存和利用。而其他的小型图书馆大多如此。针对这种状况,我计划开发一个面向小型图书馆的图书管理系统,实现对人员、物流的全面管理,以帮助这些图书馆早日实现书店管理信息化。
本系统定位于小型图书馆,暂时考虑单机环境下的实现;操作系统选择目前常用的Windows 98/2000。系统性质为MIS (管理信息系统)或财务软件。
本系统采用会员制管理,系统功能应包含图书管理、读者管理、图书借阅管理、系统管理等。系统界面力求简洁、易用,在标准化的基础上考虑界面的美观和新颖。
系统面向小型图书馆,用户群体为这些图书馆的学生、老师或者工作人员等。
系统的性质为MIS 或财务软件,因而数据库的设计与操纵是系统设计的核心。我在2005年6月至2005年7月曾经成功完成了“图书管理系统“的开发,具备一定的系统分析与设计能力,熟悉数据库的设计与操纵;因而该系统的实现在技术上是可行的。依据国家《计算机软件产品开发文件编制指南》和《管理信息系统基础与开发技术》的理论与原则编制标准的软件技术文档。 前台开发环境:Microsoft Visual Basic 6.0 后台数据库环境:Microsoft Access 2000/2002
第一章 需求分析说明书
1.1系统介绍
本系统定位于小型图书馆,暂时考虑单机环境下的实现;操作系统选择目前常用的Windows 98/2000。系统性质为MIS (管理信息系统)或财务软件。
本系统采用会员制管理,系统功能应包含图书管理、读者管理、图书借阅管理、系统管理等。系统界面力求简洁、易用,在标准化的基础上考虑界面的美观和新颖。
1.2系统面向的用户群体
系统面向小型图书馆,用户群体为这些图书馆的学生、老师或者工作人员等。
1.3系统的功能性需求
1.4系统的非功能性需求
2.4.1用户界面需求
简洁、易用、易懂,美观、大方、标准,具备一定的兼容性。 2.4.2软硬件环境需求
软件环境:兼容当前主流操作系统 Windows 95/98/NT/Me/2000/XP 等。 硬件环境:386以上计算机。 2.4.3软件质量需求
易用、健壮、兼容性好、运行稳定、有一定安全保障。
第二章 可行性分析报告
2.1技术可行性
系统的性质为MIS 或财务软件,因而数据库的设计与操纵是系统设计的核心。我在2005年6月至2005年7月曾经成功完成了“图书管理系统“的开发,具备一定的系统分析与设计能力,熟悉数据库的设计与操纵;因而该系统的实现在技术上是可行的。 2.2时间、设备可能性
系统设计与开发工作预计耗时一个星期。实验设备如:计算机。 2.3代码工作量 预计需7天左右。 2.4文档要求
依据国家《计算机软件产品开发文件编制指南》和《管理信息系统基础与开发技术》的理论与原则编制标准的软件技术文档。
第三章 开发环境与项目规划
3.1开发环境
前台开发环境:Microsoft Visual Basic 6.0 后台数据库环境:Microsoft Access 2000/2002 3.2项目规划与管理
11月29日至11月30日:系统分析,进行需求定义,定义系统概况
11月1日至12月2日:数据库分析与设计 12月3日至12月4日:软件体系结构设计 12月5日至12月6日:软件编码
12月6日至12月6日:系统测试
第四章 软件界面设计标准与规范
4.1编写目的
制定界面设计标准规范的目的是为了规范和统一软件界面设计制定软件界面设计标准与规范。 4.2界面设计思想
首先考虑标准化,在标准化的基础上进行界面的美工设计。 4.3界面设计原则
简单易用、简洁明了、兼容性好、标准、规范。 4.4界面设计样式
采用简单的界面.
图1. 系统界面
第五章 软件编码设计标准与规范
5.1对象命名约定
5.2结构化编码约定
编码应清晰、可读性好,运用缩进、空行,结合大小写区别等方法保持程序结构良好。凡与数据库操作相关的模块一律加上容错代码,涉及多表操作的模块应运用“事务”处理,以保持数据完整性。 编码风格参照下例进行:
Private Sub cmdCancel_Click() '设置全局变量为 false '不提示失败的登录 LoginSucceeded = False Me.Hide End Sub
Private Sub cmdOK_Click() '检查正确的密码
If txtPassword = "user" Then '将代码放在这里传递 '成功到 calling 函数 '设置全局变量时最容易的 LoginSucceeded = True Me.Hide Form1.Show Else
MsgBox "无效的密码,请重试!", , "登录" txtPassword.SetFocus SendKeys "{Home}+{End}" End If End Sub 5.3数据源的约定
需用数据源的组件如:DataGrid 一律采用Adodb 控件。有特殊需求的情况如:身份验证应引用DAO(数据访问对象) 。 5.4数据库访问约定
数据库引擎采用Microsoft.Jet.OLEDB.4.0,由Adodb 组件进行数据库的访问,并为其他组件提供数据源。特殊情况、身份验证等由 DAO访问数据库。
5.5其他约定
无需数据显示的情况由DAO 提供数据库支持,有数据显示的情况由ADODB 组件提供数据库支持。
第六章 数据库分析与设计
6.1数据库环境说明
考虑该系统的定位与现有技术力量, 决定采用Microsoft Access 2000/2002作为系统的后台数据库开发环境。 6.2数据库命名标准与规范
说明:下表所列为数据库及各表的命名方法,具体信息请参阅6.4.1表、视图汇总。
6.3数据库逻辑设计
图4. 数据库逻辑结构图
6.4数据库物理设计
6.4.1表
6.4.2各表设计详解
[说明]:空缺位置表示无要求,主键在约束栏注明。
基本表:[dzlb ]
基本表:[jyxx ] 基本表:[sjxx]
第七章 软件体系结构设计说明书
7.1系统概述
在单机环境下进行系统安全的考虑,有必要进行用户权限的划分与控制,因而系统在总体上应包含安全子系统之下的各类用户工作环境。用户权限的合理划分与有效控制是本系统体系结构设计的核心。 7.2设计约束
系统将实现人员、物流的全面管理,而物流管理是系统的核心部件,怎样实现二者的共存,互不干扰,是本系统设计的难点。本系统必须实现对用户权限的有效合理控制。 7.3系统概要设计说明书
7.3.1图例说明 1. 处理过程:
2. 数据流:(单向)
3. 数据流:(双向)
7.3.2系统总体结构图
图11. 图书管理流程图
7.3.4读者管理流程图
图12. 读者管理流程图
7.3.5图书借阅流程图
图13. 图书借阅流程图
7.4系统详细设计说明书
7.4.1系统核心模块详解
全局变量定义:
Option Explicit
Public conn As New ADODB.Connection Public select_menu As String Public userID As String Public userpow As String Public book_num As String Private Sub cmdCancel_Click() '设置全局变量为 false '不提示失败的登录 LoginSucceeded = False Me.Hide End Sub
Private Sub cmdOK_Click() '检查正确的密码
If txtPassword = "user" Then '将代码放在这里传递 '成功到 calling 函数 '设置全局变量时最容易的 LoginSucceeded = True Me.Hide Form1.Show
MsgBox "无效的密码,请重试!", , "登录" txtPassword.SetFocus SendKeys "{Home}+{End}" End If End Sub b
窗体名:Form1 代码:
Private Sub A11_Click() Form2.Show End Sub
Private Sub A12_Click() Form3.Show End Sub
Private Sub A13_Click() Form4.Show End Sub
Private Sub B11_Click() Form5.Show End Sub
Private Sub B12_Click() Form6.Show End Sub
Private Sub B13_Click() Form7.Show End Sub
Private Sub C12_Click() Form4.Show End Sub
Private Sub C13_Click() Form9.Show End Sub
Private Sub C15_Click() Form10.Show
Private Sub exit_Click() End End Sub 窗体名:Form2 代码:
Private Sub Command1_Click() On Error GoTo command1error Command2.Enabled = False Command3.Enabled = False Command1.Enabled = False Command4.Enabled = True Command5.Enabled = True DataGrid1.AllowAddNew = True DataGrid1.AllowUpdate = True Exit Sub command1error:
MsgBox Err.Description End Sub
Private Sub Command2_Click() On Error GoTo Command2 Command1.Enabled = False Command2.Enabled = False Command3.Enabled = False Command1.Enabled = True Command4.Enabled = True Command5.Enabled = True DataGrid1.AllowUpdate = True Command2:
If Err.Number 0 Then MsgBox Err.Description End If End Sub
Private Sub Command3_Click() Dim answer As String On Error GoTo command3error
answer = MsgBox("确定要删除吗?", vbYesNo, "") If answer = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveLast End If
DataGrid1.Refresh
MsgBox "删除成功!", vbOKCancel + vbExclamation, "" DataGrid1.AllowDelete = False Else Exit Sub command3error:
If Err.Number 0 Then MsgBox Err.Description End If End Sub
Private Sub Command4_Click()
If Not IsNull(DataGrid1.Bookmark) Then DataGrid1.Refresh End If
Command1.Enabled = True Command2.Enabled = True Command3.Enabled = True Command5.Enabled = False Command4.Enabled = False DataGrid1.AllowUpdate = False DataGrid1.AllowAddNew = False
MsgBox "操作成功!", vbOKCancel + vbExclamation, "" End Sub
Private Sub Command5_Click() DataGrid1.Refresh
DataGrid1.AllowAddNew = False Command2.Enabled = True Command1.Enabled = True Command3.Enabled = True Command4.Enabled = False Command5.Enabled = False End Sub
Private Sub Form_Load() Command4.Enabled = False DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False If userpow = "guest" Then Frame2.Enabled = False End If Exit Sub
loaderror:
MsgBox Err.Description End Sub
Private Sub Form_Unload(Cancel As Integer) Set DataGrid1.DataSource = Nothing End Sub
窗体名:Form3 代码:
Private Sub Command1_Click() Command1.Enabled = False Command2.Enabled = False Command3.Enabled = False Command4.Enabled = True Command5.Enabled = True DataGrid1.AllowAddNew = True DataGrid1.AllowUpdate = True Exit Sub command1error:
MsgBox Err.Description End Sub
Private Sub Command2_Click() On errror GoTo Command2 Command1.Enabled = False Command3.Enabled = False Command2.Enabled = False Command1.Enabled = True Command4.Enabled = True Command5.Enabled = True DataGrid1.AllowUpdate = True Command2:
If Err.Number 0 Then MsgBox Err.Description End If End Sub
Private Sub Command3_Click() Dim answer As String On Error GoTo command3error
answer = MsgBox("确定要删除吗?", vbYesNo, "") If answer = vbYes Then Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF = True Then Adodc1.Recordset.MoveLast End If
DataGrid1.Refresh
MsgBox "成功删除!", vbOKCancel + vbExclamation, "" DataGrid1.AllowDelete = False Else Exit Sub End If
command3error:
If Err.Number 0 Then MsgBox Err.Description End If End Sub
Private Sub Command4_Click()
If Not IsNull(DataGrid1.Bookmark) Then DataGrid1.Refresh End If
Command1.Enabled = True Command2.Enabled = True Command3.Enabled = True Command4.Enabled = False Command5.Enabled = False DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False
MsgBox "操作成功!", vbOKCancel + vbExclamation, "" End Sub
Private Sub Command5_Click() DataGrid1.Refresh
DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False Command1.Enabled = True Command2.Enabled = True Command3.Enabled = True Command4.Enabled = False Command5.Enabled = False End Sub
Private Sub Form_Load() Command4.Enabled = False DataGrid1.AllowAddNew = False
DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False If userpow = "guest" Then Frame2.Enabled = False End If Exit Sub loaderror:
MsgBox Err.Description End Sub
Private Sub Form_Unload(Cancel As Integer) Set DataGrid1.DataSource = Nothing End Sub
窗体名:Form4 代码:
Private Sub Command1_Click(Index As Integer) Dim sql As String
If Check1.Value = vbChecked Then
sql = "书名" & Trim(Text1.Text & " ") & "'" End If
If Check2.Value = vbcheckde Then If Trim(sql) = "" Then
sql = "类别='" & Trim(Combo1.Text & " ") & "'" Else
sql = sql & "and 书名='" & Trim(Combo1.Text & "'") & "'" End If End If
If Check3.Value = vbcheckde Then If Trim(sql) = "" Then
sql = "作者='" & Trim(Text2.Text & " ") & "'" Else
sql = sql & "and 作者='" & Trim(Text2.Text & " ") & "'" End If End If
If Check4.Value = vbChecked Then If Trim(sql) = "" Then
sql = "出版社='" & Trim(Text3.Text & " ") & "'" Else
sql = sql & "and 出版社='" & Trim(Text3.Text & " ") & "'" End If End If
If Check5.Value = vbChecked Then If Trim(sql) = "" Then
sql = "书籍编号='" & Trim(Text4.Text & " ") & "'" Else
sql = sql & "and 书籍编号='" & Trim(Text4.Text & " ") & "'" End If End If
If Trim(sql) = " " Then
MsgBox "请选择查询方式!", vbOKOnly + vbExclamation Exit Sub End If
Adodc1.RecordSource = "select * from sjxx where " & sql Adodc1.Refresh
DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False End Sub
Private Sub Command2_Click() Unload Me End Sub
Private Sub Command3_Click() If Trim(book_num) = "" Then
MsgBox "请选择要借阅的图书!", vbOKOnly + vbExclamation Exit Sub End If
If panduan = "是" Then
MsgBox "此书已被借出!", vbOKOnly + vbExclamation Exit Sub End If Form9.Show End Sub
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer) If Not Adodc1.Recordset.EOF And Adodc1.Recordset.EOF Then book_num = DataGrid1.Columns(0).CellValue(DataGrid1.Bookmark) panduan = DataGrid1.Columns(7).CellValue(DataGrid1.Bookmark) End If End Sub
Private Sub Form_Load() Dim i As Integer Dim sql As String Combo1.Clear
Adodc2.Recordset.MoveFirst
For i = 0 To Adodc2.Recordset.RecordCount - 1
Combo1.AddItem Adodc2.Recordset.Fields(0).Value Adodc2.Recordset.MoveNext Next
Combo1.ListIndex = 0 End Sub
窗体名:Form5 代码:
Private Sub Command1_Click() On Error GoTo command1error Command2.Enabled = False Command3.Enabled = False Command4.Enabled = True Command5.Enabled = True DataGrid1.AllowAddNew = True DataGrid1.AllowUpdate = True Exit Sub commanderror:
MsgBox Err.Description End Sub
Private Sub Command2_Click() On Error GoTo Command2 Command1.Enabled = False Command2.Enabled = False Command3.Enabled = False Command4.Enabled = True Command5.Enabled = True DataGrid1.AllowUpdate = True Command2:
If Err.Number 0 Then MsgBox Err.Description End If End Sub
Private Sub Command3_Click() Dim answer As String On Error GoTo command3error
answer = MsgBox("确定要删除吗?", vbYesNo, "") If answer = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF = True Then Adodc1.Recordset.MoveLast
DataGrid1.Refresh
MsgBox "成功删除!", vbOKOnly + vbExclamation, "" DataGrid1.AllowDelete = False Else Exit Sub End If
command3error:
If Err.Number 0 Then MsgBox Err.Description End If End Sub
Private Sub Command4_Click()
If Not IsNull(DataGrid1.BackColor) Then DataGrid1.Refresh End If
Command1.Enabled = True Command2.Enabled = True Command3.Enabled = True Command4.Enabled = False Command5.Enabled = False
MsgBox "操作成功!", vbOKOnly + vbExclamation, "" End Sub
Private Sub Command5_Click() DataGrid1.Refresh
DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False Command2.Enabled = True Command1.Enabled = True Command3.Enabled = True Command4.Enabled = False Command5.Enabled = False End Sub
Private Sub Form_Load() Command4.Enabled = False DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False If userpow = "guest" Then Frame2.Enabled = False End If
loaderror:
MsgBox Err.Description End Sub
窗体名:Form6 代码:
Private Sub Command1_Click() On Error GoTo commanderror Command2.Enabled = False Command3.Enabled = False Command1.Enabled = False Command4.Enabled = True Command5.Enabled = True DataGrid1.AllowAddNew = True DataGrid1.AllowUpdate = True Exit Sub command1error:
MsgBox Err.Description End Sub
Private Sub Command2_Click() On Error GoTo Command2 Command1.Enabled = False Command3.Enabled = False Command2.Enabled = False Command4.Enabled = True Command5.Enabled = True Command1.Enabled = True DataGrid1.AllowUpdate = True Command2:
If Error.Number 0 Then MsgBox Err.Description End If End Sub
Private Sub Command3_Click() Dim answer As String On Error GoTo command3error
answer = MsgBox("确定要删除吗:", vbYesNo, "") If answer = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext End If
DataGrid1.Refresh
MsgBox "成功删除!", vbOKOnly + vbExclamation, "" DataGrid1.AllowDelete = False Else Exit Sub command3error:
If Err.Number 0 Then MsgBox Err.Description End If End Sub
Private Sub Command4_Click()
If Not IsNull(DataGrid1.Bookmark) Then DataGrid1.Refresh End If
Command1.Enabled = True Command2.Enabled = True Command3.Enabled = True Command4.Enabled = False Command5.Enabled = False DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False
MsgBox "操作成功!", vbOKOnly + vbExclamation, "" End Sub
Private Sub Command5_Click() DataGrid1.Refresh
DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False Command2.Enabled = True Command3.Enabled = True Command4.Enabled = False Command5.Enabled = False End Sub
Private Sub Form_Load() Command4.Enabled = False DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False If userpow = "guest" Then Frame2.Enabled = False End If Exit Sub
MsgBox Err.Description End Sub
Private Sub Form_Unload(Cancel As Integer) Set DataGrid1.DataSource = Nothing End Sub
窗体名:Form7 代码:
Private Sub Command1_Click()
Dim rs_findreader As New ADODB.Recordset Dim sql As String
If Check1.Value = vbChecked Then
sql = "读者编号='" & Trim(Text1.Text & " ") & "'" End If
If Check2.Value = vbChecked Then If Trim(sql) = "" Then
sql = "读者姓名='" & Trim(Text2.Text & " ") & "'" Else
sql = sql & "and 读者姓名='" & Trim(Text2.Text & " ") & "'" End If End If
If Check3.Value = vbChecked Then If Trim(sql) = "" Then
sql = "读者类别='" & Trim(Combo1.Text & " ") & "'" Else
sql = sql & "and 读者类别='" & Trim(Combo1.Text & " ") & "'" End If End If
If Trim(sql) = "" Then
MsgBox "请选择查询方式!", vbOKOnly + vbExclamation Exit Sub End If
Adodc1.RecordSource = "select * from dzxx where " & sql Adodc1.Refresh DataGrid1.ReBind
DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False End Sub
Private Sub Command2_Click()
End Sub
Private Sub Form_Load() Dim i As Integer Dim sql As String Combo1.Clear
Adodc2.Recordset.MoveFirst
For i = 0 To Adodc2.Recordset.RecordCount - 1 Combo1.AddItem Adodc2.Recordset.Fields(0).Value Adodc2.Recordset.MoveNext Next
Combo1.ListIndex = 0 End Sub
窗体名:Form8 代码:
Private Sub Combo1_Change()
Combo2.ListIndex = Combo1.ListIndex End Sub
Private Sub Combo2_Change()
Combo1.ListIndex = Combo2.ListIndex End Sub
Option Explicit Dim leibie As String Dim qixian As Integer Dim shumn As Integer Dim maxnum As Integer
Private Sub Command1_Click()
Dim rs_borrowbook As New ADODB.Recordset Dim sql As String
Adodc1.RecordSource = "select * from 读者信息 where 读者编号='" & Combo1.Text & "," Adodc1.Refresh
leibie = Adodc1.Recordset.Fields(3) shumu = Adodc1.Recordset.Fields(8)
Adodc1.RecordSource = "select * from 读者类别 where 种类名称='" & leibie & "'" Adodc1.Refresh
qixian = Adodc1.Recordset.Fields(2) maxnum = Adodc1.Recordset.Fields(1) If shumu >= maxnum Then
MsgBox "该读者借书数额已满!", vbOKOnly + vbExclamation Exit Sub
Private Sub Command2_Click() Unload Me End Sub
Private Sub Form_Load() Dim i As Integer
Adodc2.RecordSource = "select * from 书籍信息 where 书籍编号='" & book_num & "'" Adodc2.Refresh
Label8.Caption = Adodc2.Recordset.Fields(0) Label9.Caption = Adodc2.Recordset.Fields(1) Label10.Caption = Adodc2.Recordset.Fields(2) Label11.Caption = Adodc2.Recordset.Fields(3) Label12.Caption = Adodc2.Recordset.Fields(4) Label13.Caption = Adodc2.Recordset.Fields(5) Label14.Caption = Adodc2.Recordset.Fields(6) Combo1.Clear Combo2.Clear
Adodc1.RecordSource = "select * from 读者信息" Adodc1.Refresh
Adodc1.Recordset.MoveFirst
For i = 0 To Adodc1.Recordset.RecordCount - 1 Combo1.AddItem Adodc1.Recordset.Fields(1).Value Combo2.AddItem Adodc1.Recordset.Fields(0).Value Adodc1.Recordset.MoveNext Next
Combo1.ListIndex = 0 Combo2.ListIndex = 0 End Sub
Private Sub Form_Unload(Cancel As Integer) Unload Me End Sub
窗体名:form9 代码:
Private Sub Command1_Click() Dim sql As String
If Option1.Value = True Then sql = "是否被借出='是'" End If
If Option2.Value = True Then sql = "是否被借出='否'"
Adodc1.RecordSource = "select * from sjxx where " & sql Adodc1.Refresh DataGrid1.ReBind
DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False End Sub
Private Sub Command2_Click() Unload Me End Sub
模块名:Module1 代码:
Option Explicit
Public conn As New ADODB.Connection Public select_menu As String Public userID As String Public userpow As String Public book_num As String
第八章 用户界面设计报告
8.1系统窗体汇总
8.2主界面设计
主界面如下图所示:
图14. 系统主界面设计样式
8.3子界面设计
除系统中主要的、基本的功能之外,子系统或非共享功能的实现均采用子界面的设计来实现,如图书管理、读者管理、图书借阅管理、系统管理等。
图书类别管理如下图所示:
图书信息管理如下图所示:
查询图书信息管理如下图所示:
读者类别管理如下图所示:
读者信息管理如下图所示:
查询读者信息管理如下图所示:
添加图书信息如下图:
查询借书信息如下图
:
添加还书信息如下图:
第九章 软件测试分析报告
9.1测试范围与主要内容
9.2测试方法
功能性测试:黑盒测试 逻辑检错性测试:白盒测试
结 束 语
1、认识体会:通过系统的在校学习和对外界的认识,我对软件开发的大致过程有了一些基本的了解,有了一些体会
程序没有最好,只有更好,程序没有十全十美,只有更完美;
在编程的过程中,会遇到各种各样的问题,优秀的编程大师正是在解决了遇到的这些问题而积累经验的成果,提升了编程能力和丰富了编程思维。
深入的体会:编程总会深入内部,深究根源。这时,笔者体会到要一次性地把程序做好是不可能的,一个程序只有不断地测试和修改才能减少错误,才能提高质量,才能做得更好,程序是在不断地壮大的。 编程需要有多方面的学科知识:因为编程的过程中会用到其他学科的知识,这要求我们在学习的过程中要不断的学习与编程有关的知识,,比如像数学、英语等。
编程需要严谨的思维。程序是一个逻辑产品,它存储在磁盘等物理介质中,它看不见,摸不着,它运行时一环接一环,一丝扣一丝,一旦出错,有可能导致难以预料的严重后果。而严谨的思维能使程序逻辑出错的可能性大大降低,也使程序易于维护。而且,保持严谨的思维总是一个好的习惯。
在学习的过程中,要学会应用网络上的知识,把它变为自己的知识,应用在实际中来解决问题。因为在网络上有各种各样的资源可以供你参考。
编程需要良好的编程习惯。好的编程习惯能给编程人员省去很多不必要的麻烦,有些编程人员就是因为习惯不好而被这些不必要的麻烦缠得焦头烂额、捶胸顿足的。良好的编程习惯还可以让编程人员保持良
好的编程心态和心情,也还能减少很多隐患,提高了代码的可信度和安全度,从而提高了程序的质量。
要成为一名编程大师,我们必须从以下方面来做:
(1)、从一门语言开始:初学编程,最忌讳的就是贪多。其实编程的道理都是相通的,通一则知百,但是知百却不一定能够通一!所以切记要“专心使用一门语言”,把它学透,以后则自然通一则知百!
(2)、学Why 不记How :学编程,重要的是学会Why(程序为什么这样做) ,而不是学习How(怎样编写) 。重要的是树立编程的思路,而不是编程的步骤。
2、感悟:
计算机技术浩瀚无边,需要我们学习的知识非常之多,比如像软件编程,就有Delphi 、C++、JAVA 、J2EE 、JSP 、VB 、VC 、等,我们不可能一一都学会,但是我们要选择有代表性的来学,比如JAVA 、J2EE 。就我所使用的Delphi 来说,我所使用的不过是它的很小的一方面,还有其他知识需要掌握,比如用它来做Web 网页等的知识我没有学过,但需要我们在学习的过程中不断地来学习。
所以我认为编程要不断地学习,不断地学习他人的新技术才能进步。而借鉴地学习他人的技术的同时也要不断地自己去探索。
参考文献
1. 《计算机软件产品开发文件编制指南》
2. 《管理信息系统与开发技术》 陈承欢 彭勇 主编. 人民邮电出
版社. 2006.1
3. 《工程应用软件开发技术》 唐任仲 编著. 化学工业出版社.
1999.5
4. 《Visual Basic 6.0 中文版 参考详解》 李怀明 等著. 清华
大学出版社. 1999.11
5. 《Visual Basic 6.0 高级编程技巧》 李善茂 等著. 电子工业
出版社. 1999.5
6. 《Visual Basic 6.0 中文版 提高与应用》 谭浩强 主编. 电
子工业出版社. 1999.11
山西大学继续教育学院
毕 业 论 文
类 别 年 级 2006级 专 业 计算机信息与管理 姓 名 赵利华 学 号
论文题目 关于图书管理系统开发和维护技术文档
论 文 评 语
建议成绩 指导老师 年 月 日
目 录
论文提要 ························5 第一章 需求分析说明书 ··················6 1.1系统面向的用户群体 ·················6 1.2系统的功能性需求 ··················6 1.3系统的非功能性需求 ·················第二章 可行性分析报告 ··················2.1技术可行性 ·····················2.2时间、设备可能性 ··················2.3代码工作量 ·····················2.4文档要求 ······················第三章 开发环境与项目规划 ················3.1开发环境 ······················3.2项目规划与管理 ···················第四章 软件界面设计标准与规范 ··············4.1编写目的 ······················4.2界面设计思想 ····················4.3界面设计原则 ····················4.4界面设计样式 ····················第五章 软件编码设计标准与规范 ··············5.1对象命名约定 ····················5.2结构化编码约定 ···················5.3数据源的约定 ····················5.4数据库访问约定 ···················第六章 数据库分析与设计 ·················6 6 6 7 7 7 7 7 7 8 8 8 8 8 8 9 10 10 10 11
6.1数据库环境说明 ···················11 6.2数据库命名标准与规范·················11 6.3数据库逻辑设计 ···················11 6.4数据库物理设计 ···················11 第七章 软件系统结构设计说明书 ··············13 7.1系统概述 ······················7.2设计约束 ······················7.3系统概要设计说明书 ·················7.4系统详细说明书 ···················第八章 用户界面设计报告 ·················8.1系统窗体汇总 ····················8.2主界面设计 ·····················8.3子界面设计 ·····················第九章 软件测试分析报告 ·················9.1测试范围与主要内容 ·················9.2测试方法 ······················参考资料 ························
13 13 13 15 30 30 30 31 36 36 36 39
论 文 提 要
图书管理系统的设计与推出是多方面原因促成的,比如学校的图书管理,日常管理工作都是人工操作,历史数据很难保存和利用。而其他的小型图书馆大多如此。针对这种状况,我计划开发一个面向小型图书馆的图书管理系统,实现对人员、物流的全面管理,以帮助这些图书馆早日实现书店管理信息化。
本系统定位于小型图书馆,暂时考虑单机环境下的实现;操作系统选择目前常用的Windows 98/2000。系统性质为MIS (管理信息系统)或财务软件。
本系统采用会员制管理,系统功能应包含图书管理、读者管理、图书借阅管理、系统管理等。系统界面力求简洁、易用,在标准化的基础上考虑界面的美观和新颖。
系统面向小型图书馆,用户群体为这些图书馆的学生、老师或者工作人员等。
系统的性质为MIS 或财务软件,因而数据库的设计与操纵是系统设计的核心。我在2005年6月至2005年7月曾经成功完成了“图书管理系统“的开发,具备一定的系统分析与设计能力,熟悉数据库的设计与操纵;因而该系统的实现在技术上是可行的。依据国家《计算机软件产品开发文件编制指南》和《管理信息系统基础与开发技术》的理论与原则编制标准的软件技术文档。 前台开发环境:Microsoft Visual Basic 6.0 后台数据库环境:Microsoft Access 2000/2002
第一章 需求分析说明书
1.1系统介绍
本系统定位于小型图书馆,暂时考虑单机环境下的实现;操作系统选择目前常用的Windows 98/2000。系统性质为MIS (管理信息系统)或财务软件。
本系统采用会员制管理,系统功能应包含图书管理、读者管理、图书借阅管理、系统管理等。系统界面力求简洁、易用,在标准化的基础上考虑界面的美观和新颖。
1.2系统面向的用户群体
系统面向小型图书馆,用户群体为这些图书馆的学生、老师或者工作人员等。
1.3系统的功能性需求
1.4系统的非功能性需求
2.4.1用户界面需求
简洁、易用、易懂,美观、大方、标准,具备一定的兼容性。 2.4.2软硬件环境需求
软件环境:兼容当前主流操作系统 Windows 95/98/NT/Me/2000/XP 等。 硬件环境:386以上计算机。 2.4.3软件质量需求
易用、健壮、兼容性好、运行稳定、有一定安全保障。
第二章 可行性分析报告
2.1技术可行性
系统的性质为MIS 或财务软件,因而数据库的设计与操纵是系统设计的核心。我在2005年6月至2005年7月曾经成功完成了“图书管理系统“的开发,具备一定的系统分析与设计能力,熟悉数据库的设计与操纵;因而该系统的实现在技术上是可行的。 2.2时间、设备可能性
系统设计与开发工作预计耗时一个星期。实验设备如:计算机。 2.3代码工作量 预计需7天左右。 2.4文档要求
依据国家《计算机软件产品开发文件编制指南》和《管理信息系统基础与开发技术》的理论与原则编制标准的软件技术文档。
第三章 开发环境与项目规划
3.1开发环境
前台开发环境:Microsoft Visual Basic 6.0 后台数据库环境:Microsoft Access 2000/2002 3.2项目规划与管理
11月29日至11月30日:系统分析,进行需求定义,定义系统概况
11月1日至12月2日:数据库分析与设计 12月3日至12月4日:软件体系结构设计 12月5日至12月6日:软件编码
12月6日至12月6日:系统测试
第四章 软件界面设计标准与规范
4.1编写目的
制定界面设计标准规范的目的是为了规范和统一软件界面设计制定软件界面设计标准与规范。 4.2界面设计思想
首先考虑标准化,在标准化的基础上进行界面的美工设计。 4.3界面设计原则
简单易用、简洁明了、兼容性好、标准、规范。 4.4界面设计样式
采用简单的界面.
图1. 系统界面
第五章 软件编码设计标准与规范
5.1对象命名约定
5.2结构化编码约定
编码应清晰、可读性好,运用缩进、空行,结合大小写区别等方法保持程序结构良好。凡与数据库操作相关的模块一律加上容错代码,涉及多表操作的模块应运用“事务”处理,以保持数据完整性。 编码风格参照下例进行:
Private Sub cmdCancel_Click() '设置全局变量为 false '不提示失败的登录 LoginSucceeded = False Me.Hide End Sub
Private Sub cmdOK_Click() '检查正确的密码
If txtPassword = "user" Then '将代码放在这里传递 '成功到 calling 函数 '设置全局变量时最容易的 LoginSucceeded = True Me.Hide Form1.Show Else
MsgBox "无效的密码,请重试!", , "登录" txtPassword.SetFocus SendKeys "{Home}+{End}" End If End Sub 5.3数据源的约定
需用数据源的组件如:DataGrid 一律采用Adodb 控件。有特殊需求的情况如:身份验证应引用DAO(数据访问对象) 。 5.4数据库访问约定
数据库引擎采用Microsoft.Jet.OLEDB.4.0,由Adodb 组件进行数据库的访问,并为其他组件提供数据源。特殊情况、身份验证等由 DAO访问数据库。
5.5其他约定
无需数据显示的情况由DAO 提供数据库支持,有数据显示的情况由ADODB 组件提供数据库支持。
第六章 数据库分析与设计
6.1数据库环境说明
考虑该系统的定位与现有技术力量, 决定采用Microsoft Access 2000/2002作为系统的后台数据库开发环境。 6.2数据库命名标准与规范
说明:下表所列为数据库及各表的命名方法,具体信息请参阅6.4.1表、视图汇总。
6.3数据库逻辑设计
图4. 数据库逻辑结构图
6.4数据库物理设计
6.4.1表
6.4.2各表设计详解
[说明]:空缺位置表示无要求,主键在约束栏注明。
基本表:[dzlb ]
基本表:[jyxx ] 基本表:[sjxx]
第七章 软件体系结构设计说明书
7.1系统概述
在单机环境下进行系统安全的考虑,有必要进行用户权限的划分与控制,因而系统在总体上应包含安全子系统之下的各类用户工作环境。用户权限的合理划分与有效控制是本系统体系结构设计的核心。 7.2设计约束
系统将实现人员、物流的全面管理,而物流管理是系统的核心部件,怎样实现二者的共存,互不干扰,是本系统设计的难点。本系统必须实现对用户权限的有效合理控制。 7.3系统概要设计说明书
7.3.1图例说明 1. 处理过程:
2. 数据流:(单向)
3. 数据流:(双向)
7.3.2系统总体结构图
图11. 图书管理流程图
7.3.4读者管理流程图
图12. 读者管理流程图
7.3.5图书借阅流程图
图13. 图书借阅流程图
7.4系统详细设计说明书
7.4.1系统核心模块详解
全局变量定义:
Option Explicit
Public conn As New ADODB.Connection Public select_menu As String Public userID As String Public userpow As String Public book_num As String Private Sub cmdCancel_Click() '设置全局变量为 false '不提示失败的登录 LoginSucceeded = False Me.Hide End Sub
Private Sub cmdOK_Click() '检查正确的密码
If txtPassword = "user" Then '将代码放在这里传递 '成功到 calling 函数 '设置全局变量时最容易的 LoginSucceeded = True Me.Hide Form1.Show
MsgBox "无效的密码,请重试!", , "登录" txtPassword.SetFocus SendKeys "{Home}+{End}" End If End Sub b
窗体名:Form1 代码:
Private Sub A11_Click() Form2.Show End Sub
Private Sub A12_Click() Form3.Show End Sub
Private Sub A13_Click() Form4.Show End Sub
Private Sub B11_Click() Form5.Show End Sub
Private Sub B12_Click() Form6.Show End Sub
Private Sub B13_Click() Form7.Show End Sub
Private Sub C12_Click() Form4.Show End Sub
Private Sub C13_Click() Form9.Show End Sub
Private Sub C15_Click() Form10.Show
Private Sub exit_Click() End End Sub 窗体名:Form2 代码:
Private Sub Command1_Click() On Error GoTo command1error Command2.Enabled = False Command3.Enabled = False Command1.Enabled = False Command4.Enabled = True Command5.Enabled = True DataGrid1.AllowAddNew = True DataGrid1.AllowUpdate = True Exit Sub command1error:
MsgBox Err.Description End Sub
Private Sub Command2_Click() On Error GoTo Command2 Command1.Enabled = False Command2.Enabled = False Command3.Enabled = False Command1.Enabled = True Command4.Enabled = True Command5.Enabled = True DataGrid1.AllowUpdate = True Command2:
If Err.Number 0 Then MsgBox Err.Description End If End Sub
Private Sub Command3_Click() Dim answer As String On Error GoTo command3error
answer = MsgBox("确定要删除吗?", vbYesNo, "") If answer = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveLast End If
DataGrid1.Refresh
MsgBox "删除成功!", vbOKCancel + vbExclamation, "" DataGrid1.AllowDelete = False Else Exit Sub command3error:
If Err.Number 0 Then MsgBox Err.Description End If End Sub
Private Sub Command4_Click()
If Not IsNull(DataGrid1.Bookmark) Then DataGrid1.Refresh End If
Command1.Enabled = True Command2.Enabled = True Command3.Enabled = True Command5.Enabled = False Command4.Enabled = False DataGrid1.AllowUpdate = False DataGrid1.AllowAddNew = False
MsgBox "操作成功!", vbOKCancel + vbExclamation, "" End Sub
Private Sub Command5_Click() DataGrid1.Refresh
DataGrid1.AllowAddNew = False Command2.Enabled = True Command1.Enabled = True Command3.Enabled = True Command4.Enabled = False Command5.Enabled = False End Sub
Private Sub Form_Load() Command4.Enabled = False DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False If userpow = "guest" Then Frame2.Enabled = False End If Exit Sub
loaderror:
MsgBox Err.Description End Sub
Private Sub Form_Unload(Cancel As Integer) Set DataGrid1.DataSource = Nothing End Sub
窗体名:Form3 代码:
Private Sub Command1_Click() Command1.Enabled = False Command2.Enabled = False Command3.Enabled = False Command4.Enabled = True Command5.Enabled = True DataGrid1.AllowAddNew = True DataGrid1.AllowUpdate = True Exit Sub command1error:
MsgBox Err.Description End Sub
Private Sub Command2_Click() On errror GoTo Command2 Command1.Enabled = False Command3.Enabled = False Command2.Enabled = False Command1.Enabled = True Command4.Enabled = True Command5.Enabled = True DataGrid1.AllowUpdate = True Command2:
If Err.Number 0 Then MsgBox Err.Description End If End Sub
Private Sub Command3_Click() Dim answer As String On Error GoTo command3error
answer = MsgBox("确定要删除吗?", vbYesNo, "") If answer = vbYes Then Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF = True Then Adodc1.Recordset.MoveLast End If
DataGrid1.Refresh
MsgBox "成功删除!", vbOKCancel + vbExclamation, "" DataGrid1.AllowDelete = False Else Exit Sub End If
command3error:
If Err.Number 0 Then MsgBox Err.Description End If End Sub
Private Sub Command4_Click()
If Not IsNull(DataGrid1.Bookmark) Then DataGrid1.Refresh End If
Command1.Enabled = True Command2.Enabled = True Command3.Enabled = True Command4.Enabled = False Command5.Enabled = False DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False
MsgBox "操作成功!", vbOKCancel + vbExclamation, "" End Sub
Private Sub Command5_Click() DataGrid1.Refresh
DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False Command1.Enabled = True Command2.Enabled = True Command3.Enabled = True Command4.Enabled = False Command5.Enabled = False End Sub
Private Sub Form_Load() Command4.Enabled = False DataGrid1.AllowAddNew = False
DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False If userpow = "guest" Then Frame2.Enabled = False End If Exit Sub loaderror:
MsgBox Err.Description End Sub
Private Sub Form_Unload(Cancel As Integer) Set DataGrid1.DataSource = Nothing End Sub
窗体名:Form4 代码:
Private Sub Command1_Click(Index As Integer) Dim sql As String
If Check1.Value = vbChecked Then
sql = "书名" & Trim(Text1.Text & " ") & "'" End If
If Check2.Value = vbcheckde Then If Trim(sql) = "" Then
sql = "类别='" & Trim(Combo1.Text & " ") & "'" Else
sql = sql & "and 书名='" & Trim(Combo1.Text & "'") & "'" End If End If
If Check3.Value = vbcheckde Then If Trim(sql) = "" Then
sql = "作者='" & Trim(Text2.Text & " ") & "'" Else
sql = sql & "and 作者='" & Trim(Text2.Text & " ") & "'" End If End If
If Check4.Value = vbChecked Then If Trim(sql) = "" Then
sql = "出版社='" & Trim(Text3.Text & " ") & "'" Else
sql = sql & "and 出版社='" & Trim(Text3.Text & " ") & "'" End If End If
If Check5.Value = vbChecked Then If Trim(sql) = "" Then
sql = "书籍编号='" & Trim(Text4.Text & " ") & "'" Else
sql = sql & "and 书籍编号='" & Trim(Text4.Text & " ") & "'" End If End If
If Trim(sql) = " " Then
MsgBox "请选择查询方式!", vbOKOnly + vbExclamation Exit Sub End If
Adodc1.RecordSource = "select * from sjxx where " & sql Adodc1.Refresh
DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False End Sub
Private Sub Command2_Click() Unload Me End Sub
Private Sub Command3_Click() If Trim(book_num) = "" Then
MsgBox "请选择要借阅的图书!", vbOKOnly + vbExclamation Exit Sub End If
If panduan = "是" Then
MsgBox "此书已被借出!", vbOKOnly + vbExclamation Exit Sub End If Form9.Show End Sub
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer) If Not Adodc1.Recordset.EOF And Adodc1.Recordset.EOF Then book_num = DataGrid1.Columns(0).CellValue(DataGrid1.Bookmark) panduan = DataGrid1.Columns(7).CellValue(DataGrid1.Bookmark) End If End Sub
Private Sub Form_Load() Dim i As Integer Dim sql As String Combo1.Clear
Adodc2.Recordset.MoveFirst
For i = 0 To Adodc2.Recordset.RecordCount - 1
Combo1.AddItem Adodc2.Recordset.Fields(0).Value Adodc2.Recordset.MoveNext Next
Combo1.ListIndex = 0 End Sub
窗体名:Form5 代码:
Private Sub Command1_Click() On Error GoTo command1error Command2.Enabled = False Command3.Enabled = False Command4.Enabled = True Command5.Enabled = True DataGrid1.AllowAddNew = True DataGrid1.AllowUpdate = True Exit Sub commanderror:
MsgBox Err.Description End Sub
Private Sub Command2_Click() On Error GoTo Command2 Command1.Enabled = False Command2.Enabled = False Command3.Enabled = False Command4.Enabled = True Command5.Enabled = True DataGrid1.AllowUpdate = True Command2:
If Err.Number 0 Then MsgBox Err.Description End If End Sub
Private Sub Command3_Click() Dim answer As String On Error GoTo command3error
answer = MsgBox("确定要删除吗?", vbYesNo, "") If answer = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF = True Then Adodc1.Recordset.MoveLast
DataGrid1.Refresh
MsgBox "成功删除!", vbOKOnly + vbExclamation, "" DataGrid1.AllowDelete = False Else Exit Sub End If
command3error:
If Err.Number 0 Then MsgBox Err.Description End If End Sub
Private Sub Command4_Click()
If Not IsNull(DataGrid1.BackColor) Then DataGrid1.Refresh End If
Command1.Enabled = True Command2.Enabled = True Command3.Enabled = True Command4.Enabled = False Command5.Enabled = False
MsgBox "操作成功!", vbOKOnly + vbExclamation, "" End Sub
Private Sub Command5_Click() DataGrid1.Refresh
DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False Command2.Enabled = True Command1.Enabled = True Command3.Enabled = True Command4.Enabled = False Command5.Enabled = False End Sub
Private Sub Form_Load() Command4.Enabled = False DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False If userpow = "guest" Then Frame2.Enabled = False End If
loaderror:
MsgBox Err.Description End Sub
窗体名:Form6 代码:
Private Sub Command1_Click() On Error GoTo commanderror Command2.Enabled = False Command3.Enabled = False Command1.Enabled = False Command4.Enabled = True Command5.Enabled = True DataGrid1.AllowAddNew = True DataGrid1.AllowUpdate = True Exit Sub command1error:
MsgBox Err.Description End Sub
Private Sub Command2_Click() On Error GoTo Command2 Command1.Enabled = False Command3.Enabled = False Command2.Enabled = False Command4.Enabled = True Command5.Enabled = True Command1.Enabled = True DataGrid1.AllowUpdate = True Command2:
If Error.Number 0 Then MsgBox Err.Description End If End Sub
Private Sub Command3_Click() Dim answer As String On Error GoTo command3error
answer = MsgBox("确定要删除吗:", vbYesNo, "") If answer = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext End If
DataGrid1.Refresh
MsgBox "成功删除!", vbOKOnly + vbExclamation, "" DataGrid1.AllowDelete = False Else Exit Sub command3error:
If Err.Number 0 Then MsgBox Err.Description End If End Sub
Private Sub Command4_Click()
If Not IsNull(DataGrid1.Bookmark) Then DataGrid1.Refresh End If
Command1.Enabled = True Command2.Enabled = True Command3.Enabled = True Command4.Enabled = False Command5.Enabled = False DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False
MsgBox "操作成功!", vbOKOnly + vbExclamation, "" End Sub
Private Sub Command5_Click() DataGrid1.Refresh
DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False Command2.Enabled = True Command3.Enabled = True Command4.Enabled = False Command5.Enabled = False End Sub
Private Sub Form_Load() Command4.Enabled = False DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False If userpow = "guest" Then Frame2.Enabled = False End If Exit Sub
MsgBox Err.Description End Sub
Private Sub Form_Unload(Cancel As Integer) Set DataGrid1.DataSource = Nothing End Sub
窗体名:Form7 代码:
Private Sub Command1_Click()
Dim rs_findreader As New ADODB.Recordset Dim sql As String
If Check1.Value = vbChecked Then
sql = "读者编号='" & Trim(Text1.Text & " ") & "'" End If
If Check2.Value = vbChecked Then If Trim(sql) = "" Then
sql = "读者姓名='" & Trim(Text2.Text & " ") & "'" Else
sql = sql & "and 读者姓名='" & Trim(Text2.Text & " ") & "'" End If End If
If Check3.Value = vbChecked Then If Trim(sql) = "" Then
sql = "读者类别='" & Trim(Combo1.Text & " ") & "'" Else
sql = sql & "and 读者类别='" & Trim(Combo1.Text & " ") & "'" End If End If
If Trim(sql) = "" Then
MsgBox "请选择查询方式!", vbOKOnly + vbExclamation Exit Sub End If
Adodc1.RecordSource = "select * from dzxx where " & sql Adodc1.Refresh DataGrid1.ReBind
DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False End Sub
Private Sub Command2_Click()
End Sub
Private Sub Form_Load() Dim i As Integer Dim sql As String Combo1.Clear
Adodc2.Recordset.MoveFirst
For i = 0 To Adodc2.Recordset.RecordCount - 1 Combo1.AddItem Adodc2.Recordset.Fields(0).Value Adodc2.Recordset.MoveNext Next
Combo1.ListIndex = 0 End Sub
窗体名:Form8 代码:
Private Sub Combo1_Change()
Combo2.ListIndex = Combo1.ListIndex End Sub
Private Sub Combo2_Change()
Combo1.ListIndex = Combo2.ListIndex End Sub
Option Explicit Dim leibie As String Dim qixian As Integer Dim shumn As Integer Dim maxnum As Integer
Private Sub Command1_Click()
Dim rs_borrowbook As New ADODB.Recordset Dim sql As String
Adodc1.RecordSource = "select * from 读者信息 where 读者编号='" & Combo1.Text & "," Adodc1.Refresh
leibie = Adodc1.Recordset.Fields(3) shumu = Adodc1.Recordset.Fields(8)
Adodc1.RecordSource = "select * from 读者类别 where 种类名称='" & leibie & "'" Adodc1.Refresh
qixian = Adodc1.Recordset.Fields(2) maxnum = Adodc1.Recordset.Fields(1) If shumu >= maxnum Then
MsgBox "该读者借书数额已满!", vbOKOnly + vbExclamation Exit Sub
Private Sub Command2_Click() Unload Me End Sub
Private Sub Form_Load() Dim i As Integer
Adodc2.RecordSource = "select * from 书籍信息 where 书籍编号='" & book_num & "'" Adodc2.Refresh
Label8.Caption = Adodc2.Recordset.Fields(0) Label9.Caption = Adodc2.Recordset.Fields(1) Label10.Caption = Adodc2.Recordset.Fields(2) Label11.Caption = Adodc2.Recordset.Fields(3) Label12.Caption = Adodc2.Recordset.Fields(4) Label13.Caption = Adodc2.Recordset.Fields(5) Label14.Caption = Adodc2.Recordset.Fields(6) Combo1.Clear Combo2.Clear
Adodc1.RecordSource = "select * from 读者信息" Adodc1.Refresh
Adodc1.Recordset.MoveFirst
For i = 0 To Adodc1.Recordset.RecordCount - 1 Combo1.AddItem Adodc1.Recordset.Fields(1).Value Combo2.AddItem Adodc1.Recordset.Fields(0).Value Adodc1.Recordset.MoveNext Next
Combo1.ListIndex = 0 Combo2.ListIndex = 0 End Sub
Private Sub Form_Unload(Cancel As Integer) Unload Me End Sub
窗体名:form9 代码:
Private Sub Command1_Click() Dim sql As String
If Option1.Value = True Then sql = "是否被借出='是'" End If
If Option2.Value = True Then sql = "是否被借出='否'"
Adodc1.RecordSource = "select * from sjxx where " & sql Adodc1.Refresh DataGrid1.ReBind
DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False End Sub
Private Sub Command2_Click() Unload Me End Sub
模块名:Module1 代码:
Option Explicit
Public conn As New ADODB.Connection Public select_menu As String Public userID As String Public userpow As String Public book_num As String
第八章 用户界面设计报告
8.1系统窗体汇总
8.2主界面设计
主界面如下图所示:
图14. 系统主界面设计样式
8.3子界面设计
除系统中主要的、基本的功能之外,子系统或非共享功能的实现均采用子界面的设计来实现,如图书管理、读者管理、图书借阅管理、系统管理等。
图书类别管理如下图所示:
图书信息管理如下图所示:
查询图书信息管理如下图所示:
读者类别管理如下图所示:
读者信息管理如下图所示:
查询读者信息管理如下图所示:
添加图书信息如下图:
查询借书信息如下图
:
添加还书信息如下图:
第九章 软件测试分析报告
9.1测试范围与主要内容
9.2测试方法
功能性测试:黑盒测试 逻辑检错性测试:白盒测试
结 束 语
1、认识体会:通过系统的在校学习和对外界的认识,我对软件开发的大致过程有了一些基本的了解,有了一些体会
程序没有最好,只有更好,程序没有十全十美,只有更完美;
在编程的过程中,会遇到各种各样的问题,优秀的编程大师正是在解决了遇到的这些问题而积累经验的成果,提升了编程能力和丰富了编程思维。
深入的体会:编程总会深入内部,深究根源。这时,笔者体会到要一次性地把程序做好是不可能的,一个程序只有不断地测试和修改才能减少错误,才能提高质量,才能做得更好,程序是在不断地壮大的。 编程需要有多方面的学科知识:因为编程的过程中会用到其他学科的知识,这要求我们在学习的过程中要不断的学习与编程有关的知识,,比如像数学、英语等。
编程需要严谨的思维。程序是一个逻辑产品,它存储在磁盘等物理介质中,它看不见,摸不着,它运行时一环接一环,一丝扣一丝,一旦出错,有可能导致难以预料的严重后果。而严谨的思维能使程序逻辑出错的可能性大大降低,也使程序易于维护。而且,保持严谨的思维总是一个好的习惯。
在学习的过程中,要学会应用网络上的知识,把它变为自己的知识,应用在实际中来解决问题。因为在网络上有各种各样的资源可以供你参考。
编程需要良好的编程习惯。好的编程习惯能给编程人员省去很多不必要的麻烦,有些编程人员就是因为习惯不好而被这些不必要的麻烦缠得焦头烂额、捶胸顿足的。良好的编程习惯还可以让编程人员保持良
好的编程心态和心情,也还能减少很多隐患,提高了代码的可信度和安全度,从而提高了程序的质量。
要成为一名编程大师,我们必须从以下方面来做:
(1)、从一门语言开始:初学编程,最忌讳的就是贪多。其实编程的道理都是相通的,通一则知百,但是知百却不一定能够通一!所以切记要“专心使用一门语言”,把它学透,以后则自然通一则知百!
(2)、学Why 不记How :学编程,重要的是学会Why(程序为什么这样做) ,而不是学习How(怎样编写) 。重要的是树立编程的思路,而不是编程的步骤。
2、感悟:
计算机技术浩瀚无边,需要我们学习的知识非常之多,比如像软件编程,就有Delphi 、C++、JAVA 、J2EE 、JSP 、VB 、VC 、等,我们不可能一一都学会,但是我们要选择有代表性的来学,比如JAVA 、J2EE 。就我所使用的Delphi 来说,我所使用的不过是它的很小的一方面,还有其他知识需要掌握,比如用它来做Web 网页等的知识我没有学过,但需要我们在学习的过程中不断地来学习。
所以我认为编程要不断地学习,不断地学习他人的新技术才能进步。而借鉴地学习他人的技术的同时也要不断地自己去探索。
参考文献
1. 《计算机软件产品开发文件编制指南》
2. 《管理信息系统与开发技术》 陈承欢 彭勇 主编. 人民邮电出
版社. 2006.1
3. 《工程应用软件开发技术》 唐任仲 编著. 化学工业出版社.
1999.5
4. 《Visual Basic 6.0 中文版 参考详解》 李怀明 等著. 清华
大学出版社. 1999.11
5. 《Visual Basic 6.0 高级编程技巧》 李善茂 等著. 电子工业
出版社. 1999.5
6. 《Visual Basic 6.0 中文版 提高与应用》 谭浩强 主编. 电
子工业出版社. 1999.11