django无人驾驶网约车的车辆调度管理系统--附源码47039

目  录

摘要

1 绪论

1.1 研究背景和意义

1.2研究现状

1.3开发技术

1.3.1 Python语言

1.3.2 Django框架

1.3.3 MySQL

1.4论文结构与章节安排

2系统分析

2.1 可行性分析

2.2 系统功能分析

2.2.1系统功能性需求分析

2.2.2系统非功能性需求分析

2.3系统流程分析

2.3.1程序操作流程

2.3.2注册流程

2.3.3登录流程

2.4本章小结

3 系统总体设计

3.1 系统架构设计

3.2 系统功能模块设计

3.2.1整体功能模块设计

3.2.2系统用户模块设计

3.2.3车辆信息管理模块设计

3.3 数据库设计

3.3.1 数据库概念结构设计

3.3.2 数据库逻辑结构设计

3.4本章小结

4 系统详细设计与实现

4.1乘客用户功能模块

4.1.1用户注册界面

4.1.2用户登录界面

4.1.3首页界面

4.1.4 新闻资讯界面

4.1.5 车辆信息界面

4.1.6个人中心界面

4.2管理员功能模块

4.2.1后台首页界面

4.2.2系统用户界面

4.2.3车辆信息管理界面

4.2.4出行订单管理界面

4.2.5出行账单管理界面

4.2.6出行评价管理界面

4.2.7系统管理界面

4.2.8 网站公告管理界面

4.2.9资源管理界面

5系统测试

5.1测试目的

5.2 系统功能测试

5.3 测试结果总结

6 结论

参考文献

致  谢

摘要

随着城市化进程加快,交通拥堵和出行不便成为日益严重的问题,而传统网约车调度系统在应对复杂的城市交通状况时显得力不从心。无人驾驶技术的兴起为解决这些问题提供了新的可能性,但其广泛应用仍需高效的车辆调度管理系统的支持。为此,本文提出了一个无人驾驶网约车的车辆调度管理系统,该系统采用Django框架进行开发,并引入K-means聚类算法以优化车辆资源分配和服务效率。

Django是一款用Python编写的开源Web框架,因其高效性、安全性、可扩展性和灵活性而受到广泛欢迎。在本研究中,选择了Django作为开发平台,充分利用其内置的ORM(对象关系映射)、自动化的管理后台、表单处理、用户认证等功能,从而大大简化了开发过程并提高了系统的可靠性。

本文首先阐述了系统的研究背景、意义及研究现状;然后对系统进行了可行性、功能性等分析;紧接着介绍了系统的设计原理和实现细节,包括系统架构设计、功能模块设计、数据库设计等;最后对系统进行了部署和测试。本系统的研究与开发,展示了先进技术与实际应用相结合的巨大潜力,为提升城市交通效率和改善公共交通服务水平开辟了新途径。

关键词:网约车;无人驾驶;Django

Abstract

With the acceleration of urbanization, traffic congestion and inconvenient travel have become increasingly serious problems, and traditional ride hailing dispatch systems are inadequate in dealing with complex urban traffic conditions. The rise of autonomous driving technology provides new possibilities for solving these problems, but its widespread application still requires the support of efficient vehicle scheduling and management systems. Therefore, this article proposes a vehicle scheduling management system for autonomous ride hailing services, which is developed using the Django framework and introduces the K-means clustering algorithm to optimize vehicle resource allocation and service efficiency.

Django is an open-source web framework written in Python, widely popular for its efficiency, security, scalability, and flexibility. In this study, Django was chosen as the development platform, fully utilizing its built-in ORM (Object Relational Mapping), automated management backend, form processing, user authentication, and other functions, greatly simplifying the development process and improving system reliability.

This article first elaborates on the research background, significance, and current status of the system; Then, feasibility and functionality analyses were conducted on the system; Subsequently, the design principles and implementation details of the system were introduced, including system architecture design, functional module design, database design, etc; Finally, the system was deployed and tested. The research and development of this system demonstrate the enormous potential of combining advanced technology with practical applications, opening up new avenues for improving urban transportation efficiency and enhancing public transportation service levels.

Keywords:Ride hailing services; Autonomous driving; Django

1 绪论

1.1 研究背景和意义

近年来,随着信息技术和人工智能技术的迅猛发展,无人驾驶技术逐渐从理论走向实践,成为改变交通行业格局的关键力量。特别是在城市交通领域,网约车服务由于其便捷性和高效性而迅速普及。然而,传统网约车调度系统在应对复杂的城市交通状况时,往往面临效率低下和服务质量不稳定的问题,尤其是在高峰时段或特定区域需求集中爆发的情况下。为了解决这些问题,研究者们开始探索如何利用先进的算法和技术优化车辆调度管理。K-means聚类算法作为一种经典的无监督学习方法,在数据挖掘、模式识别等领域有着广泛的应用。将其应用于无人驾驶网约车的车辆调度中,可以通过对乘客请求地点和时间的数据进行分析,实现更加精准的需求预测和资源分配,从而提升服务效率和用户体验。

此外,Django作为一个高级的Python Web框架,因其高效开发、安全稳定等特性,在构建复杂的Web应用程序方面表现出色。结合K-means聚类算法与Django框架,可以创建一个既强大又灵活的车辆调度管理系统,不仅能够实时处理大量数据,还能提供友好的用户界面和可靠的后台支持。

采用Django框架开发无人驾驶网约车车辆调度管理系统,并结合使用K-means聚类算法,具有重要的现实意义和广阔的应用前景。首先,该系统能够通过智能分析乘客出行数据,准确预测需求热点区域,合理调配车辆资源,减少乘客等待时间,提高服务质量。其次,借助于聚类分析的结果,可以有效优化车队运营策略,降低空驶率和运营成本,提高整体经济效益。此外,这种系统的构建还促进了智能交通的发展,为未来智慧城市交通体系的建设提供了技术支持和案例参考。对于开发者而言,基于Django的开发模式不仅加快了项目的开发进度,也使得系统具备良好的扩展性和维护性,能够快速适应市场变化和技术进步。综上所述,这一研究不仅推动了无人驾驶技术与实际应用的深度融合,也为解决城市交通拥堵、提升公共交通服务水平提供了新的思路和方法。

