基于springboot城市公交实时运营与调度系统-计算机毕设 附源码【课程设计】66173

Abstract

  Public transport system's operational efficiency affects urban operation as well as people's travel experience. Traditional buses dispatch depend on human experience and the schedule, therefore cannot respond quickly for dynamic passengers as well as unexpected incidents, also have many mismatches. With the development of information technology and real-time data analysis, it is now possible to optimize a bus line.

  This paper studies the real time urban bus operation & dispatchment system. It creates a joint area by means of ever-changing car locations and how the things run and what people say when they use public transport: The backend is built withSpringboot+mybatisplusfor the purposes of doing business and logical processes. I take advantage of thevueframework in order to create a reactive frontend. And lastly we will store into MySQL DB People can do things like leave online messages, ask about path info, and look into dispatch assignments on it. Dispatchers seize the operational situation at present moment, accept instant comments; supervisors unify control over vehicles, route lines, dispatch duties, customer information.

  Make it so the buses can be made even more transparent and use resources well: The platform can also be put to work; it could cooperate with many characters, improving ways of transmitting info and supplying info for buses. And it has some reference value to the construction of other cities'public transportation information systems.

**Key words:**Bus Dispatching; Spring Boot; Vue; Real-time Operation; Information Management

第一章 绪论

1.1 选题背景和意义

  城市公共交通系统存在着运力配置同乘客需求动态契合的长久难题。传统的调度方式,车辆的发车间隔以及路线班次的安排大多依靠历史客流数据来确定,运营期间很难对突发客流的变化或者道路拥堵的情况作出及时的反应。静态调度造成高峰时段运力紧张、平峰时段资源闲置的现象同时存在,乘客候车时间无法控制,公交服务的吸引力不能提高。张煜等学者认为动态调度系统可以大大提高复杂的环境下资源的利用率1。公交运营领域也需要采用实时数据采集和智能分析的方式,来克服传统的人工调度在信息获取和决策反应方面所存在的不足。石延年在电力系统调度研究中证明了多目标优化调度平台可以协调各种约束条件来达到资源最优配置的目的2。钟胜等人就产品数据管理系统开发展开实际研究,得出信息化平台可以对业务流程实施标准化,并且可以达成数据共享的结论。公交运营急需一套可以对车辆位置、运行状态及乘客意见做实时调度的系统来提高运营决策的科学性以及反应速度。

  城市公交实时运营调度系统创建之后,会促使公交企业由经验导向转变为数据导向的管理方式。系统给调度员提供车辆运行状态和路线信息,使调度员作出更加合理的运力调整决策,减少由于信息滞后和判断偏差而造成的错误。用户利用平台得到正确的车辆位置和调度安排,缩短了盲目等待的时间,提高了出行感受。系统积累的运营数据可以给公交线路优化、班次调整提供分析基础,促进行业信息化水平的提高。该系统的构思以及实现途径对于交通、物流等领域的实时调度系统创建有着参照意义,有益于推进同类型业务场景下的信息化手段的推广和加深。

1.2 国内外研究现状

1.2.1 国内研究现状

  国内公交调度系统的发展是由人工记录到信息化平台的演变。早期的研究主要是对运营数据进行采集和存储,随着信息技术的发展,研究的重点也从实时调度算法、多源数据融合等方向上进行了研究试图把通信技术、定位技术同调度业务融合起来,创建起可以支撑日常运营管理的信息系统架构。这些研究给公交调度信息化打下了理论基础,但是系统功能的完备性还有待于进一步的拓展3。李伟等学者在ESP轧制生产调度系统的研究中,根据生产过程的动态变化设计出可以调整的调度方案,可以对实时数据进行重新分配4。该研究对公交调度系统任务动态调整功能有参考价值,公交运营也应该根据路况和客流变化来改变车辆的任务。周龙才等所开发的排涝泵站优化调度决策支持系统把实时水位数据和设备状态加入到调度决策模型当中,可以给出优化运行建议5。公交调度系统可以参照其数据驱动决策的思想,把车辆位置、运行速度这些实时信息变成调度的参照。孔强夫就AI深度学习智慧调度系统的应用进行了研究,对它的前景做了很好的论述6。公交调度系统可以利用机器学习的方法对历史运营数据进行分析,从而提高任务分配的合理性。益西措姆等学者对可再生能源发电和电网调度自动化系统进行开发时,可以对多个来源的数据进行采集和远程控制7。该成果给公交调度系统车辆远程监控和指令下达功能提供技术参考。Movahed等学者所创建的纳米气泡hydrodynamic空化系统虽然应用到各个领域,但是其传感器数据实时采集和反馈控制机制对于公交调度系统数据采集模块的设计有着一定的借鉴意义。

  国内研究大多集中在调度算法优化、数据采集技术上,给公交调度系统的创建积累了诸多经验。现有的系统对于多角色协同工作以及用户互动的功能还存在着进一步发展的余地。本系统在车辆及路线信息的基础上,加入了用户在线留言、反馈以及调度任务查看的功能,使得调度的过程更加透明,用户可以参与到运营的监督和建议反馈当中来,弥补了目前研究中缺少公众参与环节的不足。

1.2.2 国外研究现状

  国外公交调度系统研究较早开始使用信息技术,重视实时数据采集和动态调度策略的结合。研究者把公共交通系统看作城市智能交通体系的一部分,重视数据共享和跨系统协同8。调度模型由原来的固定班表变为动态响应,乘客的需求也被纳入到实时调度决策的因素中。Eldem等人开发了一个基于大语言模型的农业问答系统,表明自然语言处理技术可以用于业务交互9。公交调度系统可以参照其交互设计思想,利用留言和反馈功能来实现用户与运营方之间的信息交流10。Ohueri等学者对于数字孪生技术在建筑运营中的运用展开研究,认为实时的数据映射以及虚拟模型对于决策支持有着重要的意义。公交调度系统可以采用数字孪生的思想,把真实的车辆运行状态映射到系统界面上,方便调度员了解运营状况。Elis等学者建立的北欧电力系统开放调度模型,给出多主体协同调度框架的实现途径11。公交调度系统要协调用户、调度员、管理者等多方的需求,多角色权限设计和业务流程划分可以参照该模型的协同机制。Junpeng等学者所建立的智能公交云平台调度运营管理系统,可以实现车辆实时定位、班次动态调整和乘客信息服务一体化12。该系统架构与本系统的设计目标非常吻合,其功能模块划分以及数据流转方式给本研究提供直接的参照。

  国外的研究系统集成度高、智能化程度高,重视数据驱动和多主体协同。本系统借鉴其数据实时采集、动态调度的思想,结合国内公交运营实际情况,创建起一个以用户互动、多角色协作为特点的调度平台,在功能深度以及本地化适应性上做了些尝试。

