Bootstrap

驾校管理系统设计与实现

  

第一章 绪论

§1.1论文背景

§1.2研究目的

§1.3国内驾校管理现状

第二章 可行性分析及相关技术原理

§2.1经济可行性

§2.2技术可行性

§2.3社会可行性

§2.4系统开发工具

§2.5系统开发模式

§2.6总体设计原则

第三章 需求分析

§3.1概述

3.1.1编写目的

3.1.2术语定义

§3.2任务概述

3.2.1开发目标

3.2.2用户特点

3.2.3假定与约束

§3.3功能需求

3.3.1员工管理

3.3.2权限管理

3.3.3学员管理

3.3.4考试管理

3.3.5财务管理

§3.4性能需求

3.4.1时间要求

3.4.2实用性要求

3.4.3信息要求

3.4.4安全性要求

3.4.5可维护性

§3.5运行环境

3.5.1硬件环境

3.5.2软件环境

3.5.3接口

3.5.4控制

§3.6业务流程

§3.7系统层次方框图

§3.8数据流图

3.8.1顶层流图

3.8.2  0层流图

§3.9数据字典

第四章 系统设计

§4.1设计思路

§4.2设计实现

4.2.1系统定位

4.2.2数据来源

§4.3总体功能设计

4.3.1系统管理

4.3.2学员管理

4.3.3考试管理

4.3.4财务管理

§4.4概念结构设计

4.4.1系统全局实体图

4.4.2系统各实体图

§4.5逻辑结构设计

4.5.1逻辑设计规范

4.5.2逻辑结构表

第五章 系统实现与测试

§5.1登陆实现

5.1.1登陆界面

5.1.2登陆流程

§5.2登陆首页

§5.3员工管理设计

§5.4权限管理

§5.5报名登记

§5.6学院管理设计

§5.7录入考试信息设计

§5.8录入考试信息设计

§5.9财务收支设计实现

§5.10数据库连接池

§5.11系统测试

5.11.1软件测试的重要性

5.11.2测试实例的研究与选择

5.11.3测试环境与测试条件

5.11.4系统运行情况

5.11.5系统评价

5.11.6系统测试结果

第六章 总结与展望

§6.1总结

§6.2展望

致  谢

参考文献

第一章 绪论

§1.1论文背景

随着计算机产业的迅速发展,电子计算机已广泛的应用于信息管理、文字处理、辅助设计、辅助教学及人们的日常生活中。驾校信息管理系统主要是针对驾校涉及驾校信息的一系列相关工作的管理,本系统的建立使驾校信息的管理更加规范化、系统化,查询手段更加便捷化。同时,驾校信息管理系统也是实现驾校信息管理现代化和信息化的重要内容。

近年来,随着驾校考生数量的逐渐增加,人工书写数据已经不能够处理如此庞大的数据。为了更好的适应信息时代的高效性,一个利用计算机来实现驾校信息管理工作的系统将必然诞生。基于这一点,设计了一个驾校信息管理系统,用来就驾校信息进行管理,以便在最短的时间内,高效准确的完成整个驾校信息管理过程。

基于对上述的认识,收集相关资料和数据,查阅有关文献及技术参数,对驾校的实际需求等方面进行了调研,发现目前所采用的手工记录的方法进行管理存在以下几个方面的弊端:对象范围广,数据存储不易;填写的数据多,每个考生所填写的内容相当复杂,且大量数据重复;不易存档,成千上万的信息和堆积如山的单据对管理人员来说是一个负担,需要大量的文档资料。鉴于以上种种原因,驾校信息的管理急需一种软件来代替手工操作来管理数据资料。

计算机技术在现代管理中的应用,使计算机成为领导者和管理人员应用现代技术的重要工具。计算机辅助驾校管理活动,可以极大地增强管理者采集、处理信息的能力,从而有利于管理者及时决策。计算机系统能根据管理过程的变化情况,将原始数据、资料等进行加工、保存,管理人员可以在解决具体问题需要信息资料时,随时进行检索查询,了解整个驾校信息管理系统的动态情况,进行动态管理,从而有效的处理驾校信息的管理工作,实现对驾校信息信息管理的自动化,提高办学效率。

§1.2研究目的

驾校信息管理系统的开发目的是使驾校的管理模式从手工记录转变成信息管理,为驾校管理人员提供方便条件。对驾校的实际情况进行调研之后,进行详细的需求分析,对现有的管理模式进行改进,开发出一套新型的管理系统,从中领悟系统开发的思想,掌握系统开发的流程和方法,提高自己的实际分析动手能力,包括站在用户的角度考虑问题、解决问题等。随着驾校信息系统的不断完善,驾校的管理将越来越依赖于信息化的管理。所以系统开发将围绕驾校的实际情况,使之能迅速适应驾校信息管理的需要。

驾校信息管理系统的实施的现实意义:减少管理驾校的工作人员;管理人员可以随时浏览查看,而且更加直观;改变了以前手工记录的方式,电脑录入更加方便快捷;实现了驾校管理的计算机化。

§1.3国内驾校管理现状

伴随国民经济的飞速发展和人民生活水平的不断提高,家用汽车在我国逐渐普及。面对不断增长的庞大的用户群,随之产生的驾驶培训行业,规模不断扩大。虽然交通部门规范了营运驾驶员从业资格的管理,加大了对从事道路运输经营活动驾驶员的培训管理力度,但在实际的管理过程中,仍然存在以下问题:

(1)管理部门内部人员在实际管理过程中存在人情管理,不进行培训、考试直接进行发证。

