springboot事故車輛與違章車輛跟蹤系統-計算機畢業設計源碼03863

springboot事故車輛與違章車輛跟蹤系統

摘??要

科技進步的飛速發展引起人們日常生活的巨大變化,電子信息技術的飛速發展使得電子信息技術的各個領域的應用水平得到普及和應用。信息時代的到來已成為不可阻擋的時尚潮流,人類發展的歷史正進入一個新時代。在現實運用中,應用軟件的工作規則和開發步驟,采用Java技術建設事故車輛與違章車輛跟蹤系統。

本設計主要實現集人性化、高效率、便捷等優點于一身的事故車輛與違章車輛跟蹤系統,完成系統用戶、案件類型管理、事故登記管理、事故處理管理、違章類型管理、違章罰款管理等功能模塊。系統通過瀏覽器與服務器進行通信,實現數據的交互與變更。本系統通過科學的管理方式、便捷的服務提高了工作效率,減少了數據存儲上的錯誤和遺漏。事故車輛與違章車輛跟蹤系統使用Java語言,采用基于MVC模式的搜springboot技術進行開發,使用 MyEclipse 2017 CI 10 編譯器編寫,數據方面主要采用的是微軟的MySQL關系型數據庫來作為數據存儲媒介,配合HTML+CSS 技術完成系統的開發。

關鍵詞違章車輛跟蹤系統;springboot;Mysql

Springboot accident vehicle and violation vehicle tracking system

Abstract

The rapid development of technological progress has caused tremendous changes in people's daily lives, and the rapid development of electronic information technology has popularized and applied the application level of electronic information technology in various fields. The arrival of the information age has become an unstoppable fashion trend, and the history of human development is entering a new era. In practical applications, the working rules and development steps of application software are used to build a tracking system for accident vehicles and illegal vehicles using Java technology.

This design mainly implements an accident vehicle and violation vehicle tracking system that combines the advantages of humanization, high efficiency, and convenience. It completes functional modules such as system user, case type management, accident registration management, accident handling management, violation type management, and violation penalty management. The system communicates with the server through a browser to achieve data exchange and change. This system improves work efficiency and reduces errors and omissions in data storage through scientific management and convenient services. The accident vehicle and violation vehicle tracking system is developed using Java language and Springboot technology based on MVC mode. It is compiled using MyEclipse 2017 CI 10 compiler and mainly uses Microsoft's MySQL relational database as the data storage medium. The system is developed in combination with HTML+CSS technology.

Keywords: Violation vehicle tracking system; Springboot framework; MySQL

目???錄

1 系統概述

1.1研究背景

1.2研究意義

1.3主要內容

2 系統開發環境

2.1 Spring Boot框架介紹

2.2 JAVA簡介

2.3?MySql數據庫

3 需求分析

3.1技術可行性:技術背景

3.2經濟可行性

3.3操作可行性

3.4系統設計規則

3.5系統流程分析

4系統概要設計

4.1 概述

4.2 系統結構

4.3. 數據庫設計

4.3.1 數據庫實體

4.3.2 數據庫設計表

4.4 數據表

5 系統詳細設計

5.1管理員功能模塊

5.2用戶功能模塊

6 系統測試

6.1系統測試的目的

6.2系統測試方法

6.3測試過程

6.4?測試結果

結論

致 謝

參考文獻

1 系統概述

1.1研究背景

隨著城市化進程的加快和車輛數量的增加,交通事故和違章行為頻發,給交通安全帶來了嚴重威脅。因此,開展事故車輛與違章車輛跟蹤系統的研究可以有效提升人們對交通安全問題的關注度,促進交通法規的遵守,減少事故和違章行為的發生。政府部門和交通管理機構需要實時掌握道路上的交通狀況,及時發現并處理事故車輛和違章車輛,維護交通秩序和道路安全。事故車輛與違章車輛跟蹤系統可以幫助監管部門更好地進行交通違法行為的定位和處罰,提高執法效率和公平性。隨著信息技術的快速發展,包括車載設備、智能攝像頭、大數據分析等技術在交通領域的應用逐漸成熟。這些技術的發展為事故車輛與違章車輛跟蹤系統的研究提供了支持,使得實時監控、車輛識別和數據分析等功能成為可能。交通事故和違章行為對人身財產安全和社會秩序造成了重大影響,引起了社會公眾的廣泛關注。開展事故車輛與違章車輛跟蹤系統的研究,能夠滿足社會公眾對交通安全問題的關切和需求,提高道路交通的整體質量和可靠性。

1.2研究意義

通過事故車輛與違章車輛跟蹤系統,能夠實時監測和追蹤道路上的事故車輛和違章行為。及時發現并處理這些問題車輛,有助于預防事故的發生和減少違章行為,從而提升交通安全水平。系統可以幫助交通管理部門更好地進行車輛定位和行為追蹤,提高交通違法行為的檢測和處罰效率。同時,系統也為執法人員提供了有效的工具和信息支持,使得交通管理和執法工作更加便捷和精確。通過對事故車輛和違章車輛的跟蹤和處理,能夠及時解決交通擁堵和安全隱患等問題,優化交通運行和道路資源利用效率。這有助于提高道路通行能力,減少交通壓力,并提升城市交通的整體效益。事故車輛與違章車輛跟蹤系統可以收集和分析大量的交通數據,包括事故統計、違章行為分布等。這些數據可以為交通管理部門提供重要的參考和決策支持,有助于制定更科學有效的交通政策和規劃。通過系統的運行和宣傳推廣,能夠加強社會公眾對交通安全問題的關注度和意識,引導公眾遵守交通法規和規范行為,共同維護良好的交通秩序和道路安全。

綜上所述,事故車輛與違章車輛跟蹤系統的研究具有重要的意義。它不僅能夠提升交通安全水平,加強交通管理和執法效率,優化交通運行和資源利用,還能夠提供數據支持和決策參考,增強社會公眾對交通安全問題的關注度。這樣的系統研究和應用,將對促進交通安全和交通管理工作產生積極的影響。

1.3 主要內容