1.3 研究内容

  本文主要工作就是设计并实现城市公交实时运营调度系统,给公交企业搭建起车辆、线路、调度任务以及用户互动的信息化管理平台。根据公交运营的实际需要,先对系统的功能需求进行分析,确定普通用户、调度员和管理员这三种角色的操作范围以及业务流程。在此基础上进行系统的架构设计,用Spring Boot创建一个稳定的后端服务层,用Vue框架创建用户交互界面,用MySQL数据库进行数据持久化存储。研究重点是以车辆信息管理、路线信息管理、调度任务管理和在线反馈、留言管理这四个主要模块为基础,满足日常运营中用户查询信息、发布任务、参与交流等各方面的需要。数据库设计阶段把概念模型转变为逻辑模型,保证数据结构合理、扩展。系统测试阶段对功能和性能指标进行检验,保证系统符合上线运行的要求。研究范围只限定在公交运营调度业务上,不会包含票务支付、车辆维修管理这些扩展功能。研究最终交付可以运行的系统原型、设计文档和测试报告,系统开发采用前后端分离架构,为以后的功能扩展和系统集成留出接口。

第二章 相关技术介绍

2.1 Spring Boot框架

  Spring Boot是用Java语言开发的一种开源微服务开发框架,它的主要目的就是简化Spring应用的初始搭建和开发过程。框架使用自动配置机制来减轻开发者手工创建配置文件的工作量,内嵌的Servlet容器使得应用可以以独立的jar包的形式直接运行。Spring Boot继承了Spring框架的依赖注入、面向切面编程等核心特点,并且具有生产级运行时监控和健康检查的功能。孙鑫在Spring Boot技术著作中对框架在简化企业级应用开发方面的作用做了详细的论述13。城市公交实时运营和调度系统使用Spring Boot作为后端开发框架,处理前端发出的HTTP请求、执行业务逻辑运算、调用数据访问接口。框架的自动配置特性提高了开发效率,开发者可以将更多的精力放在调度任务分配规则、车辆状态变化逻辑这些业务核心模块上。Spring Boot与MySQL数据库的集成通过Spring Data JPA实现,对象关系映射机制简化了数据持久化操作代码量。框架自带的异常处理、事务管理等机制可以保证系统高并发访问时数据一致、运行稳定,给调度业务的正常进行提供技术支持。

2.2 Vue.js框架

  Vue.js是一个渐进式的JavaScript框架,它主要用来构建用户界面,它的核心库只关注视图层的渲染,采用自底向上的增量开发方式。框架依靠响应式数据绑定以及组件化开发方式,使得界面创建的过程更加直观,而且可以更好地维护。Vue.js的虚拟DOM机制,在数据发生变化的时候可以快速地更新页面元素,从而避免了大量的DOM操作造成的性能损耗。董宁等在Vue.js前端开发框架应用著作中对框架在创建现代Web应用时所具有的技术优势进行了详细的阐述14。本系统的前端使用Vue框架来实现用户的以及调度员的操作界面,包含车辆信息列表展示、路线查询表单、调度任务详情页等交互模块。框架具有组件化的特性,可以把页面拆分为可以被重复使用的功能模块,即搜索组件、表格组件、分页组件等,以此来提高代码的组织性以及开发的协作效率。Vue Router管理页面路由跳转,控制不同的角色用户有无访问权限。Vue与后端的Spring Boot使用HTTP协议发送JSON数据,实现前后端职责分明,使得系统具有较好的扩展性以及易维护性。

2.3 MySQL数据库

  MySQL是开源的关系型数据库管理系统,具有稳定可靠、性能好、跨平台支持广等特点,被用作Web应用开发的首选数据库。数据库使用结构化查询语言进行数据操作,具有事务处理、视图、存储过程等高级功能,可以满足中小型业务系统数据管理的要求。方玲玲在MySQL数据库应用技术著作中论述了数据库在数据持久化存储和高效检索方面的重要作用15。本系统采用MySQL作为数据持久化层的解决方案,用来保存普通用户的个人信息、调度员的档案、车辆的基础资料、路线规划的数据、调度任务的记录、在线反馈和留言的内容等业务数据。数据库用主键约束和外键关联来保证数据的完整性,索引机制提高了常用的查询响应速度。系统使用InnoDB存储引擎保证事务的原子性和隔离性,防止并发的调度任务和用户反馈导致的数据冲突。MySQL和Spring Boot的集成使用JDBC驱动来完成数据访问层的增删改查操作,业务逻辑层不需要去管底层数据库交互的细节,系统整体架构层次分明。

2.4 RESTful API架构风格

  RESTful API是基于HTTP协议的一种网络应用程序接口的设计风格,它把服务器端提供的功能抽象成资源,客户端用HTTP方法对资源进行操作。GET方法获取资源状态,POST方法创建新资源,PUT方法更新资源,DELETE方法删除资源,这样的设计使得接口的语义清晰,容易被理解。十三等在Spring Boot与Vue项目开发实践中强调了RESTful API在前后端分离架构中的衔接价值16。本系统后端使用RESTful风格暴露业务接口,前端用HTTP请求调用这些接口来完成数据交互。用户查询车辆信息时前端发出GET请求到车辆资源路径,调度员提交反馈处理结果时前端发出PUT请求更新反馈状态。接口返回统一的JSON格式的数据结构,包括状态码、提示信息、业务数据等,前端根据状态码来判断请求结果并显示相应的界面。RESTful架构使得前后端之间的耦合度降低,后端接口发生变化不会影响到前端的独立部署和更新,系统可以灵活地适应业务需求的变化。接口无状态特性减轻了服务器的内存负担,在分布式部署的时候,请求可以被任意个节点处理,系统的可扩展性得到提高。

第三章 系统分析

3.1 可行性分析

