基于Java在八万汽车租赁系统的设计与实现

摘 要
随着现代社会生活节奏的加快,人们对出行的需求也越来越迫切,汽车租赁服务逐渐成为人们出行的重要选择。八万汽车租赁管理系统选题的理由在于其可以帮助汽车租赁公司提高运营效率和管理水平,提升客户体验,优化资源利用,降低成本,更好地满足日益增长的市场需求。通过该系统的应用,租车公司可以实现订单管理、车辆调度、客户信息管理、财务管理等方面的全面智能化管理,进一步提升行业竞争力。
八万汽车租赁管理系统采用JAVA做为主要语言,数据库采用MySQL数据库,技术采用SSM,前端使用VUE。开发工具选择IDEA。该系统分两种身份普通用户和管理员。普通用户角色的基本功能包括:注册与登录、车辆信息浏览、系统公告、个人中心、收藏车辆、车辆租赁。管理员角色的基本功能包括:用户管理、车辆信息管理、租赁订单管理、还车记录管理、车辆品牌管理。

关键词:八万汽车租赁管理系统;优化资源;智能化管理;数据库

Abstract
With the acceleration of modern society’s pace of life, people’s demand for travel is becoming increasingly urgent, and car rental services have gradually become an important choice for people’s travel. The reason for choosing the 80000 car rental management system is that it can help car rental companies improve operational efficiency and management level, enhance customer experience, optimize resource utilization, reduce costs, and better meet the growing market demand. Through the application of this system, car rental companies can achieve comprehensive intelligent management in order management, vehicle scheduling, customer information management, financial management, and other aspects, further enhancing industry competitiveness.
The 80000 car rental management system uses Java as the main language, MySQL database, SSM technology, and VUE as the front-end. Choose IDEA as the development tool. The system has two identities: ordinary user and administrator. The basic functions of ordinary user roles include: registration and login, browsing vehicle information, system announcements, personal center, collecting vehicles, and vehicle leasing. The basic functions of the administrator role include: user management, vehicle information management, rental order management, return record management, and vehicle brand management.

Key words: 80000 car rental management system; optimize resources; intelligent management; database

目 录
摘 要 I
Abstract I

第1章 绪 论 1
1.1 课题背景 1
1.2 研究现状 1
1.3 开发意义 2
第2章 相关技术简介 3
2.1 网页设计相关技术系统 3
2.2 Java语言 3
2.3 MySQL数据库 3
2.4 VUE简介 4
2.5 IDEA开发工具 4
2.6 Tomcat服务器 4
第3章 系统分析 6
3.1系统可行性分析 6
3.1.1 技术可行性 6
3.1.2 操作可行性 6
3.1.3 营运可行性 6
3.2 系统功能需求分析 7
3.3 用户需求及用例图分析 7
3.3.1 管理员模块 7
3.3.2 用户模块 8
第4章 系统实现设计 9
4.1 系统功能 9
4.1.1 系统总体功能 9
4.2 数据库设计 9
4.2.1 数据库 E-R 图设计 9
4.2.2 主要数据表设计 13
第5章 详细设计与代码实现 17
5.1 用户功能模块的实现 17
5.1.1 用户登录界面 17
5.1.2 收藏车辆 18
5.1.3 车辆信息浏览 19
5.1.4 系统公告 21
5.1.5 个人中心 22
5.1.6 车辆租赁 23
5.2 管理员功能模块的实现 24
5.2.1 用户管理 24
5.2.2 车辆信息管理 26
5.2.3 租赁订单管理 28
5.2.4 还车记录管理 30
5.2.5 车辆品牌管理 31
第6章 系统测试 33
6.1 测试目的 33
6.2 测试方法 33
6.3 测试用例 33
6.3.1 用户登录模块测试 33
6.3.2 管理员功能模块测试 34
结 论 35
参考文献 36
致 谢 37