(2)从业驾驶员培训机构不能严格执行管理部门的大纲及学时规定,减少培训课时。

(3)在考试过程中出现代考、代答现象。

(4)学员的纸质档案管理,查询难、易丢失。

同时随着现代信息化的发展,人们不再满足于传统的低效的办公方式,迫切需要一种高效的方式代替传统的方式,以适应社会的发展。

§1.4论文主要工作

(1)获取需求:根据所掌握的需求资料,分析总结和提取需求,按照软件工程学的方法,编写需求规格说明书。

(2)绘制系统层次方框图和数据流图:绘制三层数据流图:0层数据流图,顶层数据流图,1级数据流图。

(3)编写数据字典:参考数据流图,编写与数据流图相匹配的数据字典。

(4)概念结构设计:画出系统的全局E-R图和各实体的详细实体E-R图。

(5)逻辑和物理结构设计:分析各实体的关系数据模型,创建表字段和索引等。

(6)编码:分析和归纳每个模块的主要设计思想和核心代码。

(7)测试:安排合理的测试用例,对每个模块进行测试,然后编写使用说明。

§1.5论文安排

     论文编写的主要章节以及相应的概述如下图1-1

图1.1  系统论文框架图

第二章 可行性分析及相关技术原理

可行性分析也称为可行性研究,是在调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会等方面进行分析和研究,以避免投资失误,保证新系统的开发成功[2]。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。

下面将分别从经济、技术、社会三个方面对驾校信息管理系统的建设进行分析和研究。

§2.1经济可行性

通过对本系统的分析研究,主要从成本和效益两方面进行分析其经济可行性:

(1)支出 :

本系统的设计是为了完成毕业设计,所以用到的都是一些开源软件或在试用期的软件,所以开发系统软件费用不用考虑。如果本系统运行,需要把用适用版的软件编写的代码用一些开源工具编译一次即可,所以运行的软件费用也不存在。在硬件方面,开发本系统只需要一台电脑,所以开发系统硬件费用也不用考虑。综上所述,本系统的支出成本很少,可以承受。

(2)效益:

本系统的效益可以从经济效益和社会效益两方面考虑。其经济效益主要来源于系统的广告收入,其收入会远超过系统的开发和运行成本。其社会效益包括系统投入运行后可以基本满足所有用户的需求,减少用户的查询时间,提高查询效率。

由以上分析可知,驾校信息管理系统在经济上是可行的。

§2.2技术可行性

根据驾校提出的系统功能、性能及实现系统的各种约束条件,根据新系统目标来衡量所需的技术是否具备,本系统是一个数据库管理和查询的系统,现有的技术已较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。同时,考虑给予的开发期限也较为充裕,预计系统是可以在规定期限内完成开发的。

由以上分析可知,驾校信息管理系统的开发在技术上是可行的。

§2.3社会可行性

本系统的社会可行性主要从法律因素、用户使用可行性两方面进行研究。

(1)法律因素

本系统是根据驾校信息管理的实际工作情况开发研制的,是通过大量的调研得出的,系统的软件设计是在独立的环境下完成的,无可供抄袭的软件产品,也不存在盗版侵权的问题,是完全合法的软件。本系统的开发是依照法律程序明确委托方与开发方的责任,没有违反中华人们共和国的任何法律条款,使用者可以放心使用,因此法律上是有保障的。

(2)用户使用可行性

本系统对用户的要求,除了需要具备在MicrosoftWindows平台上使用个人电脑的知识外,并不需要特别的技术能力。使用系统的管理员,在投入使用前,无需对操作系统的人员进行培训。这样既减少投入成本又简化了操作环节。

由以上分析可知,本系统具有社会可行性。

§2.4系统开发工具

 C sharp(又被简称为"C#")是微软公司在二OOO年六月发布的一种新的编程语言,并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果,C#看起来与Java有着惊人的相似,它包括了诸如单一继承,界面,与Java几乎同样的语法,和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角。

 微软c#语言定义主要是从C和C++继承而来的,而且语言中的许多元素也反映了这一点。C#在设计者从C++继承的可选选项方面比Java要广泛一些(比如说structs),它还增加了自己新的特点(比方说源代码版本定义).但它还太不成熟,不可能挤垮Java、C#还需要进化成一种开发者能够接受和采用的语言。而微软当前为它的这种新语言大造声势也是值得注意的。目前大家的反应是:“这是对Java的反击” 。

 C#更象Java一些,虽然微软在这个问题上保持沉默。这也是意料中的事情,我觉得,因为Java近来很成功而使用Java的公司都报告说它们在生产效率上比C++获得了提高。

使用Microsoft SQL Server2005数据库作为后台数据库.SQL Server2005作为微软在Windows 系列平台上开发的数据库,一经推出就以其易用性得到了很多用户的青睐,相信大多数将自己的业务建立在Windows平台上的用户都会对它有相当的亲切感。大多数的中小企业日常的数据应用是建立在Windows平台上的。由于SQL Server2005与Windows界面风格完全一致,且有许多"向导(Wizard)"帮助,因此易于安装和学习,有关SQL Server的资料、培训随处可得,并且目前国内具有MCDBA认证的工程师不在少数。

从另一个角度来讲,学习SQL Server2005是掌握其他平台及大型数据,如Oracle,Sybase,DB/2的基础。因为这些大型数据库对于设备、平台、人员知识的要求往往较高,而并不是每个人都具备这样的条件,且有机会去接触它们。但有了SQL Server2005的基础,再去学习和使用它们就容易多了。