3.1.1 技术可行性

  城市公交实时运营和调度系统使用的是Spring Boot和Vue相结合的技术方案,两种框架都已经形成了比较稳定成熟的生态体系。Spring Boot简化了后端服务的搭建过程,自动配置和起步依赖可以很快地集成数据持久化、事务管理、安全控制等常用的功能。Vue框架对于前端界面构建来说有响应式数据绑定、组件化开发的优点,可以满足复杂的交互场景的动态渲染。经过多年的不断发展,MySQL数据库已经具有了比较完善的数据库管理功能,事务处理和并发控制机制可以保证业务数据的一致性。系统使用前后端分离的架构,各个部分之间用标准的接口进行通讯,模块之间耦合度低,可以同时开发和测试。现有的技术栈可以满足系统全部的要求,技术风险是可以控制的。

3.1.2 经济可行性

  系统开发所用到的软件环境都是开源或者免费的,Spring Boot、Vue、MySQL都可以从官方渠道下载社区版使用,不需要支付软件授权费。开发工具采用免费开源的Visual Studio Code与IntelliJ IDEA社区版,团队能够以零成本搭建开发环境。系统部署阶段可以选择主流云服务提供商的轻量级云服务器,在中小企业中月租费用可以承受。系统投入运行以后可以缩减人工调度环节的信息传递成本,削减纸质记录和人工统计的工作量,从而凭借提高运营效率间接带来经济效益。日常运维只需少数技术人员来处理系统出现的故障以及数据备份工作,人力成本可以控制在一定范围内。系统建设成本和预期收益相匹配,经济上具有可行性。

3.1.3 操作可行性

  系统界面设计简单明了,功能模块的划分同用户角色相一致。普通用户登录之后可以直接访问车辆信息、路线信息和调度任务等查询类的功能,留言反馈入口在明显的地方,用户不需要经过培训就可以完成基本的操作。调度员界面把车辆状态监控、路线运行查看、反馈处理这些日常任务归集起来,操作流程同现有的调度习惯一致,过渡平稳。管理员后台使用表格化展示、表单化编辑的方式进行数据的管理,符合一般的办公软件使用习惯。系统提供搜索和筛选功能,可以快速找到想要的信息,分页显示防止信息过多。各个角色可以在很短的时间内学会系统的使用方法,操作的可行性达到要求。

3.2 功能需求分析

3.2.1 普通用户角色功能需求

  普通用户在系统中能够查询车辆与路线信息,查看调度任务安排,提交在线留言与反馈。用户可以浏览收藏记录与点赞记录,管理个人发表的评论。系统为普通用户提供信息获取渠道与互动参与方式。

图3-1普通用户用例图

  普通用户登录系统后可以查询车辆基本信息与运行状态,搜索公交路线并查看线路图,浏览调度任务列表并通过关键词筛选任务。用户能够提交在线留言与反馈,查看个人收藏与点赞记录,管理已发表的评论。系统为乘客提供了参与运营反馈的渠道。

3.2.2 调度员角色功能需求

  调度员能够查看车辆实时状态与路线运行情况,查询调度任务列表并掌握任务进度。调度员可以查看用户提交的在线反馈并进行处理回复,确保用户意见得到及时响应。系统支持调度员对运营状态进行持续跟踪。

图3-2调度员用例图

  调度员通过系统可以搜索车辆编号与名称查看车辆详细信息,搜索路线名称获取路线图与站点信息,按调度标题、车辆名称或任务状态筛选调度任务并查看进度。调度员能够查看用户反馈列表,对待处理反馈进行回复处理,确保用户意见得到闭环管理。

3.2.3 管理员角色功能需求

  管理员对车辆、路线、调度任务进行统一管理,能够新增、修改、删除相关信息。管理员管理用户在线反馈与留言,处理回复内容。管理员维护系统资源分类与用户权限分配,确保系统运行规范有序。

图3-3管理员用例图

  管理员可以通过后台系统对车辆信息进行增删改查操作,管理路线基本信息与运行参数,对调度任务进行全流程监控。管理员处理用户在线反馈与留言,对反馈状态进行更新。系统资源分类与用户权限由管理员统一配置,确保系统运行在受控状态下。

第四章 系统设计

4.1 系统架构设计

  城市公交实时运营和调度系统采用前后端分离的分层架构设计,把用户界面、业务处理、数据存储分成不同的层次。用户界面层使用Vue框架来实现,接受用户的操作指令,渲染业务数据,界面组件采用HTTP协议调用后端接口。应用服务层使用了Spring Boot框架,主要是完成车辆管理、路线规划、调度任务分配、用户反馈等主要业务逻辑。数据持久层使用MySQL数据库来存储业务数据,用对象关系映射技术隐藏底层数据库的差别。系统支持层有权限控制、日志记录、异常处理等功能,保证系统的安全稳定运行。分层架构将各个模块的职责分开,业务逻辑和数据访问相分离,进而提高系统的扩展性和可维护性。系统架构图如图4-1所示。

图4-1系统架构图

4.2 功能结构设计

  系统根据普通用户、调度员和管理员的业务需求来建立功能模块。普通用户可以查看车辆、路线信息、调度任务、在线留言、反馈以及个人收藏、点赞、评论记录等。调度员对车辆运行状态、路线运营情况进行监控,查看调度任务的执行情况,处理用户在线反馈。管理员对车辆信息、路线信息、调度任务进行统一维护,管理用户留言和在线反馈,管理系统的资源分类,设置用户的权限。各个功能模块根据角色权限来实现访问控制,保证业务操作的规范性。该系统的功能结构图如下图4-2所示。

图4-2系统功能结构图

4.3 业务流程设计

4.3.1 车辆信息查询流程设计

  普通用户与调度员在系统中查询车辆信息时,系统根据输入条件筛选数据并返回结果。用户输入车辆编号或名称关键词后提交查询请求,系统校验输入内容是否为空。条件校验通过后系统执行数据库检索操作,匹配结果以列表形式展示。用户点击某条记录可查看车辆详细信息。车辆信息查询流程如图4-3所示。

图4-3车辆信息查询流程图

4.3.2 在线反馈处理流程设计

  调度员与管理员对用户提交的在线反馈进行处理回复。系统记录反馈提交时间与内容,初始状态置为待处理。处理人员查看反馈详情后输入处理回复内容,系统校验回复是否为空。回复内容有效时可更新反馈状态为已处理,系统保存回复信息并记录处理时间。在线反馈处理流程如图4-4所示。

图4-4在线反馈处理流程图