經過全面的需求分析,我們設計出了一個全新的事故車輛與違章車輛跟蹤系統,它不僅擁有完善的數據庫,而且還擁有先進的數據流程,以及良好的運行環境,此外,我們還精心設計了主要界面和相關組件,并且詳細闡述了該系統的實施步驟。

通過使用Java技術,我們可以從數據庫中提取和寫入信息,并且可以直接對數據庫進行操作。此外,我們還可以在網頁上添加動態內容,以滿足事故車輛與違章車輛跟蹤系統的基本需求。

2 系統開發環境

我們的系統的前端框架是基于Vue.js的逐步演化技術。我們還利用Vue-Router、Vuex來控制動態路由,并且支持Ajax來支持前后臺的交互。此外,我們還擁有一個Element UI的組件庫,可以讓我們的網站更加高效。在后臺,我們使用springboot來構建一個開源的系統,并將MyBatis和Redis這些先進的數據庫技術整合在一起。

2.1 Spring Boot框架介紹

Spring框架是Java平臺上的一種開源應用框架,提供具有控制反轉特性的容器。盡管Spring框架自身對編程模型沒有限制,但其在Java應用中的頻繁使用讓它備受青睞,以至于后來讓它作為EJB(EnterpriseJavaBeans)模型的補充,甚至是替補。Spring框架為開發提供了一系列的解決方案,比如利用控制反轉的核心特性,并通過依賴注入實現控制反轉來實現管理對象生命周期容器化,利用面向切面編程進行聲明式的事務管理,整合多種持久化技術管理數據訪問,提供大量優秀的Web框架方便開發等等。Spring框架具有控制反轉(IOC)特性,IOC旨在方便項目維護和測試,它提供了一種通過Java的反射機制對Java對象進行統一的配置和管理的方法。Spring框架利用容器管理對象的生命周期,容器可以通過掃描XML文件或類上特定Java注解來配置對象,開發者可以通過依賴查找或依賴注入來獲得對象。Spring框架具有面向切面編程(AOP)框架,SpringAOP框架基于代理模式,同時運行時可配置;AOP框架主要針對模塊之間的交叉關注點進行模塊化。Spring框架的AOP框架僅提供基本的AOP特性,雖無法與AspectJ框架相比,但通過與AspectJ的集成,也可以滿足基本需求。Spring框架下的事務管理、遠程訪問等功能均可以通過使用SpringAOP技術實現。Spring的事務管理框架為Java平臺帶來了一種抽象機制,使本地和全局事務以及嵌套事務能夠與保存點一起工作,并且幾乎可以在Java平臺的任何環境中工作。Spring集成多種事務模板,系統可以通過事務模板、XML或Java注解進行事務配置,并且事務框架集成了消息傳遞和緩存等功能。Spring的數據訪問框架解決了開發人員在應用程序中使用數據庫時遇到的常見困難。它不僅對Java:JDBC、iBATS/MyBATIs、Hibernate、Java數據對象(JDO)、ApacheOJB和ApacheCayne等所有流行的數據訪問框架中提供支持,同時還可以與Spring的事務管理一起使用,為數據訪問提供了靈活的抽象。Spring框架最初是沒有打算構建一個自己的WebMVC框架,其開發人員在開發過程中認為現有的StrutsWeb框架的呈現層和請求處理層之間以及請求處理層和模型之間的分離不夠,于是創建了SpringMVC。

2.2 JAVA語言

Java語言在計算機的程序應用過程當中,屬于非常重要的一個應用軟件,因為它的性能比較高,而且能夠應用在多重領域 當中,因此該程序在計算機的軟件程序應用當中的范圍相對來說是比較廣泛的。而從專業的技術角度來說,Java程序的應用的 實用性也是非常強的,這是因為它與傳統的C語言或C++相比沒有太大的基本結構的變化,也就是說它的語法結構是相對單一 ,而且具有穩定的特性,還有更重要的一點是Java程序語言的基本參考對象就是C語言,所以他的程序編寫并不是很復雜,而且 還能夠起到優化工作效率提升系統設計本身的基礎功能的作用,因此他也就受到了非常廣泛的程序員們的青睞。 在此次進行系統設計開發研究的過程當中,還發現Java程序語言之所以能夠得到市場上更多用戶的好評和青睞,其根本原 因在于他能夠具備各種語言的自身獨特優點的展現,也就是說它的兼容性是常強的。因此,我們因此我們可以說在任何一個程序的開發過程當中,Java語言程序的應用是必不可少的,它他在程序員進行改動的時候,哪怕是一個程序字母的改動,都可以 形成一種特定的程序,這是 Java程序,非常獨特的另一個優點。不僅如此,Java源程序的可移植性也是非常大,而且它的安全 系數很高,能夠通過不同方式進行移植到其他程序當中,而且可以兼容不同程序的系統,在運行的過程當中,其安全系數也是 非常強的,能夠確保用戶在使用網絡的過程當中去確保網絡的安全,而正是基于這樣的可移植性,為程序員節約了很多的系統 語言程序的開發設計的時間,這是非常難得的一種自有優勢。

2.3?MySql數據庫

Mysql的語言具有非常高的靈活性,它的結構簡單易懂,但是它的功能強大,可以快速、準確地存儲大量的數據,這使得它成為一種廣泛應用的數據庫系統。Mysql數據庫在編程領域發揮著重要作用,它可以提供便捷的數據查詢服務,具有極高的靈活性和強大的功能,而且使用的語言也更加簡單易懂。

數據流程分析是一種將數據存儲、更新、維護、管理等功能有機結合的過程,它不僅僅局限于計算機,而是一種更加復雜的系統,需要更多的技術手段來支持。此外,數據庫管理也是一種更加復雜的系統,它可以更好地管理、更新、維護和更新數據,從而確保數據的安全性。由于Mysql具有強大的數據處理能力,因此我們在開發這個系統時,主要使用它來管理數據。

3 需求分析

3.1技術可行性:技術背景?????