驾校管理信息系统数据存储量大,各信息模块之间的某些属性还存在联系,要求数据库具备安全性和完整性,以便对数据库中的数据进行统一的管理和控制,基于SQL Server2005的特点,完全可以作为驾校管理信息系统的数据库。

§2.5系统开发模式

目前使用系统平台模式大体上分为两种:客户机/服务器模式(简称C/S)和Web浏览器/服务器模式(简称B/S)。

C/S 模式主要由客户应用程序、服务器管理程序和中间件三个部分组成。首先,交互性强是C/S 固有的一个优点。在C/S 中,客户端有一套完整应用程序,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。其次,C/S 模式提供了更安全的存取模式。由于C/S 配备的是点对点的结构模式,采用适用于局域网、安全性可以得到可靠的保证。而B/S 采用点对多点、多点对多点这种开放的结构模式,并采用TCP/IP 这一类运用于Internet 的开放性协议,其安全性只能靠数据服务器上管理密码的数据库来保证。由于C/S 在逻辑结构上比B/S 少一层,对于相同的任务,C/S 完成的速度总比B/S 快,使得C/S 更利于处理大量数据。

C/S 模式的特点如下:

客户机/服务器(Client/Server)代表流行的计算方式。在Client/Server 体系中,将应用分为两大部分:一部分是由多个用户共享所需的功能和信息即Server 部分,完成整个系统的文件管理和数据管理;在该服务器上将安装相应的文件服务系统如:Windows2000 server 等,以完成文件管理;在该服务器上还要安装相应的数据库服务软件如MSSQLSERVER、Sybase 等,以完成整个系统的数据管理,如:人员信息、档案信息、项目信息等等。另一部分是为每个用户所拥有的即Client(客户机),Client(客户机)部分执行前台功能如管理用户接口、采集数据、报告请示等,用户需要服务即由Client 发出请求,然后由Server 执行相应的服务,并将服务结果送回Client,然后提交给用户。即各客户机录入的各单据送向中心的服务器,中心服务器再将处理的数据送向各客户机等等。

客户进程和服务器进程可以(但不是必须)由LAN 或广域网(WAN)连接。它们可以在同一台计算机上运行;

用于客户和数据库服务器之间通信的基本语言是结构化查询语言(SQL);

能够在数据完整性、管理和安全性方面提供严格的集中控制,能让管理员集中备份数据和定期维护,使数据储存在集中的安全的地方;

应用程序完全在客户系统上运行,仅集中处理数据库请求,所以复杂的、依赖于处理器的用户界面就可以用本地处理器和本地内存来运行;

对重要的查询响应效率高。LAN-DBMS 对简单的请求也常返回大量的无用数据,但C/S 系统只返回结果集;

应用程序设计可以分布化而不会对数据库产生破坏;

由数据库管理系统(DBMS)负责管理数据的完整性,而客户应用程序则处理和分析,简化了客户端应用程序的开发,提供了系统的可靠性和效率。

§2.6总体设计原则

本系统为了设计、实现和后期维护的方便,以及系统用户使用的便利,所以必须采取一定的设计原则。其主要设计原则有:

简单性:在实现系统的功能的同时,尽量让系统操作简单易懂,这对于一个系统来说是非常重要的。

针对性:本系统设计是针对驾校信息管理的需求定向开发设计,所以具有专业突出和很强的针对性。

实用性:要求本系统能够满足驾校管理人员的需要,因此具有良好的实用性。

一致性:页面整体设计风格以及命名规则的一致性:整体页面布局和用图用色风格及变量、类名和其他元素的命名规则保持一致。功能一致性:完成同样的功能应该尽量使用同样的元素。 元素风格一致性:界面元素的美观风格、摆放位置在同一个界面和不同界面之间都应该是一致的。变量命名规则的一致性:变量应该用统一的规则进行命名,做到任意变量均能从上下文推断其义。

先进性:本系统采用C#技术、SQL Server2005等被广泛采用系统开发技术和数据库,因此本设计具有良好的先进性,具体表现在其具有良好的可扩展性,可开发性。


 

第三章 需求分析

§3.1概述

3.1.1编写目的

为了更好的开发《驾校管理系统》,使本系统能比较安全、可靠、快速的运行,更能适合用户的需要,特进行需求分析工作。也让开发者和用户共同明确本系统具体实现的是什么功能,让用户和开发者对本系统有初步的了解。

3.1.2术语定义

1、数据流图:描绘驾校管理系统的逻辑模型,生成各功能模块信息在系统中的流动和处理的情况。

2、概念模型:是面向对象的数据模型,从用户的角度考虑设计的。

3、ER 模型:是用户和系统分析员之间有效的交流工具,它是使用简单的图形符号表达系统分析员对问题域的理解,有“实体”、“联系”、“属性”等三个基本成分;

4、C/S 模式:客户/服务器模式。

5、主要功能:驾校信息系统主要实现系统管理,也就是系统权限分配,学员报名信息考试信息等学员信息管理,学员考试信息录入查询管理,驾校财务收支管理。

§3.2任务概述

3.2.1开发目标

1、提高数据传输的速度和数据在传输过程中的安全可靠性,提高资源的利用率;

2、处理速度的提高;

3、运行成本的降低;

4、人员利用率的优化;

5、在考虑各信息管理系统操作规则的前提下,延续了操作习惯,便于操作业务员的使用和培训;

3.2.2用户特点

本系统要求用户具备一定的计算机操基础,前期需要对用户进行适当的培训。在设计时,我们充分考虑用户的需求,力求做到:程序的可操作性强,界面友好,功能完善。

系统维护人员:了解计算机网络的相关知识、数据库编程、C#编程、能熟练进行数据库的日常管理工作和解决出现的问题;

