SSM车位管理系统 毕业设计-附源码65739
目 ?錄
摘要
1 緒論
1.1選題背景
1.2理論意義
1.3系統開發技術的特色
1.4?ssm框架介紹
1.5論文結構與章節安排
2?車位管理系統系統分析
2.1 可行性分析
2.2 系統流程分析
2.2.1數據增加流程
2.2.2數據修改流程
2.2.3數據刪除流程
2.3 系統功能分析
2.3.1 功能性分析
2.3.2 非功能性分析
2.4 系統用例分析
2.5本章小結
3 車位管理系統總體設計
3.1 系統架構設計
3.2 系統功能模塊設計
3.2.1整體功能模塊設計
3.2.2用戶模塊設計
3.2.3評論管理模塊設計
3.2.4車位管理模塊設計
3.3 數據庫設計
3.3.1 數據庫概念結構設計
3.3.2 數據庫邏輯結構設計
3.4本章小結 20
4?車位管理系統詳細設計與實現 21
4.1用戶功能模塊 21
4.1.1 前臺首頁界面 21
4.1.2 用戶登錄界面 21
4.1.3用戶注冊界面 25
4.1.4新聞資訊界面
4.1.5 密碼修改界面
4.1.6公告信息界面
4.1.7?車位詳情界面
4.2管理員功能模塊
4.2.1 登錄界面
4.2.2?系統用戶管理界面
4.2.3?資源管理界面 30
4.2.4?模塊管理界面 31
5系統測試 32
5.1系統測試的目的 32
5.2 系統測試用例 32
5.3 系統測試結果 33
結論 34
參考文獻 35
致??謝
摘要
科技進步的飛速發展引起人們日常生活的巨大變化,電子信息技術的飛速發展使得電子信息技術的各個領域的應用水平得到普及和應用。信息時代的到來已成為不可阻擋的時尚潮流,人類發展的歷史正進入一個新時代。在現實運用中,應用軟件的工作規則和開發步驟,采用Java技術建設車位管理系統。
本設計主要實現集人性化、高效率、便捷等優點于一身的車位管理系統,完成首頁、系統用戶管理(管理員、停車用戶)資源管理(新聞列表、新聞分類)公告信息管理(公告信息)模塊管理(車位信息、入場信息、出場信息、預約信息)等功能模塊。系統通過瀏覽器與服務器進行通信,實現數據的交互與變更。本系統通過科學的管理方式、便捷的服務提高了工作效率,減少了數據存儲上的錯誤和遺漏。車位管理系統使用Java語言,采用基于 MVVM模式的SSM技術進行開發,使用 Eclipse 2017 CI 10 編譯器編寫,數據方面主要采用的是微軟的MySQL關系型數據庫來作為數據存儲媒介,配合前臺HTML+CSS 技術完成系統的開發。
關鍵詞:ssm技術;MYSQL;車位管理系統
Abstract
The rapid development of science and technology has caused great changes in people's daily life. The rapid development of electronic information technology has made the application level of electronic information technology in all fields popular and applied. The arrival of the information age has become an irresistible fashion trend, and the history of human development is entering a new era. In practical application, the working rules and development steps of the application software are used to build the parking space management system using Java technology.
This design mainly realizes the parking space management system integrating the advantages of humanization, efficiency and convenience, and completes the functional modules such as homepage, system user management (administrator, parking user) resource management (news list, news classification), announcement information management (announcement information) module management (parking space information, admission information, exit information, reservation information) and so on. The system communicates with the server through the browser to realize data interaction and change. The system improves work efficiency and reduces errors and omissions in data storage through scientific management and convenient services. The parking space management system uses Java language, uses SSM technology based on MVVM mode for development, and uses Eclipse 2017 CI 10 compiler to write. In terms of data, Microsoft's MySQL relational database is mainly used as the data storage medium, and the system development is completed with the front HTML+CSS technology.
Keywords:?Ssm technology; MYSQL; Parking space management system
1 緒論
1.1選題背景
?隨著經濟的發展,人們生活水平和生活質量不斷提高,作為奢侈消費品的私家車也開始普及化。私家車保有量大幅的提高,為新建小區的車位設計提出了更高要求。那么互聯網的不斷擴大與發展,就為實現小區私家車與車位有效銜接、高效管理提供了前提。
對于小區車位管理來說也不例外。現今,有很多停車位管理都是初步開始實施,甚至尚未使用計算機進行信息處理。根據調查得知,他們以前對信息管理的主要方式是基于文本、表格等紙質的手工處理,對于管理過程中的很多信息都是用人工計算、手抄進行。數據信息處理工作量大,容易出錯且由于數據繁多,容易丟失,不易查找。總的來說,缺乏車位信息采集處理系統及規范的信息管理手段。例如:在住戶提出需要車位的時候,工作人員不能在第一時間告知是否有空余車位可以提供,需要在核對大量信息、數據之后才能給與答復,中間不管是對于住戶來說,還是對于物業辦的工作人員來說,都是一件費時費力的事情。又如:在車位的分配上,不能從大局知道每一個車位的位置及分布,以及現屬于哪一位住戶。
數據處理手工操作,工作量大,出錯率高,出錯后不易更改,傳統的小區車位管理系統已經不能適應大規模車位的管理了,小區規模越來越大,車輛數量的增加使得管理難度的加大,在車輛的安全性方面無法得到保證。在家門口停車作為大眾生活不可缺少的一部分,社會對于小區停車新型管理系統產生了強大的市場需求,因此,開發車位管理信息系統的設計具有重要的實際意義。近年來中國經濟的高速發展,各地區的車輛數量增長迅速,由此各地的小區的機動車檔案資料增加迅速。隨著檔案資料的增加,工作人員勞動強度增大,檔案資料的存儲、查詢等工作與辦公高效率的要求矛盾日漸突出。本論文所介紹的便是一個小區車輛管理系統,以規范對車輛信息的管理,提高管理效率。
1.2理論意義
近年來,社會經濟不斷發展,人民的生活水平逐步提高,個人用車擁有量逐年上升。但是,因為目前小區交通管理方法落后、合理規劃車位有限等原因,不能使小區用戶更快捷的進入小區找到停車位,很顯然小區車輛管理的不規范和停車引導系統的技術落后嚴重制約小區智能化管理的發展,這已經成為迫在眉睫的問題。由于我國對小區的管理還不是很規范,因此常常會出現小區車輛停在路邊,使本來就比較窄的道路更加的狹窄,有的道路車輛已經無法通過,很多時候就因為一輛停在十字路口的車導致小區道路堵塞。小區的無序停車,亂停車的現象正在困擾著小區居民的出行,干擾著人們的正常生活和工作,更為嚴重的是我國小區車位的智能化進程也受了較為嚴重的影響。本文建立車位信息管理系統,力爭為提高小區的車位智能化管理進行構建和設計。?為了給小區打造一個整潔、和諧、安全的環境,為了提高小區住戶尋找空閑停車位的效率和空閑停車位的利用率,增加小區車輛和車位配對的效率,更好的滿足居民的停車需求,建設一個車位信息管理系統是必要的。
本課題旨在設計并實現小區車位信息管理,用來解決傳統車位管理系統中存在的眾多問題,從而提高對于車位的管理效率。過去,住戶來到物業辦告知我們需要-?-個車位,工作人員都要通過核對空余車位信息,每個車位到住戶家的位置,綜合地址信息,然后才可以反饋給住戶,而往往住戶家附近的車位都已經被別的住戶所擁有,又或者是新規劃了一些車位,但是還沒有及時更新車位信息。
為了解決車位匹配的問題,我們可以通過住戶自行上網查找車位信息來實現,本系統就是根據此需求進行開發和設計的。開發一個滿足用戶及工作人員需求,為用戶提供便捷服務的安全穩定的在線電影車位選擇系統、為工作人員提供一個快捷的車位管理信息系統。使用本系統,可以有效地管理和統計車輛和車位的基本信息,也為住戶選擇車位提供了便利。
1.3系統開發技術的特色
(1)車位管理系統中的web后臺管理中的后端不再使用古老的jsp+javabean+servlet技術,而是使用當前主流的ssm框架,它減少java配置代碼,簡化編程代碼,目前ssm框架也是很多企業選擇的框架之一。
(2)車位管理系統中的web后臺管理中的前端使用的是JavaScript框架,它配合ajax[8]和jquery[9]可以美化頁面設計。
(3)車位管理系統中數據庫用的mysql5.7,它執行效率高。
1.4ssm框架介紹
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis兩個開源框架整合而成(SpringMVC是Spring中的部分內容)。常作為數據源較簡單的web項目的框架。
?Spring
Spring就像是整個項目中裝配bean的大工廠,在配置文件中可以指定使用特定的參數去調用實體類的構造方法來實例化對象。也可以稱之為項目中的粘合劑。
Spring的核心思想是IoC(控制反轉),即不再需要程序員去顯式地`new`一個對象,而是讓Spring框架幫你來完成這一切。
?SpringMVC
SpringMVC在項目中攔截用戶請求,它的核心Servlet即DispatcherServlet承擔中介或是前臺這樣的職責,將用戶請求通過HandlerMapping去匹配Controller,Controller就是具體對應請求所執行的操作。SpringMVC相當于SSH框架中struts。
?mybatis
mybatis是對jdbc的封裝,它讓數據庫底層操作變的透明。mybatis的操作都是圍繞一個sqlSessionFactory實例展開的。mybatis通過配置文件關聯到各實體類的Mapper文件,Mapper文件中配置了每個類對數據庫所需進行的sql語句映射。在每次與數據庫交互時,通過sqlSessionFactory拿到一個sqlSession,再執行sql命令。
頁面發送請求給控制器,控制器調用業務層處理邏輯,邏輯層向持久層發送請求,持久層與數據庫交互,后將結果返回給業務層,業務層將處理邏輯發送給控制器,控制器再調用視圖展現數據。
1.5論文結構與章節安排
論文將分層次經行編排,除去論文摘要致謝文獻參考部分,正文部分還會對網站需求做出分析,以及闡述大體的設計和實現的功能,最后羅列部分調測記錄,論文主要架構如下:
第一章:引言。第一章主要介紹了課題研究的背景,系統開發的現狀和本文的理論意義與主要工作。
第二章:系統需求分析。第二章主要從系統的用戶、功能等方面進行需求分析。
第三章:系統設計。第三章主要對系統框架、系統功能模塊、數據庫進行功能設計。
第四章:系統實現。第四章主要介紹了系統框架搭建、系統界面的實現。
第五章:系統測試。第五章主要對系統的部分界面進行測試并對主要功能進行測試
第六章:總結。
2?車位管理系統分析
系統分析是開發一個項目的先決條件,通過系統分析可以很好的了解系統的主體用戶的基本需求情況,同時這也是項目的開發的原因。進而對系統開發進行可行性分析,通常包括技術可行性、經濟可行性等,可行性分析同時也是從項目整體角度進行的分析。然后就是對項目的具體需求進行分析,分析的手段一般都是通過用戶的用例圖來實現。下面是詳細的介紹。
2.1 可行性分析
(1)技術可行性分析
車位管理系統存儲所使用的是mysql數據庫以及開發中所使用的是IDEA、Tomcat這些開發工具的使用,能夠給我們的編寫工作帶來許多的便利。系統使用SSM框架進行開發,使系統的可擴展性和維護性更佳,減少java配置代碼,簡化編程代碼,目前SSM框架也是很多企業選擇的框架之一。
(2)經濟可行性分析
在開發車位管理系統中所使用的開發軟件像IDEA開發工具、Tomcat8.0服務器、MySQL5.7數據庫、Photoshop圖片處理軟件等,這些都是開源免費的,這些環境在學校都進行了系統的學習,自己能夠獨立操作完成,不需要額外花費,而且系統的開發工具從網上都可以直接下載,因此在經濟方面是可行的。
(3)操作可行性分析
此次項目設計的時候我參考了很多類似系統的成功案例,對它們的操作界面以及功能都進行了系統的分析,將眾多案例結合在一起,突出以人為本簡化操作,所以具有基本計算機知識的人都會操作本項目。因此操作可行性也沒有問題。
2.2系統流程分析
業務流程是用一些特定的符合和線條來進行演示用戶在使用系統時的過程,在進行系統分析的時候,業務流程可以幫助開發人員更好的理解業務,發現錯誤,完善系統。
2.2.1 數據增加流程
?用戶成功登入系統后就能夠實現增加數據的操作,增加數據的編號是特定的,系統生成,用戶不能隨意填寫,除了編號以外,其他增加信息用戶自己填寫,填寫后的信息經過系統驗證,驗證合法通過就顯示增加數據成功了,相反的話,就沒有增加成功,圖2-1顯示的就是在增加數據時的流程。
圖2-1 ?數據增加流程圖
2.2.2 數據修改流程
數據修改時的流程和上面介紹的數據增加時的流程差不多,如圖2-2所示。
圖2-2 ?數據修改流程圖
2.2.3 數據刪除流程
如果系統里面存在一些沒有用的數據的話,相關的管理人員還可以對這些數據進行刪除,圖2-3就是數據刪除時的流程圖。
圖2-3 ?數據刪除流程圖
2.3?系統功能分析
2.3.1 功能性分析
按照車位管理系統的角色,我劃分為了車位用戶管理模塊和管理員管理模塊這兩大部分。
車位用戶管理模塊:
(1)用戶注冊登錄:用戶注冊為用戶并登錄?車位管理系統;用戶對個人信息的增刪改查,比如個人資料,密碼修改。
(2)查看車位管理系統的首頁信息:車位管理系統的首頁信息包含了首頁、交流論壇、公告信息、新聞資訊、個人賬戶、個人收藏、車位信息等。
(3)公告信息:當用戶點擊“公告信息”這一菜單按鈕,會顯示管理員在后臺發布的所有的公告信息,可以查看詳情;
(4)新聞資訊:當用戶點擊“新聞資訊”這一菜單按鈕,會顯示管理員在后臺發布的所有的新聞資訊,可以查看詳情,進行收藏、點贊、評論等;
(5)個人賬戶:在前臺點擊“個人賬戶”下面的“個人賬戶”可以對個人資料+密碼修改+自己收藏的信息進行管控。
(6)模塊管理:用戶登錄到后臺后可以在“模塊管理”菜單下管理自己的入場信息、出場信息以及預約信息。
(7)個人中心:當用戶點擊右上角“我的”這個按鈕,就會進入到對應的后臺進行信息的管理了;
(8)車位信息:車位用戶可以查看車位信息,在查詢到自己想要了解的車位的時候,可以進入查看詳細的介紹,點擊“停車預約”這一按鈕以后會跳轉到停車預約信息填寫的界面,根據提示填寫好停車預約的信息,點擊“提交”以后停車預約就完成了,在車位信息詳情這個界面,同時支持用戶對喜歡的車位進行收藏、點贊的功能。
管理員管理模塊:
(1)登錄:管理員的賬號是在數據表表中直接設置生成的,不需要進行注冊;
(2)系統用戶管理:當點擊“系統用戶管理”這一菜單的時候,會出現管理員+車位用戶兩個子菜單,可以對這兩個模塊進行增刪改查操作;
(3)資源管理:當點擊“資源管理”這一菜單的時候,會出現新聞列表+新聞分類這兩個子菜單,能夠對用戶在前臺提交的新聞列表進行管理;
(4)模塊管理:當點擊“模塊”這一菜單的時候,會出現車位信息+入場信息+出場信息+預約信息這四個子菜單,對用戶提交的車位信息進行管控,以及實現對用戶提交的預約信息進行審核管理;
(5)公告信息管理:管理員可以對車位管理系統中首頁顯示的公告欄以及系統中的一些公告發布到系統當中,讓用戶及時的查看到系統信息,進行合理安排。
2.3.2 非功能性分析
車位管理系統的非功能性需求比如?車位管理系統的安全性怎么樣,可靠性怎么樣,性能怎么樣,可拓展性怎么樣等。具體可以表示在如下3-1表格中:
表3-1?車位管理系統非功能需求表
| 安全性 | 主要指?車位管理系統數據庫的安裝,數據庫的使用和密碼的設定必須合乎規范。 |
| 可靠性 | 可靠性是指車位管理系統能夠安裝用戶的指示進行操作,經過測試,可靠性90%以上。 |
| 性能 | 性能是影響車位管理系統占據市場的必要條件,所以性能最好要佳才好。 |
| 可擴展性 | 比如數據庫預留多個屬性,比如接口的使用等確保了系統的非功能性需求。 |
| 易用性 | 用戶只要跟著車位管理系統的頁面展示內容進行操作,就可以了。 |
| 可維護性 | 車位管理系統開發的可維護性是非常重要的,經過測試,可維護性沒有問題 |
2.4?系統用例分析
通過2.3功能的分析,得出了本車位管理系統的用例圖:
車位用戶角色用例如圖2-3所示。
圖2-3車位管理車位用戶角色用例圖
web后臺管理上的管理員是維護整個車位管理系統中所有數據信息的。管理員角色用例如圖2-4所示。
圖2-4車位管理系統管理員角色用例圖
2.5本章小結
本章主要通過對車位管理系統的可行性分析、流程分析、功能需求分析、系統用例分析,確定整個車位管理系統要實現的功能。同時也為車位管理系統的代碼實現和測試提供了標準。
3?車位管理系統總體設計
本章主要討論的內容包括車位管理系統的功能模塊設計、數據庫系統設計。
3.1 系統架構設計
本車位管理系統從架構上分為三層:表現層(UI)、業務邏輯層(BLL)以及數據層(DL)。
圖3-1車位管理系統架構設計圖
表現層(UI):又稱UI層,主要完成本車位管理系統的UI交互功能,一個良好的UI可以打打提高用戶的用戶體驗,增強用戶使用本車位管理系統時的舒適度。UI的界面設計也要適應不同版本的車位管理系統以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用戶進行交互操作時必須要得到與之相符的交互結果,這就要求表現層要與業務邏輯層進行良好的對接。
業務邏輯層(BLL):主要完成本車位管理系統的數據處理功能。用戶從表現層傳輸過來的數據經過業務邏輯層進行處理交付給數據層,系統從數據層讀取的數據經過業務邏輯層進行處理交付給表現層。
數據層(DL):由于本車位管理系統的數據是放在服務端的mysql數據庫中,因此本屬于服務層的部分可以直接整合在業務邏輯層中,所以數據層中只有數據庫,其主要完成本車位管理系統的數據存儲和管理功能。
3.2?系統功能模塊設計
3.2.1整體功能模塊設計
在上一章節中主要對系統的功能性需求和非功能性需求進行分析,并且根據需求分析了本車位管理系統中的用例。那么接下來就要開始對本車位管理系統的架構、主要功能和數據庫開始進行設計。車位管理系統根據前面章節的需求分析得出,其總體設計模塊圖如圖3-2所示。
圖3-2車位管理系統功能模塊圖
3.2.2用戶模塊設計
(1)用戶模塊結構圖
本網站的用戶包括管理員和系統用戶模塊。兩種用戶模塊的功能基本是相同的,系統用戶模塊比管理員多了一個注冊功能,所以以用戶模塊的結構圖為例進行分析,如下圖:
圖3-3用戶用戶模塊結構圖
(2)各個結構的具體業務邏輯
a.查詢用戶信息:設計最基礎的查詢功能,主要就是根據用戶id查詢用戶信息。該功能主要體現在管理員用戶信息查詢和用戶自己查詢信息的時候。
b.修改用戶信息:用戶可以根據情況,對自己的基本信息進行修改,包括名字修改、密碼修改、頭像修改等操作。
c.增加用戶:用戶可以通過注冊來獲得賬號
d.刪除用戶信息:管理員沒有權利進行刪除信息的刪除,最多把用戶加入到黑名單中,禁止用戶進行登錄操作。
3.2.3評論管理模塊設計
(1)評論模塊結構圖
?車位管理系統是一個交流性質的公開網站,用戶和用戶之間可以對網站上的內容,比如交流中心、資訊等進行點評,增加用戶之間的互動性。但是同時也為了更好的規范評論的內容,給予管理員刪除不合適的言論的功能,所以需要專門設計一個評論管理模塊,具體的結構圖如下:
圖3-4評論模塊結構圖
(2)各個結構的具體業務邏輯
a.查詢評論:設計最基礎的查詢功能,主要就是根據用戶id查詢該用戶下的所有評論信息。
b.發布評論:車位用戶用戶可以根據情況,發布自己評論信息到網站上。
c.刪除評論:管理員沒有權限修改用戶的評論信息,但是可以刪除用戶的整條評論。
3.2.4車位管理模塊設計
(1)車位管理模塊結構圖
?車位管理系統是中需要存儲不少用戶車位信息,用戶可以查看車位信息,進行查看車位預約,管理員可以添加,修改,刪除車位信息等,具體的結構圖如下:
圖3-5車位模塊結構圖
(2)各個結構的具體業務邏輯
a.添加車位信息:管理員可以對車位信息進行添加。
b.修改車位信息:管理員可以對車位信息進行修改。
c.刪除車位信息:管理員可以對車位信息進行刪除。
d.車位預約:用戶可以查看預約信息。
3.3 數據庫設計
數據庫設計一般包括需求分析、概念模型設計、數據庫表建立三大過程,其中需求分析前面章節已經闡述,概念模型設計有概念模型和邏輯結構設計兩部分。
3.3.1 數據庫概念結構設計
下面是整個車位管理系統中主要的數據庫表總E-R實體關系圖。
圖3-6?車位管理系統總E-R關系圖
下面根據?車位管理系統的數據庫總E-R關系圖可以得出?車位管理系統需要很多E-R圖,在此羅列出來一些主要的數據庫E-R模型圖。
圖3-7車位用戶E-R關系圖
圖3-8?入場信息E-R關系圖
圖3-9預約信息E-R關系圖
圖3-10評論信息E-R關系圖
3.3.2 數據庫邏輯結構設計
通過上一小節中?車位管理系統中總E-R關系圖上得出一共需要創建很多個數據表。在此我主要羅列幾個主要的數據庫表結構設計。
?parking_user表:
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| parking_user_id | int | 11 | 是 | 是 | 停車用戶ID |
| user_name | varchar | 64 | 否 | 否 | 用戶姓名 |
| gender | varchar | 64 | 否 | 否 | 性別 |
| license_plate_number | varchar | 64 | 否 | 否 | 車牌號 |
| number_of_vehicles | varchar | 64 | 否 | 否 | 車輛數 |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| user_id | int | 11 | 是 | 否 | 用戶ID |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| parking_space_information表: | |||||
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| parking_space_information_id | int | 11 | 是 | 是 | 車位信息ID |
| garage_no | varchar | 64 | 否 | 否 | 車庫編號 |
| garage_name | varchar | 64 | 否 | 否 | 車庫名稱 |
| cover | varchar | 255 | 否 | 否 | 封面 |
| number_of_parking_spaces | int | 11 | 否 | 否 | 車位數量 |
| admission_price | int | 11 | 否 | 否 | 入場價格 |
| overtime_unit_price | int | 11 | 否 | 否 | 超時單價 |
| garage_location | varchar | 64 | 否 | 否 | 車庫位置 |
| charge_description | text | 0 | 否 | 否 | 收費說明 |
| garage_details | longtext | 0 | 否 | 否 | 車庫詳情 |
| praise_len | int | 11 | 是 | 否 | 點贊數 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| exit_information表: | |||||
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| exit_information_id | int | 11 | 是 | 是 | 出場信息ID |
| appointment_number | varchar | 64 | 是 | 否 | 預約編號 |
| garage_no | varchar | 64 | 否 | 否 | 車庫編號 |
| garage_name | varchar | 64 | 否 | 否 | 車庫名稱 |
| parking_user | int | 11 | 否 | 否 | 停車用戶 |
| license_plate_number | varchar | 64 | 否 | 否 | 車牌號 |
| number_of_vehicles | varchar | 64 | 否 | 否 | 車輛數 |
| garage_location | varchar | 64 | 否 | 否 | 車庫位置 |
| admission_price | int | 11 | 否 | 否 | 入場價格 |
| overtime_unit_price | int | 11 | 否 | 否 | 超時單價 |
| timeout_part | int | 11 | 否 | 否 | 超時部分 |
| parking_expenses | varchar | 64 | 否 | 否 | 停車費用 |
| payment_date | date | 0 | 否 | 否 | 繳費日期 |
| pay_state | varchar | 16 | 是 | 否 | 支付狀態 |
| pay_type | varchar | 16 | 否 | 否 | 支付類型 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| appointment_information表: | |||||
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| appointment_information_id | int | 11 | 是 | 是 | 預約信息ID |
| appointment_number | varchar | 64 | 否 | 否 | 預約編號 |
| garage_no | varchar | 64 | 否 | 否 | 車庫編號 |
| garage_name | varchar | 64 | 否 | 否 | 車庫名稱 |
| parking_user | int | 11 | 否 | 否 | 停車用戶 |
| license_plate_number | varchar | 64 | 否 | 否 | 車牌號 |
| number_of_vehicles | varchar | 64 | 否 | 否 | 車輛數 |
| garage_location | varchar | 64 | 否 | 否 | 車庫位置 |
| admission_price | int | 11 | 否 | 否 | 入場價格 |
| overtime_unit_price | int | 11 | 否 | 否 | 超時單價 |
| appointment_date | date | 0 | 否 | 否 | 預約日期 |
| remarks | varchar | 64 | 否 | 否 | 備注信息 |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態 |
| examine_reply | varchar | 16 | 否 | 否 | 審核回復 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| admission_information表: | |||||
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| admission_information_id | int | 11 | 是 | 是 | 入場信息ID |
| appointment_number | varchar | 64 | 是 | 否 | 預約編號 |
| garage_no | varchar | 64 | 否 | 否 | 車庫編號 |
| garage_name | varchar | 64 | 否 | 否 | 車庫名稱 |
| parking_user | int | 11 | 否 | 否 | 停車用戶 |
| license_plate_number | varchar | 64 | 否 | 否 | 車牌號 |
| number_of_vehicles | varchar | 64 | 否 | 否 | 車輛數 |
| garage_location | varchar | 64 | 否 | 否 | 車庫位置 |
| admission_price | int | 11 | 否 | 否 | 入場價格 |
| overtime_unit_price | int | 11 | 否 | 否 | 超時單價 |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態 |
| examine_reply | varchar | 16 | 否 | 否 | 審核回復 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| comment表: | |||||
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| comment_id | int | 11 | 是 | 是 | 評論ID |
| user_id | int | 11 | 是 | 否 | 評論人ID |
| reply_to_id | int | 11 | 是 | 否 | 回復評論ID |
| content | longtext | 0 | 否 | 否 | 內容 |
| nickname | varchar | 255 | 否 | 否 | 昵稱 |
| avatar | varchar | 255 | 否 | 否 | 頭像地址 |
| create_time | timestamp | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| source_table | varchar | 255 | 否 | 否 | 來源表 |
| source_field | varchar | 255 | 否 | 否 | 來源字段 |
| source_id | int | 10 | 是 | 否 | 來源ID |
| slides表: | |||||
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| slides_id | int | 10 | 是 | 是 | 輪播圖ID |
| title | varchar | 64 | 否 | 否 | 標題 |
| content | varchar | 255 | 否 | 否 | 內容 |
| url | varchar | 255 | 否 | 否 | 鏈接 |
| img | varchar | 255 | 否 | 否 | 輪播圖 |
| hits | int | 10 | 是 | 否 | 點擊量 |
| create_time | timestamp | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| notice表: | |||||
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| notice_id | mediumint | 8 | 是 | 是 | 公告id |
| title | varchar | 125 | 是 | 否 | 標題 |
| content | longtext | 0 | 否 | 否 | 正文 |
| create_time | timestamp | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
3.4本章小結
整個車位管理系統的需求分析主要對系統總體架構以及功能模塊的設計,通過建立E-R模型和數據庫邏輯系統設計完成了數據庫系統設計。
4?車位管理系統詳細設計與實現
?車位管理系統的詳細設計與實現主要是根據前面的車位管理系統的需求分析和??車位管理系統的總體設計來設計頁面并實現業務邏輯。主要從車位管理系統界面實現、業務邏輯實現這兩部分進行介紹。
4.1用戶功能模塊
4.1.1 前臺首頁界面
當進入車位管理系統的時候,首先映入眼簾的是系統的導航欄,下面是輪播圖以及系統內容,其主界面展示如下圖4-1所示。
圖4-1?前臺首頁界面圖
4.1.2用戶登錄界面
?車位管理系統中的前臺上注冊后的用戶是可以通過自己的賬戶名和密碼進行登錄的,當用戶輸入完整的自己的賬戶名和密碼信息并點擊“登錄”按鈕后,將會首先驗證輸入的有沒有空數據,再次驗證輸入的賬戶名+密碼和數據庫中當前保存的用戶信息是否一致,只有在一致后將會登錄成功并自動跳轉到??車位管理系統的首頁中;否則將會提示相應錯誤信息,用戶登錄界面如下圖4-2所示。
圖4-2用戶登錄界面圖
登錄關鍵代碼如下所示。
?/**
?????* 登錄
?????* @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;
????????QueryWrapper wrapper = new QueryWrapper<User>();
????????Map<String, String> map = new HashMap<>();
????????if(username != null && "".equals(username) == false){
????????????map.put("username", username);
????????????resultList = service.selectBaseList(service.select(map, new HashMap<>()));
????????}
????????else if(email != null && "".equals(email) == false){
????????????map.put("email", email);
????????????resultList = service.selectBaseList(service.select(map, new HashMap<>()));
????????}
????????else if(phone != null && "".equals(phone) == false){
????????????map.put("phone", phone);
????????????resultList = service.selectBaseList(service.select(map, new HashMap<>()));
????????}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.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
????????if (groupList.size()<1){
????????????return error(30000,"用戶組不存在");
????????}
????????UserGroup userGroup = (UserGroup) groupList.get(0);
????????//查詢用戶審核狀態
????????if (!StringUtils.isEmpty(userGroup.getSourceTable())){
????????????String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
????????????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, "賬號或密碼不正確");
????????}
}
????public String select(Map<String,String> query,Map<String,String> config){
????????StringBuffer sql = new StringBuffer("select ");
????????sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
????????sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
????????if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
????????????sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
????????}
????????if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
????????????sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
????????}
????????if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
????????????int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
????????????int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
????????????sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
????????}
????????log.info("[{}] - 查詢操作,sql: {}",table,sql);
????????return sql.toString();
}
????public List selectBaseList(String select) {
????????List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
????????List<E> list = new ArrayList<>();
????????for (Map<String,Object> map:mapList) {
????????????list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
????????}
????????return list;
}
4.1.3用戶注冊界面
不是車位管理系統中正式用戶的是可以在線進行注冊的,如果你沒有本?車位管理系統的賬號的話,添加“注冊”,當填寫上自己的賬號+密碼+確認密碼+昵稱+郵箱+手機號等后再點擊“注冊”按鈕后將會先驗證輸入的有沒有空數據,再次驗證密碼和確認密碼是否是一樣的,最后驗證輸入的賬戶名和數據庫表中已經注冊的賬戶名是否重復,只有都驗證沒問題后即可用戶注冊成功。其用用戶注冊界面展示如下圖4-3所示。
圖4-3用戶注冊界面圖
注冊關鍵代碼如下所示。
/**
?????* 注冊
?????* @return
?????*/
????@PostMapping("register")
????public Map<String, Object> signUp(HttpServletRequest request) throws IOException {
????????// 查詢用戶
????????Map<String, String> query = new HashMap<>();
????????Map<String,Object> map = service.readBody(request.getReader());
????????query.put("username",String.valueOf(map.get("username")));
????????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);
}
????public Map<String,Object> readBody(BufferedReader reader){
????????BufferedReader br = null;
????????StringBuilder sb = new StringBuilder("");
????????try{
????????????br = reader;
????????????String str;
????????????while ((str = br.readLine()) != null){
????????????????sb.append(str);
????????????}
????????????br.close();
????????????String json = sb.toString();
????????????return JSONObject.parseObject(json, Map.class);
????????}catch (IOException e){
????????????e.printStackTrace();
????????}finally{
????????????if (null != br){
????????????????try{
????????????????????br.close();
????????????????}catch (IOException e){
????????????????????e.printStackTrace();
????????????????}
????????????}
????????}
????????return null;
????}
????public void insert(Map<String,Object> body){
????????E entity = JSON.parseObject(JSON.toJSONString(body),eClass);
????????baseMapper.insert(entity);
????????log.info("[{}] - 插入操作:{}",entity);
}
4.1.4新聞資訊界面
當訪客點擊車位管理系統中導航欄上的“新聞資訊”后將會進入到該“新聞資訊”列表的界面,然后選擇想要看的新聞資訊,點擊進入到詳細界面,在詳細界面可以收藏+贊+評論等操作,新聞資訊界面如下圖4-4所示。
圖4-4新聞資訊界面圖
4.1.5?密碼修改界面
用戶使用該車位管理系統注冊完成后,用戶對登錄密碼有修改需求時,系統也可以提供用戶修改密碼權限。系統中所有的操作者能夠變更自己的密碼信息,執行該功能首先必須要登入系統,然后選擇密碼變更選項以后在給定的文本框中填寫初始密碼和新密碼來完成修改密碼的操作。在填寫的時候,假如兩次密碼填寫存在差異,那么此次密碼變更操作失敗,下面的圖片展示的就是該板塊對應的工作面。密碼修改界面如下圖4-5所示。
圖4-5密碼修改界面圖
4.1.6公告信息界面
用戶在點擊導航欄上面的公告信息后,就可以搜索查看網站公告信息,用戶根據自己的喜好可以進行交流,系統公告界面如下圖4-6所示。
圖4-6公告信息界面圖
4.1.7車位詳情界面
當訪客點擊了任意車位信息后將會進入該車位的詳情界面,可以了解到該車位信息的車庫編號、車位數量、超時單價、車庫名稱、入場價格、車庫位置等,同時可以對該車位信息進行停車預約+收藏+點贊+評論,車位詳情展示頁面如圖4-7所示。
圖4-7車位詳情界面圖
4.2管理員功能模塊
4.2.1登錄界面
管理員在登錄界面輸入賬號+密碼,點擊“登錄”按鈕,系統在用戶數據庫表中會對管理員,系統用戶的賬號進行匹配,賬號+密碼正確的話,就會登錄到系統中各個用戶的主管理界面,否則提示對應的信息,返回到登錄的界面,如果管理人員忘記密碼的話,點擊“忘記密碼”根據提示可以找回密碼,然后再進行登錄其主界面展示如下圖4-8所示。
圖4-8登錄界面圖
4.2.2?系統用戶管理界面
系統用戶管理模塊包含了管理員、車位用戶兩個部分,管理員在后臺都可以查看到用戶的信息,但是只有管理員可以對用戶進行增刪改查操作;管理員可以對用戶進行增刪改查。這里以車位用戶為例,界面如下圖4-9所示。
圖4-9系統用戶管理界面圖
4.2.3資源管理界面
?車位管理系統中的管理人員在“資源管理”這一菜單中是可以對車位管理系統內的新聞列表、新聞分類列表進行維護和管理的,界面如下圖4-10所示。
圖4-10資源管理界面圖
資源管理關鍵代碼如下所示。
?@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);
????????}
}
4.2.4?模塊管理界面
車位管理系統中的管理人員在“模塊管理”這一菜單下是可以對車位管理系統內的車位信息、入場信息、出場信息、預約信息進行管控的,其管理界面如下圖4-11所示。
圖4-11模塊管理界面圖
5系統測試
5.1系統測試的目的
系統開發到了最后一個階段那就是系統測試,系統測試對軟件的開發其實是非常有必要的。因為沒什么系統一經開發出來就可能會盡善盡美,再厲害的系統開發工程師也會在系統開發的時候出現紕漏,系統測試能夠較好的改正一些bug,為后期系統的維護性提供很好的支持。通過系統測試,開發人員也可以建立自己對系統的信心,為后期的系統版本的跟新提供支持。
5.2?系統測試用例
系統測試包括:用戶登錄功能測試、車位展示功能測試、車位添加、車位搜索、密碼修改功能測試,如表5-1、5-2、5-3、5-4、5-5所示:
用戶登錄功能測試:
表5-1?用戶登錄功能測試表
| 用例名稱 | 用戶登錄系統 |
| 目的 | 測試用戶通過正確的用戶名和密碼可否登錄功能 |
| 前提 | 未登錄的情況下 |
| 測試流程 | 1) 進入登錄頁面 2) 輸入正確的用戶名和密碼 |
| 預期結果 | 用戶名和密碼正確的時候,跳轉到登錄成功界面,反之則顯示錯誤信息,提示重新輸入 |
| 實際結果 | 實際結果與預期結果一致 |
車位查看功能測試:
表5-2?車位查看功能測試表
| 用例名稱 | 車位查看 |
| 目的 | 測試車位查看功能 |
| 前提 | 用戶登錄 |
| 測試流程 | 點擊車位列表 |
| 預期結果 | 可以查看到所有車位信息 |
| 實際結果 | 實際結果與預期結果一致 |
管理員添加車位界面測試:
表5-3?管理員添加車位界面測試表
| 用例名稱 | 車位發布測試用例 |
| 目的 | 測試車位發布功能 |
| 前提 | 用戶正常登錄情況下 |
| 測試流程 | 1)點擊車位信息管理就,然后點擊添加后并填寫信息。 2)點擊進行提交。 |
| 預期結果 | 提交以后,頁面首頁會顯示新的車位信息? |
| 實際結果 | 實際結果與預期結果一致 |
車位搜索功能測試:
表5-4車位搜索功能測試表
| 用例名稱 | 車位搜索測試 |
| 目的 | 測試車位搜索功能 |
| 前提 | 無 |
| 測試流程 | 1)在搜索框填入搜索關鍵字。 2)點擊搜索按鈕。 |
| 預期結果 | 頁面顯示包含有搜索關鍵字的車位 |
| 實際結果 | 實際結果與預期結果一致 |
密碼修改功能測試:
表5-5 密碼修改功能測試表
| 用例名稱 | 密碼修改測試用例 |
| 目的 | 測試管理員密碼修改功能 |
| 前提 | 管理員用戶正常登錄情況下 |
| 測試流程 | 1)管理員密碼修改并完成填寫。 2)點擊進行提交。 |
| 預期結果 | 使用新的密碼可以登錄 |
| 實際結果 | 實際結果與預期結果一致 |
5.3?系統測試結果
通過編寫車位管理系統的測試用例,已經檢測完畢用戶登錄模塊、車位查看模塊、車位添加模塊、車位搜索模塊、密碼修改功能測試,通過這5大模塊為車位管理系統的后期推廣運營提供了強力的技術支撐。
結論
至此,車位管理系統已經結束,在開發前做了許多的準備,在本系統的設計和開發過程中閱覽和學習了許多文獻資料,從中我也收獲了很多寶貴的方法和設計思路,對系統的開發也起到了很重要的作用,系統的開發技術選用的都是自己比較熟悉的,比如Web、ssm技術、MYSQL,這些技術都是在以前的學習中學到了,其中許多的設計思路和方法都是在以前不斷地學習中摸索出來的經驗,其實對于我們來說工作量還是比較大的,但是正是由于之前的積累與準備,才能順利的完成這個項目,由此看來,積累經驗跟做好準備是十分重要的事情。
當然在該系統的設計與實現的過程中也離不開老師以及同學們的幫助,正是因為他們的指導與幫助,我才能夠成功的在預期內完成了這個系統。同時在這個過程當中我也收獲了很多東西,此系統也有需要改進的地方,但是由于專業知識的淺薄,并不能做到十分完美,希望以后有機會可以讓其真正的投入到使用之中。
參考文獻
[1]張志強,潘立巍,王新浩,白明輝,袁紹軍,劉嗣萃,陳廣宇,王洪亮,李曉東,賀曉紅,劉震宇,王樹軍. 一種車位管理方法及系統[P]. 河北省:CN106355940B,2023-02-03.
[2]沈志元,張文健.基于Java技術的醫院管理系統的設計與實現[J].電腦知識與技術,2022,18(32):38-40+54.DOI:10.14004/j.cnki.ckt.2022.1994.
[3]王棋.基于SSM框架的網上攝影系統設計與實現[J].電子質量,2022(10):89-93.
[4]謝霜.基于Java技術的網絡管理體系結構的應用[J].網絡安全技術與應用,2022(10):14-15.
[5]蘇婉怡,揣小龍,趙國松,王煜堯.基于Java技術的考試系統關鍵點研究[J].無線互聯科技,2022,19(18):58-60.
[6]楊玉蓮.基于SSM框架的智能煤質化驗室綜合管理系統[J].煤礦現代化,2022,31(05):100-104+109.DOI:10.13606/j.cnki.37-1205/td.2022.05.005.
[7]唐小玲.基于SSM框架的資質管理系統開發解析[J].科學技術創新,2022(26):80-83.
[8]郭春霞.基于Java EE技術的軟件框架設計[J].信息記錄材料,2022,23(09):99-101.DOI:10.16009/j.cnki.cn13-1295/tq.2022.09.027.
[9]楊迎.Java技術在嵌入式系統中的作用探討[J].無線互聯科技,2022,19(14):96-98.
[10]李曉宇,孟令軍,王佳軍,薛志凌.基于ZigBee的立體停車場車位管理系統設計[J].計算機與數字工程,2022,50(07):1624-1629.
[11]徐博,王冠.基于單片機的車位管理系統設計[J].無線互聯科技,2022,19(08):53-54.
[12]孟凡真. 機械式立體停車庫車位管理系統構建與應用研究[D].重慶交通大學,2022.DOI:10.27671/d.cnki.gcjtc.2022.001029.
[13]馮建,李嘉明,廖明華,宋春華.基于圖像識別技術的車位管理系統研究與設計[J].電腦知識與技術,2021,17(24):116-119.DOI:10.14004/j.cnki.ckt.2021.2305.
[14]何信劍.路邊車位管理系統中地磁定位技術運用分析[J].電子世界,2021(11):5-6.DOI:10.19353/j.cnki.dzsj.2021.11.002.
[15]張志奇,鮑潤哲,張曉航.智能云車位管理系統設計[J].科學技術創新,2021(01):103-104.
[16]Imbugwa Gerald,Manuel Mazara,Distefano Salvatore. Developing a Mobile Application Using Open Source Parking Management System on Etherium Smart Contracts.[J]. Journal of Physics: Conference Series,2020,1694(1).
[17]. Sensor Research; Investigators at Tamkang University Report Findings in Sensor Research (A Low-cost On-street Parking Management System Based On Bluetooth Beacons Dagger)[J]. Telecommunications Weekly,2020.
[18]. Sensor Research; Reports from Tamkang University Advance Knowledge in Sensor Research (A Low-Cost on-Street Parking Management System Based on Bluetooth Beacons)[J]. Journal of Technology,2020.
[19]李容容, 基于車位鎖的智慧小區車位共享管理系統V1.0. 湖北省,湖北創爾雅科技有限公司,2019-06-28.
[20]Beiping Yang,Hongming Shen,Lele Han,Yongjie Yang. A Parking Management System Based on Embedded System for Stereo Garage[P]. Proceedings of the 2015 International Conference on Intelligent Systems Research and Mechatronics Engineering,2015.
致 ?謝
逝者如斯夫,不舍晝夜。轉眼間,大用戶用戶活便已經接近尾聲,人面對著離別與結束,總是充滿著不舍與茫然,我亦如此,仍記得那年秋天,我迫不及待的提前一天到了學校,面對學校巍峨的大門,我心里充滿了期待:這里,就是我新生活的起點嗎?那天,陽光明媚,學校的歡迎儀式很熱烈,我面對著一個個對著我微笑的同學,仿佛一縷縷陽光透過胸口照進了我心里,同時,在那天我認識可愛的室友,我們攜手共同度過了這難忘的兩年。如今,我望著這篇論文的致謝,不禁又要問自己:現在,我們就要說再見了嗎?
感慨莫名,不知所言。遙想當初剛來學校的時候,心里總是想著工科學校會過于板正,會缺乏一些柔情,當時心里甚至有一點點排斥,但是隨著我對學校的慢慢認識與了解,我才認識到了她的美麗,她的柔情,并且慢慢的喜歡上了這個校園,但是時間太快了,快到我還沒有好好體會她的美麗便要離開了,但是她帶給我的回憶,永遠不會離開我,也許真正離開那天我的眼里會滿含淚水,我不是因為難過,我只是想將她的樣子映在我的淚水里,刻在我的心里。最后,感謝我的老師們,是你們教授了我們知識與做人的道理;感謝我的室友們,是你們陪伴了我如此之久;感謝每位關心與支持我的人。
少年,追風趕月莫停留,平荒盡處是春山。
? ? ? ?點贊+收藏+關注 → 私信領取本源代碼、數據庫
總結
以上是生活随笔為你收集整理的SSM车位管理系统 毕业设计-附源码65739的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 硬件学习笔记(器件篇)—— 电感(四)
- 下一篇: 详细记录丨Realtek RTL8188