4.3.3 调度任务查看流程设计

  用户与调度员在系统中查看调度任务时可使用多条件组合搜索。系统提供调度标题、车辆名称、任务状态三个搜索维度,用户可选择全部任务或按具体状态筛选。搜索条件提交后系统执行联合查询,返回符合条件任务列表。用户点击任务卡片可进入详情页查看完整调度安排。调度任务查看流程如图4-5所示。

图4-5调度任务查看流程图

4.3.4 路线信息管理流程设计

  管理员对路线信息进行新增与修改操作。新增路线时管理员填写路线名称、起点终点、运行时间、路线简介等信息,系统校验必填项是否完整。校验通过后保存路线数据并生成路线记录。修改路线时管理员可更新封面图片与各项参数,系统记录更新时间。路线信息管理流程如图4-6所示。

图4-6路线信息管理流程图

4.3.5 用户留言管理流程设计

  管理员在后台查看用户提交的留言内容,可对留言进行回复或删除操作。留言列表按创建时间倒序排列,管理员点击查看留言后可输入回复内容。系统保存回复后更新留言状态,用户登录后可查看管理员回复内容。用户留言管理流程如图4-7所示。

图4-7用户留言管理流程图

4.4 数据库设计

4.4.1 概念模型设计

  城市公交实时运营与调度系统概念模型的构建以用户参与和调度业务为主,主要理清普通用户、调度用户、车辆、路线、调度任务、在线反馈等主要实体之间业务关系。普通用户通过在线反馈和留言的方式提出自己的意见,调度用户按照调度任务的要求来完成调度工作,并对车辆的运行情况进行跟踪,管理员对车辆、路线以及调度任务进行统一的设置。车辆和路线有运营关联,调度任务与之对应的是具体的车辆以及调度用户。概念模型用实体-联系图表示现实世界业务规则到信息结构的抽象过程,实体之间的联系分为一对多和多对多两种类型。根据以上分析得到的全局E-R模型如图4-8所示,该模型是后面逻辑结构设计的数据组织依据17。

  全局E-R模型如图4-8所示。

图4-8全局ER图

  根据系统分析,系统的主要实体有:普通用户、调度用户、管理员、车辆信息、路线信息、调度任务、在线反馈、留言、用户账户、操作日志,各个实体具体的属性如下图所示。

  普通用户实体主要包括用户姓名、用户性别、联系号码、审核状态等。如图4-9所示。

图4-9普通用户实体属性图

  调度用户实体主要包括调度姓名、调度性别、联系号码、审核状态等。如图4-10所示。

图4-10调度用户实体属性图

  管理员实体主要包括用户名、密码、状态、用户组等。如图4-11所示。

图4-11管理员实体属性图

  车辆信息实体主要包括车辆编号、车辆名称、车辆类型、运行状态等。如图4-12所示。

图4-12车辆信息实体属性图

  路线信息实体主要包括路线名称、起点信息、终点信息、运行时间等。如图4-13所示。

图4-13路线信息实体属性图

  调度任务实体主要包括调度标题、调度安排、任务状态、完成情况等。如图4-14所示。

图4-14调度任务实体属性图

  在线反馈实体主要包括反馈内容、反馈类型、处理状态、处理回复等。如图4-15所示。

图4-15在线反馈实体属性图

  留言实体主要包括内容、标题、回复、回复状态等。如图4-16所示。

图4-16留言实体属性图

  用户账户实体主要包括用户名、密码、昵称、手机号码等。如图4-17所示。

图4-17用户账户实体属性图

  操作日志实体主要包括用户角色、用户账号、模块名称、创建时间等。如图4-18所示。

图4-18操作日志实体属性图

4.4.2 数据库逻辑设计

  逻辑设计阶段将概念模型转化为MySQL数据库可以支持的表结构,给每一个实体指定一个表,表中字段的名称、数据类型、约束条件。设计过程遵照规范化理论,给多对多关系加上中间关联表来消除数据冗余,保证数据更新的时候保持一致。外键约束可以保持表之间的参照完整,索引机制可以提高常用查询的速度。闾枫在Spring Boot项目开发著作中对数据库设计和业务逻辑层的对接做了详细的论述18。本系统数据库表结构既满足业务需求又考虑了性能要求,字段类型符合数据实际情况,长度设置合理不会造成空间浪费,为系统高效运行打下基础。

  普通用户表主要用于存储普通用户的身份信息与审核状态。主要包括用户姓名、用户性别、联系号码、审核状态等字段。如表4-1所示。

表4-1普通用户表

序号 字段名 数据类型 长度 备注
1 普通用户id int 11 主键
2 用户姓名 varchar 64 姓名
3 用户性别 varchar 10 性别
4 联系号码 varchar 20 电话
5 审核状态 varchar 20 状态
6 用户id int 11 关联账户
7 创建时间 datetime - 创建时间
8 更新时间 timestamp - 更新时间

  调度用户表用于存储调度员的基本信息与联系号码。主要包括调度姓名、调度性别、联系号码、审核状态等字段。如表4-2所示。

表4-2调度用户表

序号 字段名 数据类型 长度 备注
1 调度用户id int 11 主键
2 调度姓名 varchar 64 姓名
3 调度性别 varchar 10 性别
4 联系号码 varchar 20 电话
5 审核状态 varchar 20 状态
用户id int 11 关联账户
7 创建时间 datetime - 创建时间
8 更新时间 timestamp - 更新时间

  车辆信息表用于存储公交车辆的基础数据与运行状态。主要包括车辆编号、车辆名称、车辆类型、运行状态等字段。如表4-3所示。

表4-3车辆信息表

序号 字段名 数据类型 长度 备注
1 车辆信息id int 11 主键
2 车辆编号 varchar 30 编号
3 车辆名称 varchar 50 名称
4 车辆封面 varchar 255 封面图
5 车辆类型 varchar 30 类型
6 运行状态 varchar 20 状态
7 车辆数量 varchar 20 数量
8 创建时间 datetime - 创建时间
9 更新时间 timestamp - 更新时间

  路线信息表用于存储公交路线的起终点与运行参数。主要包括路线名称、起点信息、终点信息、运行时间等字段。如表4-4所示。

表4-4路线信息表

序号 字段名 数据类型 长度 备注
1 路线信息id int 11 主键
2 路线名称 varchar 50 名称
3 路线封面 varchar 255 封面图
4 起点信息 varchar 100 起点
5 终点信息 varchar 100 终点
6 运行时间 text 65535 时间
7 路线简介 text 65535 简介
8 创建时间 datetime - 创建时间
9 更新时间 timestamp - 更新时间

  调度任务表用于存储调度任务的安排与执行情况。主要包括调度标题、调度安排、任务状态、完成情况等字段。如表4-5所示。