Windows操作系統是事故車輛與違章車輛跟蹤系統的核心,它的性能足以滿足普通網站的web服務器需求,而且它采用的技術也是當下最為流行的,它們不僅擁有自身的特點,還能夠滿足不同的需求。

該系統采用Java編程語言,并且搭載了Mysql數據庫,能夠支持快速、高效的數據傳輸,并且能夠靈活地調整數據庫的參數,滿足不同的應用場景,保證了網站的高效率、高質量,最終達到了預期的效果。

(1)硬件可行性分析

系統管理和信息分析的設計并不需要特殊的計算機配置,只需要保證它們能夠正常運行,并且能夠滿足基本的代碼編寫和頁面設計需求。但是,在搭建平臺時,需要考慮到服務器的安全性,并且確保網站的訪問流暢,避免出現延遲等問題,以達到最佳的性價比;

(2)軟件可行性分析

采用云計算技術構建的這一完善的系統,具備良好的可延展度,并且具備智能化的流量管理功能,從而確保數據的實時更新,并且確保系統的穩定、高效地運作。

經過全面的可行性分析,我們可以斷定,該系統的開發完全符合預期,沒有任何挑戰。

3.2經濟可行性

在開發事故車輛與違章車輛跟蹤系統之前,我們通過對市場調研與其他相關管理系統的研究并沒有花費任何費用。盡最大努力完成這些工作,并且會盡可能多地得到指導老師和同學的幫助。如果遇到一些棘手的問題,我們會盡最大努力去解決。因此,開發事故車輛與違章車輛跟蹤系統在經濟上是十分可行的,而且不需要投入任何資金。?

通過采用Java和Mysql數據庫,我們能夠實現一個更加成熟的系統,而且這種系統的開發成本低廉,可以滿足大多數的需求。

3.3操作可行性:?

經過優化的事故車輛與違章車輛跟蹤系統,其可操作性得益于其出眾的用戶體驗,無論是管理者還是普通用戶,只要點擊一下就能輕松訪問,而不必擔心無法正確地查看或處理所有的數據。此外,還提供了一個易懂的界面,讓用戶更加輕松地訪問各個功能模塊,從而更好地滿足其日常的工作需求。通過采用友好的界面和快捷的輸入方式,我們的事故車輛與違章車輛跟蹤系統無論是初學者還是熟練的操作者,均可輕松實現各項功能,從而大大提高了其可操作性。

3.4系統設計規則

通過使用Java和Mysql數據庫,我們的事故車輛與違章車輛跟蹤系統能夠提供高度穩定和完善的功能。

事故車輛與違章車輛跟蹤系統的設計與實現的設計思想如下:

操作簡單易行,系統界面安全可靠:清晰易懂的頁面布局,讓您輕松獲取有關事故車輛與違章車輛跟蹤系統的所有信息。

2、通過“即時發布、即時見效”,您可以立即獲取有關事故車輛與違章車輛跟蹤系統的信息,并且可以在任何地方輕松查詢。

3、該系統具有完善的功能,包括管理首頁、系統用戶、案件類型管理、事故登記管理、事故處理管理、違章類型管理和違章罰款管理等。此外,還提供了維護和更新模塊的功能。

3.5系統流程分析

(1)增加數據流程

系統中的所有用戶(管理員和普通用戶)都可以實現增加數據功能,圖3-1顯示的就是在增加數據時的流程。

圖3-1增加數據流程圖

(2)修改數據流程

人無完人,每個人都有出錯的時候,在錄入系統信息的時候如果信息有錯,可以對系統中的數據進行編輯。圖3-2顯示的就是修改數據的流程。

圖3-2修改數據流程圖

刪除數據流程

在系統中經常會出現一些過期的數據,比如事故登記等,那就可以直接刪除這些數據,圖3-3就是刪除數據時的流程圖。

圖3-3刪除數據流程圖

4系統概要設計

4.1 概述

Internet技術為事故車輛與違章車輛跟蹤系統提供了一種全新的方法,它支持多種形態的網絡應用,無論您身處何處,都可以輕松訪問和操控該系統。此外,它還提供了一個簡單易懂的操作流程,方便您快速、準確的完成任務。

圖4-1 ?系統工作原理圖

4.2 系統結構

本系統架構網站系統,本系統的具體功能如下:

圖4-2系統功能結構圖

系統的結構由多個功能模塊構成,因此,我們需要把它們按照一定的順序列出來,并且精心設計每個模塊,以確保它們具備完整的功能,從而實現系統的完美結構。

系統功能結構圖,如圖4-3所示:

圖4-3 系統功能結構圖

4.3. 數據庫設計

4.3.1 數據庫實體

違章罰款信息結構圖,如圖4-5所示:

?圖4-5 違章罰款信息實體結構圖

事故登記實體屬性圖,如圖4-6所示:

圖4-6事故登記實體屬性圖

4.3.2 數據庫設計表

4.4 數據表

通過將E-R圖轉換為關系數據庫,可以更好地理解數據之間的關聯性,這種關聯性可以通過表的形式來體現,其中每個表都包含了一個獨立的字段。

表accident_handling (事故處理)

編號

名稱

數據類型

長度

小數位

允許空值

主鍵

默認值

說明

1

accident_handling_id

int

10

0

N

Y

事故處理ID

2

regular_users

int

10

0

Y

N

0

普通用戶

3

user_name

varchar

64

0

Y

N

用戶姓名

4

user_phone_number

varchar

64

0

Y

N

用戶電話

5

user_license_plate

varchar

64

0

Y

N

用戶車牌

6

case_type

varchar

64

0

Y

N

案件類型

7

accident_time

date

10

0

Y

N

事故時間

8

accident_location

varchar

64

0

Y

N

事故地點

9

accident_claims

varchar

64

0

Y

N

事故理賠

10

exploration_results

text

65535

0

Y

N

勘查結果

11

accident_damage_assessment

text

65535

0

Y

N

事故定損

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

創建時間

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時間

表accident_registration (事故登記)

編號

名稱

數據類型

長度

小數位

允許空值

主鍵

默認值

說明

1

accident_registration_id

int

10

0

N

Y