计算机维护人员:熟悉计算机的硬件组成以及网络设置,能解决计算机在使用过程中出现的硬件故障和网络故障。

3.2.3假定与约束

本系统的开发,以武汉市大学生驾校现状和相关约束为参照,进行基础数据的采集和相关约束的制定。在编制的过程中将就系统的定位,各项编码的规则以向上兼容的原则进行相应的扩展编制。同时,通过不同的用户角度,提供各种人员的权限控制,以达到对软件的多视图了解。

本系统开发周期为两个月。本软件开发的工作是一项独立的软件,拥有完全的知识产权和版权,而且全部内容自含,所以不存在版权的纠纷问题。本软件的开发期限较短,因此必须严格按照开发进度进行合理统筹和调度,若非不可抗因素必须按时保质保量的完成开发设计。

假定:

1、各个开发阶段都能在系统计划规定的时间内完成;

2、所有来源文档的基本信息都准确无误;

3、本系统开发是所假想的环境都得以实现。

§3.3功能需求

3.3.1员工管理

实现对驾校员工的登记管理和查询。登记信息包括员工姓名、性别、职务、生日、薪水、是否是教练、系统登录密码。查询可根据员工姓名或职务进行,查询某个员工或者担任某职务的所有员工。

3.3.2权限管理

管理员对员工赋予相关权限,包括员工管理权限,是否能进行权限管理,学员报名,学员管理,考试信息录入与查询,驾校收支情况查询,考生考试情况查询等权限的操作。

3.3.3学员管理

1.报名登记:

对学员姓名、性别、身份证号、电话、缴费金额、电话 、教练员、业务员、报名时间、备注情况进行登记记录。

2.学员信息查询:

根据学员姓名查询某段时间内报名的学员信息,根据查询结果打印学员信息表。

3.3.4考试管理

1.考试信息录入:

录入学员理论考试、桩考、路考时间及成绩。

2.考试情况查询:

根据学员姓名及报名时间段查询学员考试情况信息。

3.通过率查询:

根据时间查询本段时间内或本期学员考试通过率。

3.3.5财务管理

1.财务收支管理:

查询某段时间内驾校收支信息,包括时间,类型,项目,金额,备注,经手人等信息。

2.员工工资管理:

管理员工工资及发放信息查询管理。包括日期,员工姓名,工资金额等信息。

3.流水账查询:

提供对驾校某段时间流水账查询和打印功能。

§3.4性能需求

3.4.1时间要求

操作响应时间:满足普通人员的操作要求;

统计运行时间:满足普通人员的查询要求;

更新处理时间:局域网数据库在网络无故障的情况下,插入一条数据和更新一条

数据的数据库操作响应时间控制在2 秒/条之内;

数据传输时间:数据交换过程控制在30 秒钟内。

3.4.2实用性要求

系统从驾校的实际情况出发,结合相关经历进行开发,使驾校的日常工作尽可能的方便、快速、合理,从繁琐、低效率的手工劳作中摆脱出来。

3.4.3信息要求

系统管理员能够查询到驾校业务流程的所以信息,对信息核实、修改,以利于对整个驾校的全面管理。

3.4.4安全性要求

采用用户名及密码,对不同的用户分级授权使用。数据的安全可靠性是数据库设计过程的基本要求。比如,权限的混乱可能造成数据库中数据被窜改,导致数据不完整、丢失或不可恢复。

3.4.5可维护性

每一个软件或系统都要尽量达到这个要求,一个软件的可维护性,对于非专业的软件系统工作人员是有难度的,所以系统开发设计要易于维护。维护人员需要熟悉Windows 操作系统,SQL Server 数据库。

§3.5运行环境

3.5.1硬件环境

服务器端:Inter Pentium III 及其以上机型,内存256M 以上,硬盘10G 以上。

客户端:Inter Pentium 及其以上机型,内存64 以上,硬盘2G 以上。

3.5.2软件环境

服务器端:推荐使用windows 2000 server 以上SQL Server Enterprise Edition。

客户端: Windows 9X 以上平台。

3.5.3接口

MS SQL Server 专用接口。

3.5.4控制

本软件采用事件驱动的方式通过工作权限的校验和事务的触发来对软件进行特定模块的驱动运行,完成特定模块功能。通过软件内部较严密的消息传递方式进行软件的通讯,其中模块间多为数据耦合,和一部分松散的公共环境耦合。并且利用已有类库的服务应用调整本系统的模块健壮性。

驾校信息管理系统是在符合国家相关规定的前提下,实现各种信息的规范化、易于管理化和高效化。本论文系统主要是方便、简易驾校管理人员的工作,提高整个驾校的运作效率,对当前学员的报名、科目学习、学员的交费情况、学员的科目考试进程及教练安排管理。

§3.6业务流程

在进行业务流程分析时,需要按照原有信息流动过程,逐个地调查分析所有环节的处理业务、处理内容、处理顺序和对处理时间的要求,弄清各个环节需要的信息、信息来源、流经去向、处理方法、计算方法、提供信息的时间和信息形态(报告、报单、屏幕显示)等。

业务流程分析可以帮助开发者了解该业务处理过程,发现和处理系统调查工作中的错误和疏漏。业务流程分析是通过业务流程图来进行,即用一些规定的符号及连线来表示某个具体业务处理过程。

具体业务流程如图3.1所示。

图3.1业务流程图

§3.7系统层次方框图

本系统的层次方框图如图3.2所示。

图3.2  系统层次方框图

§3.8数据流图

