0系统开发与维护技术文档 06418538005 赵利华

山西大学继续教育学院

毕 业 论 文

类 别 年 级 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


相关内容

  • 校园网设计方案
  • 校园网设计方案简介 前 言 当前,信息技术的发展给我们的教育.我们的学校.我们的教师和我们的孩子带来巨大的冲击,怎样响应这一世纪性的挑战,如何利用信息技术为教育行政管理.师资培训.学校管理.教学研究乃至教学的全过程服务,促进中华民族素质的整体提高,成为众多重视教育信息化的有识之士关注的焦点.构架在网 ...

  • 民营企业发展问题研究-工商管理
  • 摘 要 近年来,我国的民营企业呈现出了良好的发展势头,具有关资料统计,我国民营企业的产值已经占到GDP的三分之一,在有些地区,已超过50%,甚至达到70%-80%.很显然,民营经济将成为我国国民经济中一个新的经济增长点.但也存在着宏观经济政策环境不够配套.企业内部治理结构不够合理等诸多问题,影响着民 ...

  • 宝洁与联合利华渠道战略比较
  • 宝洁与联合利华渠道战略比较 传统渠道日落西山,单店产出不断减少,而商超等现代主流销售渠道的重要性却越来越突出,引发销售急剧向终端寡头集中,导致高效终端资源稀缺,这似乎意味着一个流通终端说话的时代的到来,对对日化企业来说,销售渠道变革,刻不容缓.作为日化行业的两大巨头,宝洁和联合利华的一举一动都为引起 ...

  • 深入分析典型企业的校园招聘流程--宝洁与联合利华公司对比分析
  • 金光集团 题目: 深入分析典型企业的校园招聘流程(宝洁与联合利 华的对比分析) 姓 名: 院 校: 专 业: 人力资源管理 邮 箱: 2013 年 3 月 25 日 目录 1公司简介........................................................... ...

  • 联合利华营销分析
  • 联合利华营销分析 一.公司概况 联合利华集团是由荷兰MargrineUnie人造奶油公司和英国Lever Brothers香皂公司于 1929年合并而成.总部设于荷兰鹿特丹和英国伦敦,分别负责食品及洗剂用品事业的经营.在全球75个国家设有庞大事业网络,拥有500家子公司,员工总数近30万人,是全球第 ...

  • 联合利华各部门简单介绍
  • 联合利华各部门简单介绍 1.市场部 2.客户发展部 3.产品制造部 4.物流和供应管理部 5.人力资源部 6.财务部 7.产品发展部 8.饮食策划部 市场部 市场部印象 市场部通过深入了解消费者的需求和心理,结合品牌定位与公司发展,将创造性的概念转化为优质的产品,并制定实施品牌传播与沟通策略.你需要 ...

  • 陈家港中心小学固定资产管理制度
  • 陈家港中心小学固定资产管理制度 为加强我校财产管理,明确经济责任.保证资产的安全完整.账实相符,防止固定资产流失,根据有关财经法规,结合我校实际.制定本制度.学校的固定资产一般分为房屋和建筑物.交通工具.通用设备.专用设备.图书.文物和陈列品.其他固定资产七类. (一).采购制度 1.采购物品必须有 ...

  • 宝洁竞争者分析
  • XXXXXXXX学院 营销策划实务课程设计 题 目 院 (系) 专业班级 学生姓名 学号 学生姓名 学号 学生姓名 学号 学生姓名 学号 学生姓名 学号 学生姓名 学号 指导教师 陈杰 年 月 日 前言 宝洁作为进入中国市场的日用消费品企业巨头之一,现如今已经在中国占领了一定的市场.从宝洁的发展历史 ...

  • 清扬与海飞丝
  • 清扬和海飞丝的营销战分析 2007年2月28日,随着联合利华十年潜心打造的"利剑"--清扬进入中国市场,一场去屑洗发水行业的营销战在中国市场打响.这场发生在联合利华的清扬和宝洁公司的海飞丝之间的营销战被称为"两个世家公子之间的争斗",其对中国洗发水市场产生了深 ...