事故登記ID

2

regular_users

int

10

0

Y

N

0

普通用戶

3

user_name

varchar

64

0

Y

N

用戶姓名

4

user_gender

varchar

64

0

Y

N

用戶性別

5

user_phone_number

varchar

64

0

Y

N

用戶電話

6

user_license_plate

varchar

64

0

Y

N

用戶車牌

7

case_type

varchar

64

0

Y

N

案件類型

8

accident_time

date

10

0

Y

N

事故時間

9

accident_location

varchar

64

0

Y

N

事故地點

10

accident_images

varchar

255

0

Y

N

事故圖片

11

accident_description

text

65535

0

Y

N

案情描述

12

examine_state

varchar

16

0

N

N

未審核

審核狀態

13

examine_reply

varchar

16

0

Y

N

審核回復

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

創建時間

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時間

表case_type (案件類型)

編號

名稱

數據類型

長度

小數位

允許空值

主鍵

默認值

說明

1

case_type_id

int

10

0

N

Y

案件類型ID

2

case_type

varchar

64

0

Y

N

案件類型

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

創建時間

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時間

表regular_users (普通用戶)

編號

名稱

數據類型

長度

小數位

允許空值

主鍵

默認值

說明

1

regular_users_id

int

10

0

N

Y

普通用戶ID

2

user_name

varchar

64

0

Y

N

用戶姓名

3

user_gender

varchar

64

0

Y

N

用戶性別

4

user_phone_number

varchar

64

0

Y

N

用戶電話

5

user_license_plate

varchar

64

0

Y

N

用戶車牌

6

examine_state

varchar

16

0

N

N

已通過

審核狀態

7

user_id

int

10

0

N

N

0

用戶ID

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

創建時間

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時間

表sensitive_vocabulary (敏感詞匯)

編號

名稱

數據類型

長度

小數位

允許空值

主鍵

默認值

說明

1

sensitive_vocabulary_id

int

10

0

N

Y

敏感詞匯ID

2

sensitive_vocabulary

varchar

64

0

Y

N

敏感詞匯

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

創建時間

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時間

表violation_fines (違章罰款)

編號

名稱

數據類型

長度

小數位

允許空值

主鍵

默認值

說明

1

violation_fines_id

int

10

0

N

Y

違章罰款ID

2

regular_users

int

10

0

Y

N

0

普通用戶

3

user_name

varchar

64

0

Y

N

用戶姓名

4

user_license_plate

varchar

64

0

Y

N

用戶車牌

5

violation_type

varchar

64

0

Y

N

違章類型

6

violation_time

date

10

0

Y

N

違章時間

7

violation_location

varchar

64

0

Y

N

違章地點

8

deduction_amount

int

10

0

Y

N

0

扣款金額

9

penalty_points_for_violations

int

10

0

Y

N

0

違章扣分

10

reason_for_violation

text

65535

0

Y

N

違章原因

11

pay_state

varchar

16

0

N

N

未支付

支付狀態

12

pay_type

varchar

16

0

Y

N

支付類型: 微信、支付寶、網銀

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

創建時間

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時間

表violation_type (違章類型)

編號

名稱

數據類型

長度

小數位

允許空值

主鍵

默認值

說明

1

violation_type_id

int

10

0

N

Y

違章類型ID

2

violation_type

varchar

64

0

Y

N

違章類型

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

創建時間

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時間

5 系統詳細設計???

5.1管理員功能模塊

登錄系統需要管理員輸入用戶名、密碼和角色信息,如圖5-1所示,以便進行登錄操作。

圖5-1管理員登錄界面圖

登錄關鍵代碼如下:

?/**

?????* 登錄

?????* @param data

?????* @param httpServletRequest

?????* @return

?????*/

????@PostMapping("login")

????public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

????????log.info("[執行登錄接口]");

????????String username = data.get("username");

????????String email = data.get("email");

????????String phone = data.get("phone");

????????String password = data.get("password");

????????List resultList = null;

????????Map<String, String> map = new HashMap<>();

????????if(username != null && "".equals(username) == false){

????????????map.put("username", username);

????????????resultList = service.select(map, new HashMap<>()).getResultList();

????????}

????????else if(email != null && "".equals(email) == false){

????????????map.put("email", email);

????????????resultList = service.select(map, new HashMap<>()).getResultList();

????????}

????????else if(phone != null && "".equals(phone) == false){

????????????map.put("phone", phone);

????????????resultList = service.select(map, new HashMap<>()).getResultList();

????????}else{

????????????return error(30000, "賬號或密碼不能為空");

????????}

????????if (resultList == null || password == null) {

????????????return error(30000, "賬號或密碼不能為空");

????????}

????????//判斷是否有這個用戶

????????if (resultList.size()<=0){

????????????return error(30000,"用戶不存在");

????????}

????????User byUsername = (User) resultList.get(0);

????????Map<String, String> groupMap = new HashMap<>();

????????groupMap.put("name",byUsername.getUserGroup());

????????List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();

????????if (groupList.size()<1){

????????????return error(30000,"用戶組不存在");

????????}

????????UserGroup userGroup = (UserGroup) groupList.get(0);

????????//查詢用戶審核狀態

????????if (!StringUtils.isEmpty(userGroup.getSourceTable())){

????????????String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

????????????String res = String.valueOf(service.runCountSql(sql).getSingleResult());

????????????if (res==null){

????????????????return error(30000,"用戶不存在");

????????????}

????????????if (!res.equals("已通過")){

????????????????return error(30000,"該用戶審核未通過");

????????????}

????????}

????????//查詢用戶狀態

????????if (byUsername.getState()!=1){

????????????return error(30000,"用戶非可用狀態,不能登錄");

????????}

????????String md5password = service.encryption(password);

????????if (byUsername.getPassword().equals(md5password)) {

????????????// 存儲Token到數據庫

????????????AccessToken accessToken = new AccessToken();

????????????accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

????????????accessToken.setUser_id(byUsername.getUserId());

????????????tokenService.save(accessToken);

????????????// 返回用戶信息

????????????JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

????????????user.put("token", accessToken.getToken());

????????????JSONObject ret = new JSONObject();

????????????ret.put("obj",user);

????????????return success(ret);

????????} else {

????????????return error(30000, "賬號或密碼不正確");

????????}

}