数据流程是指数据在系统中产生、传输、加工处理、使用、存储的过程。数据流程分析是把数据在现行系统内部的流动抽象的独立起来,舍去了具体组织机构、信息载体、处理工具、物质、材料等,单从数据流动过程来考查实际业务的数据处理模式。

数据流程与数据流程分析是今后建立数据库系统和设计功能模块处理过程的基础。描述数据流程的工具是数据流程图以及其附带的数据字典、处理逻辑等图表。其中数据流程图是描述系统逻辑模型的主要工具,它以少数几种符号综合地反映出信息在系统中的流动、存储和传递。

3.8.1顶层流图

顶级的数据流图包含的是整个系统模块所要处理的事务处理方式。

图3.3  驾校信息管理系统顶级流程图

3.8.2  0层流图

0层流程是对顶级流程的精化处理。

图3.4  0层系统流图

§3.9数据字典

通过对系统数据流的分析,接下来用数据字典描述数据流图中一些主要的数据元素条目、数据流、处理过程、数据存储和外部实体。

数据元素条目如表3.1所示。

表3.1数据元素

数据结构条目如表3.2所示。

表3.2数据结构

数据流条目如表3.3所示:

表3.3数据流

数据存储条目如表3.4所示:

表3.4数据存储

处理过程条目如表3.5所示:

表3.5处理过程

外部实体条目如表3.6所示:

表3.6外部实体

第四章 系统设计

§4.1设计思路

系统的设计是面向武汉市大学生驾校,系统以基本功能的实现和操作的简单为设计目标。力求使系统具有充分的可操作性,界面友好,功能完善,并且无须对用户的进行特别的要求和培训。

§4.2设计实现

4.2.1系统定位

本系统定位于中小型的驾校,主要的目标是功能全面、操作简便、反应迅速,由于驾校的学车业务繁忙,数据量大,因此也是本系统重点考虑的一个因素。

4.2.2数据来源

本系统的数据来源主要有两个方面,一是系统管理员初始化的基础数据,主要有部门、员工的基本信息和对不同部门员工的权限设置,还有该系统运行所需要的一些基本参数;二是在系统的应用中,由工作人员所提交的业务方面的数据(如学员的报名信息等),这是数据的主要来源。

静态数据主要是员工基本信息等,在系统的长期应用过程中基本保持不变,只占本系统数据存储量的很少一部分。动态数据主要是员工在使用过程中录入的,用以推动业务流程正确运作而产生的数据,如学员的报名信息、考试信息以及流水账等,是整个系统中数据存储量的最主要部分。对该部分数据的存储和处理速度之间影响着整个系统的性能。

§4.3总体功能设计

驾校管理系统以业务流程为主线,将整个业务管理系统划分为系统管理、学员管理、考试管理、财务管理等子模块,每个模块完成相应功能,使一个学员从报名开始到最终拿到驾照的业务流程电子化,从而提高计时学车中心管理的效率和质量。

图4.1顶层功能图

4.3.1系统管理

系统管理实现对员工的管理和系统权限分配管理,保证系统操作层次性和安全性。

图4.2系统管理功能图

4.3.2学员管理

学员管理包括学员信息记录和学员信息查询功能,学员信息查询根据学员姓名或者报名时间段对学员信息进行查询,并实现查询结果打印功能。

图4.3学员管理功能图

4.3.3考试管理

考试管理对学员考试信息进行录入,并能对学员考试信息进行查询并根据需要打印查询结果,对理论、科目二、科目三考试通过率进行查询统计。

图4.4考试管理功能图

4.3.4财务管理

财务管理对驾校财务收支进行管理,包括收支记录,员工工资发放,流水账查询等功能,并打印查询报表。

4.5财务管理功能图

§4.4概念结构设计

4.4.1系统全局实体图

E-R模型的组成元素有:实体、属性、联系。E-R模型用E-R图表示。实体是用户工作环境中所涉及的事务,属性是对实体特征的描述。

(1)模型中的实体相当于实体集、一个表,而不是单个实体或表中的一行。实体用矩形框表示,实体名称标注在矩形框内。用菱形表示实体间的联系,菱形框内写上联系名,用无向边把菱形分别与有关实体相连接,在无向边旁标上联系的类型[12]。

(2)属性是实体的性质。用椭圆框表示,与实体之间用一条线相连表的主码是关键属性,关键属性项加下划线。

(3)各子系统模块中主键相同的字段之间存在着相互关联的关系。

(4)在程序中实现对他们的完整性和一致性控制。

从数据需求分析中得出系统的实体属性图,遵循三范式原则,对实体之间的依赖关系进行了整合,得出系统E-R图。

图4.6  系统全局E-R图

4.4.2系统各实体图

(1)用户实体所包括的属性是:编号,用户名,密码,姓名,职位,性别等。

图4.7  用户实体E-R图

(2)考生实体包括:编号、姓名、性别、出生日期、卡号、电话号码、培训编号、注册时间等。

(3)工资实体包括:编号、年、月、用户编号、工资、发放时间。

图4.9  工资实体E-R图

(4)现金交易实体包括:交易编号、交易类型、标题、金额、操作员。

图4.10  现金交易实体E-R图

§4.5逻辑结构设计

4.5.1逻辑设计规范

数据库逻辑设计就是将E-R图转换成关系模型的过程,即将所有实体和关系转换成一系列的关系模式,转换过程中常见规则有:

(1)一个实体型转换成一个关系模式。

(2)一个一对一的关系模型可转换成一个独立的关系模式,也可与任意一端对应的关系模式合并。