表4-5调度任务表

序号 字段名 数据类型 长度 备注
1 调度任务id int 11 主键
2 调度标题 varchar 50 标题
3 调度封面 varchar 255 封面
4 调度安排 text 65535 安排
5 完成情况 text 65535 情况
6 任务状态 varchar 20 状态
7 车辆名称 varchar 50 车辆
8 车辆编号 varchar 30 编号
9 调度时间 datetime - 时间
10 创建时间 datetime - 创建时间
11 更新时间 timestamp - 更新时间

  在线反馈表用于存储用户提交的反馈内容与处理结果。主要包括反馈内容、反馈类型、处理状态、处理回复等字段。如表4-6所示。

表4-6在线反馈表

序号 字段名 数据类型 长度 备注
1 在线反馈id int 11 主键
2 反馈内容 text 65535 内容
3 反馈类型 varchar 30 类型
4 反馈日期 date - 日期
5 处理状态 varchar 20 状态
6 处理回复 text 65535 回复
7 反馈次数 varchar 20 次数
8 创建用户id int 11 用户
9 创建时间 datetime - 创建时间
10 更新时间 timestamp - 更新时间

  留言表用于存储用户留言内容与管理员的回复信息。主要包括内容、标题、回复、回复状态等字段。如表4-7所示。

表4-7留言表

序号 字段名 数据类型 长度 备注
1 留言id int 11 主键
2 内容 longtext 4294967295 留言内容
3 标题 varchar 50 留言标题
4 回复 longtext 4294967295 回复内容
5 回复状态 tinyint - 状态
6 昵称 varchar 30 用户昵称
7 用户id int 11 关联用户
8 创建时间 timestamp - 创建时间
9 更新时间 timestamp - 更新时间

  用户账户表用于存储系统登录账户的认证信息与状态。主要包括用户名、密码、昵称、手机号码等字段。如表4-8所示。

表4-8用户账户表

序号 字段名 数据类型 长度 备注
1 用户id int 11 主键
2 用户名 varchar 30 登录名
3 密码 varchar 64 密码
4 昵称 varchar 30 显示名
5 手机号码 varchar 20 电话
6 状态 smallint - 账户状态
7 用户组 varchar 30 角色组
8 创建时间 timestamp - 创建时间

  操作日志表用于记录用户操作行为供审计追溯。主要包括用户角色、用户账号、模块名称、创建时间等字段。如表4-9所示。

表4-9操作日志表

序号 字段名 数据类型 长度 备注
1 操作日志id int 11 主键
2 用户角色 varchar 30 角色
3 用户账号 varchar 30 账号
4 模块名称 varchar 50 模块
5 创建时间 datetime - 时间
6 更新时间 timestamp - 更新时间

  权限表用于存储用户组对不同模块的操作权限配置。主要包括用户组、模块名、表名、页面标题等字段。如表4-10所示。

表4-10权限表

序号 字段名 数据类型 长度 备注
1 授权id int 11 主键
2 用户组 varchar 30 角色组
3 模块名 varchar 50 模块
4 表名 varchar 50 数据表
5 页面标题 varchar 100 标题
6 是否可增加 tinyint - 新增权限
7 是否可删除 tinyint - 删除权限
8 是否可修改 tinyint - 修改权限
9 是否可查看 tinyint - 查询权限
10 创建时间 timestamp - 创建时间
11 更新时间 timestamp - 更新时间

第五章 系统实现

5.1 普通用户角色功能实现

5.1.1 在线留言

  在线留言功能主要是为用户提供向公交运营方表达意见与建议的渠道。用户进入留言页面后填写留言标题与具体内容,系统对输入内容进行非空校验后保存留言记录。提交成功后留言状态置为待回复,用户可以在个人中心查看历史留言列表。管理员登录后台后对留言内容进行回复,回复内容同步展示给相应用户。用户查看留言详情时可同时浏览管理员的回复信息,形成完整的沟通闭环。在线留言界面如图5-1所示。

图5-1在线留言界面

5.1.2 在线反馈

  在线反馈功能支持用户提交与公交服务相关的具体问题。用户选择反馈类型并填写反馈内容,系统记录反馈提交时间并分配反馈编号。用户可通过反馈列表查看处理状态,状态值随管理员处理进度发生变化。待处理状态表示反馈尚未被查看,处理中状态表示问题正在核实,已解决状态表示反馈已得到回复或处理。用户点击详情可查看管理员给出的处理回复内容,系统保存完整的处理轨迹供后续查阅。在线反馈界面如图5-2所示。

图5-2在线反馈界面

5.1.3 车辆信息查看

  车辆信息查看功能为用户提供公交车辆基础数据与运行状态的查询入口。用户在车辆信息列表页面可以通过车辆编号或车辆名称搜索目标车辆,系统根据输入关键词执行模糊匹配查询。搜索结果以列表形式展示车辆编号、车辆名称与运行状态字段,列表支持按运行状态进行二次筛选。用户点击某条记录进入详情页面,可查看车辆类型、车辆简介等更完整的资料。系统在详情页展示车辆封面图片,提升信息可读性。车辆信息查看界面如图5-3所示。

图5-3车辆信息查看界面

5.1.4 路线信息查看

  路线信息查看功能帮助用户了解公交线路的起止站点与运行安排。路线列表页面提供路线名称搜索框与排序按钮,用户输入关键词后系统返回匹配的路线记录。列表项展示路线名称与缩略信息,用户点击进入详情后查看路线图、起点终点、运行时间与路线简介。路线图以图片形式直观呈现线路走向,运行时间字段告知用户首末班车发车时刻。系统在详情页底部展示关联调度任务,用户可快速跳转查看该路线相关调度安排。路线信息查看界面如图5-4所示。

图5-4路线信息查看界面

5.1.5 调度任务查看

  调度任务查看功能让用户掌握公交运营的动态调整信息。任务列表页面提供调度标题、车辆名称与任务状态三个维度的搜索条件,用户可单独或组合使用。系统根据筛选条件返回符合条件的任务记录,列表项展示任务标题与状态标签。用户点击任务卡片进入详情页,查看完整的调度安排与完成情况说明。系统在详情页标注任务执行时间与涉及车辆信息,帮助用户判断对自身出行的影响。调度任务查看界面如图5-5所示。