管理員登錄進入事故車輛與違章車輛跟蹤系統可以查看管理員:首頁、系統用戶、案件類型管理、事故登記管理、事故處理管理、違章類型管理、違章罰款管理等內容,如圖5-2所示。

圖5-2管理員功能界面圖

通過使用用戶管理,您能夠獲取到各種關鍵數據,包括但不限于:搜尋結果、登錄帳號、驗證密碼、昵稱、頭像、用戶名、用戶組、郵箱、狀態,還能夠對這些數據進行更新、更換和移動,詳見圖5-3。

圖5-3用戶管理界面圖

用戶管理關鍵代碼如下:

?@PostMapping("/add")

????@Transactional

????public Map<String, Object> add(HttpServletRequest request) throws IOException {

????????service.insert(service.readBody(request.getReader()));

????????return success(1);

????}

public Map<String, Object> addMap(Map<String,Object> map){

????service.insert(map);

?????return success(1);

?}

案件類型,在案件類型頁面可以查看索引案件類型等信息,并可根據需要進行修改或刪除等操作,如圖5-4所示。

圖5-4案件類型管理界面圖

通過事故登記頁面,您可以查看到有關事故登記的詳細信息,包括索引、普通用戶、用戶姓名、用戶性別、用戶電話、用戶車牌、案件類型、事故時間等,并且可以根據您的需求,對這些信息進行添加、刪除、事故處理等操作,如圖5-5所示。

圖5-5事故登記管理界面圖

事故登記管理關鍵代碼如下:

@RequestMapping("/get_obj")

????public Map<String, Object> obj(HttpServletRequest request) {

????????List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));

????????if (resultList.size() > 0) {

????????????JSONObject jsonObject = new JSONObject();

????????????jsonObject.put("obj",resultList.get(0));

????????????return success(jsonObject);

????????} else {

????????????return success(null);

????????}

????}

通過事故處理頁面,用戶可以查看到事故處理的普通用戶、用戶姓名、用戶電話、用戶車輛、案件類型、事故時間、事故地點等詳細信息,并可根據需要進行查詢或刪除等操作,如圖5-6所示。

圖5-6事故處理管理界面圖

事故處理管理關鍵代碼如下:

?@RequestMapping("/get_list")

????public Map<String, Object> getList(HttpServletRequest request) {

????????Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));

????????return success(map);

????}

通過違章類型頁面,您可以查看到有關違章類型的詳細信息,包括索引、違章類型等,而且您還可以根據自己的需求,對這些信息進行添加、查詢或刪除,如圖5-7所示。

圖5-7違章類型管理界面圖

違章類型管理關鍵代碼如下:

?@PostMapping("/set")

@Transactional

????public Map<String, Object> set(HttpServletRequest request) throws IOException {

????????service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

????????return success(1);

????}

通過違章罰款頁面,您可以查看到有關違章罰款的詳細信息,包括索引、普通用戶、用戶姓名、用戶車牌、違章類型、違章時間、扣款金額等,而且您還可以根據自己的需求,對這些信息進行添加、查詢或刪除、支付等操作,如圖5-8所示。

圖5-8違章罰款管理界面圖

5.2用戶功能模塊

用戶在注冊頁面填寫賬號、密碼、確認密碼、昵稱、郵箱、手機號、身份進入系統,如圖5-9所示。

圖5-9注冊界面圖

注冊關鍵代碼如下:

/**

?????* 注冊

?????* @param user

?????* @return

?????*/

????@PostMapping("register")

????public Map<String, Object> signUp(@RequestBody User user) {

????????// 查詢用戶

????????Map<String, String> query = new HashMap<>();

????????Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));

????????query.put("username",user.getUsername());

????????List list = service.selectBaseList(service.select(query, new HashMap<>()));

????????if (list.size()>0){

????????????return error(30000, "用戶已存在");

????????}

????????map.put("password",service.encryption(String.valueOf(map.get("password"))));

????????service.insert(map);

????????return success(1);

} ????

普通用戶可以通過登錄后臺,查看首頁、個人信息、修改密碼、事故登記管理、事故處理管理、違章罰款管理等詳細信息,如圖5-10所示,以便更好地了解自身的情況。

圖5-10普通用戶功能界面圖

事故登記管理,在事故登記管理頁面中可查看事故登記:普通用戶、用戶姓名、用戶性別、用戶電話、用戶車牌、案件類型、事故時間等操作,詳情請參見圖5-11。

圖5-11事故登記管理界面圖

普通用戶點擊“個人信息”按鈕,可以對個人的頭像、昵稱、手機號碼等信息進行更新;個人信息界面如下圖5-12所示。

圖5-12個人信息界面圖

普通用戶點擊“修改密碼”按鈕,可以對登錄密碼進行更改,首先輸入原密碼,然后再輸入新密碼和確認密碼,當原密碼正確,輸入兩次新密碼一致,則修改成功,否則給出錯誤提示信息。修改密碼界面如下圖5-13所示。

圖5-13修改密碼界面圖

修改密碼關鍵代碼如下:

?/**

?????* 修改密碼

?????* @param data

?????* @param request

?????* @return

?????*/

????@PostMapping("change_password")

????public Map<String, Object> change_password(@RequestBody Map<String, String> data, HttpServletRequest request){

????????// 根據Token獲取UserId

????????String token = request.getHeader("x-auth-token");

????????Integer userId = tokenGetUserId(token);

????????// 根據UserId和舊密碼獲取用戶

????????Map<String, String> query = new HashMap<>();

????????String o_password = data.get("o_password");

????????query.put("user_id" ,String.valueOf(userId));

????????query.put("password" ,service.encryption(o_password));

????????Query ret = service.count(query, service.readConfig(request));

????????List list = ret.getResultList();

????????Object s = list.get(0);

????????int count = Integer.parseInt(list.get(0).toString());

????????if(count > 0){

????????????// 修改密碼

????????????Map<String,Object> form = new HashMap<>();

????????????form.put("password",service.encryption(data.get("password")));

????????????service.update(query,service.readConfig(request),form);

????????????return success(1);

????????}

????????return error(10000,"密碼修改失敗!");

????}