第1章 绪 论
1.1 课题背景
随着城市化进程的加快,汽车拥有量逐渐增加,城市交通拥堵和停车位紧缺等问题逐渐凸显。八万汽车租赁管理系统是为解决这些问题而提出的一种创新型交通解决方案。通过八万汽车租赁管理系统,人们可以灵活地根据自己的出行需求选择租赁汽车,而不需要拥有私人车辆。这可以有效减少城市中的车辆拥有量,减轻交通压力,缓解交通拥堵问题。私人汽车需要停放空间,而城市停车位有限。八万汽车租赁管理系统可以最大限度利用现有停车位资源,减少停车位需求。这可以为城市腾出更多的空间,如建设绿地、扩大人行道等,提升城市的生态环境和市民的出行体验。拥有私人汽车需要支付购车、保险、维修等各种费用。而通过八万汽车租赁系统,用户只需支付按需租车的费用,可以大大降低个人出行成本。这对于一些短期或偶尔需要使用汽车的用户来说,是一种更经济实惠的出行方式[1]。
八万汽车租赁管理系统是一种解决城市交通问题的创新方式,具有减少车辆拥有量、节约空间资源、降低个人出行成本以及减少碳排放等多个优势。因此,选择该选题进行研究可以对城市交通和可持续发展产生积极影响[2]。
1.2 研究现状
在国内,八万汽车租赁系统近年来得到了广泛发展和应用。首先,八万汽车租赁系统逐渐涌现。像盼达用车、小鹏租车、高鹏出行、嘀嗒出行等共享汽车平台已经在国内各大城市推出,并取得了一定的市场份额。这些平台通过手机App提供在线预约、定位、支付等服务,用户可以灵活租用汽车、按需出行。其次,八万汽车租赁系统业务模式不断创新。除了传统的短途出行租车服务,一些平台还推出了长租、日租、分时租赁等多样化服务模式。同时,一些平台还引入了电动汽车、混合动力车辆等节能环保型车辆,推动可持续出行的发展。另外,政府在八万汽车租赁系统方面也给予了支持和推动。城市交通管理部门鼓励共享汽车运营,提供停车位优惠政策和管理措施,促进共享汽车发展。一些城市还出台了相关的政策法规,加强对共享汽车行业的监管和规范,确保用户的安全和利益[3]。
在用户方面,八万汽车租赁系统受到了越来越多人的认可和接受。对于城市居民来说,共享汽车提供了一个更加便捷、经济的出行选择。尤其是在出行频率较低或需要突发出行时,租用共享汽车比购车更加实际和经济。尽管八万汽车租赁系统在国内得到了迅猛的发展,但也面临着一些挑战。例如,一些平台的运营效率和盈利模式需要进一步改进和完善;共享汽车的管理和维护也面临一定难度;用户对共享汽车的使用习惯和安全意识需要进一步培养。总体而言,国内的八万汽车租赁系统正处于快速发展阶段,政府、企业和用户都逐渐认识到其潜力和优势。随着技术的不断进步和市场需求的增长,预计八万汽车租赁系统在国内会继续蓬勃发展[4]。
在国外,八万汽车租赁系统的发展也十分迅速,尤其是在一些大城市已广泛应用,并逐渐发展成熟。首先,一些知名的八万汽车租赁系统在欧美等地相继成立,如Uber、Zipcar、Car2Go等,这些平台提供车辆租赁、定制服务、在线预约等服务,成为了八万汽车租赁系统的发起人和代表。其次,八万汽车租赁系统在一些国家和地区得到了政府的大力支持。例如,美国、德国、英国等国家的政府和地方政府先后出台了相应法规和政策,为八万汽车租赁系统的发展提供政策保障,如为共享汽车开辟专用停车位、减免税费、拍卖补贴等。另外,八万汽车租赁系统在欧美和一些发达国家得到了广泛应用和接受。在一些大城市,人们可以通过手机APP随时随地租借车辆,完成出行需求,解决交通拥堵、停车难等问题。在用户方面,八万汽车租赁系统的用户已经占据一定市场份额,尤其是年轻人、短期住户、城市白领等用户群体,在出行方面尤其青睐于共享型汽车。尽管八万汽车租赁系统在国外得到了广泛发展,但也面临着一些挑战。比如平台的盈利模式、安全问题、使用成本等,都需要不断改进和完善。总体而言,八万汽车租赁系统在国外已经成为一种颇受欢迎的出行方式,得到了政府、产业、用户等各方的认可和支持。未来,随着八万汽车租赁系统的技术和服务不断完善,预计它在国外的市场份额将会进一步扩大[5]。
1.3 开发意义
八万汽车租赁系统选题的意义包括解决交通拥堵问题、提升资源利用效率、促进环保可持续发展、降低出行成本以及推动创新和科技发展等方面。这些意义都与改善城市居民的出行体验、提升城市的可持续性和推动社会经济发展密切相关。八万汽车租赁系统是由新兴的移动互联网、车联网和智能交通技术等相结合而成的,涉及到车辆定位、预约、支付和数据分析等方面的技术和创新。通过对该系统的研究,可以推动相关科技的发展,促进交通产业的创新和进步[6]。
第2章 相关技术简介
2.1 网页设计相关技术系统
系统的开发环境为局域网或校园网络环境,采用PC设备,Windows 10,IDEA,Tomcat 9.0.37,JDK1.8,Mysql5.7等软件进行操作开发系统。
运用技术:Spring+SpringMVC+MyBatis开发框架,项目涉及到web前端开发技术包括采用VUE框架进行页面呈现;Java程序设计中的面向对象的操作;SQL在数据库中的应用。整体网页设计简洁、美观大方[7]。
2.2 Java语言
Java 是一种广泛应用的面向对象程序设计语言,由 Sun Microsystems 公司于 1995 年推出。Java 语言具有平台无关性,即一次编写,到处运行的特性,这意味着编写的 Java 程序可以在不同的计算机平台上运行,而不需要针对特定平台进行修改。Java 语言被广泛应用于企业级和互联网应用开发,它具有良好的跨平台兼容性、强大的安全性和稳定性,以及丰富的类库和工具支持[8]。Java 还支持多线程编程,能够方便地编写多任务并发的程序。Java 语言的特点包括简单性、面向对象、分布式、健壮性、安全性和跨平台等,因此成为广泛应用的编程语言之一。同时,Java 有着庞大的社区支持和丰富的开发资源,使得它成为许多开发者的首选之一[9]。
2.3 MySQL数据库
MySQL是一种开源的关系型数据库管理系统(RDBMS),是由瑞典MySQL AB 公司开发,后来被Oracle公司收购。MySQL是一种客户端/服务器系统,支持多用户同时访问数据库,可以在不同的操作系统平台(例如,Windows,Linux,UNIX)上运行。支持标准SQL,支持SQL语言的大部分标准[10]。可扩展性高,支持基于SQL API的编程接口,可以轻松地扩展新的功能并添加新的存储引擎。可靠性高,具有高度的自我修复机制和自动备份和恢复功能。支持高并发和大型数据集,具有轻型锁定机制和多表连接优化等方面的较好表现。具有良好的安全性,在具体实现方面,支持多入口访问控制,提供数据的完整性和安全性保障。MySQL被广泛应用于Web开发,大型服务器端应用,电子商务平台等数据处理场景。同时,由于它是开源的,拥有全球的社区支持,使得它成为用户和开发者的首选[11]。
2.4 VUE简介
Vue.js (简称 Vue) 是一个开源的 JavaScript 框架,主要用于开发单页应用程序。Vue.js 的核心库只关注视图层,易于上手,并且可以与第三方库或既有项目集成。Vue.js 设计的初衷是为了通过尽量简单的 API 实现数据的响应式并提供灵活的组件系统。Vue.js 的核心是一个允许通过简单的模板语法来声明式的将数据渲染到 DOM 节点上的系统,包括了组件化模块,允许开发者通过组合不同的组件模块来构建复杂的 UI。Vue.js 提供了渐进式的学习曲线,可以自由选择使用其核心库的部分功能,还支持模块化开发[12]。Vue.js 通过 Virtual DOM 技术实现了非常高效的渲染,减少了浏览器 DOM 的操作和计算,提升了应用程序的性能。Vue.js 提供了强大的组件化系统,使得页面可重用、可拓展,并且易于维护。Vue.js 生态圈非常丰富,有大量的第三方插件和库,包括路由、状态管理、UI 组件等方面提供了很好的支持[13]。
2.5 IDEA开发工具
IntelliJ IDEA 是一款由 JetBrains 开发的集成开发环境(Integrated Development Environment,简称 IDE),专注于 Java 开发。它不仅仅支持 Java 开发,还支持多种编程语言,包括 Kotlin、Groovy、Scala 和 Android 等。IntelliJ IDEA 提供了丰富的功能和工具,使开发工作更高效、更舒适。IntelliJ IDEA 通过智能提示、自动完成、重构、错误检查等功能,提供了强大的代码编辑体验。它可以快速识别代码中的错误、警告和建议,并提供相应的修复和改进方案。IntelliJ IDEA 提供了快速定位和导航到代码中的类、方法和变量的功能,可以帮助开发者更容易地浏览和修改代码。IntelliJ IDEA 集成了各种版本控制系统,如 Git、SVN 和 Mercurial,可以直接在 IDE 中管理和提交代码变更。IntelliJ IDEA 提供强大的调试器,可以方便地调试和跟踪代码执行过程,包括断点设置、变量监视、表达式评估等功能[14]。
2.6 Tomcat服务器
Tomcat(全称为Apache Tomcat)是一个开源的、轻量级的Web服务器和Servlet容器,由Apache软件基金会开发和维护。它是Java EE规范的一个基本实现,用于处理Java Servlet、JavaServer Pages(JSP)和Java WebSocket等技术开发的Web应用[15]。Tomcat是一个支持Servlet规范的容器,可以接收和处理Servlet程序请求,并将结果返回给客户端,实现动态的网页生成与交互。Tomcat可以解析和运行JSP页面,将JSP文件转化为Servlet程序,再交由Servlet容器处理。使用Tomcat可以快速部署Web应用,只需将War包(Web ARchive)文件放入特定目录,Tomcat会自动解压并部署应用。Tomcat是一个小型的、占用资源较少的Web服务器,适用于中小型项目或开发测试环境。Tomcat支持HTTP、HTTPS和AJP(Apache JServ Protocol)等协议,可以处理不同类型的网络请求[16]。
第3章 系统分析
3.1系统可行性分析
3.1.1 技术可行性
八万汽车租赁系统在技术上是可行的,主要依赖于使用了SSM框架、Vue前端开发框架和MySQL数据库。通过采用SSM框架、Vue前端框架和MySQL数据库,八万汽车租赁系统可以在技术上得到良好的支持[17]。SSM框架提供了一套完善的企业级开发框架,Vue.js提供了灵活、高效的前端开发方式,MySQL数据库提供了高性能、可靠的数据存储和管理。这些技术的结合将有助于构建一个功能完善、性能优良的八万汽车租赁系统。
3.1.2 操作可行性
八万汽车租赁系统具有简洁明了的用户界面,用户可以轻松快捷地进行选择租车、还车等操作。此外,系统还提供了预订记录、消费记录等细节查询,从而方便用户进行操作和管理。八万汽车租赁系统的数据库采用MySQL,提供了很好的数据可靠性和备份解决方案。当出现故障时,能够迅速从备份中进行系统的恢复,保证了系统的数据可靠性。因此八万汽车租赁系统在操作上是可行的。用户界面友好,系统技术简单易学,具有很高的可扩展性和稳定性,同时数据库的备份方便可靠。这些特点使得用户可以很容易地操作系统,并高效地完成相关业务。系统的使用可以有效降低车辆的闲置时间,满足用户的相关需求,为用户和企业提供更优质的服务和更大的利润空间。
3.1.3 营运可行性
八万汽车租赁系统不需要大量资金投入和固定资产设施建设,只需要一台电脑和云服务器等解决方案即可。开发工具也不需要投入太多,只需要购买一份IDEA和navicat即可。八万汽车租赁系统的盈利模式是通过对车辆租赁产生的金融收益来进行盈利。系统的使用费用能够覆盖其维护开发成本,而多出的部分可以用于盈利。相比传统租车行业,八万汽车租赁系统并不需要过多的车辆投资。车辆来源可以来自于不同车主的共享,其费用由租车客户承担。这样可以大大减少企业在车辆方面的成本支出。采用SSM框架、Vue前端框架和MySQL数据库,以及IDEA和navicat等工具开发八万汽车租赁系统,其经济可行性得到了保证。市场需求和盈利模式都支持系统的成熟发展,而低成本投入和方便快捷的特点则使得企业可以更轻松地进行操作。因此,八万汽车租赁系统在经济上是可行的,有望成为未来共享经济市场的一个重要组成部分。
3.2 系统功能需求分析
八万汽车租赁系统的使用者主要是普通用户和管理员,普通用户可以实现的功能包括注册与登录、车辆信息浏览、系统公告、个人中心、收藏车辆、车辆租赁。管理员角色的基本功能包括:用户管理、车辆信息管理、租赁订单管理、还车记录管理、车辆品牌管理等。
3.3 用户需求及用例图分析
3.3.1 管理员模块
管理员进入登录界面进行登录,才能进入后台首页。其次能够看到管理员的功能模块包括用户管理、车辆信息管理、租赁订单管理、还车记录管理、车辆品牌管理。管理员用例图如图3-1所示。
在这里插入图片描述