(3)一个一对多的联系可以转换成一个独立的关系模式,也可与多的那一端对应的关系模式合并。

(4)一个多对多的联系可以转换成一个关系模式。

4.5.2逻辑结构表

经过数据库系统分析和逻辑设计后,数据库的结构已经非常清晰,首先在Microsoft SQL Server 2005 中建立一个数据库DriverSchool。然后,分别建立4个表:用户信息表,工资记录表,学员信息表, 现金交易表,每个表与逻辑设计中一种的关系模式相对应。下面是每个数据库表中的属性,包括属性列的名称、数据类型、长度、是否为空和备注说明等内容。

  1. 用户信息表(Users)

字段名

字段类型

字段大小

是否为空

字段说明

id

Int

4

用户ID自动编号(主键)

Usename

Varchar

20

用户名

Pass

Varchar

20

密码

name

Varchar

20

姓名

[Position]

Varchar

32

职位

Sex

Int

4

性别0:男1:女(默认为:0)

Birthday

datetime

8

出生日期

Salary

varchar

10

工资

IsTrainer

Varchar

14

是否培训

Status

Varchar

6

状态

表4-1 用户信息表

(2)考生信息表(Customers)

表4-2 考生信息表

字段名

字段类型

字段大小

是否为空

字段说明

id

Int

4

考生ID自动编号(主键)

name

Varchar

20

姓名

Sex

Int

4

性别0:男1:女(默认为:0)

Birthday

datetime

8

出生日期

IdCardNo

varchar

10

卡号

Tel

Varchar

20

电话号码

TrainerId

Int

4

培训ID

RegisterDate

datetime

8

注册时间

ExamDate1

datetime

8

第一次考试日期

Score1

decimal

8

第一次分数

ExamDat2

datetime

8

第二次考试日期

Score2

decimal

8

第二次分数

ExamDate3

datetime

8

第三次考试日期

Score3

decimal

8

第三次分数

IsCompleted

bit

1

是否通过

(3)工资表(SalaryRecords)

表4-3 工资表

字段名

字段类型

字段大小

是否为空

字段说明

id

Int

4

工资ID自动编号(主键)

Year

datetime

8

Month

datetime

8

User

Int

4

用户ID

Salary

decimal

8

工资

PayTime

datetime

8

发放时间

(4)现金交易表(CashTransactions)

表4-4 现金交易表

字段名

字段类型

字段大小

是否为空

字段说明

id

Int

4

交易ID自动编号(主键)

TransDate

datetime

8

交易日期

TransType

Varchar

20

交易类型

Title

Varchar

20

标题

Amount

decimal

8

金额

Operator

Varchar

20

操作员

第五章 系统实现与测试

§5.1登陆实现

5.1.1登陆界面

此模块主要功能是用于登录本系统,不同权限的用户登录本系统会进入不同的管理模块界面,因为在后台对该用户进行的判断,首先将从前台页面提交的用户名和密码进行接受,之后在后台进行处理,按照用户名在数据库中进行查询如果查到该用户则将该用户的权限和密码全都取出来分别赋给两个字符串变量,判断从数据库中读出的密码与登录时输入的密码是否配比上,若两个密码相同则根据权限的值进入相应的页面,否则输出密码错误。若用户未被管理员分配好权限那么也是无法登录本系统的。

图5.1 登录页面

接口代码:

private void btnLogin_Click( object sender, EventArgs e ) {

if( this.LockScreen && this.CurrentUser != null ) {

if( this.CurrentUser.LoginPassword.Equals( this.txtPassword.Text ) ) {

this.Close();

} else {

MessageBox.Show( "密码错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error );

}

} else {

var ta = new DataModelTableAdapters.UsersTableAdapter();

var t = ta.GetDataForLogin( this.txtLoginName.Text, this.txtPassword.Text );

if( t.Rows.Count > 0 ) {

this.CurrentUser = t[0];

this.Close();

} else {

MessageBox.Show( "名称和密码错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error );

}

}

}

5.1.2登陆流程

图5.2  用户登录流图

§5.2登陆首页

管理员登录本系统后,可以进行系统管理、学员管理、考试管理以及财务管理。如下图所示:

图5.3 登录首页

关键代码:

private void mnuStudentRegister_Click( object sender, EventArgs e ) {}

private void mnuStudentManagement_Click( object sender, EventArgs e ) {}

private void mnuAddExamInfo_Click( object sender, EventArgs e ) {}

private void mnuExamSearch_Click( object sender, EventArgs e ) {}

private void mnuExamSummary_Click( object sender, EventArgs e ) {}

private void mnuCashTrans_Click( object sender, EventArgs e ) {}

private void mnuSalary_Click( object sender, EventArgs e ) {}

private void mnuSearchTransactions_Click( object sender, EventArgs e ) {}

§5.3员工管理设计

管理员登录系统后,可以管理员工信息。通过员工姓名或者职务查询员工信息或者同职务的员工信息。

图5.4员工管理界面

接口代码:

private void UserManagementForm_Load( object sender, EventArgs e ) {

this.usersTableAdapter.Fill( this.dataModel.Users );} }

§5.4权限管理

管理员登录后可对其他员工赋予不同的权限,不同部门的用户,不同的角色,对本系统的操作权限不尽相同。权限设置部分根据业务需要和安全性考虑,为不同的用户设置不同的功能权限。将权限的控制粒度细化到窗口甚至控件,并可根据需要进行权限的修改,或为特殊用户重新分配权限,既保证系统的安全性也使其具有很大的灵活度

图5.5权限管理界面

接口代码:

private void PermissionForm_Load( object sender, EventArgs e ) {}

§5.5报名登记

记录学员姓名,性别(下拉框只能选择男或者女),身份证号,生日,电话,缴费金额,教练员(只能有系统中选),业务员(下拉框中已设置),备注信息。

图5.6报名登记界面

关键代码:

private void StudentManagementForm_Load( object sender, EventArgs e ) {}

private void btnQuery_Click( object sender, EventArgs e ) {}

§5.6学院管理设计

5.7学院管理界面

接口代码:

public partial class StudentManagementForm : Form{}

private void btnQuery_Click( object sender, EventArgs e ) {

this.usersTableAdapter.FillForSearch( this.dataModel.Users, this.txtNameSrh.Text, this.txtPositionSrh.Text );

}

§5.7录入考试信息设计

图5.8录入考试信息界面

接口代码:

private void AddExamInfoForm_Load( object sender, EventArgs e ) {}

§5.8录入考试信息设计

根据学员姓名查询学员考试情况,或根据报名时间段查询某段时间内所有学生的考试信息。

图5.9学员考试查询界面

关键代码:

 private void ExamSearchForm_Load( object sender, EventArgs e ) {}

 private void btnPrint_Click( object sender, EventArgs e ) {

var rd = new ReportDialog();

rd.DataSourceName = "DataModel_ExamInfo";

rd.BindingSource = this.examInfoBindingSource;

rd.ReportName = "驾校信息管理系统.ExamInfo.rdlc";

rd.DialogTitle = "考试情况报表";

rd.ShowDialog();

}

§5.9财务收支设计实现

拥有相应权限的管理员可以记录收支信息或者根据项目查询收支或者查询某段时间驾校的收支情况。

图5.10财务收支界面

关键代码:

private void CashTransactionManagementForm_Load( object sender, EventArgs e ) {

this.cboTypeSrh.SelectedIndex = 0;

this.dtpRegisterDateStartSrh.Value = new DateTime( DateTime.Today.Year,    DateTime.Today.Month, 1 );

this.usersTableAdapter.Fill( this.dataModel.Users );

this.cashTransactionsTableAdapter.Fill( this.dataModel.CashTransactions );

}

§5.10数据库连接池

连接数据库需要用到的代码如下:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<configSections>

</configSections>

<connectionStrings>

<add name="驾校信息管理系统.Properties.Settings.DriverSchoolConnectionString"

            connectionString="Data Source=COMPUTER;Initial Catalog=DriverSchool;Persist Security Info=True;User ID=sa; pwd=888888"

            providerName="System.Data.SqlClient" />

</connectionStrings>

§5.11系统测试

测试是开发时期最后一个阶段,是保证软件质量的重要手段。软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的过程,所谓控制条件应包括正常条件与非正常条件。软件测试过程中应该故意地去促使错误的发生,也就是事情在不该出现的时候出现或者在应该出现的时候没有出现。从本质上说,软件测试是"探测",在“探测”中发现软件的毛病。

5.11.1软件测试的重要性

软件测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。

事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。而在软件开发的总成本中,用在测试上的开销要占30%到50%。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。

5.11.2测试实例的研究与选择

程序测试的主要方法分为两大类,白盒测试和黑盒测试。

白盒测试:一种是以程序的内部逻辑结构为依据而设计测试用例的方法,因而又称结构测试或玻璃盒测试,将软件看成一个透明的白盒子,按照程序的内部结构和处理逻辑来选定测试用例,对软件的逻辑路径及过程进行测试,检查它与设计是否相符。白盒测试就是要选取足够的测试用例,对源代码实行比较充分的覆盖,以便尽可能多地发现程序中的错误。主要有两种方法:一种称为逻辑覆盖法,另一种称为路径覆盖法。

黑盒测试:也称功能测试,数据驱动测试等,它将待测对象堪称是一个黑盒子,在完全不考虑程序的内部结构和特性的情况下,只依据规格说明书检查程序的功能是否能正常使用。

黑盒测试主要是根据输入条件和输出条件的确定测试数据,来检查程序是否能产生正确的输出。进行黑盒测试主要有下面几种方法:等价分类法、边界值分析法、猜错法、因果图法。

本系统的测试综合了白盒测试、黑盒测试两种方法,但主要使用的是黑盒测试方法。在测试当中遵循了“尽早地和不断进行测试”,“保证测试用例的完整性和有效性”原则。通过测试达到以下测试目的:

1.功能检查:检查功能是否争取,是否遗漏或实现不了应该实现的功能等。

2接口检查:检查能否正确地接受信息或输出信息。

3数据检查:检查数据结构或外部信息是否有(如数据文件)访问错误。

4性能检查:检查性能需求能否得到满足。

5初始化、终止检查:检查是否能进行正确地初始化或终止。

5.11.3测试环境与测试条件

处理器:AMD Athlon(tm)64 Dual Core Preocessor 5400+

内存:2GB

硬盘:320G

操作系统:Windows XP

数据库:SQL Server 2005

5.11.4系统运行情况

通过对系统的全面测试,所有测试条目都已经通过,实现了基本要求,系统可以正常运行。

5.11.5系统评价

系统评价是指系统在正式运行了一段时间之后,对它在功能上、技术上和经济上所进行的审核评价。针对本系统的评价如下:

(1)系统功能评价

根据本系统开发前所订的目标,在系统完成后经过测试运行,该系统达到了预定的开发目标,在实际使用中的功能可以满足用户需求。

(2)系统技术评价

本系统设计合理,功能达到了预期目标,且系统运行后稳定可靠,安全性高,具有实用性,大大提高了信访办公效率。

(3)系统经济评价

在规定时间内,该系统完成了系统分析时所确定的系统开发目标,达到了设计要求,投入使用后为用户节省了大量人力物力财力,提高了科学管理水平。

5.11.6系统测试结果

所有功能都可以实现,系统运行良好,但是还有很多不够完善的地方,需要以后在使用的过程中继续完善。通过软件测试,发现和解决了本系统的功能及结构漏洞,增强了系统功能,保障了软件的可用性。同时,丰富和开拓了我们的编程思路,丰富了我们的编程经验。

第六章 总结与展望

§6.1总结

计算机技术的飞速发展带动了很多行业的发展,计算机带给我们最直观的价值就是减少了人力物力的投资,提高了工作质量和效率,从而提高了整个社会的生产力。目前各大高校充分利用计算机资源和网络资源来提高自身的管理水平,而有关驾校管理中的驾校信息管理工作是否要实现信息化、自动化也成为驾校管理工作中争论的热点问题。

本文在分析驾校管理流程的基础上,用C#和SQL2005数据库设计并完成驾校管理系统。通过系统调试结果显示,本系统基本完成了功能需求。在整个设计过程中,采用瀑布模型和结构化的设计方法。本系统界面美观友好,操作方便,做出了自己的特色。但由于时间仓促加上缺乏系统开发经验,系统在设计过程中不可避免地遇到了各种各样的问题,如:

1. 由于时间关系,系统功能实现不够完善,使用可能存在一些不方便。

本系统在实际使用过程中有可能出现一些问题,通过对系统的不断优化和完善,能够调试出真正符合实际情况的驾校信息管理系统,并整合所有相关管理信息系统,形成统一、规范、科学、合理的驾校信息管理系统,提高管理水平。

§6.2展望

尽管完成了毕业设计但是本系统还有很多不足的地方,首先本系统设计初衷是为了方便用户对驾校信息的管理和查询,但是本系统未能实现系统的在线功能,使得系统对信息共享方面有很大不足。其次功能也不够全面,缺乏学员入口和模拟考试及视屏教学模块。这些部分将会在以后的工作中进行完善和修正。

过去的两个月真是不轻松,个人一直缺乏自信与成就感,不过通过这次毕业设计对自己有了清晰的定位,也多了一份期待。

致  谢

在本次毕业设计过程中,得到了张老师的指导与支持。在此特别感谢张剑波老师的大力帮助。张老师的悉心指导和大力支持,在总体结构、功能的把握上给予了非常大的帮助,并对我在编程、数据库设计等细节工作上给予了耐心的指导,对于我顺利完成这次毕业设计起到了关键性的作用。

我还要感谢我的母校,以及在大学四年生活中给予我关心和帮助的老师和同学,是他们教会了我专业的知识和做人的道理。通过这次毕业设计我还明白了作为一名软件工程专业的大学毕业生,我们要会的不仅仅是编写代码,更重要的是要有整体把握系统设计的能力。我会在以后的工作和学习中不断完善自己,为我最热爱的母校争光,为自己翻开辉煌的新篇章。

转眼间,大学生活即将结束,回首过去四年的大学生活,真是有苦也有乐,然而更多的则是收获,感谢母校的各位老师不但无私地传授给我们知识,也教会了我们如何做人。软件工程专业的毕业设计任务繁重,但正是在这两个月紧张而充实的设计中,我感到自己的知识得到了一次升华,我相信:我的毕业设计会给我的四年大学画上一个圆满的句号。

在新的世纪里,人们自然对未来有许多美好的愿望和设想。现代科学技术的飞速发展,改变了世界,也改变了世界的生活。作为新世纪的大学生,应当站在世界的发展前列,掌握现代科学技术知识,调整自己的知识结构和能力结构,以适应社会发展的要求。新世纪需要具有丰富现代科学知识、能够独立解决面临任务、有创新意识的新型人才。

参考文献

[1] 滕佳东.管理信息系统.东北财经大学出版社.2008.2.

[2] 龙虹.管理信息系统.北京理工大学出版社.2007.3.

[3] 倪庆萍.现代管理信息系统.清华大学出版社,北京交通大学出版社.2006.6

[4] 郝杰忠.管理信息系统的开发与应用.机械工业出版社.2006.9.

[5] (英)Jhon Sharp著周靖译.Visual C# 2005 从入门到精通.清华大学出版社.2006.9

[6] 胡百敬,姚巧玫.SQL Server 2005 数据库开发详解.电子工业出版社.2006.6.

[7] Karli Watson,Christian Nagel著,齐立波译.C#入门经典.清华大学出版社.2006.5.

[8] 陈佳.信息系统开发方法教程.清华大学出版社.2009.8.

[9] 刘腾红等.信息系统分析与设计.科学出版社,2006.

[10] 薛华成.管理信息系统.清华大学出版社,2007.10.

[11] 张智强,孙福兆,余健等.SQL Server 2005 课程设计案例精编.清华大学出版社.2008.8

[12] 闪四清.管理信息系统教程.清华大学出版社.2007.4.

[13] 李一军,叶强.管理信息系统.清华大学出版社.2007.9.

[14] 欧立奇,康祥顺,马煜.Visual C#.NET案例开发集锦.北京:电子工业出版社,2005.

[15] 张剑平.管理信息系统及其教育应用.科学出版社.2008.11

[16] 罗斌等.Visual C# 2005 数据库开发经典案例.中国水利水电出版社.2008.1

[17] Paul Wilton, John Colly著敖富江译.SQL入门经典.清华大学出版社.2006.6

;