万杰
03版本
绪 论
图书管理系统是典型的信息管理系统(MIS),是现代图书管理不可缺少的部分。对于大中型图书馆来说,利用计算机支持图书馆高效率完成劳动查询管理的日常事务;而记录是一项琐碎、复杂而又十分细致的工作,库存图书、借阅登记的工作量很大,一般不允许出错。但一直以来人们使用传统人工的方式管理文件信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
作为计算机应用的一部分,使用计算机对图书信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低。除此之外,还可以利用计算机对有图书信息进行统计,这些优点适应现代图书#管理
#要求,能够极大地提高图书管理的效率,也是正规化管理,与世界接轨的重要条件
开发本系统的目的就是开发一个功能实用,用户操作方便,简单明了的图书管理软件。目前市面上流行的图书管理软件不少,只需要一个操作方便,功能实用,能满足管理人员的管理及需求的系统,帮助管理人员提高工作效率。
第一章 管理信息系统概论 1.1 管理信息系统介绍
管理信息系统(MIS)是一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体。1985年,管理信息系统创始人,明尼苏达大学卡尔森管理学院的著名教授戴维斯(Gordon.B.Davis)给出了一个具有代表性的定义:“管理信息系统是一个利用计算机硬件和软件,手工作业、分析、
、控制和决策模型以及数据库的用户,机器系统。它能提供信息支持企业或组织的运行、管理和决策功能。”
随着网络技术的出现,管理信息系统又有了新的必恭必敬,基于网络的管理信息系统不断出现,管理信息系统的概念模型也发生了相应的变化,许多学者对管理信息系统给出了新的定义。例如劳顿认为:“管理信息系统是一个基于计算机的信息系统,它通
过收集、处理、存储和扩散信息,来支持组织的管理、决策、合作、控制、分析活动,并使之可视化。”
1.1.1管理信息系统的基本含义
1管理信息系统不是一个单纯的软件系统,而是一个人,机系统,由人和机器协同?
工作。管理信息系统在支持企业或组织的各项管理活动中,管理人员负责将基础数据及时地输入到计算机中,计算机则根据企业或组织中的各层管理人员的要求对基础数据进行加工处理,并将所得到的信息输出。计算机不断地与最终用户进行着信息的交换,但在对数据的加工处理过程中又需要人的适当干预。
2管理信息系统的管理过程就是对数据进行惧、存储、加工处理、传递,并产生信?
息的过程,因此数据是管理信息系统的灵魂。管理信息系统运用了数据库的技术,对基础数据进行统一规划、存储,供各层管理人员使用,从而实现了数据的一致和共享。
3管理信息系统可以解决企业或组织所面临的问题。例如,管理信息系统可以处理?
企业产生经营活动的全过程,可以解决组织中数据处理效率问题,也可以解决财务管理决策过程等。
1.1.2管理信息系统的基本功能
1数据处理功能 ?
数据处理是管理信息系统最基本的功能,它包括对各种类型数据的收集、加工处理、传递、存储等工作。
2实测功能 ?
通过对数据的加工处理,可以随时了解各部门的实际运行情况,如各生产车间今天生产的产品数量、销售部接受的订单等。
3预测功能 ?
通过运用一定的数学方法和预测模型,对过去的数据进行分析,就可能对未来可能发生的情况进行预测,为高级管理人员进行管理决策提供依据。
4控制功能 ?
通过信息的反馈可以对整个企业生产经营的各个部门、各个环节的运行情况进行监测、协调、控制,保证系统的正常运行。
5辅助决策功能 ?
通过对数据的加工处理,可以快速地获取对决策有影响的信息,从而为合理的配置企业的各项资源,做出最佳的决策提供科学的依据。
目前,管理信息系统的应用已经非常广泛,随着计算机技术、网络技术和通信技术的发展,管理信息系统的功能也日趋完善,并朝着智能化、网络化、集成化等方向发展。如办公自动化(OA)、电子商务(EC)、专家系统(ES)、计算机集成制造系统(CIMS)。
1.2 管理信息系统开发方法介绍
目前,常用的管理信息系统的开发方法有生命周期法、原型法和面对对象的开发方法。 在此仅对原型法和面对对象的开发方法进行简单的描述。 1.2.1原型法
原型法(Prototyping Method)是20世纪80年代发展起来的,旨在改变生命周期法的缺点的一种系统开发方法。
1原型法的基本思想 ?
首选根据用户的要求,由用户和开发者共同确定系统的基本要求和主要功能,利用系统快速生成工具,建立一个系统模型。再在此基础上与用户交流,将模型不断补充,修改完善,如此反复,最终直至用户和开发者都比较满意为止,就形成了一个相对稳定、较为理想的管理信息系统。
2原型法的开发过程 ?
采用原型法开发管理信息系统可以分为如下几个阶段:
a.确定用户的基本需求。由用户提出对新系统的基本要求,如功能、基本界面形式、所需的数据、应用范围、运行环境等,开发者根据这些信息估算出开发该系统所需的费用,并建立简明的系统模型。
b.开发初步的原型系统。系统开发人员根据用户的要求建立原型系统,但该系统只是一个初步的、不成熟的系统,从系统的工作效率上看也是不完善的。其主要目的是为了描述开发者所理解的用户的基本需求。
c.修改、评价原型系统。将建造好的原型系统交给用户,并投入试运行,用户将使用过程中发现的问题一一记录下来,并与开发人员进行交流。开发人员针对这些问题不断地对系统进行修改、扩充与完善,直至用户满意为止。
d.形成最终的管理信息。对用户满意的原型系统进行进一步的开发,不断补充、完善,最终形成一个适用的管理信息系统。
3原型法的优缺点 ?
原型法的优点是开发周期短,费用较少,同时可以较有效地避免因开发者和用户的认识隔阂所产生的失败,其缺点是系统的开发缺乏统一的规划和开发
,难以对系统的开发过程加以控制。
原型法一般适用于开发规模不大、不太复杂或需求经常发生变化的系统。
1.2.2面向对象的开发方法
面向对象(Object Oriented)的技术于20世纪80年兴起,随后广泛地应用于计算机技术的几乎所有领域。面向对象的技术中最重要的概念是对象。
面向对象是基于问题对象的自底向上的一种系统开发方法。在开发过程中,分析和
阶段独立于程序设计语言,信息系统模型设计好后,最终用具体的程序设计语言、数据库或硬件来实现。面向对象法最主要的特点是对对象为基础,对象是分析问题和解决问题的核心。
1面对对象法的开发过程 ?
面对对象法的开发过程一般分为四个阶段:
a.认识客观世界(如一个企业)中的对象以及行为,分别独立设计各个对象的实体。
b.分析对象之间的联系和相互之间所传递的信息,由此构造客观世界(企业)所对应的信息管理系统的模型。
c.由信息系统的模型转换成计算机软件系统的模型。
d.由计算机软件系统的模型再转化成一个现实系统。
2面向对象法的优缺点: ?
面向对象法的优点是便于帮助分析者、设计者和用户清楚地表达抽象概念,互相进行交流;交流特定的软件工具模块,直接地完成了从对象的描述到软件体系结构之间的转换,避免了其它的方法在开发过程的客观世界描述和软件结构不一致性和复杂性问题,便利系统开发简单、统一,开发周期短,费用低。
面向对象法的主要缺点与原型法一样,因此这种方法也不适用于开发大的、复杂的系统。
本系统在开发过程中具体是采用了原型法和面向对象两种方法相结合的开发思路,力求在开发过程中尽量吸收这两种方法的长处,而克服它们的短处。
第二章 图书管理系统分析 2.1 系统的主要功能
图书管理系统的主要任务是用计算机对各类书籍信息进行日常的管理,如查询、修改、增加、删除以及存储等,迅速准确地完成各种图书信息的统计记录和借阅工作,快速打印出借阅信息,针对系统服务对象的具体要求,设计了图书管理系统。
图书管理系统主要有以下几大功能:
可以对图书进行录入、管理、分类、删除;可以进行借阅记录管理;查询库存图书与废弃图书、登陆日志。
2.2 系统设计方法概要
本图书管理系统是采用面向对象的程序设计思想进行编制的,整个系统由若干个表单、类以及一个主菜单组成,由项目管理器统一管理全部程序的编写和调试。用户可以通过主菜单调用系统的各项功能。
面向对象设计不再是单纯的从代码的第一行一直编到最后一行,而是考虑如何创建类和对象,利用类和对象来简化程序设计,并提供代码的封装和可重用性,便于程序的维护与扩展。
所谓的对象是一种抽象的名称,用来对应实现世界存在的“东西”。一个窗口、一个按钮、一个菜单都可视为一个对象,而按钮对象、菜单对象、又会出现在窗口对象中,因此按钮对象、菜单对象便是窗口的组件之一。对象内部的数据是不能随意更改的,必须由外部向其传递信息,再由对象按其方法加以处理。用户无需知道其任何细节,操作是封闭的,对象之间能通过函数调用相互通信。
类可视为一个产品模具、一个模块。在面向对象设计中,类是对象的原型,是对象的制作器。类的概念是面向对象程序设计最重要的特征。所谓类,是指由数据结构及其相关操作所形成的集合,描述该类任一对象的共同的行为特征,是对一组性质相同的对象的程序描述,概括了对象的共同性质和数据。
面向对象设计的核心是类的设计。例如:可以定义一个“工资查询表单”类,该类中可以定义查询的姓名、年龄、工资等等信息,则以此类为原型可以设计出众多的“工资查询表单”类的对象实例,这些实体都具有类中所定义的特征。
设计的工资管理系统也是建立在一系列类基础之上的,其编程的思想是:先根据一定的需要创建一系列的子类,编制程序时,由这些类派生出相应的对象,所派生出的对象继承了其父类所有的功能,而且具有很好的封装性。每个表单都是由一定数量的对象按某一种方式组合在一起的,程序编制的核心是类的设计。 2.3 目标系统要求
目标系统应该达到以下要求:
时间经济性。优化逻辑设计与物理设计,使系统运行效率高,反映速度快;可靠性。能连续准确的处理业务,有较强的容错能力;可理解性。用户容易理解和使用该系统。可维护性和适应性;系统应易于修改、易于扩充、易于维护,能够适应业务不断发展变化的需要;可用性。目标系统功能齐全,能够完全满足业务需求;安全保密性。保证系统的物理安全、数据存储和存取的安全与保密、数据传输的安全与保密,做好使用人员的授权管理。
.4 系统平台的选择2
2.4.1操作系统
选择微软平台作为主导,一方面考虑目前微软的飞速发展,越来越多的企业在规划内部网络时,将微软平台作为首选方案;另一方面从技术角度来讲,微软平台上的应用无论是在开发上,还是在软件的部署上都非常容易,而且性能优越。本操作系统先择的是Windows XP、Windows server 2003。
2.4.2开发工具及其语言
目前的可用的设计技术在设计此类系统上的数据库技术已经非常成熟,可提供的开发工具也很多,例如:Visual C++ ,Visual Basic, PowerBuilder, Dephi, Visual FoxPro
等,它们都是很好的数据库开发工具,都是可视化开发工具,功能强大,开发容易,开发周期短,对于本任务都能够胜任。在此本人采用的是Dreamweaver,在用netbox进行封装。
2.5数据库的选择
2.5.1数据库介绍
所谓数据库(Database)就是指按一定组织方式存储在一起的,相互有关的若干个数据的结合,数据库管理系统(Database Management System)就是一种操纵和管理数据库的大型软件,简称DBMS,他们建立在操作系统的基础上,对数据库进行统一的管理和控制,其功能包括数据库定义,数据库管理,数据库建立和维护,于操作系统通信等。DBMS通常由数据字典,数据描述语言及其编译程序,数据操纵(查询)语言及其编译程序,数据库管理例行程序等部分组成。数据库是数据处理的主要工具,是管理信息系统(MIS)的核心部分。数据库系统是当今计算机信息系统的核心,是计算机技术和应用发展的关键。
2.5.2数据库系统的选择原则
1 数据库系统采用易于集成的,开放的技术。 ?
2产品质量优异,可靠性高,适于长期运行,能支持关键应用。 ?
3数据安全,保安型高。 ?
4能提供分布式数据库功能。 ?
5支持多种开发环境,软件开发容易。 ?
6扩充性和升级能力强。 ?
关系数据库是以关系模型为基础的数据库,是根据表、记录和字段之间的关系进行组织和访问的一种数据库,它通过若干个表(Table)来存取数据,并且通过关系(Relation)将这些表联系在一起,关系数据库提供了成为机构化查询语言(SQL)标准接口,该接口允许使用多种数据库工具和产品,关系数据库是目前最广泛应用的数据库。
本设计所采用的SQL Server 2000关系数据库管理系统是一种小型数据库管理系统,其具有友好的用户操作界面、可靠的数据管理方式、面向对象的操作理念,以及强大的网络支持。
第三章 系统功能模块设计 3.1 系统功能结构图
根据图书管理系统的实际需求,可以将图书管理系统划分为系统设置、图书管理、读者管理、图书借还、系统查询、排行榜6个部分各个部分的具体功能的系统功能结构图如图表1所示。
图书管理系统
系读图图系 统者书书统排设管管借查行置 理 理 还 询 榜
读读图图图图图读
管书者者书书图图书书书者理架类档档类书书档借借借员设型案案型借归案阅阅阅设置 管管管管阅 还 查查排排置 理 理 理 理 询 询 行行
榜 榜
图表 1系统功能结构图 3.1.1图书借阅系统完成用户的借书过程其数据流图如图表2所示。
图表 2借阅系统的数据流图
3.1.2还书系统完成图书的归还过程其数据流图如图表3所示。
图表 3归还系统的数据流图
3.1.3图书档案管理系统为用户提供图书档案信息其数据流图如图表4所示。
图表 4图书档案管理系统数据流图
3.1.4读者档案系统用于记录读者的详细信息其数据流图如图表5所示。
图表 5 读者档案系统图
3.2 系统流程图
图书管理系统的流程是用户先输入自己的帐号密码及系统显示的验证码进入系统如有一项不符合则不能进入系统,成功登陆系统后系统根剧登陆的帐号信息从数据库中的数据进行对比判断是读者还是管理员,如果是读者则能进行信息查询,及修改自己的相关信息,查询到自己所需要的图书就能通过管理员进行借阅图书、归还图书也是通过管理员完成的。如果不是读者而是管理员,那管理员可以进行相关信息的查询、添加删除图书及读者的所有信息、设置相应的权限、为图书更新排行榜的信息、以及完成读者的图书借阅与归还。图书管理系统的系统流程图如图表6所示。
登陆
系统
否
是否登陆
管理读者 判断身份 员
排行榜信息 图书信息 读者信息 图书归还 图书借阅 信息查询
图表 6 图书管理系统的流程图
第四章 系统详细设计 4.1 登陆界面设计
单击启动界面确定将出现如下对话框:
图表 7 用户登录界面
该界面为用户登陆界面,用户输入自己的用户名和密码就能成功登陆本系统,如果密码连续3次输错,用户身份没有被确认,系统讲自动关闭。该设计有助于维护系统的安全,防止非法登陆。
系统登录界面程序
sql = "select * from 用户表where user_ID='" & Trim(text1.Text) & "'"
rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic
If rs_login.EOF = True Then
MsgBox "没有这个用户,请重新输入~", vbOKOnly + vbExclamation, ""
text1.Text = ""
text1.SetFocus
Else
username = text1.Text
If Trim(rs_login.Fields(1)) = Trim(text2.Text) Then
Unload Me
frmMain.Show
Else
MsgBox "密码不正确,请重新输入~", vbOKOnly + vbExclamation, ""
text2.SetFocus
text2.Text = ""
End If
End If
End If
cnt = cnt + 1
If cnt = 3 Then
Unload Me
End If
End Sub
Private Sub Form_Load()
cnt = 0
End Sub
4.2主界面设计
用户登陆成功将进入如下系统主界面:
图表 8系统功能表
在主界面中将显示本系统的所有功能菜单,单击任一菜单将进入相应的功能窗口。
4.3其他功能模块设计
4.3.1图书管理模块的实现
要实现图书管理模块应首先点击图书管理主菜单如下:
图表 9图书馆里主菜单表
然后单击添加图书信息,其窗体如下:
图表 10添加图书信息表
该窗口的功能是为用户添加图书信息而设计的,用户可以通过本窗口把图书的详细资料添加到图书信息库中。
图书管理界面程序:
Option Explicit
Dim panduan As String
Private Sub Command1_Click()
Dim rs_findbook As New ADODB.Recordset Dim conn As New ADODB.Connection 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(Combo1.Text & " ") & "'"
Else
sql = sql & "and 类别='" & Trim(Combo1.Text & " ") & "'"
End If
End If
If Check3.Value = vbChecked 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 & "图书编号='" & 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
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
If Trim(sql) = "" Then
MsgBox "请选择查询方式!", vbOKOnly + vbExclamation
Exit Sub
End If
sql = "select * from 书籍信息 where " & sql rs_findbook.CursorLocation = adUseClient
rs_findbook.Open sql, conn, adOpenKeyset, adLockPessimistic DataGrid1.AllowAddNew = False
DataGrid1.AllowDelete = False
DataGrid1.AllowUpdate = False
If rs_findbook.RecordCount = 0 Then
MsgBox "查询不到该图书信息!", vbOKOnly + vbExclamation Else
Set DataGrid1.DataSource = rs_findbook
End If
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
Unload Me
frmborrowbook.Show
End Sub
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
book_num = DataGrid1.Columns(0).CellValue(DataGrid1.Bookmark)
panduan = DataGrid1.Columns(7).CellValue(DataGrid1.Bookmark)
End Sub
Private Sub Form_Load()
Dim rs_find As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim sql As String
sql = "select * from 图书类别"
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
rs_find.Open sql, conn, adOpenKeyset, adLockPessimistic
rs_find.MoveFirst
If Not rs_find.EOF Then
Do While Not rs_find.EOF
Combo1.AddItem rs_find.Fields(0)
rs_find.MoveNext
Loop
Combo1.ListIndex = 0
End If
rs_find.Close
End Sub
4.3.2读者信息管理模块的实现
点击读者管理主菜单如下:
图表 11读者信息管理表
然后单击添加读者信息,其窗口如下:
图表 12添加读者信息表
本窗口实现读者信息的添加,通过本窗口把读者的详细信息添加到读者信息库中,方便对读者的管理。
读者管理界面程序:
Private Sub Command1_Click()
Dim rs_findreader As New ADODB.Recordset Dim conn As New ADODB.Connection
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
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
If Trim(sql) = "" Then
MsgBox "请选择查询方式!", vbOKOnly + vbExclamation
Exit Sub
End If
sql = "select * from 读者信息 where " & sql rs_findreader.CursorLocation = adUseClient rs_findreader.Open sql, conn, adOpenKeyset, adLockPessimistic
DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False
DataGrid1.AllowUpdate = False If rs_findreader.RecordCount = 0 Then
MsgBox "查询不到该图书信息!", vbOKOnly + vbExclamation
Else
Set DataGrid1.DataSource = rs_findreader End If
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
Dim rs_find As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim sql As String
sql = "select * from 读者类别"
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
rs_find.Open sql, conn, adOpenKeyset, adLockPessimistic
rs_find.MoveFirst
If Not rs_find.EOF Then
Do While Not rs_find.EOF
Combo1.AddItem rs_find.Fields(0)
rs_find.MoveNext
Loop
Combo1.ListIndex = 0
End If
rs_find.Close
End Sub
4.3.3图书借阅管理模块的实现
要实现图书借阅管理模块应首先点击图书借阅管理主菜单如下:
图表 13借阅管理表
然后单击还书管理,其窗体如下:
图表 14 还书管理表
本窗口的功能是为实现还书管理而设计的,用户通过该界面可以有效的管理图书的归还情况。
4.3.4系统管理模块的实现
实现系统管理功能,点击系统管理主菜单如下:
图表 15 系统管理功能表
单击添加管理员,其窗口如下:
图表 16 添加管理员信息表
新用户可以通过本窗口实现注册和添加。 图书借阅管理程序:
借书管理界面:
Dim leibie As String '该读者的类别
Dim qixian As String '该读者借书的期限 Dim shumu As Integer '该读者已借书数量 Dim maxnum As Integer '该读者借书数量的限制
Private Sub Combo1_Click()
Combo2.ListIndex = Combo1.ListIndex End Sub
Private Sub Combo2_Click()
Combo1.ListIndex = Combo2.ListIndex End Sub
Private Sub Command1_Click()
Dim rs_borrowbook As New ADODB.Recordset
Dim sql As String
Dim conn As New ADODB.Connection
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
sql = "select * from 读者信息 where 读者编号='" & Combo1.Text & "'"
rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimistic
leibie = rs_borrowbook.Fields(3)
shumu = rs_borrowbook.Fields(8)
rs_borrowbook.Close
sql = "select * from 读者类别 where 种类名称='" & leibie & "'"
rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimistic
qixian = rs_borrowbook.Fields(2)
maxnum = rs_borrowbook.Fields(1)
rs_borrowbook.Close
If shumu >= maxnum Then
MsgBox "该读者借书数额已满!", vbOKOnly + vbExclamation
Exit Sub
End If
sql = "select * from 借阅信息"
rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimistic
rs_borrowbook.AddNew
rs_borrowbook.Fields(1) = Combo1.Text
rs_borrowbook.Fields(2) = Combo2.Text
rs_borrowbook.Fields(3) = Label8.Caption
rs_borrowbook.Fields(4) = Label9.Caption
rs_borrowbook.Fields(5) = Date
rs_borrowbook.Fields(6) = Date + qixian
rs_borrowbook.Update
rs_borrowbook.Close
sql = "select * from 书籍信息 where 图书编号='" & book_num & "'"
rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimistic
rs_borrowbook.Fields(7) = "是"
rs_borrowbook.Update
rs_borrowbook.Close
sql = "select * from 读者信息 where 读者编号='" & Combo1.Text & "'"
rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimistic
rs_borrowbook.Fields(8) = rs_borrowbook.Fields(8) + 1
rs_borrowbook.Update
rs_borrowbook.Close
MsgBox "本书借阅成功!", vbOKOnly + vbExclamation
Unload Me
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
Dim rs_borrow As New ADODB.Recordset
Dim rs_reader As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim sql As String
Dim sqlreader As String
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
sql = "select * from 书籍信息 where 图书编号='" & book_num & "'"
rs_borrow.Open sql, conn, adOpenKeyset, adLockPessimistic
Label8.Caption = rs_borrow.Fields(0)
Label9.Caption = rs_borrow.Fields(1)
Label10.Caption = rs_borrow.Fields(3)
Label11.Caption = rs_borrow.Fields(5)
Label12.Caption = rs_borrow.Fields(2)
Label13.Caption = rs_borrow.Fields(4)
Label14.Caption = rs_borrow.Fields(6)
sqlreader = "select * from 读者信息"
rs_reader.Open sqlreader, conn, adOpenKeyset, adLockPessimistic
If Not rs_reader.EOF Then
Do While Not rs_reader.EOF
Combo1.AddItem rs_reader.Fields(1)
Combo2.AddItem rs_reader.Fields(0)
rs_reader.MoveNext
Loop
Else
MsgBox "请先登记读者!", vbOKOnly + vbExclamation
Exit Sub
End If
rs_borrow.Close
rs_reader.Close
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
还书管理界面:
Private Sub Combo1_Click()
Combo2.ListIndex = Combo1.ListIndex End Sub
Private Sub Combo2_Click()
Combo1.ListIndex = Combo2.ListIndex End Sub
Private Sub Combo3_Click()
Combo4.ListIndex = Combo3.ListIndex End Sub
Private Sub Combo4_Click()
Combo3.ListIndex = Combo4.ListIndex End Sub
Private Sub Command1_Click()
Dim rs_reader As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim sql As String
findform = False
sql = "select * from 借阅信息 where 读者姓名 = '" & Combo2.Text & "'"
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
rs_reader.CursorLocation = adUseClient
rs_reader.Open sql, conn, adOpenKeyset, adLockPessimistic
Set DataGrid1.DataSource = rs_reader
DataGrid1.AllowAddNew = False
DataGrid1.AllowUpdate = False
DataGrid1.AllowDelete = False
End Sub
Private Sub Command2_Click()
Dim rs_book As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim sql As String
findform = False
sql = "select * from 借阅信息 where 书籍编号 = '" & Combo3.Text & "'"
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
rs_book.CursorLocation = adUseClient
rs_book.Open sql, conn, adOpenKeyset, adLockPessimistic
Set DataGrid1.DataSource = rs_book
DataGrid1.AllowAddNew = False
DataGrid1.AllowUpdate = False
DataGrid1.AllowDelete = False
End Sub
Private Sub Command3_Click()
Dim book_number As String
Dim reader_number As String
Dim answer As String
Dim rs_back As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim sql As String
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
book_number = DataGrid1.Columns(3).CellValue(DataGrid1.Bookmark)
reader_number = DataGrid1.Columns(1).CellValue(DataGrid1.Bookmark)
answer = MsgBox("确定要还这本书吗?", vbYesNo, "")
If answer = vbYes Then
sql = "select * from 借阅信息 where 书籍编号 = '" & book_number & "'" '删除这本书在"借阅信息"中的记录
rs_back.CursorLocation = adUseClient
rs_back.Open sql, conn, adOpenKeyset, adLockPessimistic
rs_back.Delete
rs_back.Update
rs_back.Close
sql = "select * from 书籍信息 where 图书编号 = '" & book_number & "'"
rs_back.CursorLocation = adUseClient
rs_back.Open sql, conn, adOpenKeyset, adLockPessimistic
rs_back.Fields(7) = "否"
rs_back.Update
rs_back.Close
sql = "select * from 读者信息 where 读者编号 = '" & reader_number & "'"
rs_back.CursorLocation = adUseClient
rs_back.Open sql, conn, adOpenKeyset, adLockPessimistic
rs_back.Fields(8) = rs_back.Fields(8) - 1
rs_back.Update
rs_back.Close
MsgBox "成功删除!", vbOKOnly + vbExclamation, ""
DataGrid1.AllowDelete = False
Else
Exit Sub
End If
If findform = True Then
Command1_Click
Else
Command2_Click
End If
End Sub
Private Sub Command4_Click()
Unload Me
End Sub
Private Sub Form_Load()
Dim rs_reader As New ADODB.Recordset Dim conn As New ADODB.Connection Dim rs_book As New ADODB.Recordset Dim sql As String
sql = "select * from [读者信息]" conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
rs_reader.CursorLocation = adUseClient rs_reader.Open sql, conn, adOpenKeyset, adLockPessimistic
If Not rs_reader.EOF Then
Do While Not rs_reader.EOF
Combo1.AddItem rs_reader.Fields(1)
Combo2.AddItem rs_reader.Fields(0)
rs_reader.MoveNext
Loop
End If
rs_reader.Close
sql = "select * from [借阅信息]" rs_book.CursorLocation = adUseClient rs_book.Open sql, conn, adOpenKeyset, adLockPessimistic
If Not rs_book.EOF Then
Do While Not rs_book.EOF
Combo3.AddItem rs_book.Fields(3)
Combo4.AddItem rs_book.Fields(4)
rs_book.MoveNext
Loop
End If
rs_book.Close
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
#系统管理员管理程序:
添加管理员:
Private Sub Command1_Click()
Dim sql As String
Dim rs_add As New ADODB.Recordset
Dim conn As New ADODB.Connection
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
If Trim(Text1.Text) = "" Then
MsgBox "用户名不能为空,请输入~", vbOKOnly + vbExclamation, ""
Text1.SetFocus
Else
sql = "select * from 用户表"
rs_add.Open sql, conn, adOpenKeyset, adLockPessimistic
While (rs_add.EOF = False)
If Trim(rs_add.Fields(0)) = Trim(Text1.Text) Then
MsgBox "已有这个用户", vbOKOnly + vbExclamation, ""
Text1.SetFocus
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Exit Sub
Else
rs_add.MoveNext
End If
Wend
If Trim(Text2.Text) <> Trim(Text3.Text) Then
MsgBox "两次密码不一致", vbOKOnly + vbExclamation, ""
Text2.SetFocus
Text2.Text = ""
Text3.Text = ""
Exit Sub
Else
rs_add.AddNew
rs_add.Fields(0) = Text1.Text
rs_add.Fields(1) = Text2.Text
rs_add.Update
MsgBox "添加用户成功!", vbOKOnly + vbExclamation, ""
Me.Hide
End If
End If
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
更改密码:
Private Sub Command1_Click()
Dim conn As New ADODB.Connection
Dim rs_mima As New ADODB.Recordset Dim sql As String
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
If Trim(Text1.Text) <> Trim(Text2.Text) Then
MsgBox "密码不一致~", vbOKOnly + vbExclamation, ""
Text1.SetFocus
Text1.Text = ""
Text2.Text = ""
Exit Sub
Else
sql = "select * from 用户表 where user_ID='" & username & "'"
rs_mima.Open sql, conn, adOpenKeyset, adLockPessimistic
rs_mima.Fields(1) = Text1.Text
rs_mima.Update
MsgBox "密码修改成功", vbOKOnly + vbExclamation, ""
Unload Me
End If
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
4.3.5系统维护模块的实现
系统维护模块主菜单如下:
图表 17系统维护表
单击数据备份按钮,其实现窗口如下:
图表 18系统数据备份表
图书借阅管理程序:
借书管理界面:
Dim leibie As String '该读者的类别 Dim qixian As String '该读者借书的期限 Dim shumu As Integer '该读者已借书数量 Dim maxnum As Integer '该读者借书数量的限制
Private Sub Combo1_Click()
Combo2.ListIndex = Combo1.ListIndex End Sub
Private Sub Combo2_Click()
Combo1.ListIndex = Combo2.ListIndex End Sub
Private Sub Command1_Click()
Dim rs_borrowbook As New ADODB.Recordset
Dim sql As String
Dim conn As New ADODB.Connection
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
sql = "select * from 读者信息 where 读者编号='" & Combo1.Text & "'"
rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimistic
leibie = rs_borrowbook.Fields(3)
shumu = rs_borrowbook.Fields(8)
rs_borrowbook.Close
sql = "select * from 读者类别 where 种类名称='" & leibie & "'"
rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimistic
qixian = rs_borrowbook.Fields(2)
maxnum = rs_borrowbook.Fields(1)
rs_borrowbook.Close
If shumu >= maxnum Then
MsgBox "该读者借书数额已满!", vbOKOnly + vbExclamation
Exit Sub
End If
sql = "select * from 借阅信息"
rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimistic
rs_borrowbook.AddNew
rs_borrowbook.Fields(1) = Combo1.Text
rs_borrowbook.Fields(2) = Combo2.Text
rs_borrowbook.Fields(3) = Label8.Caption
rs_borrowbook.Fields(4) = Label9.Caption
rs_borrowbook.Fields(5) = Date
rs_borrowbook.Fields(6) = Date + qixian
rs_borrowbook.Update
rs_borrowbook.Close
sql = "select * from 书籍信息 where 图书编号='" & book_num & "'"
rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimistic
rs_borrowbook.Fields(7) = "是"
rs_borrowbook.Update
rs_borrowbook.Close
sql = "select * from 读者信息 where 读者编号='" & Combo1.Text & "'"
rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimistic
rs_borrowbook.Fields(8) = rs_borrowbook.Fields(8) + 1
rs_borrowbook.Update
rs_borrowbook.Close
MsgBox "本书借阅成功!", vbOKOnly + vbExclamation
Unload Me
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
Dim rs_borrow As New ADODB.Recordset
Dim rs_reader As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim sql As String
Dim sqlreader As String
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
sql = "select * from 书籍信息 where 图书编号='" & book_num & "'"
rs_borrow.Open sql, conn, adOpenKeyset, adLockPessimistic
Label8.Caption = rs_borrow.Fields(0)
Label9.Caption = rs_borrow.Fields(1)
Label10.Caption = rs_borrow.Fields(3)
Label11.Caption = rs_borrow.Fields(5)
Label12.Caption = rs_borrow.Fields(2)
Label13.Caption = rs_borrow.Fields(4)
Label14.Caption = rs_borrow.Fields(6)
sqlreader = "select * from 读者信息"
rs_reader.Open sqlreader, conn, adOpenKeyset, adLockPessimistic
If Not rs_reader.EOF Then
Do While Not rs_reader.EOF
Combo1.AddItem rs_reader.Fields(1)
Combo2.AddItem rs_reader.Fields(0)
rs_reader.MoveNext
Loop
Else
MsgBox "请先登记读者!", vbOKOnly + vbExclamation
Exit Sub
End If
rs_borrow.Close
rs_reader.Close
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
还书管理界面:
Private Sub Combo1_Click()
Combo2.ListIndex = Combo1.ListIndex End Sub
Private Sub Combo2_Click()
Combo1.ListIndex = Combo2.ListIndex End Sub
Private Sub Combo3_Click()
Combo4.ListIndex = Combo3.ListIndex End Sub
Private Sub Combo4_Click()
Combo3.ListIndex = Combo4.ListIndex End Sub
Private Sub Command1_Click()
Dim rs_reader As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim sql As String
findform = False
sql = "select * from 借阅信息 where 读者姓名 = '" & Combo2.Text & "'"
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
rs_reader.CursorLocation = adUseClient
rs_reader.Open sql, conn, adOpenKeyset, adLockPessimistic
Set DataGrid1.DataSource = rs_reader
DataGrid1.AllowAddNew = False
DataGrid1.AllowUpdate = False
DataGrid1.AllowDelete = False
End Sub
Private Sub Command2_Click()
Dim rs_book As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim sql As String
findform = False
sql = "select * from 借阅信息 where 书籍编号 = '" & Combo3.Text & "'"
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
rs_book.CursorLocation = adUseClient
rs_book.Open sql, conn, adOpenKeyset, adLockPessimistic
Set DataGrid1.DataSource = rs_book
DataGrid1.AllowAddNew = False
DataGrid1.AllowUpdate = False
DataGrid1.AllowDelete = False
End Sub
Private Sub Command3_Click()
Dim book_number As String
Dim reader_number As String
Dim answer As String
Dim rs_back As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim sql As String
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
book_number = DataGrid1.Columns(3).CellValue(DataGrid1.Bookmark)
reader_number = DataGrid1.Columns(1).CellValue(DataGrid1.Bookmark)
answer = MsgBox("确定要还这本书吗?", vbYesNo, "")
If answer = vbYes Then
sql = "select * from 借阅信息 where 书籍编号 = '" & book_number & "'" '删除这本书在"借阅信息"中的记录
rs_back.CursorLocation = adUseClient
rs_back.Open sql, conn, adOpenKeyset, adLockPessimistic
rs_back.Delete
rs_back.Update
rs_back.Close
sql = "select * from 书籍信息 where 图书编号 = '" & book_number & "'"
rs_back.CursorLocation = adUseClient
rs_back.Open sql, conn, adOpenKeyset, adLockPessimistic
rs_back.Fields(7) = "否"
rs_back.Update
rs_back.Close
sql = "select * from 读者信息 where 读者编号 = '" & reader_number & "'"
rs_back.CursorLocation = adUseClient
rs_back.Open sql, conn, adOpenKeyset, adLockPessimistic
rs_back.Fields(8) = rs_back.Fields(8) - 1
rs_back.Update
rs_back.Close
MsgBox "成功删除!", vbOKOnly + vbExclamation, ""
DataGrid1.AllowDelete = False
Else
Exit Sub
End If
If findform = True Then
Command1_Click
Else
Command2_Click
End If
End Sub
Private Sub Command4_Click()
Unload Me
End Sub
Private Sub Form_Load()
Dim rs_reader As New ADODB.Recordset Dim conn As New ADODB.Connection Dim rs_book As New ADODB.Recordset Dim sql As String
sql = "select * from [读者信息]" conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
rs_reader.CursorLocation = adUseClient rs_reader.Open sql, conn, adOpenKeyset, adLockPessimistic
If Not rs_reader.EOF Then
Do While Not rs_reader.EOF
Combo1.AddItem rs_reader.Fields(1)
Combo2.AddItem rs_reader.Fields(0)
rs_reader.MoveNext
Loop
End If
rs_reader.Close
sql = "select * from [借阅信息]" rs_book.CursorLocation = adUseClient rs_book.Open sql, conn, adOpenKeyset, adLockPessimistic
If Not rs_book.EOF Then
Do While Not rs_book.EOF
Combo3.AddItem rs_book.Fields(3)
Combo4.AddItem rs_book.Fields(4)
rs_book.MoveNext
Loop
End If
rs_book.Close
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
#系统管理员管理程序:
添加管理员:
Private Sub Command1_Click()
Dim sql As String
Dim rs_add As New ADODB.Recordset
Dim conn As New ADODB.Connection
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
If Trim(Text1.Text) = "" Then
MsgBox "用户名不能为空,请输入~", vbOKOnly + vbExclamation, ""
Text1.SetFocus
Else
sql = "select * from 用户表"
rs_add.Open sql, conn, adOpenKeyset, adLockPessimistic
While (rs_add.EOF = False)
If Trim(rs_add.Fields(0)) = Trim(Text1.Text) Then
MsgBox "已有这个用户", vbOKOnly + vbExclamation, ""
Text1.SetFocus
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Exit Sub
Else
rs_add.MoveNext
End If
Wend
If Trim(Text2.Text) <> Trim(Text3.Text) Then
MsgBox "两次密码不一致", vbOKOnly + vbExclamation, ""
Text2.SetFocus
Text2.Text = ""
Text3.Text = ""
Exit Sub
Else
rs_add.AddNew
rs_add.Fields(0) = Text1.Text
rs_add.Fields(1) = Text2.Text
rs_add.Update
MsgBox "添加用户成功!", vbOKOnly + vbExclamation, ""
Me.Hide
End If
End If
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
更改密码:
Private Sub Command1_Click()
Dim conn As New ADODB.Connection Dim rs_mima As New ADODB.Recordset Dim sql As String
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path &
"\database.mdb"
If Trim(Text1.Text) <> Trim(Text2.Text) Then
MsgBox "密码不一致~", vbOKOnly + vbExclamation, ""
Text1.SetFocus
Text1.Text = ""
Text2.Text = ""
Exit Sub
Else
sql = "select * from 用户表 where user_ID='" & username & "'"
rs_mima.Open sql, conn, adOpenKeyset, adLockPessimistic
rs_mima.Fields(1) = Text1.Text
rs_mima.Update
MsgBox "密码修改成功", vbOKOnly + vbExclamation, ""
Unload Me
End If
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
第五章 系统性能测试与分析 5.1 系统开发环境
系统开发环境包括硬件平台和软件平台两种。
硬件平台是指开发与运行所需要的硬件环境,主要包括计算机机型及硬件配置。由于本系统是一个小型的MIS管理系统,因此对计算机硬件的要求不高,比较经济,只要配备有奔腾四代赛扬处理器2.0GHZ(或以上)、DDR256M内存(或以上)、40G硬盘(或以上)的普通微机即可顺利运行。
软件平台是指系统开发与运行的软件环境。本系统在开发时选用了稳定性较强的Windows server 2003数据中心版和Dreamweaver CS3作为开发语言,同时选用了SQL Server 2000数据库。
Dreamweaver CS3具有可视化的开发环境,可以快速完成系统的开发,也可以制作网站,内部集成的数据库访问通道,使得可以轻松方便的对数据库管理。
本系统在单机上运行,如有需要,也可以在网络上以网站形式运行。
5.2 系统测试
在MIS开发过程中采用了多种措施保证软件质量,但是实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,不经周密测试的系统投入运行,将会造成难以想象的后果,因此系统测试是MIS开发过程中为保证软件质量必须进行的工作。大量统计资料表明,系统测试的工作量往往占MIS开发总工作量的40%以上。因此,我们必须重视测试工作。
由于程序中隐藏的缺陷只在特定的环境下才有可靠显露,系统缺陷通常是由于对某些特定情况考虑不周造成的。因此测试不是为了表明程序正确;成功的测试也不是没有发现错误的测试。有意义的软件测试应该是从“破坏”软件系统的角度出发,精心设计最有可以暴露程序系统缺陷的测试方案。因此软件测试的目标应该是以尽可能少的代价
和时间找出软件系统中潜在的错误和缺陷。
从产品角度看,测试计划中的测试项目包括软件结构中的分系统层、子系统层、功能模块层、程序模块层中的各类模块,从测试本身看,分为单元测试,组合测试,确认测试等。测试对象是随阶段而异的,最基本、最初的测试是单元测试,后面的组合测试、确认测试都是以被测过的模块作为测试对象的。
5.2.1 单元测试:
单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的,验证模块接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结构进行对照,还要对所有错误处理路径进行测试。对源码进行审查,对照设计说明书,表态地检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作工。单元测试一般是由程序员完成,也称程序调试。
5.2.2 组合测试
组合测试也称集成测试或子系统测试,通常采用自顶向下测试和自底向上测试两种测试方法。组合测试的对象是指已经通过单元测试的模块,不是对零散模块进行单个测试,而是用系统化的方法装配和测试软件系统,是一个严格的过程,必须认真地进行,其计划的产生和单元模块测试的完成日期要协调起来,这种测试应在系统目标机上进行,造成系统应用的环境条件,除了开发部分项目负责人参加以外,还应该有相应系统
的用户参加,给评审员进行演示。
6.2.3 确认测试
确认测试是对通过组合测试的软件进行的,这些软件已经存于系统目标设备的介质上,确认测试的目的是对表明软件是可以工作的,并且符合“软件需求说明书”中规定的全部功能和性能要求。确认测试是按照这些要求定出的“确认测试计划”进行的。测试工作是由一个独立的组织进行,而且测试要从用户的角度出发。 5.2.4 系统测试
系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题以及检测系统是否达到用户的实际要求,系统测试的依据是系统分析报告。系统测试应在系统的整个范围内进行,这种测试不只对软件进行,而是对构成系统的硬、软件一起进行。系统测试与建构同时进行或略慢。系统测试需要确认从头到尾的功能正常才算完成,应当尽量避免系统测试延到项目末尾进行.
5.2.5 用户验收测试
在系统测试完成后,进行用户的验收测试,它是用户在实际应用环境中所进行的真实数据测试。
在具体的测试中,一般应遵循以下原则:由程序设计者之外的人进行测试;测试用例应由两部分组成:输入数据和预期输出结果;应选用不合理的输入数据与非法输入测试;不仅要检验程序是否实现预期功能,还应检查程序是否做了不应该做的工作;集中测试容易出错的程序模块;对程序修改以后,必须重新进行测试。
一般来说,对程序测试有两种测试方法:如果已经知道了软件系统应具有的功能,可通过测试来难每个功能是否都能正常使用;如果知道程序的内部工作过程,可以通过
测试来检测程序内部是否按照规格说明书的规定正常进行。前一种方法称为黑盒测试,后一种方法称为白盒测试。黑盒测试又称为功能测试,白盒测试又称为结构测试。
在开发本系统时,为了使系统能够稳定运行,对本系统进行了有针对性的全面测试,采取的方式是:
1菜单项测试:为了保证每一项下拉菜单能够正确实现系统设计的功能,我把相?
关的基础数据,基本上全部输入到本系统中,并对每一个菜单项反复进行了增加、删除、修改等操作,从而保证了菜单级功能的正确实现。
2数据跟踪:完成菜单项测试后,我又对系统内的每一个数据进行了跟踪。例如:?
在成绩管理模块中,我首先对考试类型进行设定,然后在成绩添加模块中进行数据操作,随时观察这两个模块之间是否有冲突产生,配合得是否正确,再然后在成绩浏览模块中进行验证,说明该功能完全正常,对其它的功能模块也进行了类似的设置。
3综合测试:在以上测试的基础上对系统功能进行了整体的测试,依次来检验系?
统功能是否符合系统设计的要求。
5.3系统运行与维护
.3.1系统的运行 5
1初始数据的输入 ?
本系统的输入采用鼠标和键盘相结合的输入方法。
2怎样使用本系统: ?
本系统的使用相应简单,基本上只要会使用Windows软件就会使用本系统,在具体的操作时,只需点击鼠标左键即可进行相应功能的选择。 5.3.2系统的维护
本系统是个较复杂的人-机系统,由于系统外部环境与内部因素的变化,不断影响系统的运行,同时需要系统不断地适应这些变化,不断地完善系统,以提高系统运行的效率与服务水平,这就需要自始至终进行系统的维护工作。
系统的维护主要包括四个方面:
1程序的维护:指的是修改部分或全部程序,这种维护往往是在条件发生变化或?
原系统的效率低的情况下进行的。
2数据文件的维护:指的是按照用户的要求对数据文件进行不定期的修改。?
3代码的维护:随着系统的发展和变化,可能会出现旧代码不能适应新要求的问?
题,因此,有必要变更代码,予以维护。
4硬件的维护:指的是对系统所使用的设备进行维护。 ?
结 束 语
通过这次毕业设计,使我受到了一次用专业知识、专业技能分析和解决问题的全面系统的锻炼。使我在综合知识的选用方面,在应用软件开发的基本思想、方法方面,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步。
在这次的毕业设计中,让我深深地体现到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的分析问题、解
决问题的能力,而我在很多方面还有欠缺。我会在以后工作的使用过程中,根据工作的具体要求不断的修改,完善,争取使该系统慢慢趋向完美。
致 谢
我要衷心感谢刘明老师在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的毕业设计。同时,也要感谢我的老师和同学们在本系统的设计过程中给予我的支持和帮助。
签名:
日 期: 年 月 日
参考文献
[1]萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2006.5. [2]耿骞,韩圣龙,傅湘玲.信息系统分析与设计[M].北京:高等教育出版社,2008.1.
[3]韩阳,张宏宇.C#数据库系统开发案例[M].北京:人民邮电出版社,2007.6.
[4]徐人凤.SQL Server 2000数据库及应用[M].北京:高等教育出版社,2004.1.
[5]黄明,梁旭.Visual Basic 6.0信息系统设计与开发实例[M] .北京:机械工业出版社, 2004.
[6]刘慧宁.SQL SERVER 2000开发与应用[M].北京:机械工业出版社,2003.7.
[7]张宏宇.SQL Server数据库开发经典案例解析[M].北京:清华大学出版社,2006.
[8]徐成敖.C#专业项目实例开发[M].北京:中国水利水电出版社,2007.1. [9]闫华文.SQL Server2000与ASP Web数据库编程技术[M].北京:北京大学出版社,2001.4.
[10]张基温,王一平.信息系统开发案例[M].北京:清华大学出版社,2005. [11]李兰友,杨晓光.Visual C#.NET程序设计[M] .北京:清华大学 北方交通大学出版
社,2004.