公交车管理系统的实现与设计.docx
《公交车管理系统的实现与设计.docx》由会员分享,可在线阅读,更多相关《公交车管理系统的实现与设计.docx(22页珍藏版)》请在冰豆网上搜索。
公交车管理系统的实现与设计
学位论文
公交车管理系统的设计与实现
论文作者姓名:
申请学位专业:
申请学位类别:
指导教师姓名(职称):
论文提交日期:
公交车管理系统的设计与实现
摘要
随着经济的日益增长,信息化时代已经到来,生活中各种信息趋向数字化、清晰化。
公交车作为现代城市生活中一种重要的交通工具,其数量增多,车型也不再单一,雇用的司机增多,这样使得公交车公司的车辆信息管理复杂化。
在这样的背景下,提出了计算机管理的公交车管理系统,辅助公交车运营公司对车辆进行管理,实现公交车、公交线路和司机管理科学化,更合理的利用资源。
该系统主要根据实际的需求,以需求分析、系统的设计目标,并且重点进行系统功能模块的详细设计和实现,采用了VisualStudio.NET2003开发平台和SQLServer2000数据库,实现了车辆信息管理、司机信息管理、线路信息管理和车辆分配线路管理等功能。
在针对数据操作方面,主要通过存储过程的方式实现数据的添加、删除和查询等操作。
通过系统测试,解决了公交车辆管理系统主要问题。
关键词:
管理系统;数据库;存储过程
TheDesignandImplementationofBusManagementSystem
Abstract
Alongwitheconomicalgrowing,theinformationcenturyhasalreadyarrivedandeachkindofinformationtrendstodigitizationandclearnessinourlife.Asanimportanttransportationtoolinthemodernlife,thenumberofthebusisincreasinganditstypeisnolongerunitary.Aswell,thebusdriversarealsoincreasing.Thesemaketheinformationmanagementofthebuscompaniesmorecomplicated.Undersuchbackground,thebusmanagementsystemcontrolledbythecomputersisputforward.Itwillhelpthebuscompanymanageitsbuses,makethemanagementofthebus,thebusroutineandthedrivermorescientificandmakeproperuseoftheresources.
Thesystemisbasedonthepracticalrequirements,andaimedatthedemandanalysisandthesystematicaldesign.Itemphasizesthedetailsofdesignandimplementationofthesystematicalfunctionmodule.It’sdevelopmentplatformareVisualStudio.NET2003andSQLServer2000Databaseandimplementsmanyfunctions,suchasvehiclesinformationmanagement,driverinformationmanagement,routineinformationmanagement,vehicleassignmentlinemanagement.fordatabaseimplementation,itmainlyusesthestorageproceduretoimplementtheaddition,deletionandinquiry.Bythesystematicaltest,itcansolvethemainproblemsinthevehiclesmanagementsystem.
Keywords:
Managementsystem;Database;Storageprocedure
论文总页数:
20页
引言
随着计算机技术的迅速发展,推动了信息技术广泛、深入地应用到人类社会的各个领域并发挥着越来越重要的作用。
计算机软件技术应用于信息管理是必然的趋势。
作为计算机应用的一部分,充分发挥计算机的优势,将大量复杂的数据交给计算机来处理,有着人工管理所无法比拟的优点。
如:
查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高信息管理的效率,是真正意义上的合理利用资源,也是企事业管理科学化、正规化,与世界接轨的重要条件。
信息管理系统简介
信息管理系统,即我们常说的MIS(ManagementInformationSystem),是由人和计算机等组成的,能进行信息收集、加工、保存、维护和使用的系统。
它能实现国民经济和企业行为的各种运行情况,利用历史数据预测未来,从全局出发辅助管理决策,利用信息控制企业行为、帮助实现其规划目标。
在强调管理,强调信息的现代化社会中变的越来越普及。
开发背景和意义
随着经济的日益增长,车辆作为最重要的交通工具,在当今社会中得以普及。
由于汽车数量的增加,而道路的承载能力有限。
因此,城市公交车的迅速发展成为一种必然趋势。
在这样的情况下,公交车运营商的车辆数目已经增加了许多,而且车型也不再单一,与此同时便产生了车辆资源的合理分配和使用问题。
该问题涉及到车辆的档案管理、驾驶员档案管理、车辆管理、公交车运营线路的分配和管理等。
如何对公交车公司的车辆进行合理的分配,科学的使用,使其发挥最大的价值是本问探讨的重点。
该管理系统的提出,对于一个公交车运营商来说,不但可以对车辆的使用进行合理的管理,而且对车辆的使用情况进行跟踪记录,这对于单位车辆责任到人,信息明确,避免责任混乱等一系列相应问题的解决。
系统设计目标
该系统以车辆为主体,结合对于公交车线路的管理,设计并开发一个公交车管理系统,提供一个信息更新快捷,管理方便,功能设置合理的公交车管理系统解决方案。
针对公交车运营公司大量的车辆信息和线路制定信息,制定实施该系统的各个功能,使得公交车的管理更加科学化。
需求分析
系统需求
公交车管理系统是一个协助公交车运营商各单位对车辆进行全面的管理。
在此之前,对于线路与车辆的管理采用的方式几乎都是手工管理,其中的弊端显而易见,即容易造成档案资料的遗失,控制不集中,管理不规范等等问题。
因此,在管理系统的实现上应该满足以下需求:
1.为保障系统的稳定性,对于可能发生问题的输入要进行检验,同时要给出合理的提示信息。
2.在管理上满足公交车管理职能的基本需求,能够方便的进行司机信息管理、车辆信息管理、线路信息管理和车辆与线路的分配管理。
3.为公交车管理系统提供数据支持。
4.与传统的手工管理相比,应该添加用户权限的管理机制。
保证系统安全性。
功能需求
根据对上述管理系统的业务流程、要求以及所要实现的目标,可以拟出以下的需求目标:
1.建立司机档案和车辆档案管理的管理和维护,在计算机的支持下快速的完成车辆信息的添加和删除。
2.建立线路与车辆的设置管理,在计算机的管理下,可以实现方便的添加、删除、修改。
3.建立车辆与司机的分配管理,在计算机的管理下,可以实现方便的添加、删除、修改。
4.实现系统权限设置管理,保证系统的安全性。
根据系统的需求分析,得到本系统的功能要求如下:
1.车辆信息的设置管理:
系统合法用户可以根据公司具体情况设置关于车辆的具体资料档案。
2.权限管理:
为了很好的保证系统的安全性,公司相关负责人可以根据实际情况添加和删除系统用户。
3.线路档案管理:
一个城市的运营线路可能复杂且数据量极大,系统用户可以进行线路的规划管理。
4.车辆与司机的分配管理:
为了维护好车辆,要求司机做好车辆的日常维护工作,落实具体责任。
5.车辆运行线路管理:
实现对车辆和线路分配的管理,包括添加、修改和删除操作。
性能需求
系统的运行环境要求是:
1.硬件环境
目前,考虑到所开发系统主要应用在中小规模的公交车公司,因此,中等配置的计算机硬件就可以满足系统功能需求。
考虑到公司规模的扩大和硬件价格的降低,为本系统配置在较优秀的服务器硬件上,可以充分发挥本系统的功能。
●处理器:
InterPentium41.8G或更高
●内存:
512M(推荐)
●硬盘空间:
80GB
●显卡:
SVGA显示适配器
2.软件环境
●操作系统:
Windows2003/XP
●开发软件:
MicrosoftVisualStudio.NET2003
●数据库:
MicrosoftSQLServer2000
系统开发相关技术
编程环境的选择
微软公司的VisualStudio.NET2003是Windows应用程序开发平台,该平台具有直观的开发界面、先进的程序设计思想,是目前最为广泛的、易学易用的面向对象的开发工具。
VS.NET2003提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。
C#同时提供的一套完善的编译和调试系统,使得在开发过程中可以很好的解决开发过程中出现的一系列问题。
同时在该平台下还提供了软件发布功能,使得开发、调试到发布可以一步完成。
故而,这是实现该信息管理信息的一个较好选择。
C#是一门完全面向对象的程序设计语言。
它可用于创建要运行在.NETCLR上的应用程序的语言之一,是微软专门为使用.NET平台而创建的。
使用C#语言在开发过程中以对象为开发元素,每一个对象都具有一些特性和行为(属性、事件和方法)。
开发人员可以最有效的利用所创建的每一个对象。
同时,用户还可以自己开发控件,从而满足用户的不同的需求,这样变使得应用程序具有可通用性可说扩展性和强有力的功能。
确定测评指标的原则与方法。
关系型数据库
SQLServer2000是一种功能强大的数据库开发工具,数据库汇集了信息以供查询、存储和检索。
它的优点在于强大的数据库引擎,它可以承受10000条以上的记录测试,而且数据库运行于服务器上,相对于本地数据库,可以明显的减少内存占用,提高运行速度和本机的利用效率。
SQL数据库具有友好的管理界面——企业管理器,其中的视图可以直观的进行数据处理,同时支持直观的数据库设计,也可以通过词法分析器,使用SQL语句进行数据库的各种操作,包括数据库的建立,表的建立和修改等一系列操作。
采用C/S模式的设计,可以更加合理的利用企业资源,使得数据集中在一台服务器上,从来节省了数据库管理的人力资源,也使得由于非专业人士的误操作,或者别的各种电脑意外而导致数据丢失,或者别的不必要损失,所以在数据库选择上采用了SQLServer2000。
总体设计
设计思想与处理流程
本系统采用面向对象进行分析和设计,在SQLServer2000数据库上实现数据操作。
使用了上文所介绍的完全面向对象的C#语言作为开发语言。
使用WindowsXP作为开发平台,能够很好地实现系统的基本开发和测试。
系统的基本流程是:
用户登录主界面选择各项子功能。
系统层次模块图
“公交车管理系统”主要分为用户登录、车辆管理、司机管理、线路管理和车辆分配管理等6个主功能模块。
系统主模块功能树如图1所示。
模块设计
1.登录模块
输入用户的名称和密码,如果用户名、密码正确,则进入主控制平台;否则给出错误提示。
2.用户注册模块
系统管理员进行用户使用设置和初始密码的设置。
3.车辆信息管理
该模块的设计目的是用于用户录入与车辆有关的资料信息。
比如车牌号、车辆拥有的座位数目和是否有人售票等信息。
4.司机管理
在该模块下包含两个子模块。
其中一个用于对司机资料的录入操作;另一个模块提供给用户查询司机信息。
5.线路管理
该模块的功能同司机管理模块类似,同样包含两个子模块。
一个用于录入线路信息;另一个用于查询线路信息。
6.车辆分配线路管理
实现将每辆车与线路相关联的操作。
数据库设计
ADO.NET综述
ADO.NET是ADO的改进版本。
ADO.NET是与C#和.NETFramework一起使用的类集的名称,用于以关系型的、面向表的格式访问数据[1]。
ADO.NET集成到.NETFramework中,可以用于任何.NET语言,尤其是C#。
这也是该管理系统采用C#程序语言的原因。
ADO.NET的作用与ADO(ActiveDataObjects)相同,提供易于使用的类集,以访问数据,ADO.NET的功能得到更新和增强,可以用于.NET编程环境。
在使用SQLServer数据库时,通过SQLServer专用的内置.NET数据提供者可以获得最好的性能和对基础功能的最直接的访问。
1..NET数据提供程序
根据数据源不同,常用的.NET数据提供程序可以分为以3种:
SQLServer数据提供程序、OLEDB数据源提供程序以及ODBC兼容的数据源提供程序。
所有的数据提供程序都位于System.Data命名空间中。
每种.NET数据提供程序都由4个主要组建组成。
它们的功能如下:
(1)Connection对象:
用于连接数据源。
(2)Command对象:
用于执行针对数据源的命令并且检索DataReader或者DataSet,或者用于针对数据源的一个INSERT、UPADTA或者DELETE命令。
(3)DataReader对象:
一个已连接的、前向只读结果集。
(4)DataAdapter对象:
用于从数据源产生一个DataSet,并且更新数据源。
2.数据库应用程序的开发流程
虽然数据库应用程序访问的数据库不通,实现的功能也不同,但其开发流程主要分为以下几个步骤:
(1)创建数据库。
(2)使用Connection对象创建到数据库的连接。
(3)使用Command对象对数据源执行SQL命令并返回数据。
(4)利用DataReader和DataSet对象读取和处理数据源的数据。
逻辑设计
1.E-R模型的建立
根据针对系统的需求分析,可以得到本系统对应的各实体以及实体之间的关系。
其中包含有用户实体、司机实体、车辆实体、线路信息实体等。
下面根据分析得出其中主要的E-R图,如图2和图3所示。
图2描述了司机实体和车辆实体之间的关系。
图3描述了车辆实体和线路实体之间的关系。
2.表单设计
根据对各个实体的分析,可以进行数据库表的具体设计。
下面给出两张具体表设计的实例,如表1和表2所示。
表1用户信息表的实现
字段名
数据类型
长度
允许为空
是否为主键
说明
ID
INT
4
否
是
唯一标识
UserName
nvarchar
50
否
否
用户名
UserPass
nvarchar
50
否
否
用户密码
UserSex
nvarchar
50
否
否
用户性别
UserTel
nvarchar
50
是
否
用户电话
UserAddr
nvarchar
50
是
否
用户住址
表2线路信息表的实现
字段名
数据类型
长度
允许为空
是否为主键
说明
ID
Int
4
否
是
唯一标志
LineName
nvarchar
50
是
否
路线名称
LineCode
nvarchar
50
是
否
路线代号
StartTime
nvarchar
50
是
否
起始时间
EndTime
nvarchar
50
是
否
中止时间
StratPlace
nvarchar
50
是
否
起点
Remark
nvarchar
50
是
否
备注
CostTime
nvarchar
50
是
否
用时
InputTime
datetime
8
是
否
输入时间
表3司机信息表的实现
字段名
数据类型
长度
允许为空
是否为主键
说明
D-Name
nvarchar
50
是
否
姓名
D-Number
nvarchar
50
是
否
编号
D-photo
nvarchar
50
是
否
照片
D-Idnumber
nvarchar
50
是
否
身份证号
D-phono
nvarchar
50
是
否
电话号
D_Adress
nvarchar
50
是
否
住址
D-Drivernumber
nvarchar
50
是
否
驾照编号
carinfo
nvarchar
50
是
否
车牌号
表3车辆信息表的实现
字段名
数据类型
长度
允许为空
是否为主键
说明
D-Name
nvarchar
50
是
否
姓名
D-Number
nvarchar
50
是
否
编号
D-photo
nvarchar
50
是
否
照片
D-Idnumber
nvarchar
50
是
否
身份证号
D-phono
nvarchar
50
是
否
电话号
D_Adress
nvarchar
50
是
否
住址
D-Drivernumber
nvarchar
50
是
否
驾照编号
carinfo
nvarchar
50
是
否
车牌号
存储过程
在该公交车管理系统的在数据的查询、添加和删除等操作上主要采用了存储过程。
存储过程是编译好了的SQL语句。
它类似于函数的使用,可以直接通过参数调用存储过程,所以效率比较高。
1.存储过程的介绍
存储过程是由一组为了完成特定功能的SQL语句集,经过编译和优化后存储在数据库服务器中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它[2]。
存储过程的能力大大增强了SQL语言的功能和灵活性。
2.存储过程的优势
(1)允许标准组件式编程。
在存储过程被创建以后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句。
(2)实现较快的执行速度。
因为存储过程是预编译的,在首次运行前,查询优化器对其进行分析、优化,并给出了最终被存在系统中的执行计划[2]。
(3)减少网络流量。
在调用存储过程时,网络中传送的只是该调用语句,而不是多条SQL语句,从而大大减少了网络流量。
(4)作为一种安全机制来充分利用。
系统管理员通过对执行某一存储过程的权限进行限制,从而能够实现对相应的数据访问权限制,避免非授权用户对数据的访问,保证数据安全[2]。
3.存储过程的代码实现
在创建存储过程时,需要确定存储过程的三个组成部分:
1.所有的输入参数以及传递给调用者的输出参数。
2.被执行的针对数据库的操作语句,包括调用其他存储过程的语句。
3.返回给调用者的状态值,以指明调用是成功还是失败。
下面给出在该系统中使用到的部分存储过程:
实现对满足ID号是CarLineID的汽车线路数据的删除操作。
createprocprc_deleteCarLine
@CarLineIDint
as
deleteT_Car_LinewhereID=@CarLineID
if@@rowcount>0
return0
else
return1
GO
实现查询所有汽车信息的存储过程。
createprocspr_carall
as
selectID,CarNumas"车牌号",CarColoras"颜色",SitNumas"座位数",CarTypeas"类型",AirCondias"是否空调车",Companyas"车品牌",Remarkas"备注"fromt_car
GO
详细设计
根据已有的需求分析和总体设计,在此基础上进行系统的详细设计和实现。
为此,建立了一个C#.NET项目。
登录模块
1.用户身份验证
输入:
用户名和密码。
处理:
(1)用户登录窗体启动。
(2)输入用户名和密码。
(3)检索数据库中数据,是否有相应的用户名和密码。
(4)如果用户名和密码为空,或者错误,进行提示。
(5)如果输入的用户名和密码正确,则允许该用户进入系统。
(6)进入主控制台。
输出:
主控制台。
2.用户登录模块的窗体设计
用户登录模块的窗体设计,如图4所示。
3.用户登录模块的主要代码
privatevoidbutton1_Click(objectsender,System.EventArgse)
{
DataAccessmyAcc=newDataAccess();
if(myAcc.userlogin(this.textBox1.Text.Trim(),
this.textBox2.Text.Trim())==1){
this.Visible=false;
MainnewMain=newMain(this.textBox1.Text.Trim());
newMain.Show();
}
elseif(myAcc.userlogin(this.textBox1.Text.Trim(),"")==0)
MessageBox.Show("没有该用户!
");
else
{
MessageBox.Show("登录失败");
}
}
privatevoidbutton1_Click()鼠标事件用于实现在输入用户名和密码后,进入系统主控制界面的方法。
DataAccess类是自定义的用于实现数据库访问的类。
该方法中判断语句里调用了该类所声明的对象myAcc的方法userlogin(),该方法的具体实现代码如下所示:
publicintuserlogin(stringusername,stringuserpass)
{
DatabasemyDB=newDatabase();
SqlParameter[]para={
myDB.MakeInParam("@username",SqlDbType.NVarChar,50,username),
myDB.MakeInParam("@userPass",SqlDbType.NVarChar,50,userpass)
};
returnmyDB.RunProc("spr_uerlogin",para);
}
该段代码展示了上文中所提到的存储过程的具体使用。
主操作界面模块
1.主控制平台的窗体设计
主控制平台的窗体设计,如图5所示。
从界面上直观的向用户表明了在该系统下可以进行的一系列操作,包括新用户的注册,车辆信息的管理,司机信息的管理,线路信息的管理和车辆线路分配的管理。
当用户选择相应的功能进行操作时,触发该按钮事件