基于JavaEE平台的城市公交便利度系统_第1页
基于JavaEE平台的城市公交便利度系统_第2页
基于JavaEE平台的城市公交便利度系统_第3页
基于JavaEE平台的城市公交便利度系统_第4页
基于JavaEE平台的城市公交便利度系统_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要城市公交便利度分析系统(Analysissystemofurbanpublictransportconvenience)是一个以深圳公交巴士为例的便利度分析系统,系统地对比深圳不同地区的公交巴士便利度状况,且管理员可以对公交信息以及公园信息进行增删改的功能,而普通用户则可以查询到公交和公园的基本信息。公交巴士是深圳市民出行的主要方式,通过以公交巴士的线路和站点数据为基础,分析线路的平均站间距和非直线系数以及分析各个地区300米和500米内范围的可换乘站点数、站点周边住宅的平均距离和公园周边的站点数。并且展示深圳各个地区的问题线路以及问题站点的状况,分析市民出行的便利程度。最后会生成一个标准化的便利度分析报告以辅助公交运营管理者和公交乘客了解深圳公交的状况。关键词:公交巴士;公交便利度;公交线路;公交站点;深圳DesignandimplementationofurbanpublictransportconveniencesystembasedonJavaEEplatformAbstractTheurbanpublictransportconvenienceanalysissystemisaconvenienceanalysissystemtakingShenzhenpublictransportbusasanexample.ItsystematicallycomparestheconveniencestatusofpublictransportbusesindifferentareasofShenzhen,andtheadministratorcanadd,deleteandmodifythepublicbusinformationandparkinformation,whileordinaryuserscanquerythebasicinformationofpublictransportandpark.PublicbusisthemainwayforShenzhencitizenstotravel.Basedonthelineandstationdataofpublicbus,thispaperanalyzestheaveragestationspacingandnon-linearcoefficientoftheline,aswellasthenumberoftransferstationswithin300mand500mineacharea,theaveragedistanceofresidentialbuildingsaroundthestationandthenumberofstationsaroundthepark.ItalsoshowstheproblemroutesandthestatusoftheproblemstationsinvariousregionsofShenzhen,andanalyzestheconvenienceofcitizens'travel.Finally,astandardizedconvenienceanalysisreportwillbegeneratedtoassistthepublictransportoperatorsandpassengerstounderstandthestatusofpublictransportinShenzhen.Keywords:Publicbus;travelconvenience;buslines;busstations;Shenzhen目录TOC\o"1-3"\h\u1前言 11.1本设计的目的、意义及应达到的技术要求 11.2本设计在国内外的发展概况及存在的问题 21.3本设计应解决的主要问题 22系统的需求分析及解决方案 32.1公交巴士线路分析 32.1.1非直线系数 32.1.2平均站间距 42.2公交巴士站点分析 42.3功能点需求分析 42.4功能点问题及其解决方案 43系统整体的概要设计 53.1三层架构 53.2系统整体流程 64数据库设计 74.1数据库逻辑结构 74.2数据库表结构 85详细设计 115.1管理员注册/登陆功能 115.1.1管理员注册 115.1.2管理员登录 125.1.3登录状态栏 135.2公交线路/公园信息功能 145.2.1公交线路/公园信息分页查询 145.2.2公交线路/公园信息增删改 155.3公交线路问题分析功能 175.3.1线路非直线系数 185.3.2线路平均站间距 195.4站点问题与分析功能 205.4.1站点周边换乘站点 205.4.2站点周边住宅 215.4.3公园周边站点 225.5便利度分析报告功能 226便利度报告数据分析总结 246.1公交线路数据表 246.2站点分布数据表 256.3公交站点便利度数据表 267结论 28参考文献 29谢辞 30附录 31PAGE41前言城市公交便利度分析系统(Analysissystemofurbanpublictransportconvenience)是一个以深圳公交巴士为例的便利度分析系统,系统地对比深圳不同地区的公交巴士便利度状况,且管理员可以对公交信息以及公园信息进行增删改的功能,而普通用户则可以查询到公交和公园的基本信息。公交巴士是深圳市民出行的主要方式,也是市民出行不可或缺的一部分,构成了市民出行便利的重要因素。因此选择深圳的公交巴士角度构建模型是最佳选择。通过以公交巴士的线路和站点数据为基础,分析线路的平均站间距和非直线系数以及分析各个地区300米和500米内范围的可换乘站点数、站点周边住宅的平均距离和公园周边的站点数。并且展示深圳各个地区的问题线路以及问题站点的状况,分析市民出行的便利程度。最后会生成一个标准化的便利度分析报告以辅助公交运营管理者和公交乘客了解深圳公交巴士线路的优缺点以及各个地区的便利度状况。1.1本设计的目的、意义及应达到的技术要求城市公交便利度分析系统是面向深圳公交使乘客的交通活地图,该系统目的是能够提供深圳各个区域的公交便利度的分析报告以及辅助公交运营管理者和公交乘客了解深圳公交的状况,而且可以让系统管理员实时修改公交巴士的线路信息、站点信息以及公园信息,与此同时普通用户也可以进行公交巴士和公园的信息查询。该系统的意义则是体现在市民出行的便利性问题上,因为公交巴士是市民日常出行的主要方式,市民能否舒适且方便地在公共空间活动其中一个重要因素就是公交巴士的便利性,而这也是一个关键性问题。出行便利度是指人们采取某种出行方式到达目的地的便利程度。评价城市公交的等级时,交通便捷度是不可忽视的一个指标。公交车是最为普遍的一种大众运输工具,对社会和城市发展起着最基本的推动作用[1]。本系统应达到的技术要求软件系统的全流程设计与实现,涵盖需求分析、功能设计、架构设计、算法支撑、编码测试等。以三层设计架构为基础的MVC(Model-View-Controller)开发模式为本研究系统的主要模式,实现B/S架构的便利度分析系统。使用Maven来管理本次基于JavaEE技术的研究项目。实现Dao层(数据访问层)的数据访问与操作是Druid(数据库连接池技术)、JDBCTemplate(Java数据库工具类)以及Mysql(数据库)。实现Service层(业务逻辑层)技术有Javamail(java发送邮件工具)。实现Web层(表示层)的技术有Servlet(前端控制器)、html+css+JS(视图)、Bootstrap(前度开发框架)、Filter(过滤器)、BeanUtils(数据封装)、Jackson(json序列化工具)以及Echarts(数据可视化工具)已达到前端交互的效果。1.2本设计在国内外的发展概况及存在的问题国外提出了“公交优先”公交优先是指城市市内客运交通以大容量、快速度的公交体系为主,以其他交通方式为辅。公交优先是一项避免个体交通带来城市交通拥堵的交通发展策略,关系到城市交通基础设施、城市交通管理、城市交通法规政策及相关技术研发等多个方面。的一个完整体系,其源于20世纪60年代的法国巴黎。由于法国政府采取鼓励私人交通的政策,从而导致巴黎小汽车突增猛进,以致70年代巴黎的路面交通几乎瘫痪,因此不得不大力发展公共交通。随后,英国、德国等发达国家也采用“公交优先”的交通发展战略,都取得了显著的效果公交优先是指城市市内客运交通以大容量、快速度的公交体系为主,以其他交通方式为辅。公交优先是一项避免个体交通带来城市交通拥堵的交通发展策略,关系到城市交通基础设施、城市交通管理、城市交通法规政策及相关技术研发等多个方面。而国内针对交通拥堵问题,国内掀起了地铁建设的高潮。除北京、上海、广州等一线城市外,青岛、南京、武汉、成都、昆明等城市也正在筹划或已经建设了部分线路的地铁。他们对于解决城市交通问题的初衷是毋庸置疑的,但是仅依靠地铁很难解决城市交通拥堵问题,实现公交优先的美好愿望。无论是英国、德国,还是匈牙利、新加坡,都是将公共交通作为一个系统来运作的。在这个系统中,处于关键位置的,不是地铁和轨道交通,而是路面公共交通(公交车、捷运、无轨电车等)[2]。加大对路面交通的资金投入,建立良好的路面交通管理体系,提高路面公共交通的正点率和稳定性,才是我国现阶段发展公共交通的最优选择[2]。1.3本设计应解决的主要问题(1)对深圳的公交便利进行需求分析;(2)深圳公交巴士的线路特征分析;(3)深圳公交巴士的问题线路、问题站点状况分析;(4)普通用户对信息的查询功能以及管理员对信息增删改功能的实现;(5)公交问题线路与问题站点的前端页面展示与交互;(6)在前端页面上生成标准化的便利度分析报告;(7)设计并实现一个基于B/S架构的城公交市便利度分析系统。2系统的需求分析及解决方案随着城市的快速发展,经济的迅速上升,市民的生活品质也日益提升。市民生活品质的其中一个关键因素就是出行便利度,而市民的主要出行方式就是公共交通,其各个因素将会影响着市民的出行舒适性和便捷性。所以以深圳市的公交巴士建立模型,本章节将会分析公交巴士线路的特征因素和站点的具体分析等,以及对应的解决方案。2.1公交巴士线路分析伴随着深圳的飞速发展,深圳路面状况也日益复杂,所以公交巴士线路的设计合理性也显得格外重要。由深圳市交通运输局提供的“深圳市公交线路、站点一览表(2020年1月)”中显示截止至2020年1月,深圳共有公交线路937条。而在满足规划技术标准体系下,进行多层次公交线网组织。在新增和调整公共汽车线路,主要考虑五大基本要素,即“空间要素、时间要素、条件要素、车辆要素、网络要素”[3]。考虑到数据的可用性以及数据的有限性,本次设计中主要以空间要素为公交巴士线路的主要分析对象,以达到判断线路的设计合理性为目的。在空间要素中我选择了最具代表性的两个因素“非直线系数”以及“平均站间距”来重点分析,这两个因素最体现出一条公交线路设计的合理性,而设计的合理性也大大影响着市民的出行便利程度。2.1.1非直线系数非直线系数就是公交线路的线路长度与起始站直线距离之比[4]。该指标用来限定各类线路的空间形态,确保各类线路的绕行程度与其功能相适应[3]。这对于市民的出行目的与体验是有很大的关联,若线路过于绕路则会影响市民的出行便利度。简单的来说非直线系数就是公交线路的绕路程度,其系数越高说明该公交线路绕路程度越高,其系数越低说明公交线路不绕路。若公交线路的非直线系数不超过1.4则符合规定要求。(公式2.1)(公式2.2)其中公式2.1中表示非直线系数表示一条公交线路的起始站之间直线距离,表示公交线路的全程路线距离。公式2.2中表示城市的非直线系数,表示城市的非直线系数总和,表示城市的公交线路总数。2.1.2平均站间距平均站间距则是公交线路的线路长度(米)与站点数之比。该指标用来限定各类线路的运营模式,区别各类线路的功能特征[3]。一般市民可接受步行范围400至600米[5],因此总的来说如果公交线路的平均站间距过小则将会浪费公共资源,大部分市民将不会选择乘坐此类公交线路。(公式2.3)其中公式2.3中表示一条公交线路的平均站间距,表示公交线路的线路长度,表示一条公交线路的站点数。2.2公交巴士站点分析公交巴士站点设置与市民的出行息息相关,市民上班途中的换乘、回家时步行至住宅区以及出行娱乐时,站点的位置设立就显得极其重要。倘若站点之间没有合理的分配好位置或远或近,都会影响到市民换乘的便捷性以及浪费公共资源。从市民的角度出发,市民的便利度绝大程度上取决于站点位置以及站点之间的设置。在这发展迅速的城市里,人们的娱乐方式常常也选择公园,因为城市公园也是市民逃离工作获得轻松、宁静和身心健康的重要场所[6],所以本人选取站点的周边站点、站点的周边住宅以及公园的周边站点为公交巴士站点的分析对象。2.3功能点需求分析首先为了满足普通用户的操作要求、线路和站点的问题分析有一个良好的前端交互过程以及最后生成一个数据可视化界面,需要有如下功能:普通用户查询线路及公园基本信息功能点;普通用户可以根据自己选择查询各个区的站点及问题状况;普通用户可以选择问题分析线路及问题状况;普通用户可以在数据可视化界面中获取到各个地区标准化便利度报告以及 城 市公交的整体信息。而管理员的操作需求要在普通用户上增加如下功能:管理员用户需要用特定的注册方式,不能让普通用户随意就可以注册到;管理员需要对公交线路及公园基本信息的进行增删改的功能。2.4功能点问题及其解决方案研究对象及功能点需求分析都已经罗列出来了,接下来的关键问题是该如何实现公交问题线路及问题站点的展示、深圳公交巴士的数据来源,以及标准化的便利度报告该以哪种方式展现。解决方案:问题线路以及问题站点的展示可以使用高德地图的API接口实现,可以实现绝大多数用户操作功能以及高德地图会反馈公交线路所应有的相关信息。而标准化的便利度分析报告则可以使用Echarts数据可视化的前端框架实现,其可以以图表的形式展现在页面上,以便于用户的查看。3系统整体的概要设计通过上述的需求分析,我们已经知道了该系统的需求以及需要什么功能,接下来就是探讨整个系统的概要设计,有一个良好的整体框架对后续工作可以说是如鱼得水。本次设计基于的是JavaEE平台以及采用的是B/S的设计架构,所以本次项目采用的是Maven管理项目工具,其优势在于可以管理庞大且占内存的jar包,编译代码,还可自动运行单元测试、打包、生成报表,甚至还可以部署项目,生成Web站点。3.1三层架构图3.1三层架构流程图对于项目的整体体系结构来说,我采用的是B/S三层架构,包括数据访问层、业务逻辑层以及表示层,其优势第一,可以实现多个层次功能的区分,确保逻辑层中的稳定性,系统维护时就会显得特别从容;第二则是能够灵活地选择硬件与软件搭配,确保最大化的处理能力;第三,允许已划分好的每个层次设计开发可以同步开展,不仅可以得到开发质量的保证,同时可以让开发成本最小化,也能够确保每层维护的便捷性与简易性[7]。数据访问层实现的是对数据库的操作(CRUD);业务逻辑层则是组合DAO层中的简单方法,形成复杂功能;表示层则是接受各种参数,封装成数据,调用业务逻辑层完成处理。并且将数据重新封装后发送到html页面中完成显示。3.2系统整体流程图3.2系统整体流程图根据系统流程图我们可以清晰的知道该系统的所有功能以及其系统的流程步骤。首先身为普通用户可以进行查询公交线路信息以及公交信息,其次可以在公交线路问题分析页面中具体选择问题进行分析,然后可以在地区问题分析中选择自己想要了解的问题及站点问题状况,最后可以在便利度分析报告中查看之前问题分析的归总后的数据显示报告。而管理员用户需要特殊的邀请码才可注册为管理员,之后才被允许操作公交线路信息以及公园信息的增删改功能。4数据库设计数据库(DataBase)众所周知是用于储存和管理数据的仓库,简单来说其特点持久化储存数据,方便储存和管理数据。数据是本次设计的关键因素之一,重点在于收集到的数据,以及数据的处理,考虑到深圳公交巴士数据的有限性、可获取性,以及高德地图API接口可真正实现的功能,本人将这次系统的数据库设置为七个表,分别为tab_busline(深圳公交线路信息表)、tab_databusline(深圳公交线路数据表)、tab_district(深圳地区及数据表)、tab_park(深圳公园信息表)、tab_park_type(公园类型表)、tab_station(深圳公交站点信息及数据表)、tab_user(管理员用户表)。4.1数据库逻辑结构以下是这七个表的关系图:图4.1数据库E-R图由数据库E-R图中我们可以看出tab_park_type(深圳公园信息表)与tab_park(深圳公园信息表)是一对多的关系;tab_district(深圳地区及数据表)与tab_park(深圳公园信息表)也是一对多的关系;tab_district(深圳地区及数据表)与tab_station(深圳公交站点信息及数据表)依然是一对多的关系。尽管图中有三个表是独立存在的,但上述四个表是满足数据库第三范式的,尽可能地降低数据库的冗余,从而设计出合理的关系型数据库。4.2数据库表结构本系统设计的各个表结构如下:(1)tab_busline表,该表储存的是深圳公交线路信息。表4.1深圳公交线路信息表字段名称字段类型(字长)备注bus_idvarchar(64)公交线路编号start_stationvarchar(64)起始站end_stationvarchar(64)终点站uplink_sitesvarchar(255)上行途径站downlink_sitesvarchar(255)下行途径站(2)tab_databusline表,该表储存的是深圳公交线路数据。表4.2深圳公交线路数据字段名称字段类型(字长)备注yearsint(11)年份questionLineint(11)问题路线总数avgStation_distance_500int(11)平均站距300-500avgStation_distance_800int(11)平均站距500-800avgStation_distance_1000int(11)平均站距800-1000avgStation_distance_1int(11)平均站距1公里以上lineAint(11)合格路线lineBint(11)轻度绕路的数量lineCint(11)中度绕路的数量lineDint(11)重度绕路的数量lineFint(11)严重绕路的数量lineLoopint(11)公交环线数量avg_nonlineardouble非直线系数(3)tab_district表,该表储存的是深圳地区及其数据。表4.3深圳地区及数据表字段名称字段类型(字长)备注didint(11)地区id(主键)districtnamevarchar(64)地区名称district_codeint(11)地区编码stationsint(11)地区站点总数transfer_300double站点300米内可换乘站点数transfer_500double站点500米内可换乘站点数qts_stationsint(11)问题站点数avgDistance_house_500double站点到周边住宅平均距离avgStation_park_500double公园周边站点数量avgDistance_park_500double公园到周边站点的平均距离avgHouse_station_500double站点周边平均住宅区数量(4)tab_park表,该表储存的是深圳公园信息。表4.4深圳公园信息表字段名称字段类型(字长)备注pidint(11)公园id(主键)district_idint(11)地区id(外键)streetnamevarchar(32)街道名称parknamevarchar(100)公园名称type_idint(11)公园类型id(外键)sizedouble(10,2)公园面积longitudedouble公园经度latitudedouble公园维度(5)tab_park_type表,该表储存的是公园类型信息。表4.5公园类型表字段名称字段类型(字长)备注tidint(11)公园类型id(主键)parktypevarchar(64)公园类型(6)tab_station表,该表储存的是深圳公交站点信息及其数据。表4.6深圳公交站点信息及数据表字段名称字段类型(字长)备注station_namevarchar(64)公交站点名称(主键)longitudedouble站点经度latitudedouble站点纬度dcidint(11)站点所属地区id(外键)(7)tab_user表,该表储存的是管理员用户信息。表4.7管理员用户表字段名称字段类型(字长)备注uidint(11)用户id(主键)usernamevarchar(100)用户名/账号PASSWORDvarchar(32)密码NAMEvarchar(100)真实姓名invitation_codevarchar(50)邀请码telephonevarchar(11)手机号emailvarchar(100)邮箱STATUSchar(1)激活状态,Y代表激活,N代表未激活CODEvarchar(50)激活码(唯一)5详细设计一个良好的系统一定要有良好的交互过程,操作上要方便,符合习惯,给予用户一个不错的体验,以及功能点流程设计的合理性,性能上要稳定等。经过对整个系统的概要设计分析之后,接下来我们来谈谈系统功能点的每个细节是如何实现以及如何整合在一起的。将会分为管理员注册/登陆功能、查询公交线路和公园基本信息功能、公交线路问题分析功能、地区问题与分析功能、便利度分析报告功能以及功能点对应的页面布局来进行说明。5.1管理员注册/登陆功能为了提高普通用户的前端交互体验,普通用户是无需进行登录注册环节的,直接进入网页即可操作,所以此功能是针对管理员实现的,只有管理员登录成功后才可对公交线路和公园的基本信息进行增删改的需求。5.1.1管理员注册图5.1.1管理员注册流程图对于管理员的注册要求是需要邀请码的,而邀请码即是已注册管理员的激活码,所以本系统需要初始化一个管理员,以他的激活码为例,其他需要注册的管理员才可进行通过注册。在每个管理员注册成功后都会生成一个激活码,此激活码就是之后需要注册的管理员的邀请码,所以管理员是可以授权其他人进行注册管理本系统信息的。注册完成后系统会发送一封激活邮件到管理员注册时填写的邮箱,管理员需要前往邮箱地址激活此账号。图5.1.2管理员注册界面技术层面:首先是web层,前端页面的布局采用的是div+css,使用JavaScript完成表单每行的校验后提交表单,使用Ajax完成表单提交至Servlet中进行封装User对象,调用Service层中的注册方法并把响应结果写回客户端中,验证码则是使用Servlet中内存创建图片方法实现;然后是Service层,调用Dao层的方法返回响应结果,若注册成功则将用户状态设为N,使用UuidUtils(随机生成UUID随机字符串工具类)生成一个激活码,并且使用MailUtils(发邮件工具类)发送激活邮件;最后Dao层,查找用户方法用来判断用户名是否重复,保存信息方法则是用来保存用户信息到tab_user表中。用户注册成功后管理员在填写的邮箱中会收到激活邮件,点击链接跳转至Servlet会根据激活码在tab_user表中查找用户并且修改用户状态为Y,然后跳转至激活成功页面。5.1.2管理员登录同样的,登录的逻辑与注册是有着异曲同工之处。web层中,前端页面的布局也是采用div+css,使用Ajax完成表单的提交至Servlet中,而Servlet负责验证码的验证,封装账号密码信息,调用Service层的登录方法将登录结果写回至客户端中,并且判断登录成功后设置一个登录成功标志“user”存入session中;Service层则是调用Dao层的根据账号和密码查询用户方法返回用户信息。图5.1.3管理员登录流程图图5.1.4管理员登录界面由图5.3可以看出登录过程是需要符合多个条件的,账号密码以及验证码的为表单是基础校验方式,账号是否激活则是根据账号在tab_user表中查找用户的状态是否为Y。当验证码错误时Servlet则直接返回“验证码错误”信息;当账号或密码出错时将会提示“用户名或密码错误”;当账号未激活时提示“您尚未激活,请激活”。5.1.3登录状态栏一个简易的登录状态栏是为了提高管理员的前端交互体验实现的。在未登录状态时显示“登录注册”;登录状态时显示“欢迎回来,xxx退出”。采用Ajax异步加载的方式请求控制器从session中获取登录用户名“user”,登录前后的状态栏是使用JQuery动态增/删div的方式实现的。在登录状态时点击“退出”,Servlet控制器则会销毁session以达到退出登录的效果。5.2公交线路/公园信息功能公交线路/公园信息功能分为两个部分,一是普通用户分页查询功能,支持模糊查询和关键字查询,二是一的基础上增加管理员对信息的增删改功能,以及添加了过滤器防止普通用户进入管理员页面操作增删改功能。5.2.1公交线路/公园信息分页查询图5.2.1公交线路分页查询界面页面布局样式采用的是Bootstrap的表格样式,且每页固定显示15条信息。由于公交线路与公园信息的分页查询功能一致,所以只举例公交线路信息分页查询的实现步骤说明。实现分页查询功能就需要创建一个分页对象PageBean用来储存分页信息,其参数有总记录数、总页数、当前页码、每页显示的条数以及每页显示的数据集合。Web层:首先页面会获取查询关键字的参数,并将参数发送Ajax异步请求Servlet控制器中,控制器接收到参数后调用Service层的查询PageBean对象方法后将分页对象序列化为Json,并返回查询到的线路/公园信息的数据集合;然后在Ajax回调函数中进行解析控制器返回的Json分页对象,再以拼接字符串的形式展示所查询到的数据集合。而分页导航栏是借鉴百度搜索的分页导航栏,即超过十页导航栏上只显示十页,当前页码前边显示5页,而后边显示4页。图5.2.2分页导航栏展示图Service层:Servlet调用的分页查询方法中参数有当前页码、每页显示条数以及对应查询的参数。在业务逻辑层中主要是调用Dao层中的findTotalCount()查询总条数方法、findByPage()根据查询关键字的参数查找信息,从而进行封装分页对象返回数据集合。Dao层:findTotalCount()查询总条数方法和findByPage()根据查询关键字的参数查找信息都是底层操作数据库的方法,其中findByPage()方法巧妙的运用拼接sql语句的方式完成多关键字模糊查询的功能。5.2.2公交线路/公园信息增删改管理员的增删改操作界面是需要管理员登录后才可进入的,普通用户进入则会跳转至登录界面,这是在web层中采用过滤器Filter实现的。由于公交线路和公园基本信息的增删改操作原理是一致的,所以以公交线路基本信息为主说明。登录状态下进入管理员操作界面Filter则会在session中获取用户名“user”已达到判断是否登录的过滤效果。图5.2.3管理员操作流程图图5.2.3公交线路信息-管理员操作界面图管理员添加线路信息是采用表单的形式提交至Servlet控制器中,再又Servlet调用Service和Dao层的添加线路信息方法实现的,最后再返回响应结果。因为有些公交线路是环线公交,因此无下行线路,为了简单化后台代码将下行途径站点默认为null。图5.2.4添加线路信息界面图管理员添加线路信息是采用表单的形式提交至Servlet控制器中,再又Servlet调用Service和Dao层的添加。修改信息按钮与添加是一样的,其差别在于将修改信息按钮绑定点击事件传递线路编号pid参数至控制器中,修改信息中有线路信息回显的功能,其根据线路编号pid在tab_busline表或tab_park表中寻找对应的数据信息集合并且返回,再在前端中Ajax的回调函数中解析控制器回传的数据信息集合即对应编号的公交线路信息;并且修改线路信息页面中是无法修改公交线路编号的。其页面布局也是采用Bootstrap的表单样式,即美观又简化了前端代码。图5.2.5修改线路信息界面图图5.2.6修改公园信息界面图而删除功能直接在管理员操作界面中即可完成,根据线路编号pid在tab_busline表或tab_park中删除,单击删除按钮即可删除。5.3公交线路问题分析功能公交线路问题分析主要从非直线系数和平均站间距两个方向分析,其难点在于前台JS调用高德地图API接口以及从高德地图服务器反馈的信息数据处理。高德地图API接口并没有支持所有线路的查找方法,所有本人在前台JS使用Ajax异步请求tab_busline表中的所有线路编号,并使用高德地图API一一查询并处理反馈的信息数据。在html中创建一个select菜单标签供用户选择问题进行分析。图5.3.1公交线路问题分析逻辑图公交线路的非直线系数分析与平均站间距分析的设计逻辑在图5.3.1中可以清楚的看到。为了减轻代码工作量,高德地图API反馈的公交线路信息本人选择了在前台JS中完成数据的处理,再传回到后台储存至数据库tab_databusline表中。5.3.1线路非直线系数图5.3.1公交线路非直线系数问题分析展示图首先在JS中调用高德地图API中LineSearch方法查询线路信息后,高德反馈详细的线路信息,然后依次绘制线路,并将数据处理,以达到动态绘制线路的目的。本人经过反复的实验后,将深圳公交线路非直线系数分为5个等级,依次是合格线路(系数低于1.4)、轻度绕路(1.4<系数≤2)、中等绕路(2<系数≤3)、重度绕路(3<系数≤4)以及严重绕路(系数高于4)。根据公式2.1和公式2.2计算出深圳公交线路的非直线系数分类展示到页面中,并且单击可隐藏对应分类的线路,双击则显示线路;最后将分类后的数据采用Ajax异步请求传回至后台数据库tab_databusline表中。5.3.2线路平均站间距图5.3.2公交线路平均站距问题分析展示图公交平均站间距是参考“2017上半年度中国主要城市公共交通大数据分析报告”进行分类的,其充分体现公交线路的空间特征。线路平均站间距问题分析与非直线线路分析功能逻辑是一致的,不同则是在前台JS的算法中体现。其算法是根据公式2.3编写的。并且针对用户良好的交互操作体验,单击问题线路即可单独显示。图5.3.3平均站距-问题线路展示图5.4站点问题与分析功能站点的问题分析功能分为站点周边换乘站点、站点周边住宅以及公园周边站点三个角度分析。其设计逻辑均与公交线路问题与分析功能是一致的,可参考图5.3.1。其区别在于站点功能是在JS中请求tab_station表的公交站点经纬度信息以及tab_park表的公园经纬度信息,然后再调用高德地图API的海量点方法(MassMarks)、地点搜索服务(PlaceSearch)、行政区查询服务(DistrictSearch)以及一些绘图方法和计算工具类共同完成的。同样的在html中创建一个select菜单标签供用户选择深圳各个地区的菜单栏。5.4.1站点周边换乘站点图5.4.1站点周边换乘站点-全市展示图图5.4.2站点周边换乘站点-地区展示图站点周边换乘站点的功能原理主要是区分各个地区,利用高德地图的数学计算工具类以站点与站点一一计算两点间直线距离,记录下两点间距离小于300米的个数以及小于500米的个数,然后与地区的公交站点总数之比,就得出了300米平均可换成站点数以及500米平均可换成站点数。站点换乘设置应在车辆前进方向迎面错开30米[8],即站点与站点之间距离相差不到30米的则视为问题站点,并一一在前端页面上展示出来绘制站点图表是采用高德地图的海量点标记(MassMakers)实现的,最后将计算后的数据异步提交到Servlet控制器中存储到数据库tab_district表中。图5.4.3地区问题站点展示图5.4.2站点周边住宅图5.4.4站点周边住宅展示图站点周边住宅依然是使用异步请求到的站点经纬度,再使用高德地图API中地点搜索服务(PlaceSearch)进行搜索实现。站点到住宅区的平均距离计算步骤:1.从高德地图反馈的信息中获取到站点周边住宅区的经纬度;2.利用高德地图数学工具类计算出两点间距离,取两点间距离总和与住宅区数量之比,得出一个站点到住宅区的平均距离;3.累加一个地区的所有站点到住宅区的平均距离之和与一个地区的站点数量之比,最终得出一个地区的站点到住宅区的平均距离。以及记录了一个地区站点周边覆盖的平均住宅区数量,并且展示出站点周边无住宅的站点。5.4.3公园周边站点图5.4.5公园周边站点展示图公园信息的来源于深圳市交通运输局,共有146个专类公园和综合公园。公园周边站点的功能与站点周边住宅功能大同小异。由于公园的面积参差不齐,不适于以公园中心为基点搜索周边站点,所以本人将中心点设置为公园的出口为标准,进行周边500米站点的搜索,依然是使用高德地图API中地点搜索服务(PlaceSearch)。分别展示公园周边500米无站点的公园以及公园周边所有搜索到的公交车站点,并且以上述的站点到住宅区的平均距离计算步骤计算公园到站点的平均距离,最后将数据利用异步请求存储到数据库tab_district表中。5.5便利度分析报告功能便利度分析报告功能是采用Echarts前端页面数据可视化工具插件实现的,其中将报告分成三个部分:1.深圳市公交线路数据表;2.深圳公交站点便利度数据表;3.站点分布数据表。图5.5.1便利度分析报告界面展示图其中深圳市公交线路数据表包括公交线路平均站距分布表以及公交线路非直线系数表,站点及问题分布数据表包括地区公交站点分布和问题公交站点分布,这四个数据表均以Echarts图表的饼状图实现;深圳公交站点便利度数据表则包括标准化飞去便利度雷达图、平均可换乘站点数以及各区站点到住宅区距离/公园道站点距离柱状-折现图。数据的获取方法是采用在JS中采用Ajax异步请求获取后台数据库的tab_databusline表和tab_district表的数据实现的,然后再将数据列表一一存入Echarts的数据图表中。标准化分区便利度雷达图中,可以单击点击地区名可隐藏/显示对于的三维图形,可以清晰的对比用户想要对比的地区。6便利度报告数据分析总结6.1公交线路数据表图6.1公交线路数据表图截止至2020年4月3日,从高德地图获取的有效深圳公交线路为924条公交,在公交线路平均站距分布数据表中线路平均站距在300m以下占0.22%,300-500m占15.37%,500-800m占58.22%,800-1000m占9.2%,1000m以上占16.99%。1000米以上属于快线公交,而平均站距小于300m的问题线路仅有两条,可以看出深圳公交线路在站距方面规划得很合理。由于无法获取环线公交的集散点之间的实际距离的数据,而选择忽略了环线公交作为本次研究对象样本。而非直线系数指标则显得不那么突出,重度绕路和严重绕路线路非直线系数在3以上,其总占比为6.17%。根据“2017年度中国主要城市公共交通大数据分析报告”对比2017年的非直线系数为1.95[4],2020年上升了0.04,依然是在全国前几名。相比平均站距来说规划差距略大。6.2站点分布数据表图6.2站点分布数据表图深圳市公交站点信息数据来源于“城市数据派”,并对站点数据进行的重复性的剔除(不包含一个站点的正反方向)共有5213个公交站点。由图6.2问题公交站点分布可看出宝安区与龙岗区的问题站点占了全深圳的一半以上,但从问题站点与地区总公交站点之比的比率来看罗湖区占9.01%,福田区占8.23%,南山区占6.56%,宝安区占9.75%,光明区占6.21%,龙岗区占8.16%,龙华区占6.40%,盐田区占11.11%,坪山区占5.73%。由此可见盐田区的问题公交站点占比比率最高,宝安区次之。6.3公交站点便利度数据表图6.3深圳公交站点便利度数据表图标准化分区便利度雷达图中,根据数据显示很直观的判断出每个地区的三角形面积大小,即以站点周边500米服务情况以及公园周边站点的服务情况为指标的分区便利度状况比较。可以判断出罗湖区和福田区公交便利度是全市最高的;紧接着是盐田区和南山区;接着是宝安区与龙华区几乎重合的数据位列第三便利中;龙岗区、光明区和坪山区则稍显不足。龙岗区的短板在于公园周边平均站点指标,而坪山区的短板在于站点周边覆盖的平均住宅区数量。从平均可换成站点指标数据中分析可得出,300米内可换成站点数只有福田区和罗湖区超过1个以上,而其他地区意味着300米内平均无可换成的站点。综合可换乘站点罗湖区与福田区依然是全市最高,有2.23个;接着就是盐田区1.82个;然后是南山区1.57、宝安区1.58和龙华区1.53个;最后是龙岗区1.32,坪山区1.28和光明区1.18个。从站点到住宅区距离和公园到站点的平均距离指标数据中分析得出,光明区的综合直线距离是最短的,313.3米;接着是盐田区和坪山区均在319米;然后是福田区、宝安区和龙岗区,在330米左右;最后是罗湖区、南山区和龙华区,在340米左右。表6.1深圳各地区便利度加权得分表指标1指标2指标3总分罗湖区4419福田区44210南山区3216宝安区2215光明区1146龙华区2215龙岗区1124盐田区3339坪山区1135按照每次层次为一分,加权得分后综合可得福田区是全市出行便利度最高的一个地区,其次是罗湖区和盐田区,然后是南山区和光明区,接着是宝安区、龙华区和坪山区,最低的则是龙岗区。7结论综合前文的分析与描述,深圳市公交线路924条以及全程公里数接近21000公里,可见深圳市公交线路的发达程度。但从空间几何特征来说,绕路程度位居全国前列,还需加强对线路设计的合理性;而从公交网络站点特征来说,每条线路的平均站间距的设计则突出了合理性,全市问题站点仅仅只有2条,仅占全市0.22%。根据前文分析的深圳市各地区公交站点加权得分后可见出行便利度高的地区集中在较发达的地区中,而较落后的地区出行便利度则偏低;而在问题站点方面问题站点占全市的7.98%,主要集中在宝安区和龙岗区这类仍在发展中的地区;总得来说在超大城市中,深圳市在公交巴士这一方面取得了相当好的成绩。本次基于JavaEE城市公交便利度分析系统的设计与实现也将落下帷幕,对于本人最大的难点是在探讨问题时所学的新知识,例如调用高德地图API,熟练的调用它是一遍又一遍地阅读高德地图JSAPI的参考手册,Echarts数据可视化工具亦是如此。综合所有软件知识点,代码一次又一次地调试,让我对软件设计有了重新的认识并且颇有收获。更加深层次地意识到一个系统从设计到成品的全流程以及三层架构设计中的紧密配合,在日后的工作中显得格外重要。参考文献[1]马欣,张伟一,王灵姝.城市公共空间设施便利性设计研究[J].华中建筑,2009,27(02):174-177

