学生作品高速公路管理系统.docx
《学生作品高速公路管理系统.docx》由会员分享,可在线阅读,更多相关《学生作品高速公路管理系统.docx(16页珍藏版)》请在冰豆网上搜索。
![学生作品高速公路管理系统.docx](https://file1.bdocx.com/fileroot1/2023-2/1/6a9c0059-9eb9-4d6e-b892-63e838ff468a/6a9c0059-9eb9-4d6e-b892-63e838ff468a1.gif)
学生作品高速公路管理系统
常州信息职业技术学院
《软件开发与项目管理》
学生作品
作品题目:
高速公路管理系统的设计与实现
作品作者:
黎逸超
指导教师:
朱利华
完成时间:
2014.06.20
一、项目简介
城市化是人类社会和经济发展的必然结果,而以城市规模、人口和居民生活质量等为指标的城市化水平的提高总是要受到产业结构、生产方式和交通运输等因素的制约,因此城市化水平也是一国社会经济发达程度的标志之一。
公路运输是可以联系千家万户的面上运输,以高速、安全、土地利用效率和通行能力高为主要特征的高速公路的出现,是面上运输网络布局得以优化、在限定时间内到达或往返区域内任意地点的"小时或数小时交通圈"规划目标得以实现的关键。
从1988年10月第一条短程高速公路(沪嘉高速)建成通车17年来,我国的高速公路取得了迅猛的发展,到2011年,中国已建成的高速公路总里程达8.52万公里,成为了世界上高速公路总里程位居第二的国家。
目前发达国家的高速公路信息化走在世界的前沿,例如澳大利亚的智能交通运输系统,它包括交通控制系统、道路信号系统、车辆监控系统和公共信息服务系统等组成部分。
日本1996年就已经制定了综合计划,由建设部、国际部等多个部门以及国家警察署共同着手开发智能化运输系统,这被视为是解决交通事故数量增加、道路交通拥挤以及环境等社会问题的有效途径。
目前,已取得重要进展,2000年之后,先进的巡行辅助系统就已经进入实用阶段,并取得了突出的成效。
又如新加坡的高速公路信息系统,其亮点是EMAS(监控系统和交通信息发布系统)作为智能交通实施的一部分,进一步改善了高速公路的交通管理的社会效果,实现了提供实时的交通信息、对交通事故快速响应、减少交通拥挤和提高道路安全性等多个功能。
中国正处于飞速发展的阶段,高速公路的高效利用和安全性越来越受到强烈的关注。
自从1999年第一届“中国高速公路信息化研讨会”召开以来,至今已经历经13届,取得了多项成果。
“十一五”期间,经过行业各界人士的共同努力,交通信息化建设取得了显著的进步,在交通信息采集,交通信息化资源整合,以及辅助决策方面迈上了新的台阶。
移动通信技术在高速公路信息化方面的应用包括多个方面。
据调查,中国高速公路信息化对移动通信技术的应用主要包括高速公路应急指挥联动系统、路政管理系统、机电管理系统几个方面,另外,还有高速公路办公系统自动化系统、ETC电子不停车收费系统等等也在发挥重要的作用。
所以在此社会发展的大前景下,一个完整高速信息管理系统就显得不可或缺了,把全国各地的高速公路都联系起来,用一个完善的系统,会使得高速公路更快更好的发展。
从我国的国情、民情以及国外高速公路收费的发展状况来看,半自动收费方式将在我国的高速公路收费中延续一个相当长的时期。
由于没有硬件支持,所以本系统在收费模块中只能利用少许的自动功能,大部分还是要靠人工输入,只是加入了自动计费统计等功能。
二、功能分析
2.1需求分析
2.1.1功能需求
1、管理员:
●对员工的增删改查
●对部门的增删改
●对职位的管理
●对车辆信息的管理
●对收费的调整
●查询报表,查询每日、每周、或每月的收益
●统计每日、每周、或每月的车次
2、员工:
●对自己密码的修改和添加昵称(页面判断)(所有员工)
●查询车辆信息
●根据“车牌号”(精确查询)
●入口收费站(精确查询)
●出口收费站(精确查询)
●进站时间(范围查询)
●出站时间(范围查询)
●根据时段查询已出站车辆信息
●处理进站出站车辆、收费。
●普通车辆
●特殊车辆
●自动删除三辆之前的出站车辆(页面验证是否删除,是否选中,是否是已出站车辆)
●对路况信息,新闻的管理
●统计当日总收益,制成报表,生成柱状图或其它图(只能由财务部员工处理)
3、用户:
●定位行车位置
●查询首页各种动态
●查询以往本人行车记录(进站、出站、缴费)
●注册、登录
●查看天气预报
2.1.2非功能性需求
所有的操作都要简单易行。
数据库备份,定期将数据库中的车辆基本数据、收费信息导出到磁带等超大容量的存储设备以长期保存。
但要保证库中有最近45天内的相关数据。
收费数据一经提交,只可查看,不允许任何人更改,因为有关财务这一块,必须安全。
收费手续简单,效率高,对交通的影响小。
收费系统是工作在交通繁忙的高速公路的入口和出口处,它的效率问题某种程度上决定了交通的车流量,所以对过往车辆的收费过程必须很快的进行,不能让收费站成为公路车流量的瓶颈。
收费站网间的信息传输(收费站到收费科/公路处管理中心的汇总信息)采用安全的TCP/冲通讯协议,以确保数据的安全性。
重要通知通告必须及时的在页面上进行显示。
2.2总体架构分析
1、逻辑架构
在整个软件架构设计中,分层的概念是贯穿于整个架构设计中。
足以说明分层在系统架构设计中的重要性。
微软推荐的分层模式为三层(数据访问层、商业逻辑层、表示层)。
当然对于系统应用规模和层次不同,可以在对这种分层模型进行扩充。
例如常见的一种方式在表示层与业务逻辑层之间再加入一层(UI调用层),他的作用在于当业务逻辑层接口有变动时,不必对表示层进行全方位的改动(毕竟表示层调用业务层的地方非常多,使用”替换”也是非常痛苦的一件事情),只需调整UI调用层极其少数代码,并不必编译表示层代码。
当然,分层式设计方案也有其与生俱来的缺陷。
性能降低。
这是分层结构必然导致的结果,原本可以直接进行数据访问的地方,现在必须调用数据层进行访问,直线变成了曲线。
可能会导致整个层级结构的接口都会做部分调整。
这种情况多数在系统本身不够成熟,需求分析不够充分时出现。
对系统设计能力要求更高。
尤其是体现在系统分析、接口定义方面要求投入更多的精力。
对于一个业务复杂的企业应用系统分层只是一个总体的纲要,同时对于易部署性、扩展性、各层通信、异常、日志、缓存、验证都是不可缺少的,他们也是支撑整个架构的重要组成部分。
在各个层中需要考虑更为细致的设计,使系统在更为和谐的工作。
2、物理架构
Web服务器的分布:
各高速收费服务区、全国高速管理中心,各高速线路服务区。
数据库服务器的分布:
各高速线路服务区、全国高速管理中心。
2.3业务逻辑分析
业务逻辑一般分做两方面:
广义上的义务逻辑——软件本身固有的一种品性,自然存在于软件产品内部,是软件具有的在某个业务领域内的逻辑,是软件的核心和灵魂。
软件产品除界面和交互外的一切都可看作是广义业务逻辑。
狭义上的业务逻辑——等同于分层架构中“业务逻辑层”的职责,是软件中处理与业务相关任务的部分,一般狭义上的业务逻辑不包含数据持久化,而只关注领域内的相关业务。
我在这里分析一下本系统狭义上的业务逻辑:
我们首先进入网站首页,是一个展示的内容,在本页面主要是为了给用户体验,然后就是登录,通过登录来进入到各自的后台管理中去,然后进行各自的操作,如图2-1所示:
图2-1项目逻辑分析
三、系统设计
3.1系统设计
3.1.1系统架构设计
1、体系结构概述
本高速公路收费系统的软件体系结构采用三层客户/服务器模式,三层客户/服务器结构是将整个系统分成用户表示层(界面层)、业务逻辑层和数据访问层三个部分。
用户表示层是数据的用户界面,提供与用户友好的交互,业务逻辑层封装事务处理逻辑和业务控制逻辑,数据访问层提供客户端程序所需的数据访问。
三层应用程序结构的思想是依据数据库应用程序三种相对独立的逻辑功能将其分成抽象程度不同而又相对独立的三个部分:
客户应用程序,应用服务器和数据库服务器,这三个部分运行在不同的机器上,客户应用程序运行在客户机上,提供用户界面;应用服务器运行在一台独立的计算机上,为不同的客户提供共享的事务规则处理。
数据库服务器则通过DBMS负责数据库管理。
2、界面层
界面层提供给用户一个视觉上的界面,是用户接口部分,担负着用户与应用间的对话功能。
用户通过界面层输人数据,获取应用输出的数据。
为使用户能直观地进行操作,一般使用图形用户接口(GUI)。
该层主要是用于向业务逻辑层发出服务请求。
用户只有通过表示层才能访问封装于业务逻辑层组件里的业务逻辑。
表示层确保业务逻辑层能够提供所需的业务处理能力,并且使用户与应用程序紧密结合起来,以处理某项业务。
在变更用户接口时,只需改写显示控制和数据检查程序,而不影响其他两层。
界面层同时也提供一定的安全性,确保用户不会看到机密的信息。
本系统中界面层包括登录界面、车道级收费界面、站级管理界面、用户交流界面等。
3、业务逻辑层
用于做一些有效性验证的工作,以更好的保证程序运行的健壮性。
如完成数据添加、修改和查询业务等;不允许指定的文本框中输入空字符串,数据格式是否正确以及数据类型验证;用户权限的合法性判断等;通过以上的诸多判断以决定是否将操作继续向后传递,尽量保证程序的正常运行。
业务逻辑层(BusinessLogicLayer)无疑是系统架构中体现核心价值的部分。
它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。
例如MartinFowler在《PatternsofEnterpriseApplicationArchitecture》一书中,将整个架构分为三个主要的层:
表示层、领域层和数据源层。
作为领域驱动设计的先驱EricEvans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。
业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。
由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。
如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。
因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。
正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。
对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。
依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。
4、数据访问层
数据访问层:
又称为DAL层,有时候也称为是持久层,其功能主要是负责数据库的访问。
简单的说法就是实现对数据表的Select(查询),Insert(插入),Update(更新),Delete(删除)等操作。
如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。
数据访问层,简单的说,就是通过DAL对数据库进行的SQL语句等操作。
3.1.2功能结构设计
1、用户模块
用户模块包括网站首页(实时发布路况信息),行车定位,语音播报,天气预报等页面展示功能,还有用户个人的信息管理,包括图片上传等,还有留言(对网站的建议)。
由于本系统主要是高速管理系统,对于用户模块做的很简略。
2、员工模块
1)收费管理
当车辆进站时,由员工录入车牌信息,然后在数据库表中找到相应的车辆信息,并自动添加车类型和车主姓名,还有进站时间;然后点击进站跳到车辆出站页面,自动计算车辆出站所需费用,当收费完成之后,再点击出站,打印票据,并将进站和出站信息保存到数据库。
2)财务管理
查询每辆车的缴费信息和车辆基本信息,可按时间、车牌号等条件查询过往车辆信息,从而更方便的统计各种需要的费用并展现出来,查询统计之后还可点击打印按钮直接打印信息,更方便快捷的完成工作。
3)新闻、通知通告管理
对用户发布的实时路况即时显示在首页上,可删除、添加、修改信息。
对员工那块也是一样。
3、管理员模块
1)对员工的管理
负责员工信息的录入,增加、删除和更改用户的信息,以及负责用户的身份权限和密码管理,这里的员工信息只是公路处人事管理系统员工信息的一部分。
2)对年度收益的统计
以图表的形式查看任意一年每月的收益情况
3)对收费费率的修改
统一管理各种车型的收费的费率,可以增加、删除车型和相应费率,修改现有车型的费率,并能将费率的更改及时的在各个收费站点实施。
3.1.3数据库设计
数据库设计是计算机管理信息系统设计很重要的部分,设计质量的好坏,数据结构的优劣,直接影响到管理系统的成败。
数据库设计的基本原则是在MIS总体信息方案的指导下,各个库应当为它所支持的管理目标服务,在设计数据库系统时,应当重点考虑以下几个因素:
1、数据库必须层次分明,布局合理。
2、数据库必须高度结构化,保证数据的结构化,规范化和标准化,这是建立数据库和进行信息交换的基础。
数据结构的设计应该遵循国家标准和行业标准,尤其要重视编码的应用。
3、在设计数据库的时候,一方面要尽可能地减小冗余度,减小存储空间的占用,降低数据一致性问题发生的可能性,另一方面,还要考虑适当的冗余,以提高运行速度和降低开发难度。
4、必须维护数据的正确性和一致性。
在MIS中,多个用户共享数据库,由于并发操作,可能影响数据的一致性。
因此必须用“锁”等办法保证数据的一致性。
5、设定相应的安全机制,由于数据库的信息、对特定的用户有特定的保密要求,安全机制必不可少。
公路收费系统是以数据为中心的管理系统,公路收费系统中所有模块所用到的数据都是存储在数据库中来共享使用的。
设计一个高效、合理、安全、可靠的数据库在该软件的开发中具有重要的意义。
综合考虑之下本项目使用了MySql数据库。
1、外部设计
数据库名:
freewaymanagementsystem
本数据库一共有10张表,如下:
表3-1数据库表
数据库表名
备注
Car
车辆基本信息表
Cost
车站收费记录表
Department
部门表
distance
各站之间距离表
employee
员工表
message
用户留言表
notice_emp
员工通知通告表
notice_user
实时路况表
rate
费率表
user
用户表
2、结构设计
1.员工信息
员工信息包括员工号,所属部门,职位,姓名,性别,民族等人员基本信息。
2.车辆信息
车辆信息包括,车牌号,车主姓名,车类型。
3.车辆类型费率表
车辆类型费率表包括车类型,费率。
4.部门信息
部门信息主要是部门编号,部门名称。
5.车辆收费信息
车辆收费信息包括收费站名,车类型,进出站时间,缴费金额。
6.收费站距离信息
这个主要是各站点之间的距离,不用做更新处理,是一个固定的信息表。
7.用户信息
用户信息主要是姓名,车牌号,邮箱,手机号,昵称,密保问题等信息。
8.留言信息
留言信息中需要日期,用户名,标题和留言内容,还有一个员工回复的信息。
9.实时路况信息
实时路况信息主要就是标题和内容,还有一个发布时间。
3、逻辑结构设计
数据库这一块的设计是非常重要的,本数据库中表比较多,公设了10张表,有几张表把固定的信息录入就好,比如说车辆信息,站点之间的距离,这些都不需要去修改的,只要读取出来就好。
它们之间的关系,如下图:
图3-1数据库逻辑结构设计
3.2模块详细设计
3.2.1功能模块概述
用户模块包括网站首页,行车定位,语音播报,天气预报等页面展示功能,还有用户个人的信息管理,图片上传等。
当车辆进站时,由员工录入车牌信息,然后在数据库表中找到相应的车辆信息,并自动添加车类型和车主姓名,还有进站时间;然后点击进站跳到车辆出站页面,自动计算车辆出站所需费用,当收费完成之后,再点击出站,打印票据,并将进站和出站信息保存到数据库。
查询每辆车的缴费信息和车辆基本信息,可按时间、车牌号等条件查询过往车辆信息,从而更方便的统计各种需要的费用并展现出来,查询统计之后还可点击打印按钮直接打印信息,更方便快捷的完成工作。
对用户发布的实时路况即时显示在首页上,可删除、添加、修改信息。
对员工那块也是一样。
负责员工信息的录入,增加、删除和更改用户的信息,以及负责用户的身份权限和密码管理,这里的员工信息只是公路处人事管理系统员工信息的一部分。
以图表的形式查看任意一年每月的收益情况
统一管理各种车型的收费的费率,可以增加、删除车型和相应费率,修改现有车型的费率,并能将费率的更改及时的在各个收费站点实施。
3.2.2类和接口,页面的文件资源结构
本系统使用Struts+Hibernate技术进行实现,其代码结构图如下表所示:
表3-2类和接口表
序号
类或接口、页面文件名
Action文件名
说明
1
AdminDao.java
AdminAction.java
管理员模块的控制
2
ICarCost.java
CarCostAction.java
收费模块的控制
3
CostDao.Java
CostAction.java
财务模块的控制
4
DepartmentDao.java
DepartmentAction.java
对部门操作的控制
5
IEmployeeDao.java
EmployeeAction.java
对员工信息的操作
6
EmployeeDao.java
UserDao.java
LoginCheckAction.java
登录功能的控制
7
NoticeEmpDao.java
NoticeEmpAction.java
通知通告的控制
8
NoticeUserDao.java
NoticeUserAction.java
实时路况的控制
9
RegisterUserDao.java
RegisterUserAction.java
用户注册控制
10
com.iflytek
IflytekAction.java
语音播报控制
四、系统实现
本系统由我们小组共同开发,共分成,用户、管理员、员工三大模块,员工模块下面又分成收费部、财务部、信息部三个模块,由于本系统重点不在用户而是后台,所以我们在用户那一块只加了一个留言,还有注册登录。
管理员主要负责员工的添加删除,还有费率的调整。
收费部就负责车辆进出站。
新闻部负责发布删除通知通告。
财务部负责统计收益信息并打印。
具体实现界面如下:
4.1首页
在首页主要是显示一些新闻,还有一个天气预报,如下(图4-1):
图4-1首页
在首页还有一个行车定位的链接,我通过XXAPI进行了实时定位到当前所在城市(图4-2)。
图4-2地图定位
点击地图还可获得所点位置街道名,在本图中我点击的是图中标记的位置,也就是我们学校旁的香樟大道(图4-3)。
图4-3定位演示
4.2登陆页面
登陆页面主要是判断不同用户所要跳转的不同界面,而且不同部门的员工看到的界面也不一样,这个在后面可以看出来,我们先看登录页面(图4-4)
图4-4登录
4.3用户页面
用户界面主要是为了对网站的建议留言,由于本系统是针对高速管理的,所以对于用户这一块,做的很简略,也是因为时间比较紧,所以这块尽可能的减少了功能。
如图(4-5)。
图4-5用户个人中心
4.4员工后台
1、管理员后台
员工这里我们小组花的时间是最多的,因为我们做的就是后台管理,员工这里我们分为了三个不同的部门,每个部门的工作都不同,因而每个部门的页面和操作都不一样。
当职位是经理时,我们便是进入的管理员页面,如下图(4-6)。
图4-6管理员后台界面
2、收费部后台
收费部主要就是负责车辆进站,出站,记录车辆通行信息,当收费部员工登录时,进入的便是如下页面(图4-7):
图4-7收费后台主页
3、财务部后台
财务则是负责统计汇总每天收益信息,生成报表并打印,由于对财务流程的不熟悉,这一块功能或许也不是很全面(图4-8):
图4-8财务后台主页
4、信息部后台
信息部主要是发布实时路况信息,使用户能及时了解当前路段情况,还有对用户留言的回复,对员工内部的通知通告(图4-9):
图4-9信息后台主页