图3-1 管理员用例图
3.3.2 用户模块
普通用户登录系统后可以浏览车辆信息,查看系统公告,租赁车辆等。用户用例图如图3-2所示。
在这里插入图片描述

图3-2 用户用例图

第4章 系统实现设计
4.1 系统功能
4.1.1 系统总体功能
该八万汽车租赁系统主要分为普通用户和管理员两个大模块。普通用户可以实现的功能包括注册与登录、车辆信息浏览、系统公告、个人中心、收藏车辆、车辆租赁。管理员角色的基本功能包括:用户管理、车辆信息管理、租赁订单管理、还车记录管理、车辆品牌管理,该系统的各功能模块结构图如下图4-1所示。
在这里插入图片描述

图4-1 系统功能架构图
4.2 数据库设计
4.2.1 数据库 E-R 图设计
系统总体实体-关系(E-R)图是信息系统设计和数据库设计中常用的一种图形工具,用于描述系统中实体(Entity)之间的关系(Relationship)以及属性(Attributes)的结构。通过E-R图,设计人员可以识别实体间的关系,包括一对一、一对多、多对多等不同类型的关系。这有助于验证系统数据的完整性,避免数据冗余和不一致性。系统整体E-R图如下图4-2所示。
在这里插入图片描述

图4-2 数据库概念E-R图
用户信息包括:创建时间、账号、密码、姓名、照片、性别、年龄、手机、邮箱,如图4-3所示。
在这里插入图片描述

图 4-3 用户信息实体图
管理员包括:管理员账号、管理员密码,如图4-4所示。
在这里插入图片描述

图 4-4 管理员实体图
租赁订单包括:创建时间、账号、姓名、手机、车辆名称、车牌号码、车辆品牌、车辆类型、换挡方式、租赁价格、租赁天数、提车日期、实付金额、是否审核、审核回复,如图4-5所示。
在这里插入图片描述