[2]吕东旭.国外“公交优先”发展研究[C].中国城市规划学会、南京市政府.转型与重构——2011中国城市规划年会论文集.中国城市规划学会、南京市政府:中国城市规划学会,2011:5917-5927.[3]吴乐,罗俊,刘鼎.城市多层次公交线网指标体系研究[J].交通技术,2019,8(5):305-311.[4]高德地图交通大数据.2017年度中国主要城市公共交通大数据分析报告[R].[5]吕国林.城市慢行交通发展策略与规划研究——以深圳特区为例[C].中国建筑学会城市交通规划分会、上海市城乡建设和交通委员会、上海市规划和国土资源管理局.中国城市交通规划2009年年会暨第23次学术研讨会论文集人性化城市综合交通体系规划与实践.中国建筑学会城市交通规划分会、上海市城乡建设和交通委员会、上海市规划和国土资源管理局:中国城市规划设计研究院城市交通专业研究院,2009:631-637.[6]刘燕婷,苏小熔,任龙文.广州中心城区免费公园公共交通出行便利度分析[J].云南地理环境研究,2010,22(05):63-67+87.[7]王博.浅析三层架构在网站开发中的应用[J].信息系统工程,2018(10):94.[8]李克平,杨佩昆.《城市道路交叉口规划规范》的创新点及要点解读[J].城市交通,2012,10(02):1-5+25.[9]张晓春.深圳公交发展模式思考及MaaS探索[J].交通与港航,2019,6(04):5-11+2.[10]田关云.中小城市公交专用道体系规划研究——以珠海市为例[C].中国城市规划学会城市交通规划学术委员会.品质交通与协同共治——2019年中国城市交通规划年会论文集.中国城市规划学会城市交通规划学术委员会:中国城市规划设计研究院城市交通专业研究院,2019:2116-2127.谢辞毕业设计随之结束,青春也终将落下帷幕,也为学生时期的我划下了一个圆满的句号。在这段时间里,我学习了很多,自学能力也有所提高,懂得如何阅读文献、懂得如何选择合适的角度去提出问题以及探讨问题,最后解决问题。在此感谢我的导师以及同学们,在这次毕业设计中给我提供了很多宝贵的建议以及解决方案,因为有他们的帮助我才可顺利地完成这次毕业设计。这些对于我在日后的工作后都是极其宝贵的知识财富与经验积累,谢谢。附录分页对象源代码:publicclassPageBean<T>{privateinttotalCount;//总记录数privateinttotalPage;//总页数privateintcurrentPage;//当前页码privateintpageSize;//每页显示的条数privateList<T>list;//每页显示的数据集合publicintgetTotalCount(){returntotalCount;}publicvoidsetTotalCount(inttotalCount){this.totalCount=totalCount;}publicintgetTotalPage(){returntotalPage;}publicvoidsetTotalPage(inttotalPage){this.totalPage=totalPage;}publicintgetCurrentPage(){returncurrentPage;}publicvoidsetCurrentPage(intcurrentPage){this.currentPage=currentPage;}publicintgetPageSize(){returnpageSize;}publicvoidsetPageSize(intpageSize){this.pageSize=pageSize;}publicList<T>getList(){returnlist;}publicvoidsetList(List<T>list){this.list=list;}

ExcelXP的八则快速输入技巧如果我们在用ExcelXP处理庞大的数据信息时,不注意讲究技巧和方法的话,很可能会花费很大的精力。因此如何巧用ExcelXP,来快速输入信息就成为各个ExcelXP用户非常关心的话题,笔者向大家介绍几则这方面的小技巧。1、快速输入大量含小数点的数字如果我们需要在ExcelXP工作表中输入大量的带有小数位的数字时,按照普通的输入方法,我们可能按照数字原样大小直接输入,例如现在要在单元格中输入0.05这个数字时,我们会把“0.05”原样输入到表格中。不过如果需要输入若干个带有小数点的数字时,我们再按照上面的方法输入的话,每次输入数字时都需要重复输入小数点,这样工作量会变大,输入效率会降低。其实,我们可以使用ExcelXP中的小数点自动定位功能,让所有数字的小数点自动定位,从而快速提高输入速度。在使用小数点自动定位功能时,我们可以先在ExcelXP的编辑界面中,用鼠标依次单击“工具”/“选项”/“编辑”标签,在弹出的对话框中选中“自动设置小数点”复选框,然后在“位数”微调编辑框中键入需要显示在小数点右面的位数就可以了。以后我们再输入带有小数点的数字时,直接输入数字,而小数点将在回车键后自动进行定位。例如,我们要在某单元格中键入0.06的话,可以在上面的设置中,让“位数”选项为2,然后直接在指定单元格中输入6,回车以后,该单元格的数字自动变为“0.06”,怎么样简单吧?2、快速录入文本文件中的内容现在您手边假如有一些以纯文本格式储存的文件,如果此时您需要将这些数据制作成ExcelXP的工作表,那该怎么办呢?重新输入一遍,大概只有头脑有毛病的人才会这样做;将菜单上的数据一个个复制/粘贴到工作表中,也需花很多时间。没关系!您只要在ExcelXP中巧妙使用其中的文本文件导入功能,就可以大大减轻需要重新输入或者需要不断复制、粘贴的巨大工作量了。使用该功能时,您只要在ExcelXP编辑区中,依次用鼠标单击菜单栏中的“数据/获取外部数据/导入文本文件”命令,然后在导入文本会话窗口选择要导入的文本文件,再按下“导入”钮以后,程序会弹出一个文本导入向导对话框,您只要按照向导的提示进行操作,就可以把以文本格式的数据转换成工作表的格式了。3、快速输入大量相同数据如果你希望在不同的单元格中输入大量相同的数据信息,那么你不必逐个单元格一个一个地输入,那样需要花费好长时间,而且还比较容易出错。你可以通过下面的操作方法在多个相邻或不相邻的单元格中快速填充同一个数据,具体方法为:首先同时选中需要填充数据的单元格。若某些单元格不相邻,可在按住Ctrl键的同时,点击鼠标左键,逐个选中;其次输入要填充的某个数据。按住Ctrl键的同时,按回车键,则刚才选中的所有单元格同时填入该数据。4、快速进行中英文输入法切换一张工作表常常会既包含有数字信息,又包含有文字信息,要录入这样一种工作表就需要我们不断地在中英文之间反复切换输入法,非常麻烦,为了方便操作,我们可以用以下方法实现自动切换:首先用鼠标选中需要输入中文的单元格区域,然后在输入法菜单中选择一个合适的中文输入法;接着打开“有效数据”对话框,选中“IME模式”标签,在“模式”框中选择打开,单击“确定”按钮;然后再选中输入数字的单元格区域,在“有效数据”对话框中,单击“IME模式”选项卡,在“模式”框中选择关闭(英文模式);最后单击“确定”按钮,这样用鼠标分别在刚才设定的两列中选中单元格,五笔和英文输入方式就可以相互切换了。5、快速删除工作表中空行删除ExcelXP工作表中的空行,一般的方法是需要将空行都找出来,然后逐行删除,但这样做操作量非常大,很不方便。那么如何才能减轻删除工作表中空行的工作量呢?您可以使用下面的操作方法来进行删除:首先打开要删除空行的工作表,在打开的工作表中用鼠标单击菜单栏中的“插入”菜单项,并从下拉菜单中选择“列”,从而插入一新的列X,在X列中顺序填入整数;然后根据其他任何一列将表中的行排序,使所有空行都集中到表的底部。删去所有空行中X列的数据,以X列重新排序,然后删去X列。按照这样的删除方法,无论工作表中包含多少空行,您就可以很快地删除了。6、快速对不同单元格中字号进行调整在使用ExcelXP编辑文件时,常常需要将某一列的宽度固定,但由于该列各单元格中的字符数目不等,致使有的单元格中的内容不能完全显示在屏幕上,为了让这些单元格中的数据都显示在屏幕上,就不得不对这些单元格重新定义较小的字号。如果依次对这些单元格中的字号调整的话,工作量将会变得很大。其实,您可以采用下面的方法来减轻字号调整的工作量:首先新建或打开一个工作簿,并选中需要ExcelXP根据单元格的宽度调整字号的单元格区域;其次单击用鼠标依次单击菜单栏中的“格式”/“单元格”/“对齐”标签,在“文本控制”下选中“缩小字体填充”复选框,并单击“确定”按钮;此后,当你在这些单元格中输入数据时,如果输入的数据长度超过了单元格的宽度,ExcelXP能够自动缩小字符的大小把数据调整到与列宽一致,以使数据全部显示在单元格中。如果你对这些单元格的列宽进行了更改,则字符可自动增大或缩小字号,以适应新的单元格列宽,但是对这些单元格原设置的字体字号大小则保持不变。7、快速输入多个重复数据在使用ExcelXP工作表的过程中,我们经常要输入大量重复的数据,如果依次输入,无疑工作量是巨大的。现在我们可以借助ExcelXP的“宏”功能,来记录首次输入需要重复输入的数据的命令和过程,然后将这些命令和过程赋值到一个组合键或工具栏的按钮上,当按下组合键时,计算机就会重复所记录的操作。使用宏功能时,我们可以按照以下步骤进行操作:首先打开工作表,在工作表中选中要进行操作的单元格;接着再用鼠标单击菜单栏中的“工具”菜单项,并从弹出的下拉菜单中选择“宏”子菜单项,并从随后弹出的下级菜单中选择“录制新宏”命令;设定好宏后,我们就可以对指定的单元格,进行各种操作,程序将自动对所进行的各方面操作记录复制。8、快速处理多个工作表有时我们需要在ExcelXP中打开多个工作表来进行编辑,但无论打开多少工作表,在某一时刻我们只能对一个工作表进行编辑,编辑好了以后再依次编辑下一个工作表,如果真是这样操作的话,我们倒没有这个必要同时打开多个工作表了,因为我们同时打开多个工作表的目的就是要减轻处理多个工作表的工作量的,那么我们该如何实现这样的操作呢?您可采用以下方法:首先按住“Shift"键或“Ctrl"键并配以鼠标操作,在工作簿底部选择多个彼此相邻或不相邻的工作表标签,然后就可以对其实行多方面的批量处理;接着在选中的工作表标签上按右键弹出快捷菜单,进行插入和删除多个工作表的操作;然后在“文件”菜单中选择“页面设置……”,将选中的多个工作表设成相同的页面模式;再通过“编辑”菜单中的有关选项,在多个工作表范围内进行查找、替换、定位操作;通过“格式”菜单中的有关选项,将选中的多个工作表的行、列、单元格设成相同的样式以及进行一次性全部隐藏操作;接着在“工具”菜单中选择“选项……”,在弹出的菜单中选择“视窗”和“编辑”按钮,将选中的工作表设成相同的视窗样式和单元格编辑属性;最后选中上述工作表集合中任何一个工作表,并在其上完成我们所需要的表格,则其它工作表在相同的位置也同时生成了格式完全相同的表格。高效办公Excel排序方法"集中营"排序是数据处理中的经常性工作,Excel排序有序数计算(类似成绩统计中的名次)和数据重排两类。本文以几个车间的产值和名称为例,介绍Excel2000/XP的数据排序方法。一、数值排序1.RANK函数RANK函数是Excel计算序数的主要工具,它的语法为:RANK(number,ref,order),其中number为参与计算的数字或含有数字的单元格,ref是对参与计算的数字单元格区域的绝对引用,order是用来说明排序方式的数字(如果order为零或省略,则以降序方式给出结果,反之按升序方式)。例如图1中E2、E3、E4单元格存放一季度的总产值,计算各车间产值排名的方法是:在F2单元格内输入公式“=RANK(E2,$E$2:$E$4)”,敲回车即可计算出铸造车间的产值排名是2。再将F2中的公式复制到剪贴板,选中F3、F4单元格按Ctrl+V,就能计算出其余两个车间的产值排名为3和1。如果B1单元格中输入的公式为“=RANK(E2,$E$2:$E$4,1)”,则计算出的序数按升序方式排列,即2、1和3。需要注意的是:相同数值用RANK函数计算得到的序数(名次)相同,但会导致后续数字的序数空缺。假如上例中F2单元格存放的数值与F3相同,则按本法计算出的排名分别是3、3和1(降序时)。2.COUNTIF函数COUNTIF函数可以统计某一区域中符合条件的单元格数目,它的语法为COUNTIF(range,criteria)。其中range为参与统计的单元格区域,criteria是以数字、表达式或文本形式定义的条件。其中数字可以直接写入,表达式和文本必须加引号。仍以图1为例,F2单元格内输入的公式为“=COUNTIF($E$2:$E$4,">"&E2)+1”。计算各车间产值排名的方法同上,结果也完全相同,2、1和3。此公式的计算过程是这样的:首先根据E2单元格内的数值,在连接符&的作用下产生一个逻辑表达式,即“>176.7”、“>167.3”等。COUNTIF函数计算出引用区域内符合条件的单元格数量,该结果加一即可得到该数值的名次。很显然,利用上述方法得到的是降序排列的名次,对重复数据计算得到的结果与RANK3.IF函数Excel自身带有排序功能,可使数据以降序或升序方式重新排列。如果将它与IF函数结合,可以计算出没有空缺的排名。以图1中E2、E3、E4单元格的产值排序为例,具体做法是:选中E2单元格,根据排序需要,单击Excel工具栏中的“降序排序”或“升序排序”按钮,即可使工作表中的所有数据按要求重新排列。假如数据是按产值由大到小(降序)排列的,而您又想赋予每个车间从1到n(n为自然数)的排名。可以在G2单元格中输入1,然后在G3单元格中输入公式“=IF(E3=E2,G3,G3+1)”,只要将公式复制到G4等单元格,就可以计算出其他车间的产值排名。二、文本排序选举等场合需要按姓氏笔划为文本排序,Excel提供了比较好的解决办法。如果您要将图1数据表按车间名称的笔划排序,可以使用以下方法:选中排序关键字所在列(或行)的首个单元格(如图1中的A1),单击Excel“数据”菜单下的“排序”命令,再单击其中的“选项”按钮。选中“排序选项”对话框“方法”下的“笔画排序”,再根据数据排列方向选择“按行排序”或“按列排序”,“确定”后回到“排序”对话框(图2)。如果您的数据带有标题行(如图1中的“单位”之类),则应选中“有标题行”(反之不选),然后打开“主要关键字”下拉列表,选择其中的“单位”,选中排序方式(“升序”或“降序”)后“确定”,表中的所有数据就会据此重新排列。此法稍加变通即可用于“第一名”、“第二名”等文本排序,请读者自行摸索。三、自定义排序如果您要求Excel按照“金工车间”、“铸造车间”和“维修车间”的特定顺序重排工作表数据,前面介绍的几种方法就无能为力了。这类问题可以用定义排序规则的方法解决:首先单击Excel“工具”菜单下的“选项”命令,打开“选项”对话框中的“自定义序列”选项卡(图3)。选中左边“自定义序列”下的“新序列”,光标就会在右边的“输入序列”框内闪动,您就可以输入“金工车间”、“铸造车间”等自定义序列了,输入的每个序列之间要用英文逗号分隔,或者每输入一个序列就敲回车。如果序列已经存在于工作表中,可以选中序列所在的单元格区域单击“导入”,这些序列就会被自动加入“输入序列”框。无论采用以上哪种方法,单击“添加”按钮即可将序列放入“自定义序列”中备用(图3)。使用排序规则排序的具体方法与笔划排序很相似,只是您要打开“排序选项”对话框中的“自定义排序次序”下拉列表,选中前面定义的排序规则,其他选项保持不动。回到“排序”对话框后根据需要选择“升序”或“降序”,“确定”后即可完成数据的自定义排序。需要说明的是:显示在“自定义序列”选项卡中的序列(如一、二、三等),均可按以上方法参与排序,请读者注意Excel提供的自定义序列类型。谈谈Excel输入的技巧在Excel工作表的单元格中,可以使用两种最基本的数据格式:常数和公式。常数是指文字、数字、日期和时间等数据,还可以包括逻辑值和错误值,每种数据都有它特定的格式和输入方法,为了使用户对输入数据有一个明确的认识,有必要来介绍一下在Excel中输入各种类型数据的方法和技巧。一、输入文本Excel单元格中的文本包括任何中西文文字或字母以及数字、空格和非数字字符的组合,每个单元格中最多可容纳32000个字符数。虽然在Excel中输入文本和在其它应用程序中没有什么本质区别,但是还是有一些差异,比如我们在Word、PowerPoint的表格中,当在单元格中输入文本后,按回车键表示一个段落的结束,光标会自动移到本单元格中下一段落的开头,在Excel的单元格中输入文本时,按一下回车键却表示结束当前单元格的输入,光标会自动移到当前单元格的下一个单元格,出现这种情况时,如果你是想在单元格中分行,则必须在单元格中输入硬回车,即按住Alt键的同时按回车键。二、输入分数几乎在所有的文档中,分数格式通常用一道斜杠来分界分子与分母,其格式为“分子/分母”,在Excel中日期的输入方法也是用斜杠来区分年月日的,比如在单元格中输入“1/2”,按回车键则显示“1月2日”,为了避免将输入的分数与日期混淆,我们在单元格中输入分数时,要在分数前输入“0”(零)以示区别,并且在“0”和分子之间要有一个空格隔开,比如我们在输入1/2时,则应该输入“01/2”。如果在单元格中输入“81/2”,则在单元格中显示“81/2”,而在编辑栏中显示“三、输入负数在单元格中输入负数时,可在负数前输入“-”作标识,也可将数字置在()括号内来标识,比如在单元格中输入“(88)”,按一下回车键,则会自动显示为“-88”。四、输入小数在输入小数时,用户可以向平常一样使用小数点,还可以利用逗号分隔千位、百万位等,当输入带有逗号的数字时,在编辑栏并不显示出来,而只在单元格中显示。当你需要输入大量带有固定小数位的数字或带有固定位数的以“0”字符串结尾的数字时,可以采用下面的方法:选择“工具”、“选项”命令,打开“选项”对话框,单击“编辑”标签,选中“自动设置小数点”复选框,并在“位数”微调框中输入或选择要显示在小数点右面的位数,如果要在输入比较大的数字后自动添零,可指定一个负数值作为要添加的零的个数,比如要在单元格中输入“88”后自动添加3个零,变成“88000”,就在“位数”微调框中输入“-3”,相反,如果要在输入“88”后自动添加3位小数,变成“0.088”,则要在“位数”微调框中输入“3”。另外,在完成输入带有小数位或结尾零字符串的数字后,应清除对“自动设置小数点”符选框的选定,以免影响后边的输入;如果只是要暂时取消在“自动设置小数点”中设置的选项,可以在输入数据时自带小数点。五、输入货币值Excel几乎支持所有的货币值,如人民币(¥)、英镑(£)等。欧元出台以后,Excel2000完全支持显示、输入和打印欧元货币符号。用户可以很方便地在单元格中输入各种货币值,Excel会自动套用货币格式,在单元格中显示出来,如果用要输入人民币符号,可以按住Alt键,然后再数字小键盘上按“0165”即可。六、输入日期Excel是将日期和时间视为数字处理的,它能够识别出大部分用普通表示方法输入的日期和时间格式。用户可以用多种格式来输入一个日期,可以用斜杠“/”或者“-”来分隔日期中的年、月、日部分。比如要输入“2001年12月1日”,可以在单元各种输入“2001/12/1”或者“2001-12-1七、输入时间在Excel中输入时间时,用户可以按24小时制输入,也可以按12小时制输入,这两种输入的表示方法是不同的,比如要输入下午2时30分38秒,用24小时制输入格式为:2:30:38,而用12小时制输入时间格式为:2:30:38p,注意字母“p”和时间之间有一个空格。如果要在单元格中插入当前时间,则按Ctrl+Shift+;键。了解Excel公式的错误值经常用Excel的朋友可能都会遇到一些莫名奇妙的错误值信息:#N/A!、#VALUE!、#DIV/O!等等,出现这些错误的原因有很多种,如果公式不能计算正确结果,Excel将显示一个错误值,例如,在需要数字的公式中使用文本、删除了被公式引用的单元格,或者使用了宽度不足以显示结果的单元格。以下是几种常见的错误及其解决方法。1.#####!原因:如果单元格所含的数字、日期或时间比单元格宽,或者单元格的日期时间公式产生了一个负值,就会产生#####!错误。解决方法:如果单元格所含的数字、日期或时间比单元格宽,可以通过拖动列表之间的宽度来修改列宽。如果使用的是1900年的日期系统,那么Excel中的日期和时间必须为正值,用较早的日期或者时间值减去较晚的日期或者时间值就会导致#####!错误。如果公式正确,也可以将单元格的格式改为非日期和时间型来显示该值。2.#VALUE!当使用错误的参数或运算对象类型时,或者当公式自动更正功能不能更正公式时,将产生错误值#VALUE!。原因一:在需要数字或逻辑值时输入了文本,Excel不能将文本转换为正确的数据类型。解决方法:确认公式或函数所需的运算符或参数正确,并且公式引用的单元格中包含有效的数值。例如:如果单元格A1包含一个数字,单元格A2包含文本"学籍",则公式"=A1+A2"将返回错误值#VALUE!。可以用SUM工作表函数将这两个值相加(SUM函数忽略文本):=SUM(A1:A2)。原因二:将单元格引用、公式或函数作为数组常量输入。解决方法:确认数组常量不是单元格引用、公式或函数。原因三:赋予需要单一数值的运算符或函数一个数值区域。解决方法:将数值区域改为单一数值。修改数值区域,使其包含公式所在的数据行或列。3.#DIV/O!当公式被零除时,将会产生错误值#DIV/O!。原因一:在公式中,除数使用了指向空单元格或包含零值单元格的单元格引用(在Excel中如果运算对象是空白单元格,Excel将此空值当作零值)。解决方法:修改单元格引用,或者在用作除数的单元格中输入不为零的值。原因二:输入的公式中包含明显的除数零,例如:=5/0。解决方法:将零改为非零值。4.#NAME?在公式中使用了Excel不能识别的文本时将产生错误值#NAME?。原因一:删除了公式中使用的名称,或者使用了不存在的名称。解决方法:确认使用的名称确实存在。选择菜单"插入"|"名称"|"定义"命令,如果所需名称没有被列出,请使用"定义"命令添加相应的名称。原因二:名称的拼写错误。解决方法:修改拼写错误的名称。原因三:在公式中使用标志。解决方法:选择菜单中"工具"|"选项"命令,打开"选项"对话框,然后单击"重新计算"标签,在"工作薄选项"下,选中"接受公式标志"复选框。原因四:在公式中输入文本时没有使用双引号。解决方法:Excel将其解释为名称,而不理会用户准备将其用作文本的想法,将公式中的文本括在双引号中。例如:下面的公式将一段文本"总计:"和单元格B50中的数值合并在一起:="总计:"&B50原因五:在区域的引用中缺少冒号。解决方法:确认公式中,使用的所有区域引用都使用冒号。例如:SUM(A2:B34)。5.#N/A原因:当在函数或公式中没有可用数值时,将产生错误值#N/A。解决方法:如果工作表中某些单元格暂时没有数值,请在这些单元格中输入"#N/A",公式在引用这些单

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论