1.2研究现状

国内对于无人驾驶网约车车辆调度管理系统的研究正处于快速发展阶段。近年来,随着人工智能技术的发展,越来越多的研究开始关注如何通过智能算法优化车辆调度以提高交通效率和服务质量。例如,白竹和马文慧等人提出了一种改进图卷积神经网络(GCN)的网约车需求预测模型[1]。该模型不仅有助于优化网约车供需结构,而且对提升车辆调度策略的有效性具有重要意义。与此同时,刘宸希设计了一种高效的MDP建模方式,并基于此创建了城市网约车调度仿真系统,旨在平衡区域间的车辆和乘客资源分布,仿真实验证明了其在优化资源配置方面的有效性[2]。

此外,鲍颢之、马凯等人则从硬件层面出发,设计了一个基于STM32F103CBT6芯片的无人驾驶网约车调度系统[3]。该系统集成了供电模块、主处理器模块、GPRS模块、GPS模块、Wi-Fi模块以及RSU等组件,能够高效采集并传输无人驾驶网约车的运行信息及乘客位置信息至管理系统进行分析处理,从而制定出更合理的出车策略。针对传统“召唤-接单”模式的局限性,他们还提出了一种基于优先级的淘汰算法,以期提高网约车调度效率,缓解城市交通压力。李嘉鹏进一步剖析了无人驾驶网约车的核心特征及其在解决城市交通问题、满足个性化出行需求方面的潜力,强调了无人驾驶技术在降低运营成本、提供安全舒适的乘车体验方面的优势[4]。

在国外,无人驾驶网约车车辆调度管理系统的探索同样充满活力,研究者们致力于开发更加智能化和自动化的解决方案来应对日益复杂的交通状况。一些研究集中于利用先进的机器学习算法和大数据分析来预测交通流量和乘客需求,进而实现更为精准的车辆调度。此外,还有研究专注于无人驾驶技术的安全性和可靠性,试图通过改进传感器技术和算法来增强车辆在复杂环境下的自主行驶能力。同时,国外的一些科技公司与汽车制造商也积极合作,共同推进无人驾驶网约车的实际应用,力图在不久的将来实现大规模商业化运营。这些努力展示了无人驾驶技术在全球范围内推动交通革命的巨大潜力。

综上所述,国内外在无人驾驶网约车车辆调度管理系统的研究上均取得了显著进展。随着技术成熟和政策完善,无人驾驶网约车将成为提升城市交通效率的关键因素。

1.3开发技术

1.3.1 Python语言

在无人驾驶网约车的车辆调度管理系统的开发中,使用到的关键技术是Python语言。Python作为一种高级、通用、解释型编程语言,具有简洁、易读、易学的特点,适合快速开发和易维护[5]。在系统开发过程中,Python语言的灵活性和丰富的库能够快速实现各种功能模块,处理复杂业务逻辑,同时能够保证系统的稳定性和可扩展性。Python语言也具有较高的社区活跃度和开发资源,为系统的持续优化和升级提供了可靠的基础。通过使用Python语言,无人驾驶网约车的车辆调度管理系统能够快速、高效地实现各项功能需求,满足无人驾驶网约车辆调度管理的核心要求。

1.3.2 Django框架

无人驾驶网约车的车辆调度管理系统的开发中采用了Django框架。Django是一个基于Python的高级Web应用程序框架,提供了许多开箱即用的功能和工具,包括强大的URL路由、模型-视图-模板(MVT)设计模式、自动化管理界面等[6]。通过使用Django框架可以快速搭建稳定、安全、高效的Web应用程序,并且可以遵循最佳实践进行开发,提高开发效率和代码质量。Django框架还提供了丰富的第三方插件和社区支持,为系统的功能拓展和优化提供了便利。通过整合Django框架,无人驾驶网约车的车辆调度管理系统得以快速搭建,并具备良好的可维护性和扩展性,满足车辆调度管理的复杂需求。

1.3.3 MySQL

无人驾驶网约车的车辆调度管理系统的开发中采用了MySQL数据库作为数据存储平台。MySQL是一种流行的开源关系型数据库管理系统,具有稳定性高、性能优异、易用性强等特点,适合用于存储大量结构化数据[7]。通过使用MySQL数据库,系统可以高效地存储电影信息的关键数据,实现数据的安全性和可靠性。通过整合MySQL数据库,无人驾驶网约车的车辆调度管理系统能够实现数据的高效管理和快速检索,为车辆调度管理提供可靠的数据支持。

1.4论文结构与章节安排

本文除去摘要、参考文献和致谢部分,共分为六章,各章内容安排如下:

第一章:绪论,主要介绍无人驾驶网约车的车辆调度管理系统领域研究的背景和意义、开发现状,开发技术以及论文章节安排。

第二章:系统分析,主要从无人驾驶网约车的车辆调度管理系统的可行性、用户功能、操作流程等方面进行分析,为后续系统设计提供理论支持。

第三章:系统总体设计,主要对无人驾驶网约车的车辆调度管理系统的系统架构、功能模块、数据库进行设计。

第四章:系统详细设计与实现,主要介绍了无人驾驶网约车的车辆调度管理系统各个用户功能界面的实现。

第五章:系统测试,主要对无人驾驶网约车的车辆调度管理系统进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。

第六章:结论。总结全文研究内容。

2系统分析