图 4-5租赁订单实体图
收藏包括:创建时间、用户id、收藏id、表名、收藏名称、收藏图片,如图4-6所示。
在这里插入图片描述

图 4-6 收藏实体图
公告包括:创建时间、标题、简介、图片、内容,如图4-7所示。
在这里插入图片描述

图 4-7 公告实体图
还车记录包括:创建时间、账号、姓名、手机、车辆名称、车牌号码、车辆品牌、车辆类型、换挡方式、租赁价格、还车日期、租赁天数、其余事项、是否审核、审核回复,如图4-8所示。
在这里插入图片描述

图 4-8还车记录实体图
车辆品牌包括:创建时间、品牌,如图4-9所示。
在这里插入图片描述

图 4-9 车辆品牌实体图
车辆信息包括:创建时间、车辆名称、车牌号码、车辆品牌、车辆类型、车辆照片、车辆颜色、换挡方式、车辆天窗、车座、租赁价格、车辆详情,如图4-10所示。
在这里插入图片描述

图 4-10 车辆信息实体图
4.2.2 主要数据表设计
该系统采用 MySQL数据库进行各种数据处理,并利用 SQL语句将数据库与前端进行数据通信。在数据库中,数据类型的设定和主键的设定,完成了数据的设计[12]。数据库建立8个表(用户表yonghu、管理员表users、租赁订单表zulindingdan、收藏表storeup、公告表news、还车记录表haichejilu、车辆品牌表cheliangpinpai、车辆信息表cheliangxinxi)如表4-1到4-8所示。

表4-2 zulindingdan表
列名 数据类型 长度 主键 允许空 注释
id int 11 是 否 主键
addtime datetime 255 否 是 创建时间
zhanghao String 255 否 是 账号
xingming varchar 250 否 是 姓名
shouji String 250 否 是 手机号
mingcheng String 255 否 是 名称
chepaihaom String 255 否 是 车牌号码
cheliangpin varchar 255 否 是 车辆品牌
fangshi int 11 否 是 挂挡方式
zulinjiage varchar 255 否 是 租赁价格
zulintianshu varchar 255 否 是 租赁天数
ticheriqi varchar 255 否 是 提车日期
shifujine varchar 255 否 是 实付金额
sfsh int 11 否 是 是否审核
shhf varchar 255 否 是 审核回复
ispay int 11 否 是 是否支付
表4-3 storeup表
列名 数据类型 长度 主键 允许空 注释
id int 4 是 否 主键
addtime varchar 255 否 是 创建时间
userid varchar 255 否 是 用户id
refid varchar 255 否 是 收藏id
tablename varchar 255 否 否 表名
name varchar 255 否 是 收藏名称
picture varchar 255 否 是 收藏图片
表4-4 news表
列名 数据类型 长度 主键 允许空 注释
id int 11 是 是 主键
addtime datetime 11 否 否 创建时间
title varchar 11 否 否 标题
introduction varchar 11 否 否 简介
picture String 255 否 否 图片
content String 255 否 否 内容
表4-5 haichejilu表
列名 数据类型 长度 主键 允许空 注释
id int 11 是 是 主键
addtime datetime 50 否 是 创建时间
zhanghao varchar 50 否 是 账号
xingming String 220 否 是 姓名
shouji String 220 否 是 手机号
mingcheng varchar 50 否 是 名称
leixing int 11 否 是 车辆类型
fangshi int 11 否 是 挂挡方式
zulinjiage bigdecimal 50 否 是 租赁价格
haicheriqi varchar 50 否 是 还车日期
zulintianshu String 220 否 是 租赁天数
qiyushixiang String 220 否 是 其余事项
sfsh varchar 50 否 是 是否审核
shhf varchar 50 否 是 审核回复
表4-6 cheliangpinpai表
列名 数据类型 长度 主键 允许空 注释
id int 0 是 是 主键
addtime datetime 255 否 是 创建时间
pinpai varchar 255 否 是 品牌
表4-7 users表
列名 数据类型 长度 主键 允许空 注释
id int 11 是 否 主键
account varchar 50 否 是 账号
password varchar 50 否 是 密码
表4-8 cheliangxinxi表
列名 数据类型 长度 主键 允许空 注释
id int 11 是 是 主键
addtime varchar 50 否 是 创建时间
mingcheng varchar 50 否 是 名称
chepaihaoma varchar 50 否 是 车牌号码
cheliangpinpa int 11 否 是 车辆品牌
leixing int 11 否 是 类型
zhaopian String 220 否 是 照片
cheliangyanse String 220 否 是 车辆颜色
fangshi int 11 否 是 方式
tianchuang varchar 50 否 是 天窗
chezuo varchar 50 否 是 车座
zulinjiage bigdecimal 50 否 是 租赁价格
xiangqing String 220 否 是 详情
第5章 详细设计与代码实现
5.1 用户功能模块的实现
5.1.1 用户登录界面
用户访问汽车租赁系统的网站,并选择进行注册。用户点击注册按钮后,系统将跳转到注册页面。在注册页面上,用户需要填写一些个人信息,如用户名、密码、电子邮件地址、手机号码等。这些字段可能会有一些必填和选填的区别。用户填写完所有必填字段后,可以选择提交注册表单。系统会对用户输入的信息进行验证,包括用户名的唯一性、密码的强度等。如果有任何错误或缺失的信息,系统会提示用户进行修正。注册成功后,用户可以登录该系统。用户注册页面如图5-1所示。
在这里插入图片描述

图5-1 用户注册界面展示
用户打开汽车租赁系统的网站,并点击登录按钮。用户将被引导到登录页面,其中包含用户名和密码输入字段。用户输入其先前注册的用户名和密码。一旦用户填写完用户名和密码,系统将对其进行验证。系统将检查用户名和密码是否匹配,并验证用户是否存在于系统数据库中。如果用户名和密码验证通过,用户将被视为成功登录。系统会将用户重定向到系统主页。如果用户名和密码验证不通过,系统会显示相应的错误消息,提示用户输入正确的用户名和密码。如图5-2、5-3所示。
在这里插入图片描述

图5-2 用户登录页面
在这里插入图片描述

