摘 要
伴随国民经济的飞速发展和人民生活水平的不断提高,家用汽车在我国逐渐普及。面对不断增长的庞大的用户群,随之产生的驾驶培训行业,规模不断扩大。同时随着现代信息化的发展,人们不再满足于传统的低效的办公方式,迫切需要一种高效的方式代替传统的方式,以适应社会的发展。本文介绍了系统的开发过程:首先介绍了课题的提出及其意义,详细的对用户的需求进行了分析。然后根据实际需求情况进行总体结构设计,详尽的探讨了具体功能模块设计,具体代码的实现。最后涉及了系统测试和一些解决方案。
【关键字】 驾校培训 管理系统 数据库
第一章 概述
管理信息系统就是我们常说的MIS(Management Information System),是一个由人、计算机等组成的能进行信息的收集、传送、储存、维护和使用的系统,在强调管理,强调信息的现代社会中它越来越得到普及。MIS是一门新的学科,它跨越了若干个领域,比如管理科学、系统科学,运筹学、统计学以及计算机科学。在这些学科的基础上,形成信息收集和加工的方法,从而形成一个纵横交织的系统。
20世纪,随着全球经济的蓬勃发展,众多经济学家纷纷提出了新的管理理论。20世纪50年代,西蒙提出管理依赖于信息和决策的思想。同时期的维纳发表了控制论,他认为管理是一个控制过程。1958年,盖尔写到:“管理将以较低的成本得到及时准确的信息,做到较好的控制。”这个时期,计算机开始用于会计工作,出现数据处理一词。
1970年,Walter T.Kennevan给刚刚出现的管理信息系统一词下了一个定义:“以口头或书面的形式,在合适的时间向经理、职员以及外界人员提供过去的、现在的、预测未来的有关企业内部及其环境的信息,以帮助他们进行决策。”在这个定义里强调了用信息支持决策,但并没有强调应用模型,没有提到计算机的应用。
1985年,管理信息系统的创始人,明尼苏达大学的管理学教授Gordon B.Davis给了管理信息系统一个较完整的定义,即“管理信息系统是一个利用计算机软硬件资源,手工作业,分析、计划、控制和决策模型以及数据库的人-机系统。它能提供信息支持企业或组织的运行、管理和决策功能。”这个定义全面地说明了管理信息系统的目标、功能和组成,而且反映了管理信息系统在当时达到的水平。
随着科学技术的不断提高,计算机科学日渐成熟,计算机已经要成为我们学习和工作的得力助手。今天,计算机的价格已经十分低廉,性能却有了长足的进步,它以及被应用于许多的领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多的复杂的劳动。其次,计算机可以大大的提高人们的工作效率。第三,计算机可以节省许多资源。第四,计算机可以使敏感文档更加安全。
计算机的应用及普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作。这大大地阻碍了人类经济的发展。近年来,随着汽车的规模越来越大,学习驾驶技术也日益增多,随之而来的是驾校培训管理工作日趋复杂繁重,要耗费大量人力、物力,而现有手工的管理水平不高,一直以来人们使用传统人工的方式管理文件驾校信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。这样的机制已经不能适应时代的发展,已愈来愈成为驾校日常管理工作的一个瓶颈。在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。
作为计算机应用的一部分,使用计算机对驾校信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高驾校信息管理的效率,也是学校的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套管理软件成为很有必要的事情。
我作为跨世纪的一代学计算机的年轻人,希望在这方面有所贡献。改革的总设计师邓小平同志说过:科学技术是第一生产力。我希望能用所学的知识编制一个适用的程序来帮助学校进行更有效的驾校培训信息管理。
设计的思想是一切为用户着想,界面美观大方,操作尽量简单明了,而且作为一个实用的操作系统要有良好的容错性,在用户出现误操作时能尽量及时地给出警告,以便用户及时改正。要充分利用VB和SQLServer的功能,设计出功能强大的软件的同时,尽可能地减少对系统资源的占用。
在下面的各章中我们将以开发一套驾校培训信息管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。
第二章 开发语言和数据库
本管理系统采用的数据库是SQLServer 2000数据库,开发语言为Microsoft Visual Basic 6.0(简称VB6.0)。VB6.0作为前台的开发工具,用SQLServer 2000作为后台支持数据库,通过VB6.0的数据库控件来连接SQLServer 2000中并对其编程来实现各种功能。因为SQL Server 2000与Visual Basic有着很好的兼容性。
2.1 VB介绍
Visual Basic的前身是QBASIC,语言基础是BASIC。自从微软推出VB后,便成为了程序开发人员的首选工具。据统计,仅在数据库系统开发领域,VB就占了90%的份额。VB是基于对象的可视化程序开发工具,它的优点在于能够快捷、简易地建立Windows应用程序。1998年8月,微软推出了VB 6.0的版本,进一步加强了部件开发的功能。以适用人员来分,可有以下三个版本:
1. 标准版 针对一般程序设计人员,适合普通应用系统的开发。
2. 专业版 针对专业程序开发人员,它在标准版的基础上提供了对数据库和Internet的支持。
3. 企业版 适用于专为企业设计应用软件的程序开发人员。
使用VB不需要追求完美的算法和精密的逻辑,而只要充分发挥你的想象力和创造力,就能利用VB开发出各种实用的软件了,不论是小游戏还是大型的客户端/服务器端应用程序,都变得非常简单。
可视化编程的一个突出特点就是其开发环境就像一个百宝箱,很多功能都集成在其之中,这就是IDE(Integrated Development Environment),即集成开发环境。IDE是指在相应的开发平台中集成了编辑器、编译连接工具、控件器箱辅助工具。例如在VB的集成开发环境中就包括了以下一些主要元素:工具栏、工具箱、工程管理器窗口、属性窗口、窗体设计器、代码编辑器窗口等;和VB类似,Delphi的IDE中具有主控制窗体、对象查看窗口和窗体设计器。同时IDE的设置是很灵活的,开发人员可以按照自己的编程习惯来配置IDE。
从简单的文本文件到各种复杂的关系型数据库,数据库应用程序需要面对各种各样的数据源。Visual basic 6.0提供ADO(Active Data Objects)作为应用程序和OLE-DB连接的桥梁
ADO,即Active数据对象(Active Data Objects):实际是一种提供访问各种数据类型的连接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口相连。用户可以使用任何一种ODBC数据源,即不仅适合于SQL Server、Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。本系统就是用ADO对象来连接数据库的。下一节专门介绍ADO。
Microsoft在Visual Basic 6.0以后的版本都集成了ADO。它与以前Visual Basic的DAO、RDO相比有了很大的提高。DAO(Data Access Objects)即数据访问对象,是一种面向对象的界面接口。通过DAO/Jet功能可以访问ISAM数据库,使用DAO/ODBC Direct功能可以实现远程RDO功能。RDO(Remote Data Objects)即远程数据对象,为使用代码来创建和操作一个远程ODBC数据库系统的各个部件提供了一个框架。RDO是ODBC API的一个浅层界面接口,是专为访问远程ODBC关系数据源而设计的。
2.2 ADO对象
ADO是Microsoft公司关于各种类型数据的高等界面,后来逐渐演变成满足所有数据访问需要的完整解决办法。ADO的对象模型是所有数据访问接口对象模型中最简单的一种。Microsoft公司用来访问ADO数据的应用程序界面技术是OLE DB。OLE DB是一种底层编程接口,用来访问许多不同类型的数据源,其中包括消息、文件系统以及其他一些非传统的数据源。OLE DB是一个由Component Object Model(COM)接口组成的集合,用来隐藏创建数据访问服务过程中的细节。OLEDB提供了访问任何数据资源的方法,包括相互关联的数据库和相互不关联的数据库、Email和文件系统、文本和图形以及用户定义的数据对象。
以下是本程序中用到的对象:
Connection对象:通过“连接”可从应用程序访问数据源,连接是交换数据所必需的环境。对象模型使用Connection对象使连接概念得以具体。
Recordset对象:表示的是来自基本表或命令执行结果的记录全集。Recordset 对象可支持两类更新:立即更新和批更新。使用立即更新,一旦调用Update方法,对数据的所有更改将被立即写入基本数据源。也可以使用AddNew和Update方法将值的数组作为参数传递,同时更新记录的若干字段。
Field对象:代表使用普通数据类型的数据的列。Recordset对象含有由Field对象组成的Fields集合。每个Field对象对应于Recordset中的一列。使用Field对象的Value属性可设置或返回当前记录的数据。
以下是本程序中用到的方法:
AddNew方法:创建可更新Recordset对象的新记录。
MoveFirst、MoveLast、MoveNext 和MovePrevious方法:在指定 Recordset 对象中移动到第一个、最后一个、下一个或前一个记录并使该记录成为当前记录。
Open方法(ADO Connection):打开到数据源的连接。
Open方法(ADO Recordset):打开记录集。
Close方法:关闭打开的对象及任何相关对象。
Execute方法:执行指定的查询、SQL语句、存储过程或特定提供者的文本等内容。
2.3 数据库
SQL Server 是一个关系数据库管理系统它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的于1988 年推出了第一个OS/2 版本在Windows NT 推出后Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了Microsoft 将SQL Server 移植到Windows NT系统上专注于开发推广SQL Server 的Windows NT 版本Sybase 则较专注于SQL Server在UNIX 操作系统上的应用在本书中介绍的是Microsoft SQL Server 以后简称为SQL Server或MS SQL Server。
SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。
2.4 SQL语言
SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、 Sybase、 Microsoft SQL Server、 Access等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如"Select"、 "Insert"、 "Update"、 "Delete"、 "Create"和 "Drop"常常被用于完成绝大多数数据库的操作。MS SQL Server 就是用的Transact- SQL。SQL语言有着非常突出的优点,SQL语言是非过程化的语言、统一的语言、是所有关系数据库的公共语言。
非过程化语言:SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。
统一的语言:SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。
所有关系数据库的公共语言:由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用SQL编写的程序都是可以移植的。
SQL为许多任务提供了命令,其中包括:查询数据、在表中插入、修改和删除记录、建立、修改和删除数据对象、控制对数据和数据对象的存取、保证数据库一致性和完整性等。
以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。
SQL功能强大,是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据修改和更新,概括起来,它可以分成以下几组:
DML(Data Manipulation Language,数据操作语言):用于检索或者修改数据;
DDL(Data Definition Language,数据定义语言): 用于定义数据的结构,比如 创建、修改或者删除数据库对象;
DCL(Data Control Language,数据控制语言):用于定义数据库用户的权限。
DML组可以细分为以下的几个语句:
SELECT:用于检索数据;
INSERT:用于增加数据到数据库;
UPDATE:用于从数据库中修改现存的数据;
DELETE:用于从数据库中删除数据。
DDL语句可以用于创建用户和重建数据库对象。下面是DDL命令:
CREATE TABLE,ALTER TABLE,DROP TABLE,CREATE INDEX,DROP INDEX。
下面是一个简单SQL语句的例子:
我们使用SQL语句来从user_info中检索‘用户ID’为‘000001’的用户姓名:
SELECT 姓名 FROM user_info WHERE用户ID = ‘000001’
数据定义语言DDL:它是用来创建和修改数据库结构的一种语句,包括 Create、Alter和Drop 语句。数据操作语言DML:包括数据查询与数据更新。数据查询主要是由Select语句完成,这一点不再赘述。而数据更新所造成的风险大大超过数据查询。数据库管理系统必须在更改期内保护所存储的数据的一致性,确保有效的数据进入数据库,数据库必须保持一致性,DBMS还必须协调多用户的并行更新,以确保用户和它们的更改不至于影响其它用户的作业。
用于修改数据库内容的 SQL 语句主要有以下三个:
Insert,向一个表中加入新的数据行;
Update,更改数据库中已经存在的数据;
Delete,从一个表中删除数据行;
Insert标准语法:
INSERT INTO table_name (col1, col2...) VALUES(value1, value2...)。
Insert 语句还可以将多行数据添加到目标表中去,在这种形式的 Insert 语句中,新行的数据值不是在语句正文中明确地指定的,而是语句中指定的一个数据库查询。添加的值来自数据库自身的行,在某些特定的状态下,这是非常有用的。多行 Insert 语句为拷贝数据提供了一种紧凑而高效的方法。
Update语句用于更新单表中选定行的一列或多列的值。要更新的目标表在语句中定义,Set子句则指定要更新哪些列并计算它们的值。Update语句总是包含Where语句,而且Update语句比较危险,所以您必须明确地认识到Where语句的重要性,Where语句被用来指定需要更新的行。标准语法:
UPDATE table_name
SET columnname1 = value1
[, columname2 = value2]...
WHERE search_condition
Delete 语句标准语法:
DELETE FROM tablename WHERE condition
在信息管理系统中,我们往往会遇到归类、汇总、映射、索引、子查询等复杂操作,相应的支持与实现如下:
GROUP BY方法:
GROUP BY子句语法为:
SELECT column1, SUM(column2)
FROM "list-of-tables"
GROUP BY "column-list";
这个GROUP BY子句将集中所有的行在一起,它包含了指定列的数据以及允许合计函数来计算一个或者多个列。
组合条件和布尔运算符:
以下的SQL语句中就含有组合条件:
SELECT column1, SUM(column2)
FROM "list-of-tables"
WHERE "condition1" AND "condition2";
UNION子句:
有些时候,需要一起浏览多个查询的结果、组合它们的输出,我们可以使用UNION关键字。
第三章 系统设计
系统设计的目的是确定系统如何完成预定的任务,也就是确定系统的物理配置方案,并且进而确定组成系统的每个程序的结构。首先需要从数据流图出发,设想完成系统功能的若干种合理的物理方案,分析员应该仔细比较这些方案,并且和用户共同选定一个最佳方案,然后,进行软件结构设计,确定软件由哪些模块组成以及这些模块之间的动态调用关系。进行软件结构设计时应该遵循的最主要的原理是模块独立原理,也就是说:软件应该由一组完成相对独立的子功能模块组成,这些模块之间的接口关系应尽量简单。
自顶向下逐步求精是进行软件结构设计的常用途经,但是,如果已经有了详细的数据流图,也可以使用面向数据流的设计方法,用形式化的方法由数据流图映射出软件结构。
在进行详细的过程设计和编写程序之前,首先进行结构设计,其好处在于可以在软件开发的早期站在全局高度对软件结构进行优化,在这个时期进行优化付出的代价不高,却可以使软件质量得到重大改进。
3.1 系统功能设计
驾校培训管理系统是为了对驾校培训实行计算机化的管理,以提高工作效率,方便用户。主要功能有对学员信息、教练信息、教学信息等进行管理和检索,以及对系统自身的用户权限管理。提供多种信息的录入,比如学员信息资料、教练信息等。系统不但含有驾校培训中日常项目的信息,而且还包含了对信息的查询检索功能。用户权限主要任务是提高系统安全性和使用性,为系统提供良好的维护,如用户管理可以为用户提供权限服务。
该系统是基于SDI窗体,以VB连接SQLServer 2000数据库进行开发的驾校培训管理系统,力求与实际相结合具有驾校培训日常管理和检索等功能,旨在达到使驾校培训的管理数字化,使之更加方便快捷,以提高工作效率。
在功能上设计如下:
1、系统管理主要包括:
用户管理模块包括:为系统新用户设置用户名及口令和修改本管理员密码。
用户密码管理模块包括:用于非管理员用户更改自己的系统口令。
权限设置管理模块包括:各个功能权限的管理设置。
2、基本设置管理主要包括:
民族信息模块包括:显示添加修改删除保存。
报考类别模块包括:显示添加修改删除保存。
报名方式模块包括:显示添加修改删除保存。
记录类别模块包括: 显示添加修改删除保存。
3、信息管理主要包括:
教师信息模块包括:显示添加修改删除保存。
学员信息模块包括:显示添加修改删除保存。
教学安排模块包括:自动和手功安排操作。
教学管理模块包括:显示添加修改删除保存。
4、财务管理模块主要包括:
学费统计包括:按日期段来统计学费。
补考费统计包括: 按日期段来统计补考费。
5、查询统计信息管理主要包括:
教练信息检索包括:所有字段的查询,也包括模糊查询(like)和Excel输出。
学员信息检索包括:所有字段的查询,也包括模糊查询(like)和Excel输出。
教学信息检索包括:按编号的查询,可以各教学信息显示。
6、日期格式:采用YYYY-MM-DD格式,用日期控件来处理(TPDicker)。 |