系统分析是对系统开发的可行性进行研究,分析功能需求以确保系统满足用户期望。系统用例设计将明确定义系统与外部用户的交互场景,系统流程规划则细化系统内部功能流程,确保系统各模块协调工作。通过系统分析,可以建立清晰的系统框架,明确系统目标和功能,为系统开发和实施奠定基础。

2.1 可行性分析

1. 技术可行性

Python是一种广泛使用、成熟且稳定的高级编程语言,Python的语法清晰简洁,易于学习,特别适合开发快速、可维护的软件系统。此外,Django是一个开源的高级Python Web框架,具有快速开发、易于部署、功能丰富等。结合Django框架的特性,可以快速搭建一个稳定、高效的基于Python的无人驾驶网约车的车辆调度管理系统。因此,从技术层面来说是可行的。

  1. 经济可行性

Django拥有完善的官方文档,开发者可以快速上手,提高开发效率。同时,Django提供了大量内置功能,如用户认证、权限管理、数据库迁移等,开发者无需重复编写这些功能,降低了开发成本。此外Django遵循PEP 8编码规范,代码结构清晰,便于维护。降低了运维成本。因此,从经济角度分析是可行的。

  1. 法律可行性

系统从法律层面上来没有第三方法律层面的问题,系统数据库采用的MySQL开源社区数据库、框架采用的是开源的Django。新闻资讯和相关内容也是符合法律层面的。在源码的管理上采用git开源进行管理,所以在法律可行性上是成立的。

  1. 市场可行性

随着共享经济的兴起,网约车服务已经成为人们日常出行的重要选择之一。无人驾驶技术的应用将进一步推动这一趋势的发展,因为它可以降低运营成本、增加运营时间,并且提供更为一致的服务质量。基于Django构建的车辆调度管理系统能够有效地管理车队,实现自动化调度和实时监控,这对于网约车公司来说是一个巨大的优势。此外,消费者对于更安全、更便捷的出行方式有着强烈的需求,这为无人驾驶网约车提供了广阔的市场前景。因此,从市场角度分析是可行的。

综上所述,无人驾驶网约车的车辆调度管理系统在经济、技术、操作,市场等方面都具有较高的可行性。

2.2 系统功能分析

2.2.1系统功能性需求分析

按照无人驾驶网约车的车辆调度管理系统的角色,主要包括乘客用户和管理员这两大用户功能模块,各用户功能模块的具体功能说明如下。

  1. 乘客用户功能
  1. 注册登录:乘客可以通过注册成为系统用户,注册后可以用账号密码登录系统。
  2. 首页:用户可以查看首页展示的轮播图、新闻资讯、车辆信息推荐等信息。在车辆信息推荐栏,系统采用聚类矩阵算法,对用户的点击、评论、收藏、点赞等行为数据进行统计,向用户推荐其更有可能感兴趣的内容。
  3. 网站公告:用户可以查看系统发布的网站公告、关于我们、联系方式等信息。
  4. 新闻资讯:用户可以查看新闻资讯列表中某个资讯的详情并可以点赞、收藏和评论。
  5. 导航地图:用户点击导航栏的“导图地图”可以使用导航功能。
  6. 车辆信息:用户可以查看车辆信息列表信息,点击“查看地图”可以查看车辆的位置坐标。点击列表中的某辆车辆可以进入详情页面查看该车辆的详细信息,如车牌号码、车辆名称、车辆位置等信息,并可以进行点赞、收藏、下单出现和发表评论操作。
  7. 我的:用户点击我的头像的下拉菜单“我的账户”可以查看和修改个人资料(如个人昵称、头像等)和登录密码;点击“个人中心”进入页面可以查看个人首页、出行订单、车辆安排、出行账单、出行评价、行程记录、收藏和评论管理并进行相关操作;点击“退出”即可退出系统登录。

乘客用户角色的用例图如下图2-1所示:

图2-1乘客用户用例图

  1. 管理员功能
  1. 登录:管理员的账号和密码是事先在数据库中设定好的,管理员可以通过在后台输入正确的账号和密码进行登录。
  2. 后台首页:后台首页界面为管理员提供了方便快捷地查看车辆信息统计、出行账单、监控数据统计等重要信息的功能,帮助他们更好地了解和分析当前网约车的管理情况,以便制定相应的管理策略。
  3. 系统用户:系统用户界面允许管理员查询、添加和删除系统用户,并查看特定用户的详情。
  4. 车型分类管理:管理员可以添加车型分类信息,可以查询和删除已有的车型分类信息。
  5. 地点分类管理:管理员可以添加地点分类信息,可以查询和删除已有的地点分类信息。
  6. 车辆信息管理:管理员点击“车辆信息列表”可以查看列表中某辆车辆的详情和评论信息,并可以提交该车辆的充电和维护信息,同时提供车辆电量预警功能;点击“车辆信息添加”进入页面填写车辆名称、车辆号码、地点位置等信息后点击“提交”即可完成车辆信息的添加。点击“车辆信息地图”可以查看车辆所在位置的地标信息。
  7. 出行订单管理:管理员点击“出行订单列表”可以查看列表中某个乘客提交的预约订单信息的详情并进行审核回复。审核通过后的订单,点击“安排车辆”进入页面填写车辆名称后点击“提交”即可完成该订单的车辆安排。
  8. 车辆安排管理:管理员可以查看车辆安排信息列表中某个车辆安排的详情并提交出行账单信息。
  9. 出行账单管理:管理员可以查看出行账单列表中某个账单的详情信息。
  10. 出行评价管理:管理员点击“出行评价列表”可以查看列表中某个乘客的提交的出行评价的信息详情,点击“记录行程”填写使用电量、行驶公里等信息后点击“提交”即可完成该订单的行程数据的上传。
  11. 行程记录管理:管理员可以查看行程记录列表中某个行程记录的详情和上传行程监控数据。
  12. 充电记录管理:管理员可以查看充电记录列表中某个充电记录的详情信息。
  13. 监控数据管理:管理员可以查看监控数据列表中某个监控数据的详情信息和下载监控文件
  14. 车辆维护管理:管理员可以查看车辆维护列表中某个车辆维护的详情信息。
  15. 系统管理:在系统管理界面管理员对轮播图进行管控,可以对轮播图信息进行查询、添加和删除操作。
  16. 网站公告管理:管理员可以通过该界面进行网站公告的创建、编辑、发布和删除等操作,以便向用户传达各种重要信息、公告、更新或事件等内容。
  17. 资源管理:在资源管理模块管理员对新闻资讯和资讯分类进行管控,可以对新闻资讯和资讯分类信息进行查询、添加和删除操作。如点击“新闻资讯”管理员可以查看资讯列表中某个资讯的详情和评论信息。
  18. 我的:管理员可以修改个人信息和登录密码;可以浏览网站首页;点击“退出”即可退出系统的登录。