图5-3 系统主页面
用户登录主要代码如下:
@IgnoreAuth
@PostMapping(value = “/login”)
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper().eq(“username”, username));
if(user==null || !user.getPassword().equals(password)) {
return R.error(“账号或密码不正确”);
}
String token = tokenService.generateToken(user.getId(),username, “users”, user.getRole());
return R.ok().put(“token”, token);
}
5.1.2 收藏车辆
当用户浏览可租赁的车辆列表,并找到他们感兴趣的车辆。在车辆信息页上,用户会看到一些详细车辆信息,如品牌、型号、价格、车辆图片、描述等。在车辆信息页上,系统提供一个"点我收藏"的按钮。用户点击收藏按钮后,系统会将该车辆加入用户的收藏列表中。收藏成功后系统会提示收藏成功。如图5-4、5-5所示。
在这里插入图片描述

图5-4 收藏提示页面
在这里插入图片描述

图5-5 汽车收藏页面
收藏车辆主要代码如下:
if (!ObjectUtils.isEmpty(serviceType)&&serviceType.size()>0){
if (serviceType.size()>1){
prefixManage.setServiceType(3);
}else{
prefixManage.setServiceType(serviceType.get(0));
}
}else{
prefixManage.setServiceType(serviceType.get(0));
}
prefixManage.setIsInit(Constant.IS_INIT_NO);
prefixManage.setPrivateKeyPath(ConfigUtil.platform_private_key_root_path+“/”+prefix+“/”+HSG.ADMIN_PRIV_KEY_FILE_NAME);
prefixManage.setServerIp(ConfigUtil.platform_server_ip);
prefixManage.setServerPort(Integer.parseInt(ConfigUtil.platform_server_https_port));
prefixManage.setPrivateKeyPwd(ConfigUtil.agent_checkPassword);
prefixManageMapper.insert(prefixManage);
}
5.1.3 车辆信息浏览
用户进入系统后,通常会看到一个车辆列表,用于浏览可租赁的车辆信息。用户可以根据需要使用搜索过滤器,如品牌、型号、价格范围、车型等,以获取与其要求相符的车辆结果。如图5-6所示。
在这里插入图片描述

图5-6 汽车列表页面
用户可以点击任一辆车或车辆的图片,以查看详细的车辆信息。在车辆信息页上,用户可以查看车辆的基本信息,如品牌、型号、年份、价格、可租赁性状态等。用户还可以在车辆信息页上查看车辆的详细描述、图片、车辆的技术规格信息等。如图5-7所示。
在这里插入图片描述

图5-7 汽车详情页面
用户进入车辆信息页,通常会看到一个评论栏,用于输入和提交评论。在评论栏中,用户可以输入他们的评论。用户提交评价后,系统会将其评价添加到车辆信息下的所有评论列表中。汽车租赁系统支持用户查看其他用户的评论。用户可以在车辆信息下方找到其他用户的评论列表。用户可以浏览其他评论,并根据其有用性和可信度决定是否参考这些评论。如图5-8所示。
在这里插入图片描述

图5-8 汽车评论页面
车辆信息浏览主要代码如下:
init.setPublicKeyPath(ConfigUtil.platform_private_key_root_path+“/”+prefix+“/”+HSG.ADMIN_PUB_KEY_FILE_NAME);
initMapper.updateById(init);
//调用上传认证接口
byte[] orgNameEncrypt = null;
byte[] orgNameSign = null;
Map<String, byte[]> orgNameEncryptAndSign = getOrgNameEncryptAndSign(enterpriseName);
orgNameEncrypt = orgNameEncryptAndSign.get(“orgNameEncrypt”);
orgNameSign = orgNameEncryptAndSign.get(“orgNameSign”);
String result = ServiceInit.getService(MemberService.class).uploadServerInfo(enterpriseName,orgNameEncrypt,orgNameSign,ConfigUtil.agent_number,ConfigUtil.agent_prefix,prefix,
Files.readAllBytes(Paths.get(ConfigUtil.platform_private_key_root_path+“/”+prefix+“/”+ HSG.SITE_BUNDLE_ZIPFILE_NAME)),
HSG.SITE_BUNDLE_ZIPFILE_NAME,ConfigUtil.platform_handle_ip,ConfigUtil.platform_handle_ip,ConfigUtil.platform_handle_httpsPort,
Files.readAllBytes(Paths.get(ConfigUtil.agent_keyfile_path)),ConfigUtil.agent_keyfileFileName,ConfigUtil.agent_checkPassword);
Gson gson = new Gson();
System.out.println(result);
InterFaceResult interFaceResult = gson.fromJson(result, InterFaceResult.class);
if (String.valueOf(Constant.COMMON_STATUS_ZERO).equals(interFaceResult.getCode()))
5.1.4 系统公告
用户进入系统后,会在页面上的特定的导航菜单中找到系统的公告页面。用户点击公告页面链接,进入浏览系统公告的页面。在公告页面上,用户可以看到系统管理员发布的最新公告列表,按照发布时间排列。用户可以浏览公告的标题和概要,以快速了解公告的内容。如图5-9所示。
在这里插入图片描述

图5-9 公告列表页面
如果用户对某个公告感兴趣,可以点击公告标题或相应的链接,以展开或查看公告的详细内容。公告的详细内容可能包括公告的正文、日期和其他相关信息。如图5-10所示。
在这里插入图片描述