图5-5调度任务查看界面

5.1.6 收藏记录查看

  收藏记录查看功能聚合用户在系统中标记收藏的内容。系统自动记录用户收藏的车辆信息、路线信息与调度任务,按收藏时间倒序展示在收藏列表页面。每条记录显示收藏对象名称与收藏时间,用户点击可跳转至对应详情页。列表上方提供类型筛选标签,用户可选择查看全部收藏或按车辆、路线、任务分类查看。系统支持用户取消收藏操作,取消后对应记录从列表中移除。收藏记录查看界面如图5-6所示。

图5-6收藏记录查看界面

5.1.7 点赞记录查看

  点赞记录查看功能展示用户表达认可的信息条目。系统记录用户对运营资讯、车辆信息、路线信息、调度任务的点赞操作,按点赞时间倒序组织列表。每条记录显示点赞对象名称、类型标识与点赞时间,用户点击可跳转至源内容页面。列表提供类型筛选功能,用户可选择查看某一类别的点赞记录。系统支持用户取消点赞,取消后记录从列表中移除同时更新源内容的点赞计数。点赞记录查看界面如图5-7所示。

图5-7点赞记录查看界面

5.1.8 评论管理

  评论管理功能支持用户对自己发表的评论进行查询与删除操作。用户进入评论管理页面后系统加载其历史评论列表,列表展示评论内容、评论来源与创建时间。用户可通过昵称或内容关键词搜索特定评论,搜索结果高亮显示匹配项。每条记录右侧提供删除按钮,用户确认删除后系统移除该评论并更新对应内容的评论计数。系统不提供评论编辑功能,确保评论记录的完整性与可追溯性。评论管理界面如图5-8所示。

图5-8评论管理界面

5.2 调度员角色功能实现

5.2.1 车辆信息查看

  调度员车辆信息查看功能提供更全面的车辆运行状态监控视图。调度员进入车辆信息列表后可搜索车辆编号或名称,系统返回匹配车辆的基本信息。列表展示车辆当前运行状态,包括运行中、停运、待调度等状态标识。调度员点击详情可查看车辆数量、车辆简介以及最近调度任务记录。系统在详情页增加车辆运行历史图表,辅助调度员掌握车辆使用规律与维护周期。车辆信息查看界面如图5-9所示。

图5-9车辆信息查看界面

5.2.2 路线信息查看

  调度员路线信息查看功能侧重路线运营参数的展示。路线列表支持按名称搜索,列表项显示路线名称与运行状态。调度员点击进入路线详情后可查看路线图、站点信息、运行时间及当前在途车辆列表。系统在路线详情页增加实时运行图,标注车辆当前位置与预计到站时间。调度员可通过该页面快速判断路线运行是否正常,发现异常时可及时介入调整。路线信息查看界面如图5-10所示。

图5-10路线信息查看界面

5.2.3 调度任务查看

  调度员调度任务查看功能提供任务执行进度的实时跟踪。任务列表页面支持按调度标题、车辆名称、任务状态进行组合搜索,状态选项包括待执行、执行中、已完成等。调度员点击任务进入详情页查看调度安排详细内容,页面底部显示任务执行情况记录。系统在详情页增加执行反馈输入框,调度员可填写任务执行过程中遇到的问题与处理结果。调度任务查看界面如图5-11所示。

图5-11调度任务查看界面

5.2.4 在线反馈

  调度员在线反馈功能处理用户提交的与调度业务相关的问题。反馈列表默认按提交时间倒序排列,待处理反馈置顶显示。调度员点击反馈进入详情页查看反馈内容与用户信息,在处理回复输入框中填写答复内容。系统保存回复后自动将反馈状态更新为已处理,处理记录同步至用户端供查看。调度员可通过反馈列表快速筛选待处理条目,确保用户意见得到及时响应。在线反馈界面如图5-12所示。

​编辑 图5-12在线反馈界面

5.3 管理员角色功能实现

5.3.1 在线反馈管理

  管理员在线反馈管理功能对所有用户反馈进行统一监管。反馈列表展示反馈次数、反馈内容、处理状态、处理回复与创建时间等字段,管理员可通过反馈类型、日期范围、处理状态组合条件查询目标反馈。管理员点击详情可查看完整反馈内容,在原有处理回复基础上可进行补充说明。列表提供删除按钮移除违规或无效反馈,删除操作记录至操作日志备查。在线反馈管理界面如图5-13所示。

图5-13在线反馈管理界面

5.3.2 车辆信息管理

  车辆信息管理功能支持管理员对车辆档案进行增删改查操作。管理员进入车辆信息列表后可输入车辆名称筛选目标记录,列表展示车辆编号、名称、类型与运行状态。管理员点击添加按钮进入新增页面填写车辆编号、名称、封面、类型、数量、简介等信息,系统校验必填项后保存记录。修改操作加载现有数据至编辑页面,管理员更新字段后提交保存。删除操作需二次确认,系统同时删除关联的调度任务引用。车辆信息管理界面如图5-14所示。

图5-14车辆信息管理界面

5.3.3 路线信息管理

  路线信息管理功能维护公交路线基础数据与运营参数。管理员在路线信息列表页面可搜索路线名称,列表展示路线名称与起终点信息。新增路线时管理员填写路线名称、起点信息、终点信息、运行时间与路线简介,上传路线封面图片。修改路线时可更新上述所有字段,系统保留修改时间记录。删除路线时系统检查是否有正在执行的调度任务引用该路线,存在引用时禁止删除并给出提示。路线信息管理界面如图5-15所示。

图5-15路线信息管理界面

5.3.4 调度任务管理

  调度任务管理功能监控所有调度任务的执行状态与完成情况。任务列表展示调度时间、调度用户、任务状态、调度安排、完成情况等字段,管理员可通过时间范围与状态筛选任务。管理员点击详情查看完整任务信息,页面底部提供查看评论入口,可浏览用户对该任务的评论内容。管理员在必要时可修改任务状态或补充完成情况说明,确保任务记录准确完整。调度任务管理界面如图5-16所示。

图5-16调度任务管理界面