6 系統測試

6.1系統測試目的?

雖然程序設計本身就具備一定的風險,因此,即便出現一點點的失敗,也很少 影響到整個的運行。然而,即便出現一點點的失敗,也很少影響到整個的運行,因此,我們必須對程序進行嚴格的檢查,及早發現和解決失敗,從而確保整個系統的運行良好,從而確保其運行的持久性和穩定性。通過本章的討論,我們可以更好地識別出存在的問題,從而有效地解決它們,盡管需要花費大量的精力,但卻至關重要且不可或缺。

軟件測試和開發過程有著密切的聯系,它們都需要遵循嚴格的管理學原則,以確保軟件的可靠性和可用性。然而,隨著技術的發展,國內的軟件測試已經取得了長足的進步,其流程更加完善,效率也更加提升。

為了驗證事故車輛與違章車輛跟蹤系統的有效性,我們需要對其各個功能模塊的運行情況和性能進行嚴格的檢查和驗證。一旦檢查結果出現問題,我們將立即采取措施,并盡快糾正,從而為用戶提供更加優質的服務。

6.2系統測試概述?

系統測試有兩種,一種是黑盒測試,另一種是白盒測試。一般來說,黑盒測試就是功能測試,也叫需求測試。在黑盒測試的過程中,我們并不知道它的開發原理,而只是作為一個用戶對系統進行測試。我們主要依靠以前的測試經驗來取一些臨界值,然后通過測試用例進行測試,這是發現問題最快的方式。其次,利用測試用例找出一些具有代表性的數據對系統進行測試。黑盒測試過程中常用的測試工具有WinRunner和Autorunner;白盒測試稱為結果測試,即邏輯驅動測試。在白盒測試的過程中,我們主要是按照系統開發的原則進行測試,主要是作為開發人員測試代碼是否完成了其特定的功能,以及具體的路徑是否正確。當然,這種測試方法費時費力,因為每個函數都有不止一條運行路徑,通過測試程序中運行的路徑,我們可以檢測到開發的代碼是否有錯誤,是否達到了預期。在白盒測試過程中,常用的測試工具有JContact、C++Test和CodeWizard。

6.3測試結果

在測試每個功能的過程中,我們應該嚴格按照指定的測試計劃逐步進行測試,不能急于實現,并且每個測試的結果都應該充分記錄下來,最好的選擇是自動化測試,這樣可以更準確、更快地完成,而不是依賴手動測試,因為這樣可以避免問題,它還可以防止疲勞和問題。進行測試時,必須保持高度專注,密切關注測試結果,并及時糾正任何異常情況;最后,在測試完成后,應該正確保存文檔以備將來使用。經過測試可以發現,原來開發的系統是清晰的,只有對其進行細化,編程的過程才會變得更加順利。只有有了良好的結構,后期的編程工作才能順利完成,同時也可以大大降低時間和精力成本。


結論

在本次系統設計的過程中,我們將深入探討事故車輛與違章車輛跟蹤系統,從研究背景、目標到實施方案,并詳細闡述每一章的內容,以及該系統的硬件和軟件環境。其中包含了:需求分析+功能需求+用例圖,以此表示系統的功能的流程、模塊的處理過程。繪制總體各個結構+流程圖,并根據功能細致設計的需要,再來設計數據庫的表結構,并繪制E-R圖,實現程序接口,然后完成調試。最后,本文進行了總結,并提出了下一步的發展方向。

在這次設計中,我通過不斷地探索和學習,掌握了Java技術和框架,并創建了一個事故車輛與違章車輛跟蹤系統,這讓我對編寫系統的必要性和運行環境有了更深入的了解。為了更好地完成這個項目,我花費了大量的時間,不僅豐富了自己的知識面,并且學習并積累了許多寶貴經驗。系統剛開始時,我對springboot框架這個技術只是稍微有些了解,但是通過這次基于springboot框架的事故車輛與違章車輛跟蹤系統設計,讓我更加深入地去探討了,springboot框架運轉的原理,從中學到了如何去配置服務器環境和連接數據庫。在基于springboot框架的事故車輛與違章車輛跟蹤系統設計的過程中,我還學會了使用dreamweaver來建設一個簡單的頁面,這樣可以極大程度提高我的實際操作能力,也因此激發了我對這個領域的濃烈興趣。

系統的這一次發展提升了我自己的能力,也學到了框架如何實現基本功能。同時在編程代碼各方面也做了的很多嘗試,從關注代碼錯誤到做一些小的修改,都有了很大的提高。同時,在撰寫論文時,還查閱了大量的參考資料,對論文的結構和文獻資料進行了總結和分析。已作出努力,盡量減少錯誤和走彎路,從一開始的系統功能概念化到逐一實施,并進行了廣泛的研究報告。也許后續操作過程中還有很多實現不完美的功能,但我依然會繼續學習,努力在以后的軟件開發、編號代碼中吸取教訓,總結不完美之處,努力的在軟件開發越來越強。以上是我在本次設計中的總結,希望在未來取得更好的成績。

致 謝

眨眼之間,大學生活就要結束了。在本文的最后,我要感謝我和藹可親的導師、團結有愛的同學的幫助和鼓勵。此刻,我找不到感謝之詞可以用來表達我最深切的感激之情。尤其感謝我的指導老師,在選題的過程中與我進行了深入的交流,在畢業設計期間給我提供了一些指導。四年的學習生活讓我受益良多,老師們的豐富的學術知識、認真負責的學習態度讓我受益匪淺。在此,我深深地感謝那些曾經給予我幫助和指導的老師!

我們的論文得益于許多學者的貢獻,他們的研究成果為我們提供了寶貴的指導,使我們能夠更好地完成這篇文章。感謝我的同學和朋友在我的寫作以及排版過程中給予熱情的幫助,才使得我比較順利的完成了這篇論文。