图5-10 公告详情页面
系统公告主要代码如下:
else{
LambdaQueryWrapper lambdaQueryWrapper2 = new LambdaQueryWrapper();
lambdaQueryWrapper2.eq(!MethodUtil.isEmpty(prefix),PrefixManage::getPrefix,prefix);
PrefixManage prefixManage = new PrefixManage();
if (!ObjectUtils.isEmpty(serviceType)&&serviceType.size()>0){
if (serviceType.size()>1){
prefixManage.setServiceType(3);
}else{
prefixManage.setServiceType(serviceType.get(0));
}
5.1.5 个人中心
在个人中心页面上,用户可以查看和管理与他们的个人账户相关的信息和功能。用户可以查看和编辑他们的个人信息,在个人资料页面上,他们可以修改姓名、联系方式、地址等个人信息。用户可以点击某个编辑按钮或“修改个人信息”链接,以开始编辑个人信息。在个人信息编辑页面上,用户可以更改需要更改的个人信息字段,并提交保存更改。如图5-11所示。
在这里插入图片描述

图5-11 修改个人信息页面
用户还可以在个人中心页面上找到一个名为“我的收藏”的功能链接。用户点击“我的收藏”链接后,进入收藏页面,可以查看他们之前收藏的车辆列表。用户可以浏览收藏车辆的基本信息、图片和其他详细信息。用户还可以取消收藏某辆车辆,删除它们不再感兴趣的车辆。如图5-12所示。
在这里插入图片描述

图5-12 我的收藏页面
个人中心主要代码如下:
for (int i = 0; i < viewGroupLevelList.size(); i++) {
ViewGroupLevel viewgroupLevel = viewGroupLevelList.get(i);
if (StrHelper.isEmpty(viewgroupLevel.getId())) {
viewgroupLevel.setSortIndex(i);
viewgroupLevel.setCreateUserId(PublicUtil.getLoginUserId());
viewgroupLevel.setCreateTime(DateUtils.getCurrentDateTime());
viewgroupLevelMapper.insert(viewgroupLevel);
} else {
viewgroupLevel.setSortIndex(i);
viewgroupLevel.setUpdateUserId(PublicUtil.getLoginUserId());
viewgroupLevel.setUpdateTime(DateUtils.getCurrentDateTime());
viewgroupLevelMapper.updateById(viewgroupLevel);
}
};
5.1.6 车辆租赁
用户可以点击某辆车的详细页面以查看更多信息,包括车辆的型号、照片、配置、里程数、价格和租赁条款等。用户可以选择租赁的日期和时间,通常通过选择预定开始日期和结束日期来指定租赁期限。用户可以确认选择并点击“租赁”按钮,将车辆添加到租赁订单中。如图5-13所示。
在这里插入图片描述

图5-13 车辆租赁页面
车辆租赁主要代码如下:
for (ViewGroupLevel viewgroupLevel : viewGroupLevelList) {
if (viewgroupLevel == null || StrHelper.isEmpty(viewgroupLevel.getName())) {
return R.fail(getStrByKey(“viewgroupLevel.name.notnull”));
}
if (viewgroupLevel.getName().length() > 50) {
return R.fail(getStrByKey(“viewgroupLevel.name.length”));
}
if (StrHelper.isNotEmpty(viewgroupLevel.getDescription())) {
if (viewgroupLevel.getDescription().length() > 100) {
return R.fail(getStrByKey(“viewgroupLevel.description.length”));
}
}
};
5.2 管理员功能模块的实现
5.2.1 用户管理
在用户管理页面中,管理员可以查看系统中当前已注册用户的列表。管理员可以浏览用户列表,查看每个用户的基本信息,如用户名、电子邮件、电话号码等。如图5-14所示。
在这里插入图片描述

图5-14 用户列表页面
管理员可以选择某个用户,然后通过点击“查看详情”按钮或链接来查看用户的详细信息。如果管理员想要修改用户信息,可以在用户详情页面上点击“编辑”按钮。在编辑用户页面上,管理员可以更改用户的个人信息,如姓名、联系方式、地址等。管理员可以点击“保存”按钮来保存所做的更改,并将更改应用到用户账户。如图5-15所示。
在这里插入图片描述

图5-15 修改用户页面
如果管理员想要删除用户,可以在用户详情页面上点击“删除”按钮。在确认删除的提示框中,管理员需要确认是否要删除该用户,并可以选择是或否。如果确认删除用户,系统将删除该用户的所有相关信息,包括个人资料、订单历史等。如图5-16所示。
在这里插入图片描述

图5-16 删除提示页面
在添加用户页面上,管理员需要输入新用户的基本信息,如用户名、电子邮件、密码等。管理员可以点击“保存”按钮来保存添加的新用户,并将其添加到系统中。如图5-17所示。
在这里插入图片描述

图5-17 添加用户页面
用户管理主要代码如下:
List viewViewGroupList = viewGroupVO.getViewViewGroupList();
if (null == viewViewGroupList || viewViewGroupList.size() == 0) {
return R.fail(getStrByKey(“viewgroup.view.notNull”));
} else {
//遍历判断每个视图组是否唯一存在同一类型、同一资源库的一个视图
List list = new ArrayList<>();
for (ViewViewGroup viewViewGroup : viewViewGroupList) {
LambdaQueryWrapper queryWrapperView = new LambdaQueryWrapper<>();
queryWrapperView.eq(View::getId, viewViewGroup.getViewId());
View view1 = viewMapper.selectOne(queryWrapperView);
list.add(view1);
};
5.2.2 车辆信息管理
在车辆信息管理页面中,管理员可以查看当前系统中已有的车辆列表。管理员可以浏览车辆列表,查看每辆车的基本信息,如车辆型号、照片、配置、车牌号、价格等。如图5-18所示。
在这里插入图片描述

图5-18 车辆信息列表页面
管理员可以选择某辆车,然后通过点击“查看详情”按钮或链接来查看车辆的详细信息。查看详情页面将显示车辆的所有相关信息,例如车辆信息、图片、租赁历史和车辆状态等。如果管理员想要修改车辆信息,可以在车辆详情页面上点击“编辑”按钮。在编辑车辆页面上,管理员可以更改车辆的基本信息,如型号、配置、里程数、价格等。管理员可以点击“保存”按钮来保存所做的更改,并将其应用到车辆信息。如图5-19所示。
在这里插入图片描述

图5-19 编辑车辆信息页面
如果管理员想要添加新车辆,可以在车辆信息管理页面点击“添加车辆”按钮。在添加车辆页面上,管理员需要输入新车辆的基本信息,如型号、配置、里程数、价格等。管理员可以上传车辆的图片,并添加其他详细信息,如车辆描述、特殊注意事项等。管理员可以点击“保存”按钮来保存添加的新车辆,并将其添加到系统中。如图5-20所示。
在这里插入图片描述

图5-20 新增车辆信息页面
管理员可以选择某辆车,然后通过点击“查看评论”按钮或链接来查看该车辆下的用户评论信息。查看评论页面将列出与该车辆相关的用户评论,包括评论内容、时间戳和用户信息等。如图5-21所示。
在这里插入图片描述

图5-21 查看车辆评论页面
在查看车辆评论页面管理员如果想回复用户的某条评论信息,管理员可以点击“回复”填写回复内容,提交后用户可以看到回复的信息。如图5-22所示。
在这里插入图片描述

图5-22 回复评论页面
5.2.3 租赁订单管理
在租赁订单管理页面中,管理员可以查看系统中当前已有的租赁订单列表。管理员可以浏览租赁订单列表,查看每个订单的基本信息,如订单号、用户、车辆、租赁时间等。如图5-23所示。
在这里插入图片描述

图5-23 租赁订单列表页面
管理员可以选择某个订单,然后通过点击“查看详情”按钮或链接来查看订单的详细信息。查看详情页面将显示订单的所有相关信息,例如订单号、租赁日期、归还日期、用户信息、车辆信息、订单状态、订单总价等。如图5-24所示。
在这里插入图片描述

图5-24 租赁订单详情页面
如果管理员想要审核订单,可以在订单列表页面上点击“审核”按钮。在审核订单页面上,管理员需要查看订单的详细信息,然后决定是否通过该订单或将其拒绝。管理员可以填写审核内容然后点击“保存”按钮来保存审核结果,并将其应用到订单信息。如图5-25所示。
在这里插入图片描述

图5-25 审核租赁订单页面
租赁订单管理主要代码如下:
List collectLibId = list.stream().map(a->a.getResourcelibId()+a.getType()).distinct().collect(Collectors.toList());
if (collectLibId.size() != list.size()) {
return R.fail(getStrByKey(“viewgroup.Check.notunique”));
}
viewGroupMapper.insert(viewGroupVO);
for (int i = 0; i < list.size(); i++) {
//list.get(i).getId();
ViewViewGroup viewViewGroup = new ViewViewGroup();
viewViewGroup.setViewId(list.get(i).getId());
viewViewGroup.setViewgroupId(viewGroupVO.getId());
viewViewGroupMapper.insert(viewViewGroup);
}
}
return R.success(viewGroupVO.getId(),getStrByKey(“common.message.insertSuccessful”));
};
5.2.4 还车记录管理
在还车记录管理页面中,管理员可以查看系统中当前已有的还车记录列表。管理员可以浏览还车记录列表,查看每个记录的基本信息,如记录编号、用户、车辆、租赁日期、归还日期等。如图5-26所示。
在这里插入图片描述

图5-26 还车记录列表页面
管理员可以选择某个记录,然后通过点击“查看详情”按钮或链接来查看还车记录的详细信息。查看详情页面将显示还车记录的所有相关信息,例如记录编号、租赁日期、归还日期、用户信息、车辆信息、还车状态等。如图5-27所示。
在这里插入图片描述

图5-27 还车记录详情页面
如果管理员想要审核还车记录,可以在记录详情页面上点击“审核”按钮。在审核记录页面上,管理员需要查看记录的详细信息,然后决定是否通过该记录或将其拒绝。如果管理员决定通过记录,可以选择填写适当的审核信息(如实际还车日期、实际还车人员、车辆状况评价等)。管理员可以点击“保存”按钮来保存审核结果,并将其应用到还车记录信息。如图5-28所示。
在这里插入图片描述

图5-28 审核还车记录页面
还车记录管理主要代码如下:
public R update(ViewGroupVO viewGroupVO) {
//校验规则
if (viewGroupVO == null) {
return R.fail(ExceptionCode.NULL_POINT_EX);
}
if (StrHelper.isEmpty(viewGroupVO.getName())) {
return R.fail(getStrByKey(“viewgroup.name.notNull”));
}
if (StrHelper.isEmpty(viewGroupVO.getViewGroupLevelId())) {
return R.fail(getStrByKey(“viewgroup.level.notNull”));
}
//查询数据是否存在
ViewGroup viewGroup = viewGroupMapper.selectById(viewGroupVO.getId());
if (null ==viewGroup){
return R.fail(getStrByKey(“ExceptionCode.DATA_NOT_EXIST”));
};
5.2.5 车辆品牌管理
在车辆品牌管理页面中,管理员可以查看系统中当前已有的车辆品牌列表。管理员可以浏览车辆品牌列表,查看每个品牌的基本信息。如图5-29所示。
在这里插入图片描述

图5-29 车辆品牌列表页面
如果管理员想要新增车辆品牌,可以在品牌管理页面上点击“新增”按钮。在新增品牌页面上,管理员需要填写新品牌的基本信息,如品牌名称。管理员可以点击“保存”按钮来保存所填写的新品牌信息,并将其添加到车辆品牌列表中。如图5-30所示。
在这里插入图片描述

图5-30 添加车辆品牌页面
第6章 系统测试
6.1 测试目的
测试目的是在软件开发生命周期中的一个重要阶段,主要是为了评估软件的质量,确保软件在交付给最终用户之前具备所需的功能性、性能、稳定性和安全性。通过测试,可以验证软件是否符合需求规格说明书中所定义的功能和性能要求,以及是否达到用户的预期。此外,测试还可以发现并修复软件中的缺陷、错误和漏洞,从而提高软件的可靠性和稳定性。通过系统性和计划性的测试活动,可以最大化地降低软件交付后出现问题的风险,提高软件的品质和用户满意度。
6.2 测试方法
系统的试验采用了两种方式,第一种采用“黑盒子”法。黑盒测试是软件测试中的一种测试方法,它基于对软件系统的外部功能和行为进行评估,而不关注内部的实现细节。黑盒测试的目的是验证软件系统是否按照规格说明书和用户需求的要求正确地工作。在黑盒测试中,测试人员不需要了解软件的内部结构、设计或编码细节,而是将软件系统视为一个黑箱,只关注输入与输出的关系以及系统对输入的响应。测试人员主要根据功能需求和规格说明书,设计测试用例来模拟用户的操作和输入,以验证系统是否按照预期产生正确的输出。第二种白盒方法。白盒测试是软件测试中的一种测试方法,其目的是评估软件系统的内部逻辑和结构。与黑盒测试不同,白盒测试关注的是软件系统的内部实现细节,包括代码、算法和数据结构等方面。测试人员可以查看、分析和理解软件系统的源代码,以及系统的设计和实现细节。这使得测试人员能够设计更加精确和详尽的测试用例,用于验证软件系统在不同的路径、条件和边界情况下的行为和输出结果[16]。
6.3 测试用例
6.3.1 用户登录模块测试
1.测试用例
当用户来到登录页面,进行登录时需要填写账号、密码、验证,网站会对操作进行检测,通过检测之后方能显示登录成功,输入错误则会显示登录失败。具体测试的用例如表6-1所示。
表 6­1 用户登录测试用例表
测试模式 操作 期望结果 实际结果
用户登录 输入用户账号,点击“登入”按钮 提示信息“用户名和密码”错误 提示信息“用户名和密码”错误
用户登录 输入用户密码,点击“登入”按钮 提示信息“用户名和密码”错误 提示信息“用户名和密码”错误
用户登录 输入用户账号、密码,点击“登入”按钮 登录成功 登录成功
6.3.2 管理员功能模块测试
1.测试用例
测试系统用户管理。管理模块测试用例如表6-2所示。
表6-2 管理模块测试用例表
系统名称 操作步骤 期望结果 实际结果
添加用户 点击“新增”按钮 数据库成功添加数据,页面提交信息显示成功 数据库成功添加数据,页面提交信息显示成功
修改用户 点击“编辑”按钮 数据库成功添加数据,前台更改完信息显示修改成功 数据库成功添加数据,前台更改完信息显示修改成功
删除用户 点击“删除”按钮 数据库成功添加数据,前台显示成功删除信息 数据库成功添加数据,前台显示成功删除信息
结 论
汽车租赁系统是一个在线平台,可以让用户方便地租赁汽车。通过完成这个系统,用户可以轻松地选择心仪的汽车,预订并支付费用,然后在指定的时间和地点取车。这个系统解决了用户需要租车时常常需要繁琐的手续、耗费时间的问题,大大提高了租车的便捷性和效率。
在系统中,用户可以浏览各种汽车的信息,包括车型、价格、可选服务等,从而更好地选择适合自己需求的汽车。用户还可以查看车辆的可用性和取还车的地点,方便规划行程。系统还提供在线支付功能,让用户能够在家或办公室就能完成租车相关的一切步骤,避免不必要的等待和排队。
然而,当前汽车租赁系统还存在一些不足之处。例如,系统可能存在信息不全面或不准确的情况,导致用户在租车过程中可能受到影响。另外,用户可能会遇到退订或更改订单时的不便,因为系统可能没有设置相应的规则或操作流程。
未来,可以通过以下方面来优化汽车租赁系统。首先,增加对车辆信息的准确性和全面性的检查,确保用户看到的信息是可靠的,以免出现误解或纠纷。其次,可以增加更灵活的退订和改签政策,让用户在需要时更方便地进行订单的调整。此外,还可以考虑引入更多的技术手段,例如人工智能或大数据分析,来更好地满足用户的个性化需求,提高用户体验和系统的智能化水平。
总的来说,汽车租赁系统的出现为用户提供了更加便捷的租车方式,解决了租车过程中的一系列问题。但系统仍然需要不断优化和完善,以适应用户需求的变化和市场竞争的激烈程度,提升用户体验和系统的服务水平。。
八万汽车租赁系统在未来具有广阔的市场前景和商业价值。随着人们生活水平的不断提高,车辆的消费成本和固定投资成本日益增加,越来越多的人开始关注共享汽车这个新兴的出行方式。八万汽车租赁系统在未来将更好地服务于用户,通过技术和业务等多方面的创新,提升其竞争力和商业价值。我们相信,在共享经济的大潮中,八万汽车租赁系统将在不断竞争中不断发展,成为共享经济市场中不可或缺的重要组成部分。
参考文献
[1]粟梁.基于Java的汽车租赁管理系统[J].电脑编程技巧与维护,2024,(01):43-45+52.
[2]杨敏,窦立君.基于PowerBuilder的汽车租赁系统设计与实现[J].电脑编程技巧与维护,2022,(07):28-31.
[3]李俊萌.计算机软件测试技术与开发应用策略分析[J].信息记录材料,2023,24(03):50-52.
[4]李华.计算机软件开发中Java编程语言的应用及细节问题分析[J].电子技术与软件工程,2023(04):49-52.
[5]赵将.Java语言在计算机软件开发中的应用[J].数字技术与应用,2023,41(03):160-162.
[6]任蕾蕾.计算机软件开发中数据库安全设计研究[J].网络安全和信息化,2023(03):55-57.
[7]王淼.MySQL查询优化与研究[J].信息记录材料,2022,23(05):227-229.
[8]赵鲁瑜,康埕铭,廖朦朦,等.基于共享汽车租赁市场的管理系统设计与实现[J].内蒙古科技与经济,2021,(22):86-87.
[9]贾雷.计算机软件开发技术的应用实践及发展前景研究[J].黑龙江科学,2022,13(23):14-16.
[10]吴超.基于Java的“懂车”系统的设计与实现[J].办公自动化,2022,27(10):61-64.
[11]韩永朋.基于微服务架构的汽车租赁推荐系统设计与实现[D].华东师范大学,2022.
[12]董明.计算机软件系统开发中的主要问题与应对研究[J].网络安全技术与应用,2021:51-52.
[13]刘洁.基于计算机软件开发的Java编程语言分析[J].电子技术与软件工程,2021(09):41-42.
[14]李想.计算机软件开发中的数据库测试技术研究[J].电子技术与软件工程,2021(19):39-40.
[15]张林.计算机软件Java编程与应用分析[J].电子技术,2020,49(10):16-17.
[16]Zhang Daoping,Tuyatsetseg Badarch. Research on Principles and Problems of Computer Software Database Design[J]. American Journal of Computer Science and Technology,2023,6(1):20-24.
[17]Wanzhen Zhang, Yufei Wang, Kun Zhang. Research on the Technology of Modern city Subway Inquiry System Based on Java Programming[P]. Proceedings of the 2016 International Conference on Education, Management and Computer Science, 2016: 43-47.
致 谢
在毕业设计的写作过程中,很多人给予了我无私的支持和帮助,在此谨向所有关心、支持和帮助过我的人表示最诚挚的感谢。
首先,我要衷心感谢我的指导老师在我整个毕业设计研究过程中给予我悉心指导和无私帮助。在选题、研究方法的选择、写作等方面,给予了我宝贵的建议和指导,让我能够顺利完成。
另外,我还要感谢家人对我的支持与鼓励。正是他们的理解、关心和支持,让我能够在学业上不断进步,顺利完成本科学业。
感谢我的同学们,是你们在学习和生活中的互帮互助,让我不感孤独,让我在这四年的大学时光里感到温暖与快乐。
最后,感谢所有在我本科论文写作过程中给予我帮助的老师、同学和朋友。是你们的鼓励和支持,让我在论文写作的道路上不再迷茫,鼓舞着我不断前行。
由衷地感谢每一位曾经关心、支持和帮助过我的人,是你们让我在本科论文写作的道路上不再孤单,相信有你们的陪伴,我一定会走得更远,成长得更好。再次向所有支持过我的人表示最诚挚的谢意!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值