5.3.5 留言管理

  留言管理功能处理用户提交的留言内容与回复管理。留言列表按创建时间倒序排列,展示留言标题、用户昵称与回复状态。管理员点击留言进入详情页查看完整内容,在回复输入框中填写答复后保存。系统更新回复状态为已回复,用户登录后可查看回复内容。管理员可删除违规留言,删除操作记录日志。列表提供查询功能,管理员可通过昵称或内容关键词定位目标留言。留言管理界面如图5-17所示。

图5-17留言管理界面

5.3.6 资源管理

  资源管理功能维护运营资讯的分类体系与内容发布。管理员进入资源管理页面后可对资讯分类进行增删改查操作,分类信息包括类型名称、创建时间与更新时间。管理员添加分类时填写类型名称,系统保存后生成分类记录。管理员可对已有分类进行名称修改或删除,删除分类前系统检查该分类下是否存在关联资讯,存在时禁止删除。资源管理界面如图5-18所示。

图5-18资源管理界面

5.3.7 权限管理

  权限管理功能配置不同用户组对系统模块的操作权限。管理员选择用户组后加载对应权限设置页面,权限项包括模块名称与是否可增加、删除、修改、查询四个维度。管理员通过开关按钮调整权限状态,提交后系统更新权限配置表。权限设置影响用户登录后可见的菜单项与可执行的操作按钮,确保不同角色只能访问授权范围内的功能。权限管理界面如图5-19所示。

图5-19权限管理界面

第六章 系统测试

6.1 测试目的

  系统测试是对城市公交实时运营与调度系统功能实现和业务规则是否匹配进行的检验。测试过程考察各个角色的用户能否按要求完成预期的操作,车辆信息、路线信息、调度任务等主要模块的数据流转是否正确。测试系统在边界条件下的容错性,即输入异常数据时系统给出提示而不是崩溃退出。宫云战在软件测试著作中系统地论述了测试对于保证软件质量、可靠性的作用19。本系统测试包含功能正确性、操作友好性、数据一致性这三个方面,用模拟真实的使用场景来检验系统是否符合上线运行的标准,为之后的部署提供质量依据。

6.2 测试方法

  系统测试主要使用黑盒测试法,只对输入和输出的关系进行测试,不考虑内部实现。测试人员按照功能需求设计测试用例,对正常的和异常的操作路径都加以考虑20。单元测试阶段对后端接口做独立的验证,保证每一个接口在不同的参数下返回的响应符合预期。集成测试阶段模仿前后端完整的交互流程来验证模块之间数据传递是否准确。兼容性测试分别在不同的浏览器、设备分辨率上运行前端界面,保证界面的布局和交互功能可以正常使用。测试过程中把实际结果同预期结果相比较,开发人员依据测试报告对缺陷进行修正之后再做回归测试。

6.3 测试用例

  车辆信息查询功能测试如表6-1所示。测试覆盖输入有效关键词、空关键词以及模糊匹配场景,验证系统能否正确返回查询结果并处理边界条件。

表6-1车辆信息查询功能测试

测试内容 操作描述 预期结果 实际结果
完整匹配查询 输入完整车辆编号 显示匹配车辆详情 符合预期
模糊匹配查询 输入车辆名称关键词 显示包含关键词的车辆列表 符合预期
空关键词查询 不输入内容直接搜索 显示全部车辆列表 符合预期
无结果查询 输入不存在的编号 显示无数据提示 符合预期

  在线反馈提交功能测试如表6-2所示。测试验证用户提交反馈时系统的输入校验与数据保存机制是否正常工作。

表6-2在线反馈提交功能测试

测试内容 操作描述 预期结果 实际结果
完整信息提交 选择类型填写内容后提交 保存成功状态置待处理 符合预期
缺失类型提交 未选择反馈类型直接提交 提示选择反馈类型 符合预期
缺失内容提交 未填写反馈内容直接提交 提示填写反馈内容 符合预期
重复提交验证 同一用户连续提交相同内容 系统正常保存两次记录 符合预期

  调度任务筛选功能测试如表6-3所示。测试多条件组合搜索时系统的查询逻辑与结果展示是否符合预期。

表6-3调度任务筛选功能测试

测试内容 操作描述 预期结果 实际结果
单条件筛选 按任务状态筛选 显示该状态所有任务 符合预期
双条件组合 按车辆名称与状态筛选 显示匹配组合的任务 符合预期
三条件组合 按标题、车辆、状态筛选 显示完全匹配的任务 符合预期
重置筛选 点击重置按钮 清空条件显示全部任务 符合预期

  在线反馈处理功能测试如表6-4所示。测试调度员与管理员在处理反馈时回复内容的保存与状态更新机制。

表6-4在线反馈处理功能测试

测试内容 操作描述 预期结果 实际结果
正常处理回复 填写回复后提交 状态更新为已处理 符合预期
空回复提交 不填写内容直接提交 提示输入回复内容 符合预期
状态查看验证 用户查看已处理反馈 显示处理回复内容 符合预期
多次回复验证 对同一反馈补充回复 保留最新回复内容 符合预期

留言回复功能测试如表6-5所示。测试管理员对用户留言进行回复时系统的数据更新与用户端展示情况。

表6-5留言回复功能测试

测试内容 操作描述 预期结果 实际结果
正常回复留言 填写回复后提交 回复状态更新为已回复 符合预期
空回复提交 不填写内容直接提交 提示输入回复内容 符合预期
用户端查看 用户登录查看留言 显示管理员回复内容 符合预期
留言删除验证 管理员删除留言 用户端不再显示 符合预期

总结

  城市公交实时运营与调度系统针对公交运营管理中出现的信息滞后、调度响应迟缓的问题,创建起包含用户、调度员、管理者在内的协同工作平台。系统依靠车辆信息管理、路线信息管理、调度任务管理这些关键功能,把传统的手工调度方式转变为数据支撑的实时运营监控体系。普通用户可以获取车辆的位置、路线安排和调度任务的信息,调度员可以对系统的运营状况实时掌握并且可以处理用户的反馈信息,管理员可以对所有的系统数据进行统一的管理。系统达到了预期的设计目的,给公交运营信息化提供了一个可行的方案。

  统实现过程是从功能需求分析开始的,确定三类角色的操作边界之后再进行系统的架构设计。后端用Spring Boot搭建业务逻辑层,前端用Vue搭建用户交互界面,MySQL数据库做数据持久化存储。分层架构可以减小模块间的耦合程度,有利于模块的拓展以及修改。车辆信息查询、路线信息展示、调度任务筛选、在线反馈处理、留言管理等模块均按照需求完成编码实现并经过测试验证。

  目前系统数据实时性较差,车辆位置更新依靠调度员手动输入,没有自动采集。系统没有和车载GPS设备进行对接,实时位置显示的功能还没有完全实现。调度任务分配仍然采用人工的方式,智能化的调度算法还没有被使用。系统用户数量较少时运行稳定,高并发情况下性能还需要做压力测试来验证。

  后续研究可以在系统中加入车载定位设备,从而可以对车辆的位置进行自动采集并实时显示。用机器学习算法对历史客流数据、运营记录进行分析,给调度任务的智能分配提供支持。系统可以开发移动端应用,使调度员在外出的时候可以使用手机接收任务和反馈信息。系统架构具有横向扩展性,将来可以利用增加服务器节点来解决更大的用户访问问题。本系统对于提高公交运营效率、改善乘客体验有推广使用价值。