管理员用例图如下图2-2所示。

图2-2管理员用例图

2.2.2系统非功能性需求分析

非功能性需求分析主要是分析本系统的安全性怎么样(是否会泄露用户个人信息),可靠性怎么样(用户操作的时候是不是能够根据实际操作显示信息),性能怎么样(运行是否操作流畅),可拓展性怎么样(功能能否继续拓展)等。具体可以表示在如下2-1表格中:

表2-1无人驾驶网约车的车辆调度管理系统非功能需求表

需求类型

描述

性能

系统应具有高性能,能够快速响应用户请求,保持稳定的性能水平,支持高并发访问和大规模数据处理。

可靠性

系统应具有高可靠性,确保系统稳定运行,防止系统故障和数据丢失,提供数据备份和恢复机制。

安全性

系统应具有高安全性,保护用户隐私信息和数据安全,采用加密传输技术、访问控制和身份验证机制。

可用性

系统应具有高可用性,保证系统全天候运行,最大限度减少系统故障和维护时间,提供灾备和故障转移功能。

易用性

系统应具有良好的易用性,用户界面设计友好,操作简单直观,提供清晰的指导和帮助文档。

可维护性

系统应具有良好的可维护性,易于维护和升级,提供模块化和结构化代码,方便开发人员进行维护和修改。

可扩展性

系统应具有良好的可扩展性,支持新增功能和模块的集成,具备良好的架构设计和扩展性能。

2.3系统流程分析

2.3.1程序操作流程

用户访问系统,可以选择进行注册或登录操作。注册成功后,用户可以使用注册的账号登录平台。登录后的用户可以进入系统功能界面,使用自己权限内的功能操作。程序操作流程图如下图2-3所示。

图2-3程序操作流程图

2.3.2注册流程

未有账号的用户可进入注册界面进行注册操作,填写注册表格,包括用户名、密码、姓名等必要信息。后台系统验证并保存用户提交的信息。分配唯一用户标识符。注册成功后,用户可以使用账号密码进行登录。用户注册流程图如下图2-4所示。

图2-4注册操作流程图

2.3.3登录流程

用户访问系统,进入登录页面页面,入其用户名和密码,后端服务接收登录请求,验证用户提供的用户名和密码是否匹配数据库中存储的信息,验证通过即可登录成功。登录流程图如下图2-5所示。

图2-5登录操作流程图

2.4本章小结

本章主要通过对无人驾驶网约车的车辆调度管理系统的可行性分析、功能分析、系统用例分析、流程分析,确定整个系统要实现的功能。同时也为系统的代码实现和测试提供了标准。

3 系统总体设计

本章主要讨论的内容包括 无人驾驶网约车的车辆调度管理系统的架构设计、功能模块设计和数据库系统设计。

3.1 系统架构设计

在系统架构设计中,我将确定系统的整体结构和组件之间的关系。这包括选择适当的架构风格,划分系统的层次结构,并定义各个模块的职责和交互方式。架构图如下图所示。

图3-1系统架构设计图

表示层(Presentation Layer):负责与用户进行交互,将系统的功能和数据以易于理解和操作的方式展示给用户。通常包括用户界面、页面设计和用户输入验证等。

业务逻辑层(Business Logic Layer):处理系统的核心业务逻辑,包括对用户请求的处理、业务规则的执行以及数据的处理和转换。它独立于表现层和数据层,实现了业务逻辑的封装和复用。

数据层(Data Layer):负责数据的存储、访问和管理,包括数据库和持久化机制。数据层提供了对数据的增删改查操作,并与业务逻辑层进行交互,使系统能够有效地存储和检索数据。

这三个层次相互独立,通过明确的接口和协议进行通信,实现了系统的模块化和可扩展性。表现层负责将用户的请求传递给业务逻辑层,业务逻辑层处理请求并返回结果,最后数据层负责与数据库交互并提供数据支持。这种分层架构有助于实现系统的可维护性、灵活性和可测试性。

3.2 系统功能模块设计

3.2.1整体功能模块设计

通过整体功能模块设计,根据需求分析的结果,将系统的功能划分为不同的模块。每个模块负责实现特定的功能,并与其他模块进行协作。我们将详细定义每个模块的输入、输出、处理逻辑和相互依赖关系。具体的功能模块图如图3-2所示。

图3-2 系统功能模块图

3.2.2系统用户模块设计

(1)系统用户模块结构图

本系统主要分为管理员和乘客用户这两个用户角色。它们共享基本功能,但乘客用户多了一个注册功能,以便能够注册使用系统。管理员用户在系统中有着操作权限和功能,确保了系统的一致性和易用性。用户模块结构图如下图3-3所示:

图3-3系统用户模块结构图

(2)各个结构的具体业务逻辑

a.查询用户信息:设计基础的查询功能,允许用户根据用户姓名查询用户信息。此功能主要用于管理员查询用户信息和用户自行查询个人信息。

b.添加用户信息:乘客用户可以通过注册获取账号,成为系统的注册用户,以便享受系统提供的服务和功能。