感謝大學里遇見的朋友,你們在我這四年里留下無數的溫暖和快樂,讓我對這個校園多了一份留念。最后,感謝我的父母、輔導員、班長,以及室友們對我大學生活上的關心和理解,讓我能保持樂觀和追求我所熱愛的。盡管我的能力有限,但我仍然盡力去完善這篇論文,并且誠摯地希望各位老師和學友能夠給予寶貴的指導與意見!


參考文獻

[1]宋曉燕,楊芬. Java程序設計語言的分層教學實踐 [J]. 電子技術, 2023, 52 (11): 182-183.

[2]劉明,楊勝飛,張冶鋒等. 基于SpringBoot框架的長距離輸水工程水量監測系統設計 [J]. 云南水力發電, 2023, 39 (11): 359-362.

[3]田玉昆. 基于Java Web技術的手機銷售網站的設計與實現 [J]. 電腦知識與技術, 2023, 19 (32): 47-49.

[4]張國芳. Java編程語言在計算機軟件開發中的應用方向分析 [J]. 信息記錄材料, 2023, 24 (11): 138-141.

[5]R. A ,Renin K R ,S. G A , et al. Digital Forensics Analysis of a Vehicle Tracking System [J]. SN Computer Science, 2023, 4 (6):

[6]陳強. 基于雷視融合的車輛跟蹤系統設計研究 [J]. 西部交通科技, 2023, (10): 206-207+217.

[7]崔瑞,賈子彥. 一種多攝像頭車輛實時跟蹤系統 [J]. 無線互聯科技, 2023, 20 (14): 39-42.

[8]周智,岳勁,蘇東月等. 基于隧道視頻分析的車輛軌跡跟蹤系統 [J]. 中國交通信息化, 2023, (07): 127-130.

[9]楊經緯,陳虹玉,張福鼎. 復雜場景下車輛跟蹤系統研究 [J]. 電子產品世界, 2023, 30 (07): 33-36.

[10]谷建鵬. 基于SpringBoot框架的即時通信系統開發 [J]. 信息與電腦(理論版), 2023, 35 (11): 134-136.

[11]陳海兵,余玉杰. 基于邊緣計算的車輛溫度篩查和車輛跟蹤系統 [J]. 中國公路, 2023, (10): 116-118.

[12]王喆,董一慶,杜鵬等. 一種基于中小跨徑混凝土小箱梁的全橋時域車輛跟蹤系統[P]. 山東省: CN218496244U, 2023-02-17.

[13]Yang Y . Design and Implementation of Student Information Management System Based on Springboot [J]. Advances in Computer, Signals and Systems, 2022, 6 (6):

[14]Gravelle K ,Elson T J ,Lantz G , et al. VEHICLE TRACKING SYSTEM USING SMART-PHONE AS ACTIVE TRANSPONDER[P]. US2022256323, 2022-08-11.

[15]甄強,邱明月,陳志鵬等. 基于北斗衛星定位和RFID射頻識別技術遠距離高海拔運輸車輛跟蹤系統研究 [J]. 城市住宅, 2021, 28 (09): 224-226.

[16]Xinbin H ,Yongbin B ,Lisen Y , et al. Design and Implementation of Information System Based on Java Technology Platform [J]. Journal of Physics: Conference Series, 2021, 2033 (1):

[17]姚一帆. 基于視頻的車輛檢測與跟蹤系統設計與實現[D]. 揚州大學, 2021.

[18]王朋,張四海,吳非等. 基于雙目視覺的違章車輛檢測與跟蹤系統設計 [J]. 中小企業管理與科技(上旬刊), 2020, (07): 194-196.

[19]凡陽陽. 高速公路隧道跨攝像頭車輛跟蹤系統研究[D]. 桂林電子科技大學, 2020.

[20]魏馳. 基于多攝像頭的車輛跟蹤系統設計與實現[D]. 電子科技大學, 2020.

免費領取項目源碼,請關注?點贊收藏并私信博主,謝謝~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/diannao/43438.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/43438.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/43438.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

W外鏈怎么樣,他們家的短網址免費的嗎?

W外鏈作為短網址服務的一種&#xff0c;體現了短網址技術的現代發展趨勢&#xff0c;它不僅提供了基礎的網址縮短功能&#xff0c;還擴展了一系列高級特性和增值服務&#xff0c;以適應更廣泛的市場需求。根據相關參考內容&#xff0c;W外鏈具有以下特點和優勢&#xff1a; 短域…

2024程序員行業風口和面試寶典

國際研究機構Gartner會在每年10月份左右發布下一年度的戰略發展趨勢預測&#xff0c;并在次年3月左右發布和網絡安全相關的趨勢預測。綠盟科技通過將近3年的趨勢預測進行分組對比分析后發現&#xff0c;除了眾人皆知的AI技術應用外&#xff0c;數據模塊化、身份優先安全、行業云…

軟考高級第四版備考--第13天(控制質量)Perform Quanlity Control

定義&#xff1a;為了評估績效&#xff0c;確保項目輸出完整、正確且滿足客戶期望而監督和記錄質量管理活動執行結果的過程。 作用&#xff1a; 核實項目可交付成果和工作已經達到主要干系人的質量要求&#xff0c;可供最終驗收&#xff1b;確定項目輸出是否達到預期的目的&a…

01-圖像基礎-顏色空間

1.RGB顏色空間 RGB是一種常用的顏色空間&#xff0c;比如一幅720P的圖像&#xff0c;所對應的像素點個數是1280*720&#xff0c;每一個像素點由三個分量構成&#xff0c;分別是R,G,B。 R代表紅色分量&#xff0c;G代表綠色分量&#xff0c;B代表藍色分量&#xff0c;以24位色來…

加密與安全_密鑰體系的三個核心目標之不可否認性解決方案