参考文献

1 张煜,周楠,刘亮,等.峡江水利枢纽闸门调度系统研究与应用J.水利规划与设计, 2025, 38(12): 89-96.

2 石延年.电力系统自动化调度系统中多目标优化调度设计与平台开发J.光源与照明, 2025, 44(10): 203-205.

3 钟胜,林昌垚,陈振明,等.钢结构产品数据管理系统的开发与应用J.智能城市, 2025, 11(10): 115-118.

4 益西措姆,央宗,刘晓明,等.基于测控与并网技术的可再生能源发电与电网调度自动化系统的开发J.自动化与仪器仪表, 2025, 46(9): 294-298.

5 孔强夫.基于AI深度学习赋能的智慧调度系统设计研究------以中国石化石油勘探开发研究院为例J.办公室业务, 2025, 33(18): 4-6.

6 李伟,王振华,张顺. ESP轧制生产调度系统的设计与开发J.山西冶金, 2025, 48(8): 209-211.

7 周龙才,朱一松,李水兵,等.排涝泵站优化调度决策支持系统的开发及应用J.中国农村水利水电, 2026, 68(1): 147-151.

8 Movahed A M S, Calgaro L, Ioannou G, et al. Development and testing of a nanobubble-based hydrodynamic cavitation systemJ. Chemical Engineering Journal, 2026, 533: 174827.

9 Eldem A, Eldem H. The development and evaluation of agricultural question-answering systems based on large language modelsJ. Scientific Reports, 2026, 16(1): 5357.

10 OhueriCC, Masrom N A M, Seghier E T. Digital twin for decarbonizing operating buildings: a systematic review and implementation framework developmentJ. Energy & Buildings, 2024, 320: 114567.

11 Elis N, Lennart S. An open dispatch model for the Nordic power systemJ. Energy Strategy Reviews, 2022, 39: 100775.

12 JunpengG, Xing H,GengqiL, et al. Intelligent public transport cloud platform dispatching operation management system developmentJ. Journal of Physics: Conference Series, 2021, 1982(1): 012063.

13 孙鑫.详解Spring BootM.北京:电子工业出版社,2022:528.

14 董宁,江平.Vue.js前端开发框架应用M.北京:人民邮电出版社,2024:237.

15 方玲玲.MySQL数据库应用技术M.北京:人民邮电出版社,2024:204.

16 十三,尼克陈.SpringBoot+Vue3大型前后端分离项目实战M.北京:电子工业出版社,2023:719.

17 闾枫.Spring Boot项目开发教程M.北京:人民邮电出版社,2022:264.

18 庞敏.MySQL数据库的数据安全应用设计技术研究J.数字通信世界,2024,48(9):25-27.

19 林育蓓,汤德佑,汤娜.数据库技术及应用M.北京:机械工业出版社,2024:302.

20 宫云战.软件测试教程M.北京:机械工业出版社,2023:725.

致谢

  论文撰写进入收尾阶段时,窗外公交站台的电子屏正滚动播放下班车的到站时间。三年前第一次走进校园,从没想过自己的毕业设计会与每天乘坐的公交车产生关联。从选题时的模糊概念到系统功能的逐步清晰,这个过程像是在图纸上一笔一笔画出公交路线,起初只有零散的点,后来慢慢连成了线,最终构成了能够运转的整体。

  感谢导师在整个研究过程中给予的空间与指引。每次讨论时导师并不会直接告诉我该怎么做,而是抛出问题让我自己去想清楚逻辑上的漏洞。这种指导方式让我学会了如何拆解问题、如何从用户角度审视自己的设计。系统开发遇到技术瓶颈时,导师推荐的参考资料帮我找到了解决方案,调试通过的那天晚上确实感受到了做成一件事的踏实感。

  室友们在这段时间里承担了额外的宿舍事务,让我能够集中精力完成代码调试与论文写作。深夜从实验室回来时他们留的那盏灯,食堂吃饭时听我唠叨测试用例设计的那些时刻,都是这段日子里不会忘记的温暖。家人打来电话时总是问累不累、有没有好好吃饭,这些平常的问候在压力大的时候反而成了最有力的支撑。

  回过头看,这个系统还有很多可以完善的地方,但它已经能够跑起来,能够让不同角色的人用它完成各自的工作。从一行代码开始,到能够演示、能够测试、能够写下这篇论文,这段经历教会我的不只是技术本身。那些调试到深夜的焦灼、跑通流程后的轻松、写不出论述时的烦躁、理清思路后的通透,都成了学生时代最后的注脚。感谢自己在这个过程中的坚持,也感谢所有在这个过程中给予帮助的人。

相关推荐
泡茶喝茶写代码1 小时前
A股量化数据工程:从 REST 接口到策略信号(第 18 篇):放量缩量异动扫描
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
WeiXin_DZbishe1 小时前
基于Springboot+AI的kuall音乐广场的设计与实现-计算机毕设 附源码【课程设计】12715
vue.js·人工智能·spring boot·后端·python·php·课程设计
wewowilling1 小时前
认识微服务
java·运维·微服务·springcloud
A接拉起0072 小时前
2026 年 JavaScript 开发者需要了解的知识
前端·javascript·后端
_馒头2 小时前
pixiJs游戏开发实践 - 跳棋小游戏
javascript·vue.js
代码什么用2 小时前
Java Web 7-10
java·servlet
Bazingga2 小时前
RAG评测体系保姆级教程:生产级实践指南
后端
imgsq3 小时前
电子学会考级 vs CCF-GESP:两套少儿编程考级怎么选
python·青少年编程