c.修改用户信息:用户可以根据需要修改个人基本信息,包括姓名、密码、头像等。这种操作可以提高用户个性化体验。

d.删除用户信息:管理员可以对系统用户信息进行删除操作。

3.2.3车辆信息管理模块设计

(1)车辆信息管理模块结构图

无人驾驶网约车的车辆调度管理系统需要一个完善的车辆信息管理模块来存储和管理大量的车辆信息。乘客用户可以浏览车辆信息并进行点赞、收藏、评论和下单操作,管理员则具有查询、添加、修改、删除车辆信息的权限,这样的车辆信息管理模块能够有效地组织和管理车辆信息,提供用户查询车辆信息的便利性,同时为管理员提供全面的车辆信息管理的功能,确保系统的正常运行和用户体验。具体的结构图如下:

图3-4车辆信息管理模块结构图

(2)各个结构的具体业务逻辑

a.查询车辆信息:乘客用户可以通过关键词等方式搜索查询车辆信息。

b.添加车辆信息:.管理员具有添加车辆信息的权限,可以新增车辆信息到系统中。

c.修改车辆信息:管理员可以对现有车辆信息进行修改。

d.删除车辆信息:管理员可以删除相关车辆信息。

3.3 数据库设计

3.3.1 数据库概念结构设计

本文在系统分析阶段抽取了一些实体,根据实体之间的关系,经过分析进行系统E-R图的设计。无人驾驶网约车的车辆调度管理系统总体E-R图如下图3-5所示。

图3-5 系统总E-R关系图

3.3.2 数据库逻辑结构设计

数据库逻辑结构设计则是在概念结构的基础上,进行具体的数据库表设计。我们将定义每个表的结构、字段和约束,并建立表与表之间的关系。在此主要罗列系统中所需要的主要数据结构表,如下所示:

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