文章目錄 Pre概述不可否認性數字簽名&#xff08;Digital Signature&#xff09;證書是什么證書使用流程 PKICA證書層級多級證書證書鏈是如何完成認證的&#xff1f; 其他疑問1. Alice能直接獲取Bob的公鑰&#xff0c;是否還需要證書&#xff1f;2. 為什么即使能直接獲取公鑰也…

理解機器學習中的潛在空間(Understanding Latent Space in Machine Learning)

1、什么是潛在空間&#xff1f; If I have to describe latent space in one sentence, it simply means a representation of compressed data. 如果我必須用一句話來描述潛在空間&#xff0c;它只是意味著壓縮數據的表示。 想象一個像上面所示的手寫數字&#xff08;0-9&…

vue學習day01-vue的概念、創建Vue實例、插值表達式、響應式、安裝Vue開發者工具

1、vue的概念 Vue是一個用于構建用戶界面的漸進式 框架 &#xff08;1&#xff09;構建用戶界面&#xff1a;基于數據動態渲染頁面 &#xff08;2&#xff09;漸進式&#xff1a;循序漸進的學習 &#xff08;3&#xff09;框架&#xff1a;一條完整的項目解決方案&#xff…

GenAl如何改變 DevOps 中的軟件測試?

TestComplete 是一款自動化UI測試工具&#xff0c;這款工具目前在全球范圍內被廣泛應用于進行桌面、移動和Web應用的自動化測試。 TestComplete 集成了一種精心設計的自動化引擎&#xff0c;可以自動記錄和回放用戶的操作&#xff0c;方便用戶進行UI&#xff08;用戶界面&…

RTK_ROS_導航(2):衛星圖查看

目錄 1. 基于MapViz的衛星圖查看 1. 基于MapViz的衛星圖查看 安裝 # 源碼安裝 mkdir -p RTK_VISION/src cd RTK_VISION/src git clone https://github.com/swri-robotics/mapviz.git --branchmelodic-eol sudo apt-get install ros-$ROS_DISTRO-mapviz ros-$ROS_DISTRO-mapviz-…

IP-GUARD如何禁止電腦自帶攝像頭

IP-GUARD可以通過設備管理模塊禁止USB接口&#xff0c;所以USB外置攝像頭很容易就可以禁止了。 但是筆記本自帶攝像頭無法禁止&#xff0c;配置客戶端策略如下&#xff1a; device_control_unknown_mode1 device_control_unphysical_mode3

純電車的OBD接口

盡管傳統汽車的OBD接口主要用于監控和報告排放數據&#xff0c;但純電動車輛作為零排放的交通工具&#xff0c;其設計初衷與需求截然不同。因此&#xff0c;從法律條文和車管所的規定來看&#xff0c;純電動車輛是否仍需配置OBD接口這一問題&#xff0c;確實值得探討。理論上&a…

ABAP中ARFC_GET_TID函數詳細的使用方法

在ABAP中&#xff0c;ARFC_GET_TID 函數模塊用于以十六進制形式返回終端的IP地址。這個功能在需要獲取當前會話或終端的網絡地址信息時非常有用&#xff0c;比如在日志記錄、安全審計或網絡診斷等場景中。 詳細使用方法 調用函數模塊 ARFC_GET_TID 函數的調用通常很直接&…

記一次 Qt installer framework安裝程序過程中 安裝驅動依賴

在installscript.qs 文件中該函數添加exe 依賴程序放置位置

Spring @Value獲取數組、集合、map等不同結構方法

Spring 架構中&#xff0c;可以使用Value注解從配置文件或命令行參數中獲取集合數據。 各種示例 獲取基礎類型 當沒有配置時&#xff0c;可以設置默認值。無默認值時會拋出空值異常。 Value("${lizz.timeout:3000}")private int timeout;Value("${lizz.key:…

Python28-11 CatBoost梯度提升算法

CatBoost&#xff08;Categorical Boosting&#xff09;是由Yandex(一家俄羅斯互聯網企業&#xff0c;旗下的搜索引擎曾在俄國內擁有逾60%的市場占有率&#xff0c;同時也提供其他互聯網產品和服務)開發的一種基于梯度提升的機器學習算法。CatBoost特別擅長處理類別特征&#x…

什么是ThingsKit物聯網平臺?

在信息化時代的浪潮中&#xff0c;物聯網&#xff08;IoT&#xff09;作為新一代信息技術的核心&#xff0c;已經逐漸滲透到我們生活的方方面面。而在這個大背景下&#xff0c;Thingskit物聯網平臺以其獨特的技術優勢和應用場景&#xff0c;成為了物聯網領域的一顆璀璨明星。本…

AI和人工智能是啥關系?

AI&#xff08;人工智能&#xff09;與通用人工智能&#xff08;AGI&#xff09;是人工智能領域中的兩個重要概念&#xff0c;它們在定義、技術基礎以及應用領域等方面有所區別。人工智能&#xff08;AI&#xff09;&#xff0c;是指使計算機和其他機器模擬人類智能的技術&…

3.flink架構

目錄 概述 概述 Flink是一個分布式的帶有狀態管理的計算框架&#xff0c;為了執行流應用程序&#xff0c;可以和 Hadoop YARN 、K8s 進行整合&#xff0c;當然也可以是一個 standalone 。 官方地址&#xff1a;速遞 k8s 是未來的一種趨勢&#xff0c;對資源管控能力強。

Windows 控制中心在哪里打開,七種方法教會你

在 Windows 操作系統中&#xff0c;控制中心的概念可能稍有些混淆&#xff0c;因為 Windows 通常使用“控制面板”這一術語來指代用于配置系統設置和更改硬件及軟件設置的中心區域。 不過&#xff0c;隨著 Windows 的更新&#xff0c;微軟也在逐步將一些設置遷移到“設置”應用…

關于Linux的操作作業!24道題

&#x1f3c6;本文收錄于「Bug調優」專欄&#xff0c;主要記錄項目實戰過程中的Bug之前因后果及提供真實有效的解決方案&#xff0c;希望能夠助你一臂之力&#xff0c;幫你早日登頂實現財富自由&#x1f680;&#xff1b;同時&#xff0c;歡迎大家關注&&收藏&&…