ger_users (乘客用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

passenger_users_id

int

10

0

N

Y

乘客用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

users_mobile_phone

varchar

16

0

N

N

用户手机

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

user_id

int

10

0

N

N

0

用户ID

6

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表travel_settlement (出行订单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

travel_settlement_id

int

10

0

N

Y

出行订单ID

2

appointment_number

varchar

64

0

Y

N

预约编号

3

vehicle_name

varchar

64

0

Y

N

车辆名称

4

passenger_users

int

10

0

Y

N

0

乘客用户

5

user_name

varchar

64

0

Y

N

用户姓名

6

users_mobile_phone

varchar

64

0

Y

N

用户手机

7

time_of_appointment

datetime

19

0

Y

N

预约时间

8

destination_point

varchar

64

0

Y

N

终点地点

9

starting_point_address

text

65535

0

Y

N

始点地址

10

destination_address

text

65535

0

Y

N

终点地址

11

examine_state

varchar

16

0

N

N

未审核

审核状态

12

examine_reply

varchar

16

0

Y

N

审核回复

13

location_address

varchar

64

0

Y

N

当前位置

14

location_lng

varchar

64

0

Y

N

当前位置经度

15

location_lat

varchar

64

0

Y

N

当前位置纬度

16

vehicle_arrangement_limit_times

int

10

0

N

N

1

安排车辆限制次数

17

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

18

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

19

source_table

varchar

255

0

Y

N

来源表

20

source_id

int

10

0

Y

N

来源ID

21

source_user_id

int

10

0

Y

N

来源用户

表vehicle_information (车辆信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

vehicle_information_id

int

10

0

N

Y

车辆信息ID

2

license_plate

varchar

64

0

N

N

车牌号码

3

vehicle_name

varchar

64

0

Y

N

车辆名称

4

vehicle_photos

varchar

255

0

Y

N

车辆照片

5

vehicle_classification

varchar

64

0

Y

N

车型分类

6

location_location

varchar

64

0

Y

N

地点位置

7

vehicle_status

varchar

64

0

Y

N

车辆状态

8

number_of_vehicles

varchar

64

0

Y

N

车辆数量

9

battery_level

double

9

2

Y

N

0.00

电池电量

10

driving_distance

double

9

2

Y

N

0.00

行驶里程

11

motor_power

double

9

2

Y

N

0.00

电机功率

12

price_description

text

65535

0

Y

N

价格说明

13

vehicle_details

longtext

2147483647

0

Y

N

车辆详情

14

hits

int

10

0

N

N

0

点击数

15

praise_len

int

10

0

N

N

0

点赞数

16

collect_len

int

10

0

N

N

0

收藏数

17

comment_len

int

10

0

N

N

0

评论数

18

recommend

int

10

0

N

N

0

智能推荐

19

mark_address

varchar

64

0

Y

N

详细地址

20

mark_lng

varchar

64

0

Y

N

详细地址经度

21

mark_lat

varchar

64

0

Y

N

详细地址纬度

22

travel_settlement_limit_times

int

10

0

N

N

0

下单出行限制次数

23

charging_record_limit_times

int

10

0

N

N

0

充电限制次数

24

vehicle_maintenance_limit_times

int

10

0

N

N

0

维护限制次数

25

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

26

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

3.4本章小结

整个无人驾驶网约车的车辆调度管理系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。

4 系统详细设计与实现

本系统的实现主要是根据前面的系统需求分析和系统总体设计来设计页面并实现业务逻辑。主要从无人驾驶网约车的车辆调度管理系统界面实现、业务逻辑实现这两部分进行介绍。

4.1乘客用户功能模块

4.1.1用户注册界面

用户注册界面用于新用户进行账号注册,用户需要填写必要的个人信息并选择合适的用户名和密码。系统会对输入的信息进行验证,验证通过后即可完成注册。其界面展示如下图4-1所示。

图4-1用户注册界面图

4.1.2用户登录界面

用户登录界面用于已注册的用户进行账号登录,用户需要输入正确的用户名、密码和验证信息才能成功登录系统。系统会对输入的信息进行验证,验证通过后即可完成登录,同时,系统提供密码找回或重新注册的选项。其界面如下图4-2所示。

图4-2用户登录界面图

登录代码如下:

 def Login(self, ctx):

        print("===================登录=====================")

        ret = {

            "error": {

                "code": 70000,

                "message": "账户不存在",

            }

        }

        body = ctx.body

        password = md5hash(body["password"]) or ""

        obj = service_select("user").Get_obj(

            {"username": body["username"]}, {"like": False}

        )

        if obj:

            user_group = service_select("user_group").Get_obj({'name': obj['user_group']}, {"like": False})

            if user_group and user_group['source_table'] != '':

                user_obj = service_select(user_group['source_table']).Get_obj({"user_id": obj['user_id']},                                                                       {"like": False})

                if user_obj['examine_state'] == '未通过':

                    ret = {

                        "error": {

                            "code": 70000,

                            "message": "账户未通过审核",

                        }

                    }

                    return ret

                if user_obj['examine_state'] == '未审核':

                    ret = {

                        "error": {

                            "code": 70000,

                            "message": "账户未审核",

                        }

                    }

                    return ret

            if obj["state"] == 1:

                if obj["password"] == password:

                    timeout = timezone.now()

                    timestamp = int(time.mktime(timeout.timetuple())) * 1000

                    token = md5hash(str(obj["user_id"]) + "_" + str(timestamp))

                    ctx.request.session[token] = obj["user_id"]

                    service_select("access_token").Add(

                        {"token": token, "user_id": obj["user_id"]}

                    )

                    obj["token"] = token

                    ret = {

                        "result": {"obj": obj}

                    }

                else:

                    ret = {

                        "error": {

                            "code": 70000,

                            "message": "密码错误",

                        }

                    }

            else:

                ret = {

                    "error": {

                        "code": 70000,

                        "message": "用户账户不可用,请联系管理员",

                    }

                }

        return ctx.response(json.dumps(ret, ensure_ascii=False))

4.1.3首页界面

首页界面是用户访问该系统的入口页面,它展示系统的主要功能和特色。用户可以查看首页展示的轮播图、新闻资讯、车辆信息推荐等信息。在车辆信息推荐栏,系统采用聚类矩阵算法,对用户的点击、评论、收藏、点赞等行为数据进行统计,向用户推荐其更有可能感兴趣的内容。其界面展示如下图4-3所示。

图4-3 首页界面图

4.1.4 新闻资讯界面

用户可以查看新闻资讯列表中某个资讯的详情并可以点赞、收藏和评论。支持通过关键字搜索、筛选等方式搜索查看相关资讯信息。其界面如下图4-4示。

图4-4 新闻资讯界面图

4.1.5 车辆信息界面

用户可以查看车辆信息列表信息,点击“查看地图”可以查看车辆的位置坐标。点击列表中的某辆车辆可以进入详情页面查看该车辆的详细信息,如车牌号码、车辆名称、车辆位置等信息,并可以进行点赞、收藏、下单出现和发表评论操作。用户点击详情下方的“下单出行”进入页面填写终点地址、始点地址等信息后点击“提交”即可完成下单。支持通过关键字搜索、下拉搜索等方式搜索查看车辆信息。其界面如下图4-5所示。

图4-5 车辆信息界面图

4.1.6个人中心界面

用户点击我的头像的下拉菜单“个人中心”进入页面可以查看个人首页、出行订单、车辆安排、出行账单、出行评价、行程记录、收藏和评论管理并进行相关操作。如点击“车辆安排”可以查看某个订单的车辆安排详情,用户在到达终点后,点击“行程结束”来成订单。车辆安排的界面如下图4-6所示:

图4-6 车辆安排界面图

当用户点击“出行账单”进入页面可以查看列表中某个出行账单的详情,点击“支付”可以通过微信、支付宝等方式完成该订单费用的支付;点击“评价”可以提交对订单的评价信息。其界面如下图4-7所示:

图4-7 出行账单界面图

4.2管理员功能模块

4.2.1后台首页界面

后台首页界面为管理员提供了方便快捷地查看车辆信息统计、出行账单、监控数据统计等重要信息的功能,帮助他们更好地了解和分析当前网约车的管理情况,以便制定相应的管理策略。其界面如下图4-8所示。

图4-8后台首页界面图

4.2.2系统用户界面

系统用户界面允许管理员查询、添加和删除系统用户,并查看特定用户的详情。例如点击某个乘客用户后面的“详情”可以查看该用户的详细并可以对用户状态等信息进行修改操作。其界面如下图4-9所示。

图4-9系统用户界面图

修改的代码如下:

def Set(self, ctx):

error = self.Set_before(ctx)

if error["code"]:

return {"error": error}

error = self.Events("set_before", ctx, None)

if error["code"]:

return {"error": error}

query = ctx.query

if 'page' in query.keys():

del ctx.query['page']

if 'size' in query.keys():

del ctx.query['size']

if 'orderby' in query.keys():

del ctx.query['orderby']

result = self.service.Set(ctx.query, ctx.body, self.config)

if self.service.error:

return {"error": self.service.error}

res = self.Set_after(ctx, result)

if res:

result = res

res = self.Events("set_after", ctx, result)

if res:

result = res

return {"result": result}

4.2.3车辆信息管理界面

管理员点击“车辆信息列表”可以查看列表中某辆车辆的详情和评论信息,并可以提交该车辆的充电和维护信息,同时提供车辆电量预警功能;点击“车辆信息添加”进入页面填写车辆名称、车辆号码、地点位置等信息后点击“提交”即可完成车辆信息的添加。点击“车辆信息地图”可以查看车辆所在位置的地标信息。以车辆信息列表为例,其界面如下图4-10所示。

图4-10车辆信息列表界面图

添加的代码如下:

def Add(self, ctx):

body = ctx.body

unique = self.config.get("unique")

obj = None

if unique:

qy = {}

for i in range(len(unique)):

key = unique[i]

qy[key] = body.get(key)

obj = self.service.Get_obj(qy)

if not obj:

error = self.Add_before(ctx)

if error["code"]:

return {"error": error}

error = self.Events("add_before", ctx, None)

if error["code"]:

return {"error": error}

result = self.service.Add(body, self.config)

if self.service.error:

return {"error": self.service.error}

res = self.Add_after(ctx, result)

if res:

result = res

res = self.Events("add_after", ctx, result)

if res:

result = res

return {"result": result}

else:

return {"error": {"code": 10000, "message": "已存在"}}

4.2.4出行订单管理界面

管理员点击“出行订单列表”可以查看列表中某个乘客提交的预约订单信息的详情并进行审核回复。审核通过后的订单,点击“安排车辆”进入页面填写车辆名称后点击“提交”即可完成该订单的车辆安排。其界面如下图4-11所示。

图4-11出行订单管理界面图

4.2.5出行账单管理界面

管理员点击“出行账单列表”可以查看列表中某个乘客的出行账单详情并提交该订单的出行费用,点击“审核”对该订单进行审核与回复。管理员可以通过输入预约编号、用户姓名、车辆号码或选择审核状态/支付状态来查询相关出行账单信息。其界面如下图4-12所示。

图4-12出行账单管理界面图

 查询的代码如下: 

def Get_obj(self, ctx):

query = dict(ctx.query)

config_plus = {}

if "field" in query:

field = query.pop("field")

config_plus["field"] = field

obj = self.service.Get_obj(query, obj_update(self.config, config_plus))

if self.service.error:

return {"error": self.service.error}

if obj:

self.interact_obj(ctx, obj)

return {"result": {"obj": obj}}

4.2.6出行评价管理界面

管理员点击“出行评价列表”可以查看列表中某个乘客的提交的出行评价的信息详情,点击“记录行程”填写使用电量、行驶公里等信息后点击“提交”即可完成该订单的行程数据的上传。其界面如下图4-13所示。

图4-13出行评价管理界面图

4.2.7系统管理界面

在系统管理界面管理员对轮播图进行管控,可以对轮播图信息进行查询、添加和删除操作。如点击“添加”进如页面填写标题、链接,上传轮播图片后点击“提交”即可完成轮播图的添加。其界面如下图4-14所示。

图4-14系统管理界面图

4.2.8 网站公告管理界面

网站公告管理模块是管理员用来管理系统中的网站公告的界面。管理员可以通过该界面进行网站公告的创建、编辑、发布和删除等操作,以便向用户传达各种重要信息、公告、更新或事件等内容。其界面如下图4-15所示。

图4-15网站公告管理界面图

删除的代码如下:

def Del(self, ctx):

if len(ctx.query) == 0:

errorMsg = {"code": 30000, "message": "删除条件不能为空!"}

return errorMsg

result = self.service.Del(ctx.query, self.config)

if self.service.error:

return {"error": self.service.error}

return {"result": result}

4.2.9资源管理界面

在资源管理模块管理员对新闻资讯和资讯分类进行管控,可以对新闻资讯和资讯分类信息进行查询、添加和删除操作。如点击“新闻资讯”管理员可以查看资讯列表中某个资讯的详情和评论信息。点击资讯分类可以查看资讯分类列表信息,点击列表上方的“添加”进入页面填写类型名称信息后点击“提交”即可完成资讯分类的添加。以新闻资讯为例,其界面如下图4-16所示。

图4-16新闻资讯界面图

5系统测试

5.1测试目的

为了保证无人驾驶网约车的车辆调度管理系统的质量,使其能够稳定的运行,并排除其可能存在的未知隐患。解除软件可能存在的故障,理清楚测试与纠错的关系,如图5-1所示。

图5-1测试与纠错信息流程

5.2 系统功能测试

通过对系统中所含的主要实体对象及其功能操作进行测试用例设计。系统功能测试包括:用户登录功能测试、乘客用户下单功能测试、乘客用户发布评论功能测试、管理员添加车辆信息功能测试、管理员删除网站公告功能测试,如表5-1、5-2、5-3、5-4、5-5所示:

表5-1用户注册登录测试表

用户注册登录测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

用户注册、登录

测试用户正确注册、登录

  1. 在首页界面注册一个新用户,按规定输入合理的注册信息,提交。
  2. 用户在登录界面输入账户密码登录

用户注册成功,登录成功

结果输出符合预期

通过

表5-2乘客用户下单测试表

用户下单功能测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

乘客用户下单

测试乘客用户下单功能

  1. 在首页导航栏点击“车辆信息”;
  2. 选择列表中某辆车辆点击进入详情页面,点击“下单出行”填写相关信息后点击“提交”

下单成功,在个人中心的出行订单中可以查看该订单信息

结果输出符合预期

通过

表5-3乘客用户发表评论测试表

乘客用户发表评论测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

乘客用户发表评论

测试乘客用户发表评论操作

  1. 在导航栏点击“新闻资讯”并看某个资讯信息的详情;
  2. 在详情页面下方发表对该资讯的评论

用户发表评论成功,展示用户评论信息

结果输出符合预期

通过

表5-4管理员添加车辆信息测试表

乘客用户添加车辆信息测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

车辆信息添加测试

测试乘客用户添加车辆信息信息

  1. 乘客用户点击个人中心的“车辆信息进入页面点击添加;
  2. 输入相关信息后点击“提交”

车辆信息信息添加成功,用户可以查看该车辆信息

结果输出符合预期

通过

表5-5网站公告删除测试表

网站公告删除测试用例:

用例说明

测试目的

测试步骤

预期结果

输出结果

通过情况

网站公告删除测试

网站公告信息删除

  1. 管理员点击网站公告管理;
  2. 选择一个网站公告后点击删除并确认删除

网站公告删除成功,前端不在展示该网站公告信息

结果输出符合预期

通过

5.3 测试结果总结

通过编写无人驾驶网约车的车辆调度管理系统的功能测试用例,已经检测完毕系统测试包括:用户登录功能测试、乘客用户下单功能测试、乘客用户发布评论功能测试、管理员添加车辆信息功能测试、管理员删除网站公告功能测试,通过这五大模块功能测试将为无人驾驶网约车的车辆调度管理系统的后期推广运营提供了强力的技术支撑。

6 结论

在开发无人驾驶网约车的车辆调度管理系统之前,必须对用户的实际需求进行全面分析。这不仅涉及到系统的技术可行性研究,还包括对其功能需求及用户体验需求的详细探讨。在可行性分析阶段,本人从技术可行性和经济性等多个维度对系统实现的可能性进行了全面评估,结果表明该系统的实施具备高度可行性。

本文首先概述了开发无人驾驶网约车车辆调度管理系统的背景及其重要性,随后深入讨论了系统的具体业务需求。基于这些需求,本文对系统的架构和功能模块进行了精心设计。整个系统被划分为多个独立且相互协作的功能模块,每个模块都拥有特定的功能与职责,以确保系统的高效稳定运行和良好的用户体验。

在本系统的开发过程中,本人积累了丰富的经验,并学到了许多课堂之外的知识。尽管系统已基本成型,但由于项目范围广泛和个人知识结构的局限性,系统仍有诸多需要改进之处,如界面布局的优化、代码编写的规范性等。未来,我将继续深化学习,提高技术水平,进一步完善系统功能。同时,我期待无人驾驶网约车的车辆调度管理系统能够早日应用于实践,通过提升出行服务效率、增强用户满意度。

参考文献

  1. 白竹,马文慧,秘梦迪,等.基于改进DBSCAN的网约车出行需求预测[J].黑龙江工程学院学报,2024,38(02):28-36.
  2. 刘宸希.基于深度强化学习的大规模网约车调度技术研究[D].重庆大学,2022.
  3. 鲍颢之,马凯,哈欣怡,等.基于STM32无人驾驶网约车调度系统[J].智能计算机与应用,2023,13(01):189-194.
  4. 李嘉鹏.“智能+”时代背景下无人驾驶网约车的设计与实践[J].汽车画刊,2024,(05):3-5.
  5. 刘长龙.Python高效开发实战[M].电子工业出版社:202108.521.
  6. 沈聪,全树强.深入理解Django[M].电子工业出版社:202111.601.
  7. 王希,戴靓婕.MySQL数据库技术在Web动态网页设计中的运用研究[J].软件,2024,45(07):77-79.
  8. 张震宇,杨茜然.区块链技术在网约车平台应用中的个人信息规制[J].网络安全技术与应用,2025,(01):119-123.
  9. 章薇.网约车新业态新问题对交通经济的影响及其对策[J].上海企业,2024,(11):51-53.
  10. 张厚伟,孙泰屹.基于结构方程模型的自动驾驶网约车使用意愿影响因素研究[J].交通运输研究,2024,10(05):39-51.
  11. 邓子蘅,佘易恒,马谦礼.网约车平台竞合策略综述[J].合作经济与科技,2024,(21):88-90.
  12. 范小军,王珊珊,郭鑫.聚合平台模式下网约车服务策略研究[J].管理科学学报,2024,27(09):62-81.
  13. 潘晓燕.网约车新业态的发展现状与趋势[J].人民公交,2024,(14):50-52.
  14. 祝茵茵.基于多源数据的网约车需求量预测研究[D].山东财经大学,2024.
  15. 洪安定.基于优化司乘匹配的区域网约车平台设计与实现[D].湖南师范大学,2021.
  16. 韩晓萃,胡业维,吴庆艳,等.基于K-means聚类算法的人事管理异常数据识别和自动处理系统[J].电子设计工程,2024,32(24):27-31.
  17. 陈华.Python在数据分析中的应用[J].上海轻工业,2024,(03):108-110.
  18. Ben S ,Saurabh B ,Chris G , et al.Web Development with Django:A definitive guide to building modern Python web applications using Django 4[M].Packt Publishing Limited:2023-05-26.
  19. Wan F .Cluster mining and analysis method of IoT data based on python[J].Computer Informatization and Mechanical System,2024,7(5):24-27.
  20. [1]Huiwen W ,Wen Y ,Lu Z .Optimal policy for scheduling automated guided vehicles in large-scale intelligent transportation systems[J].Transportation Research Part A,2024,179103910-.

致  谢

首先,我要向我的论文指导老师致以最深切的敬意和感谢。在整个论文创作的过程中,老师的指导如同明灯一般照亮了我的前行道路。他不仅耐心地解答我的疑问,还凭借其深厚的学识和敏锐的洞察力,提出了许多具有深远意义的建议。老师的严谨治学态度、敬业精神和高超的教学艺术,为我树立了追求卓越的榜样,对我未来的人生道路和学业成就产生了深远的影响。

同时,我要向我的同学们表达诚挚的感谢。你们不仅是我的亲密战友,也是我生活中的良师益友。正是你们的鼓励和支持,使我在大学期间的学习和生活变得丰富多彩。我要对所有在我求学路上给予我帮助的老师和同学们表示衷心的感谢,是你们的支持和帮助给了我继续前进的力量。

我还要向我的父母表达深深的感激之情。是你们用无尽的爱和关怀,将我抚养成人。你们的养育之恩,我将永生铭记在心。我将会用我的行动和成绩来回报你们的期望。在未来的日子里,我将继续努力,用实际行动来回报你们对我的付出和关爱。

再次感谢所有支持和帮助我的人,是你们让我在求学之路上不再孤单,让我有勇气面对一切挑战。谢谢你们!

请关注点赞+私信博主,免费领取项目源码

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值