基于web停車場管理系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
基于web停車場管理系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
基于web停車場管理系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
基于web停車場管理系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
基于web停車場管理系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

引言隨著社會的進步發(fā)展以及人們生活水平的提高,許多家庭都有了購置車輛的想法,伴隨著車輛數(shù)量的迅猛增長,城市交通逐漸陷入瓶頸狀態(tài)。不僅體現(xiàn)在道路交通的擁擠方面,還體現(xiàn)在傳統(tǒng)停車場管理效率和安全滯后于社會的需要,給人們的生活帶來了極大的不便。而且停車場作為交通設(shè)施的重要組成部分,隨著交通運輸?shù)姆泵桶l(fā)展,人們對其管理的需求也不斷提高,都希望管理能夠達到方便、快捷以及安全的效果。因為停車場的管理方法和規(guī)模的不一樣,所以管理員可根據(jù)自身條件選擇一個高效率、低成本的管理系統(tǒng)。停車場管理系統(tǒng)是通過使用人員將車主信息上傳至服務(wù)器來實現(xiàn)的,具體來說,就是使用者通過系統(tǒng)提供的網(wǎng)頁進行數(shù)據(jù)錄入,然后由服務(wù)端獲取對應(yīng)數(shù)據(jù),將數(shù)據(jù)進行相關(guān)處理后,并存儲到MySQL數(shù)據(jù)庫中,然后使用者就可以查看到自己所操作的數(shù)據(jù),便于對系統(tǒng)數(shù)據(jù)進行維護。而且作為一個以停車場管理體系為基礎(chǔ)而開發(fā)的應(yīng)用管理系統(tǒng),本系統(tǒng)會針對停車場管理過程做信息化處理。在停車場管理過程中,主要涉及固定車位信息、臨時車位信息、停車信息、車主信息等,通過對以上各個環(huán)節(jié)的信息化,提高停車場車輛的規(guī)范化管理,為以后的查詢、統(tǒng)計作下基礎(chǔ)。第1章緒論1.1課題的研究背景近年來,隨著我國經(jīng)濟的快速發(fā)展,人們生活水平的不斷提高,物質(zhì)需求和生活方式也發(fā)生著深刻的變化,以前屬于奢侈品的汽車己經(jīng)逐步走入了市民的日常生活。且隨著汽車大范圍的普及,人們對停車場的需求也逐漸擴大。然而目前的多數(shù)停車場存在著以下幾個問題,管理漏洞、收費過程比較繁瑣、勞動強度高、停車場利用率低下、票款易流失等。針對這些問題該停車場系統(tǒng)從以下方面進行設(shè)計。針對管理進行了優(yōu)化,針對收費過程的繁瑣采用劃卡消費和現(xiàn)金支付相結(jié)合并計時計費。本系統(tǒng)功能的實現(xiàn)主要采用的是JAVA語言和JSP技術(shù),優(yōu)化后的系統(tǒng)使用方便、服務(wù)高效、收費透明、防止票款的流失,提高可靠性同時也提高了操作者的工作效率。本停車場管理系統(tǒng)前端用的是jsp技術(shù)。一種跨平臺的動態(tài)網(wǎng)頁標準,以java為腳本語言,將java代碼嵌入到html代碼中,將網(wǎng)頁代碼和網(wǎng)頁邏輯分離,實現(xiàn)動態(tài)網(wǎng)頁所需要的功能。在當今社會中JSP被很多的大中型企業(yè)所采用。JSP技術(shù)是J2EE非常重要的組成部分,是開發(fā)Web應(yīng)用程序的首要之選,它使Web應(yīng)用開發(fā)得到簡化,使收益最大化。后臺采用JAVA語言編寫,JAVA語言不僅有安全穩(wěn)定的特點而且一次編寫隨處運行。其作為一種企業(yè)級應(yīng)用規(guī)范的J2EE,它是一個面向大眾的、開放式的平臺。被大多數(shù)企業(yè)用于實踐操作,提高開發(fā)效率。隨著汽車數(shù)量大范圍的增加以及社會的快速發(fā)展,一個方便、快捷的停車場顯得尤為重要,因此一個服務(wù)大眾為基礎(chǔ)的停車場管理系統(tǒng)應(yīng)運而生,因為系統(tǒng)簡單、快捷的優(yōu)點成為人們的首要選擇。通過JAVA開發(fā)各模塊組合之后與MySQL數(shù)據(jù)庫連接,使停車場管理系統(tǒng)具備了良好的信息管理,在維護的時候比較容易,運行的時候效率也比較高,具有友好的界面和可移植性。1.2目的和意義隨著經(jīng)濟、科學的飛速發(fā)展,中國汽車的持有量不斷地增加,一個完整的停車場管理系統(tǒng)顯得非常重要。本系統(tǒng)解決了一般停車場存在的利用率低、收費繁瑣等問題。使人們的生活更加的便捷,而且節(jié)省車主的時間,避免了一些不必要的事情發(fā)生,極大地增加了安全性,車主可以快速的進出場,使人們能夠享受便捷的生活。最重要的是解決交通問題。其意義也在于以大眾為核心,以服務(wù)大眾為根本來設(shè)計。因為停車場管理系統(tǒng)是將數(shù)據(jù)存儲在數(shù)據(jù)庫中的,所以停車場管理系統(tǒng)在對于停車信息管理上展示效果更為直觀。因此提高了人們生活效率,使得社會展更為迅速,讓人們的生活變得更加美好。1.3國內(nèi)外研究現(xiàn)狀停車場管理最主要的就是將停車場管理進行信息化處理。在停車場管理系統(tǒng)的信息化之中,主要包含有停車場車位信息管理、停車信息管理、車主信息管理等內(nèi)容,現(xiàn)代化的停車場大多數(shù)都通過將系統(tǒng)進行信息化處理,并以此來提高停車場的競爭力和管理效率。而且停車場管理系統(tǒng)都用來進行信息化處理的都是停車場管理過程中的信息。一般停車場的管理過程主要有車位信息、停車信息、車主信息等,停車場管理系統(tǒng)通過將這些信息進行信息化來規(guī)范停車場的管理,為高效率的交通設(shè)施作下基礎(chǔ)。根據(jù)目前狀況來說,在國外一些地區(qū),特別是歐洲的一些國家停車產(chǎn)業(yè)的發(fā)展已有很多年的歷史,并且已經(jīng)得到了極好的發(fā)展。美國的停車產(chǎn)業(yè)每年收入越達到260億美元,占全美GDP的3.25%。我國的汽車2020年的保有量會達到2.8億輛,早在2015年國家發(fā)改委發(fā)布了《關(guān)于加強城市停車設(shè)施建設(shè)的指導意見》,第一次將吸引社會資本、推進停車產(chǎn)業(yè)化納入到了國家層面。因為社會的發(fā)展我國汽車保有量的不斷上升,由此會產(chǎn)生大量的停車需求,就發(fā)展而言停車業(yè)迎來了新的機遇。隨著停車產(chǎn)業(yè)化的發(fā)展,大多數(shù)停車場會由原來的粗放經(jīng)營模式轉(zhuǎn)換為精細化經(jīng)營模式。在目前停車場管理系統(tǒng)招標項目的中標企業(yè)中,停車場管理公司逐年上漲。2017年11月28日,華平投資集團對外宣布,向陽光海天停車管理集團投資共計15億元,這次投資也是國內(nèi)第一次、并且是最大的對停車行業(yè)的一筆股權(quán)投資?!盎ヂ?lián)網(wǎng)+停車”為停車產(chǎn)業(yè)迎來了新的發(fā)展思路,使停車業(yè)進入了智慧化、信息化的時代,并提高了停車場的利用率以及高效共享率,對推進智慧交通戰(zhàn)略具有著深遠的意義?!盎ヂ?lián)網(wǎng)+停車場”會成為停車發(fā)展的主要方向。本系統(tǒng)緊跟社會的步伐,能夠很好地處理傳統(tǒng)停車場管理系統(tǒng)中不能實時動態(tài)處理問題,還有一些系統(tǒng)對車主信息不可以進行很好的保密。本系統(tǒng)中的系統(tǒng)信息管理功能、車位信息管理功能、IC卡信息管理等功能模塊能夠很好的解決這些問題。系統(tǒng)信息管理模塊主要包含有新增角色信息、新增用戶信息以及管理角色信息、管理用戶信息。車位信息管理模塊主要包含有新增車位信息以及對車位信息的管理。IC卡信息管理包括新增IC卡類型以及對IC卡類型的管理。本系統(tǒng)中的臨時車輛停車管理和固定車主停車管理都有收費功能,收費可以分為現(xiàn)金收費和卡收費,通常會員用戶進行卡收費,臨時用戶進行現(xiàn)金收費。提高信息處理的速度和準確性,能夠準確、高效的查詢和修改停車場的情況,從而提高效率。1.4系統(tǒng)開發(fā)的環(huán)境1.4.1開發(fā)工具與環(huán)境開發(fā)工具與環(huán)境如圖表1.1所示:表1.1開發(fā)工具與環(huán)境表開發(fā)工具MyEclipse2014數(shù)據(jù)庫Mysql5.5輔助軟件ProcessOn編程語言Java、Html、JavaScript1.4.2軟硬件平臺要求硬件平臺:CPU:1.60GHz以及以上,內(nèi)存:4G以及以上,硬盤:1T顯示:1280×720分辨率最佳。軟件平臺:操作系統(tǒng):簡體中文MicrosoftWindows7,數(shù)據(jù)庫:Mysql5.5,開發(fā)工具:裝有JDK的MyEclipse2014等工具,編程語言:Java。1.5系統(tǒng)設(shè)計的方法和技術(shù)1.5.1系統(tǒng)設(shè)計的方法本系統(tǒng)在MyEclipse2014平臺上運用Java語言來實現(xiàn)的。主要用到的技術(shù)為MVC設(shè)計方法進行開發(fā)。在最初MVC是存在于軟件程序中的,MVC三個字母分別對應(yīng)的是模型層、視圖層和控制層,采用MVC開發(fā)設(shè)計模式的目的是為了降低代碼的耦合度和提高代碼的重用性,MVC設(shè)計模式可以使不同的軟件程序以不同的形式展現(xiàn)。例如數(shù)據(jù)的統(tǒng)計可以使用各種各樣的\t"/item/MVC%E6%A1%86%E6%9E%B6/_blank"柱狀或者餅狀圖來展示??刂茖又饕怯脕砜刂颇P蛯雍鸵晥D層可以進行同步運行,如果模型層發(fā)生了改變,視圖層就會進行同步的更新做出相應(yīng)的改變。MVC設(shè)計模式是在上世紀八十年代研發(fā)的一種\t"/item/MVC%E6%A1%86%E6%9E%B6/_blank"軟件開發(fā)設(shè)計模式,現(xiàn)如今已經(jīng)被非常廣泛的應(yīng)用。且MVC設(shè)計模式是有很多的非常棒的地方是一個很好的工具箱,很多軟件應(yīng)用的視圖都可以用它來處理。隨著科學技術(shù)的不斷發(fā)展,現(xiàn)在的應(yīng)用程序需要各種各樣的形式或者方式查看或者訪問。MVC可以使用多個視圖訪問同一個服務(wù)器端的程序代碼。例如,用戶可以使用不同的客戶端購買某一件東西,雖然使用的客戶端不同但是處理購買東西的基本流程是一樣的。但是由于后臺返回給前端的數(shù)據(jù)沒有進行格式化的處理,所以同樣的構(gòu)造不能被不同的視圖共同使用。例如,不同的數(shù)據(jù)可以使用HTML來展示,也可用其他形式展示,并且改變這些展現(xiàn)只需要改變視圖層的實現(xiàn)過程,并不需要動用模型層和控制層。因為在表示層已經(jīng)將使用的數(shù)據(jù)和業(yè)務(wù)實現(xiàn)的規(guī)則分開,所以編寫程序的代碼就可以大規(guī)模的進行重用了。1.5.2系統(tǒng)所用相關(guān)的技術(shù)本系統(tǒng)主要使用Java語言進行編寫,JAVA語言目前市場上比較流行的編程語言。使用MyEclipse2014和Tomcat作為后臺服務(wù)器來運行,本系統(tǒng)選擇使用了B/S體系結(jié)構(gòu),這種體系結(jié)構(gòu)比較靈活,真正體現(xiàn)了一次開發(fā)處處運行。數(shù)據(jù)庫設(shè)計選擇了MySQL,MySQL數(shù)據(jù)庫不僅使用簡便、服務(wù)穩(wěn)定,開放源代碼且無版權(quán)制約,自主性強、使用成本低,接下來對本系統(tǒng)主要使用的平臺和技術(shù)進行具體解釋。本系統(tǒng)使用MyEclipse開發(fā)平臺來進行程序服務(wù)器的整合以此提高開發(fā)過程的效率。MyEclipse開發(fā)平臺是對Eclipse開發(fā)平臺的進一步擴充,因為MyEclipse開發(fā)平臺包含了完善的程序編碼、程序調(diào)試、程序測試以及發(fā)布程序功能的整個過程,并且還支持超文本標記語言HTML,層疊樣式表CSS,數(shù)據(jù)庫SQL等。本系統(tǒng)在MyEclipse開發(fā)平臺主要使用Java語言進行開發(fā)。所以本系統(tǒng)也是基于Java的。本系統(tǒng)Web服務(wù)器使用的是Tomcat,因為Tomcat具有較高的可靠性適合中小型系統(tǒng),不僅安裝簡單配置環(huán)境變量也很簡單,而且操作起來也非常的方便,在所有的應(yīng)用服務(wù)器中是比較小巧型的屬于輕量級的Web服務(wù)器。開發(fā)程序和調(diào)試JSP界面的首要選擇便是Tomcat。Tomcat服務(wù)器還具有很多便捷的功能,它不僅是Servlet和JSP容器而且它還可以處理HTML界面。本系統(tǒng)數(shù)據(jù)庫采用的是MySQL數(shù)據(jù)庫,MySQL數(shù)據(jù)庫是數(shù)據(jù)庫中的小清新,因為MySQL數(shù)據(jù)庫屬于開源的且體積較小運行速度比較的快,所以MySQL數(shù)據(jù)庫為中小型系統(tǒng)的首要選擇,在目前的使用數(shù)量非常的廣泛。由于MySQL數(shù)據(jù)庫卓越的性能以及脫穎而出的特點,所以MySQL加上JAVA加Tomcat的組合成為了非常好的開發(fā)環(huán)境。本系統(tǒng)前臺界面使用JSP技術(shù)動態(tài)的生成Web網(wǎng)頁。JSP和Servlet差不多一樣都是在服務(wù)器端運行的,在程序運行之后一般會給給客戶端一個響應(yīng),返回給客戶端一個HTML文本。所以客戶端只要是有瀏覽器就可以瀏覽到服務(wù)端返回給客戶端的程序界面。且使用JSP開發(fā)的應(yīng)用程序可以在不同的操作系統(tǒng)中運行。所以它還可以跨平臺。對于目前的管理系統(tǒng)來說,主要采用兩種主流的體系結(jié)構(gòu),分別是C/S模式和B/S模式。本系統(tǒng)主要采用的是B/S架構(gòu)模式,B/S的架構(gòu)模式也被稱為是瀏覽器或者服務(wù)器的體系結(jié)構(gòu)。這種結(jié)構(gòu)可以進行信息分布式處理,可以有效降低資源成本,提高設(shè)計的系統(tǒng)性能。目前B/S架構(gòu)模式的應(yīng)用范圍非常的廣泛,不僅在處理模式方面上簡化了客戶端的操作,而且用戶的桌面僅僅只安裝有\(zhòng)t"/item/BS%E6%9E%B6%E6%9E%84/_blank"瀏覽器便可運行自己的程序,B/S的架構(gòu)模式將應(yīng)用邏輯集中在服務(wù)器和中間件上,大大的提高了處理數(shù)據(jù)的能力。第2章系統(tǒng)分析2.1系統(tǒng)可行性分析經(jīng)濟可行性方面,由于該系統(tǒng)開發(fā)是我自己獨立完成,所以不需要額外的費用,因此成本低。再有系統(tǒng)屬于B/S架構(gòu),開發(fā)成功后可直接在瀏覽器運行,不需要過多的硬件支持。開發(fā)停車場管理系統(tǒng)也為人們的停車生活提供了便利。綜上所述本停車場管理系統(tǒng)的開發(fā)在經(jīng)濟上是可行的。技術(shù)可行性方面,本系統(tǒng)的開發(fā)采用適合于中小型項目的三大主流數(shù)據(jù)庫之一的mysql數(shù)據(jù)庫。后臺采用MVC的設(shè)計模式,使得在開發(fā)過程中更加明確清晰,并且MVC也是最普遍的web開發(fā)設(shè)計模式?;究梢詽M足停車場管理系統(tǒng)的正常開發(fā)。操作可行性方面,因為本系統(tǒng)主要是為了方便人們的生活。所以功能設(shè)計操作方面盡可能的便捷方便用戶的使用。例如通過下拉菜單和彈窗來減少用戶的操作。界面上的操作按鈕也量的突顯出來,方便用戶能夠快速的找到。因此操作可行性方面基本滿足要求。社會可行性方面,根據(jù)調(diào)查了解到大多數(shù)公共場所出現(xiàn)停車難、車位少等問題,停車場的效率十分低下,導致停車場的收益降低,且不安全。針對這種情況,有必要對停車場低效率的原因進程分析,并為提高停車場的效率提出改進的對策。經(jīng)過具體的分析調(diào)查,我們得出的停車場管理系統(tǒng)在社會可行性的作用,因此從社會可行性的角度來看,開發(fā)停車場管理系統(tǒng)是可行的。通過以上四個方面的可行性分析之后,可了解到停車場管理系統(tǒng)的流程還是比較簡單,用戶比較容易上手、可行性較高的。2.2系統(tǒng)性能分析2.2.1數(shù)據(jù)精確度在本停車場管理系統(tǒng)的設(shè)計上,對于數(shù)據(jù)表的建立上采取了建立索引的方式,大大加快數(shù)據(jù)的查詢速度。查詢中也對模糊查詢、條件查詢和分頁查詢進行了優(yōu)化。因系統(tǒng)屬于中小型系統(tǒng),數(shù)據(jù)量不是特別大,在數(shù)據(jù)精確度方面基本能夠滿足。2.2.2時間特性本系統(tǒng)使用異步交互的實現(xiàn)方式,避免用戶等待時間較長,使用戶在較短時間內(nèi)完成操作,因此本系統(tǒng)時間特性良好。2.2.3適應(yīng)性開發(fā)本系統(tǒng)考慮了人們社會生活中停車場的流程節(jié)點,因為系統(tǒng)由作者獨立開發(fā),所以如果用戶遇到問題作者能夠及時的進行解答并會詳細幫助用戶盡快的熟練操作。這對用戶的適應(yīng)性有很大的幫助。2.3系統(tǒng)需求分析目前國內(nèi)的許多地方包括超市、火車站、汽車站以及小區(qū)都有停車場,并且不同的停車場對管理系統(tǒng)有著不同的需求,但大多數(shù)停車場對管理系統(tǒng)的需求都會有一些共性。比如管理過程繁瑣、停車場車位利用率低等問題。并且停車場作為交通設(shè)施的重要組成部分,隨著交通運輸?shù)牟粩喟l(fā)展,人們會對其管理的要求也不斷提高,大部分停車場管理人員都希望停車場管理能夠達到方便、快捷以及安全的效果。因此為了提升管理效率就需要一個新型停車場管理系統(tǒng)。所以通過對社會生活中停車場管理系統(tǒng)的調(diào)查分析,以此開發(fā)了本停車場管理系統(tǒng)來提高停車場的效率和利用率。第3章系統(tǒng)的設(shè)計與實現(xiàn)3.1系統(tǒng)總體結(jié)構(gòu)設(shè)計停車場管理系統(tǒng)以科技飛速發(fā)展的當下社會為背景,主要用來為人們的日常生活提供便利。為了幫助讀者對本系統(tǒng)的整體結(jié)構(gòu)以及模塊間的關(guān)系有一個整體的了解,也更是為了理清作者思路,并且能對系統(tǒng)功能提供效率較高的模塊設(shè)計,也便于對后期進行維護和擴展,下面對該系統(tǒng)的總體結(jié)構(gòu)設(shè)計進行闡述。本停車場管理系統(tǒng)總共有六大塊模塊:分別是系統(tǒng)信息管理模塊、車位信息管理模塊、IC卡信息管理模塊、固定車主停車管理模塊、臨時車輛停車管理模塊以及系統(tǒng)功能操作模塊。管理員登錄系統(tǒng)之后便可看到右邊菜單欄中的車位信息管理,打開車位信息管理可根據(jù)車位編號、所屬區(qū)域和備注對車位信息進行添加。在點擊添加車位信息菜單連接進入新增車位基本信息界面將新增的車位基本信息按照規(guī)定填寫完成后點擊確定按鈕提交就可以在管理車位信息操作界面中看到剛剛新增的車位基本信息。在管理車位信息操作界面中可查看所有添加的車位信息狀況,在車位信息情況表的最上方可根據(jù)車位ID、車位編號、所屬區(qū)域、車位備注以及車位狀態(tài)查詢到管理人員需要的車位信息。固定車主停車管理顧名思義是對停留時間久或私人化的車位進行的管理。在固定車主停車管理的出入場設(shè)置中可根據(jù)已添加的IC卡號添加入場信息,選中IC卡號下拉框可查詢到之前添加的IC卡用戶點擊確定按鈕即可添加入場信息。在下方的出場信息管理中可以查看到添加過的入場信息,可對車輛進行設(shè)置是否出場,點擊設(shè)置出場即車輛出場。在停車信息管理中可查看到所有固定車主的停車信息以及出入場時間。如果車輛未出場則在出場時間中顯示車輛未出場。且在出入場設(shè)置界面管理員點擊設(shè)置車輛出場操作時,系統(tǒng)會根據(jù)車主停留時間計算是否達到一周,達到一周時間系統(tǒng)將自動跳出提示框提示管理員收費,費用為一周四百元以此累加。管理員可將所有停車信息導出Excel表格。臨時車輛停車管理是為停留時間較短車輛設(shè)計的模塊,在車輛入場信息中可根據(jù)臨時IC卡號和車牌號碼添加入場信息。在車輛出場信息中可查看到車輛的基本信息以及出入場時間,根據(jù)車輛停留的時間計算停車費用,具體為將新增臨時車輛停車信息填寫完畢之后點擊確定跳轉(zhuǎn)至車主出場信息界面,這時在車主出場信息中新增的車輛信息只顯示車輛入場時間則車主出場時間顯示狀態(tài)未出場,如果設(shè)置車輛出場可在操作列中點擊結(jié)算功能系統(tǒng)將根據(jù)車輛停留時間收取費用。系統(tǒng)信息管理模塊就是對系統(tǒng)的所有用戶以及管理人員進行管理的模塊,可新增用戶以及管理人員,同樣的也可對新增的用戶以及管理人員信息進行基本操作。系統(tǒng)功能操作模塊主要為兩個功能一個是修改密碼功能一個是退出系統(tǒng)功能。用戶登錄系統(tǒng)成功后,便能直接的找到這個模塊,對自己的密碼進行更新。該系統(tǒng)的主要結(jié)構(gòu)圖如圖3.1所示:圖3.1系統(tǒng)的層次結(jié)構(gòu)圖3.2系統(tǒng)總體業(yè)務(wù)流程設(shè)計系統(tǒng)業(yè)務(wù)流程在本系統(tǒng)中主要體現(xiàn)在從系統(tǒng)的登錄開始,經(jīng)過用戶的一系列操作直到最后用戶退出系統(tǒng)的整個流程。該系統(tǒng)主要包含了登錄和注冊、系統(tǒng)信息管理、車位信息管理、IC卡信息管理、臨時車輛停車管理、固定車主停車管理和系統(tǒng)功能操作六大模塊。系統(tǒng)信息管理模塊主要是對角色以及用戶進行管理,車位信息管理模塊主要是對車位的查詢和管理,IC卡信息管理模塊主要是對IC卡類型的查詢和管理,臨時車輛停車管理模塊主要是對臨時車輛的查詢和收取費用管理,固定車輛停車管理模塊主要是對固定車輛的查詢和收取費用管理,系統(tǒng)功能操作是對管理人員密碼的修改以及退出系統(tǒng)。主要業(yè)務(wù)流程如圖3.2所示:圖3.2系統(tǒng)的業(yè)務(wù)流程圖3.3數(shù)據(jù)庫設(shè)計3.3.1數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計該系統(tǒng)數(shù)據(jù)庫使用的是Mysql數(shù)據(jù)庫,在系統(tǒng)的數(shù)據(jù)庫中數(shù)據(jù)結(jié)構(gòu)設(shè)計的是否合理會體現(xiàn)出這個系統(tǒng)的設(shè)計是否合理,合適的數(shù)據(jù)庫設(shè)計不僅能夠大大提高系統(tǒng)日后的開發(fā)的效率,而且對數(shù)據(jù)的可靠性和安全性方面也是非常重要的。R圖是體現(xiàn)數(shù)據(jù)庫表結(jié)構(gòu)與實體關(guān)系最簡單明了的表現(xiàn)方式,在停車場管理系統(tǒng)中,主要有用戶、IC卡、車位信息、固定車主、臨時車主和角色六個實體,用下面的E-R圖進行介紹展示。如E-R關(guān)系圖3.3所示:圖3.3E-R關(guān)系圖3.3.2數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計下面是關(guān)于停車場管理系統(tǒng)的數(shù)據(jù)庫表,主要的數(shù)據(jù)信息表大致結(jié)構(gòu)分別如下:用戶表用戶在注冊的時候,需要輸入名稱和密碼兩部分,系統(tǒng)要在數(shù)據(jù)庫中進行保存,這需要創(chuàng)建一個用戶表,為了以后方便查詢,還要給用戶添加一個id,用戶表具體內(nèi)容如表3.1所示:表3.1用戶表序號列名數(shù)據(jù)類型長度主鍵允許空說明1User_idint11是否用戶id2Role_idint11否是角色id3User_namevarchar50否是用戶姓名4Real_namevarchar50否是真實姓名5User_pwdvarchar50否是用戶密碼6User_phonevarchar50否是用戶電話IC卡信息表IC卡信息表用來記錄IC卡號以及車主的基本信息,在數(shù)據(jù)庫中建一個表專門用來存儲、IC卡編號、車位編號、用戶名稱、用戶性別、家庭住址和車牌號。如表3.2所示:表3.2IC卡信息表序號列名數(shù)據(jù)類型長度主鍵允許空說明1Card_idint11是否IC卡編號2Seat_idint11否是車位編號3User_namevarchar50否是用戶名稱4User_Sexvarchar50否是用戶性別5User_addrvarchar50否是家庭住址6Car_numvarchar50否是車牌號車位信息表車位信息表主要記錄停車場的停車位信息,在數(shù)據(jù)庫中建一個表專門用來存儲車位ID、車位編號、所屬區(qū)域、車位狀態(tài)和車位備注。如表3.3所示:表3.3車位信息表序號列名數(shù)據(jù)類型長度主鍵允許空說明1Seat_idint11是否車位ID2Seat_numvarchar50否是車位編號3Seat_areavarchar50否是所屬區(qū)域4Seat_statevarchar50否是車位狀態(tài)5Seat_tagvarchar50否是車位備注臨時車輛停車管理信息表臨時車輛停車管理信息表主要記錄臨時車主停車管理,在數(shù)據(jù)庫中建一個表專門用來存儲車位ID、IC卡id、車牌號碼、車輛入場時間、車輛出場時間和停車費用。如表3.4所示:表3.4臨時停車管理信息表序號列名數(shù)據(jù)類型長度主鍵允許空說明1temp_idint11是否車位ID2Car_idint11否是車位編號3Car_numvarchar50否是車牌號碼4Entry_datevarchar50否是車輛入場日期5Entry_timevarchar50否是車輛入場時間6Out_datevarchar50否是車輛出場日期7Out_timevarchar50否是車輛出場時間8Temp_moneyvarchar50否是停車費用固定停車管理信息表固定車主停車管理信息表主要記錄固定車主停車管理,在數(shù)據(jù)庫中建一個表專門用來存儲車位ID、IC卡id、車輛入場日期、車輛出場日期。如表3.5所示:表3.5固定停車管理信息表序號列名數(shù)據(jù)類型長度主鍵允許空說明1fixed_idint11是否車位ID2car_idint11否是IC卡id3entry_datevarchar50否是車輛入場日期4entry_timevarchar50否是車輛入場時間5Out_datevarchar50否是車輛出場日期6Out_timevarchar50否是車輛出場時間7Fixed_moneyvarchar50否是停車費用角色表角色表主要記錄角色有哪些名稱,在數(shù)據(jù)庫中建一個表專門用來存儲角色ID、角色名稱。如表3.6所示:表3.6角色表序號列名數(shù)據(jù)類型長度主鍵允許空說明1role_idint11是否角色ID2role_namevarchar50否是角色名稱3.4系統(tǒng)實現(xiàn)3.4.1登錄注冊功能實現(xiàn)登錄注冊:在登錄界面輸入用戶名和密碼進行登錄。填寫登錄信息時對用戶名和密碼進行驗證,首先驗證用戶名和密碼的輸入不能為空。其次查找用戶名和密碼是否存在,如果不存在,提示出錯并重新登錄。登錄主要代碼位置:TestPark/src/DAL/login.java。該類主要是用戶的登錄操作方法,根據(jù)用戶編號和角色編號獲取用戶名和角色信息。登陸的流程如圖3.4所示:圖3.4登錄流程圖if(result){session.setAttribute("user_id",user_id);Stringuser_name=_login.getName(user_id);session.setAttribute("user_name",user_name);Stringrole_id=_login.getSysLevel(user_id);session.setAttribute("role_id",role_id);request.getRequestDispatcher("/Index.jsp").forward(request,response);}else{PrintWriterout=response.getWriter();out.write("<script>alert('用戶名或密碼錯誤');location.href='Login.jsp';</script>");}}在登錄界面點擊注冊按鈕開始注冊,注冊相當于在數(shù)據(jù)庫中新增用戶信息。注冊前進行判斷查看用戶名是否已經(jīng)存在,如果用戶名已經(jīng)存在數(shù)據(jù)庫,則新注冊敗,彈出對話框提示用戶重新輸入,以上功能將由RegisterHandle函數(shù)來實現(xiàn)。另外在插入數(shù)據(jù)的時候,還設(shè)要設(shè)置一個if語句來判斷用戶兩次輸入的密碼是否一致,只有條件通過后,才能完成注冊。3.4.2系統(tǒng)信息管理功能實現(xiàn)系統(tǒng)管理模塊是對角色以及用戶進行管理的模塊,主要包括有添加角色信息、管理角色信息、添加用戶信息、管理用戶信息功能,其主要業(yè)務(wù)結(jié)構(gòu)圖和流程圖如圖3.5、3.6所示:圖3.5系統(tǒng)信息管理結(jié)構(gòu)圖圖3.6系統(tǒng)信息管理流程圖添加角色:選中右邊菜單觸發(fā)超鏈接標簽進入RoleAdd.jsp添加角色界面,在客戶端輸入編號和名稱,點擊確定觸發(fā)BtnSure按鈕提交表單,通過表單中的action地址找到RoleHandle類里面的InsertEntity()函數(shù)進行數(shù)據(jù)的添加。通過Request.getParameter()方法獲取到客戶端界面輸入的值調(diào)用Role類里面的CheckExist()方法并進行If判斷,將新增的角色編號和數(shù)據(jù)庫存儲的角色編號進行對比,如果值重復(fù)則彈出提示框已存在該用戶,數(shù)據(jù)添加失敗。若角色沒有存在則添加數(shù)據(jù)成功,跳轉(zhuǎn)到管理界面。管理角色信息:管理角色信息可以根據(jù)用戶的編號,角色名稱進行查詢操作、編輯、和刪除操作。選中右邊菜單觸發(fā)超鏈接標簽進入RoleMsg.jsp管理角色信息界面,通過Form表單中的action地址找到RoleHandle類并找到GetEntityByWhere()方法根據(jù)查詢條件獲取對象所有的數(shù)據(jù)列表,并將數(shù)據(jù)存放到Request對象里面。通過forward(request,response)方法將查詢到的數(shù)據(jù)重定向到客戶端的RoleMsg.jsp界面,在RoleMsg.jsp界面通過request.getAttribute("list")獲取servlet端轉(zhuǎn)發(fā)的list數(shù)據(jù)列表。在管理角色信息界面可以按照角色編號和角色名稱進行查詢,通過request.getParameter("condition")獲取到查詢字段的名稱,再通過getEntityByWhere()方法執(zhí)行語句對數(shù)據(jù)庫進行查詢。在RoleHandle類中通過getEntityByWhere()方法接收將查詢到的數(shù)據(jù)返回給客戶端通過客戶端界面顯示出來。編輯功能的實現(xiàn)首先在JSP頁面獲取通過url傳過來的role_id,然后實例化Role對象根據(jù)role_id獲取Role數(shù)據(jù),隨后將將List數(shù)據(jù)轉(zhuǎn)換成Object[]。然后通過輸入框的value獲取值。刪除操作根據(jù)RoleHandle類找到deleteEntity()函數(shù),再獲取前臺通過get方式傳過來的role_id值然后調(diào)用Role類里面的deleteEntity()方法執(zhí)行sql語句進行刪除操作,刪除成功后跳轉(zhuǎn)至管理頁面。Intpage=request.getParameter("page")==null?1:Integer.parseInt(request.getParameter("page"));intwherePage=Integer.parseInt(role.getPageCountByWhere(where).toString());List<Object>list=role.getEntityByWhere(where,page);request.setAttribute("list",list); request.setAttribute("wherePage",wherePage);request.setAttribute("condition",condition);request.setAttribute("value",value);request.getRequestDispatcher("/Admin/RoleMsg.jsp").forward(request,response);}添加用戶:選中右邊菜單觸發(fā)超鏈接標簽進入UserAdd.jsp添加用戶界面,在客戶端輸入用戶編號、用戶名稱、用戶昵稱、真實姓名、用戶密碼和聯(lián)系電話,點擊確定觸發(fā)BtnSure按鈕提交表單,點擊重置BtnCancel按鈕,將清空輸入框。通過表單中的action地址找到UserHandle類里面的InsertEntity()函數(shù)進行數(shù)據(jù)的添加。通過Request.getParameter()方法獲取到客戶端界面輸入的值,并調(diào)用Role類里面的CheckExist()方法來執(zhí)行SQL語句成功返回True錯誤返回False。最后將結(jié)果通過UserHandle類返回給客戶端。管理用戶:管理用戶界面可根據(jù)用戶編號、角色名稱、用戶名稱、真實姓名進行查詢、編輯和刪除操作。選中右邊菜單觸發(fā)超鏈接標簽進入UserMsg.jsp管理用戶信息界面,刪除操作根據(jù)UserHandle類找到deleteEntity()函數(shù),再獲取前臺通過get方式傳過來的JId值然后調(diào)用User類里面的deleteEntity()方法執(zhí)行sql語句進行刪除操作,刪除成功后跳轉(zhuǎn)至管理頁面。privatevoiddeleteEntity()throwsIOException{Stringuser_id=request.getParameter("user_id");user.deleteEntity(user_id);response.sendRedirect("/Parking/UserHandle?type=4");}3.4.3車位信息管理功能實現(xiàn)車位信息管理模塊是對車位基本信息的添加以及對車位的基本信息進行管理的模塊,車位信息管理可根據(jù)車位編號、所屬區(qū)域和備注對車位信息進行添加。在點擊添加車位信息菜單連接進入新增車位基本信息界面將新增的車位基本信息按照規(guī)定填寫完成后點擊確定按鈕提交就可以在管理車位信息操作界面中看到剛剛新增的車位基本信息。在管理車位信息操作界面中可查看所有添加的車位信息狀況,在車位信息情況表的最上方可根據(jù)車位ID、車位編號、所屬區(qū)域、車位備注以及車位狀態(tài)查詢到管理人員需要的車位信息。其主要結(jié)構(gòu)和流程如圖3.7、3.8所示:圖3.7車位信息管理結(jié)構(gòu)圖圖3.8車位信息管理流程圖添加車位信息:添加車位信息可以通過車位編號、所屬區(qū)域、車位備注點擊確定之后進行添加。進入添加車位信息界面將信息填寫完畢點擊確定按鈕,這時客戶端會向服務(wù)端發(fā)送一個請求。通過Form表單的action地址找到SeatHandle類,通過SeatHandle類找到insertEntity()函數(shù)。在insertEntity()函數(shù)里面通過Seat類調(diào)用insertEntity()方法執(zhí)行后臺sql語句。再通過SeatHandle類的InsertEntity()函數(shù)進行IF判斷如果seat.insertEntity()等于1添加數(shù)據(jù)成功反之數(shù)據(jù)添加失敗。if(!seat.checkExist(seat_id)){if(seat.insertEntity(seat_id,seat_num,seat_section,seat_state,seat_tag)==1){out.write("<script>alert('數(shù)據(jù)添加成功!');location.href='/Parking/SeatHandle?type=4';</script>");}else{out.write("<script>alert('數(shù)據(jù)添失??!');location.href='/Parking/SeatHandle?type=4';</script>");}}else{out.write("<script>alert('主鍵重復(fù),數(shù)據(jù)添加失??!');location.href='/Parking/SeatHandle?type=4';</script>");}}管理車位信息:管理車位信息可以查看車位的基本信息,還可以根據(jù)車位ID、車位編號、所屬區(qū)域、車位備注、車位狀態(tài)進行搜索查詢,可以查看車位狀態(tài)和對車位信息編輯和刪除。點擊管理車位信息進入超鏈接,通過超鏈接找到鏈接地址SeatMsg.jsp,再通過SeatMsg.jsp里面Form表單action地址找到SeatHandle類,在SeatHandle類的getEntityByWhere()函數(shù)中獲取數(shù)據(jù)列表。具體為通過Seat類的getEntityByWhere()函數(shù)獲取查詢后的車位信息列表,再在SeatHandle類的getEntityByWhere()函數(shù)將數(shù)據(jù)存放到Request對象里面,最后通過forward(request,response)請求轉(zhuǎn)發(fā)到SeatMsg.jsp來響應(yīng)客戶端。刪除操作根據(jù)SeatHandle類找到deleteEntity()函數(shù),再獲取前臺通過get方式傳過來的seat_id值然后調(diào)用Seat類里面的deleteEntity()方法執(zhí)行sql語句進行刪除操作,刪除成功后跳轉(zhuǎn)至管理頁面。編輯車位信息是根據(jù)seat_id確定唯一值,在SeatEdit.jsp界面通過request.getParameter("seat_id").toString()獲取到url傳過來的seat_id,然后實例化Seat對象根據(jù)ID獲取Seat數(shù)據(jù)最后將將List數(shù)據(jù)轉(zhuǎn)換成Object[]通過obj獲取車位信息值顯示在輸入框。response.setCharacterEncoding("UTF-8");Stringseat_id=request.getParameter("seat_id").toString(); DAL.Seatseat=newDAL.Seat();List<Object>seatList=seat.getEntityById(seat_id);Object[]obj=(Object[])seatList.get(0);3.4.4IC卡信息管理功能實現(xiàn)IC卡信息管理模塊是對IC卡類型的添加以及對IC卡類型進行管理的模塊,主要包括有添加IC卡類型、管理IC卡類型功能,其主要結(jié)構(gòu)和流程如圖3.9、3.10所示:圖3.9IC卡信息管理結(jié)構(gòu)圖圖3.10IC卡信息管理流程圖添加IC卡類型:添加IC卡類型可以根據(jù)車位編號、用戶名稱、用戶性別、家庭住址和車牌號碼進行添加。點擊添加IC卡類型通過前端界面Index.jsp超鏈接進入CardAdd.jsp界面。添加時車位編號可直接下拉框顯示,先實例化Seat對象然后獲取到seat_id賦值給list并進行for循環(huán)隨后將取得值放入object輸出顯示。Seatseat=newSeat();List<Object>list=seat.getNoUseSeat();for(inti=0;i<list.size();i++){Object[]object=(Object[])list.get(i);out.write("<optionvalue='"+object[0]+"'>"+object[1]+"</option>");}將信息填寫完畢點擊確定按鈕提交Form表單,通過Form表單中的action地址找到CardHandle類的insertEntity()函數(shù),在insertEntity()函數(shù)里面通過Card類的insertEntity()方法進行后臺數(shù)據(jù)庫的添加操作并將執(zhí)行的數(shù)據(jù)存放到Request對象里面。如果數(shù)據(jù)添加成功提示數(shù)據(jù)添加成功并跳轉(zhuǎn)到管理IC卡類型界面。管理IC卡類型:管理IC卡類型模塊可以根據(jù)IC卡編號、車位編號、用戶名稱、用戶性別、家庭住址和車牌號碼進行搜索查詢。還可以選擇指定信息進行編輯和刪除。點擊管理IC卡類型通過前端界面Index.jsp超鏈接進入CardMsg.jsp界面。通過Form表單中的action找到CardHandle類,在CardHandle類找到getEntityByWhere()函數(shù),在getEntityByWhere()函數(shù)中使用card類獲取getEntityByWhere()方法用于查詢數(shù)據(jù)列表,將獲取后的查詢列表存入list中,之后將list數(shù)據(jù)存放到request對象中,用于轉(zhuǎn)發(fā)給前臺頁面使用。通過request的forward(request,response)方法將頁面返回到CardMsg.jsp,在CardMsg.jsp界面獲取servlet端轉(zhuǎn)發(fā)的list數(shù)據(jù)列表并循環(huán)數(shù)據(jù)列表,生成表格行。編輯功能的實現(xiàn)首先在JSP頁面獲取通過url傳過來的card_id,然后實例化Card對象根據(jù)card_id獲取Card數(shù)據(jù),隨后將將List數(shù)據(jù)轉(zhuǎn)換成Object[]。然后通過輸入框的value獲取值。刪除操作根據(jù)CardHandle類找到deleteEntity()函數(shù),再獲取前臺通過get方式傳過來的card_id值然后調(diào)用Role類里面的deleteEntity()方法執(zhí)行sql語句進行刪除操作,刪除成功后跳轉(zhuǎn)至管理頁面。if(list!=null){for(inti=0;i<list.size();i++){Object[]obj;obj=(Object[])list.get(i); out.print("<tr><td>"+obj[0]+"</td><td>"+obj[6]+"</td><td>"+obj[2]+"</td><td>"+obj[3]+"</td><td>"+obj[4]+"</td><td>"+obj[5]+"</td><td><ahref='"+path+"/Admin/CardEdit.jsp?card_id="+obj[0]+"'class='a_edit'>編輯</a><ahref='"+path+"/CardHandle?type=1&card_id="+obj[0]+"'class='a_del'onclick='returnconfirm(\"是否確認刪除?\")'>刪除</a></td></tr>");}}3.4.5固定車主停車管理功能實現(xiàn)固定車主停車管理:出入場設(shè)置、停車場信息管理。出入場設(shè)置可以設(shè)置用戶的入場和出場和用戶停車費用的結(jié)算,相應(yīng)的在停車信息管理界面中有一個展現(xiàn)。停車信息管理可以對車主的停車基本信息進行查詢和打印。其主要結(jié)構(gòu)和流程如圖3.11、3.12所示:圖3.11固定車主停車管理結(jié)構(gòu)圖圖3.12固定車主停車管理流程圖出入場設(shè)置:出入場設(shè)置最主要的功能是可以設(shè)置用戶的入場和出場,相應(yīng)的在停車信息中有一個展現(xiàn)。固定車主成功辦理IC卡后在固定車主的出場設(shè)置界面中可獲取固定車主的IC卡號,并根據(jù)車主的IC卡號來添加車主的入場信息。在界面通過下拉框的方式獲取固定車主的IC卡號點擊確定按鈕將添加好的車主信息展示在下方的出場信息管理中。下拉框顯示的車主信息是獲取的車主添加IC卡成功之后信息,這個功能使用card_id作為標識符獲取到Card的IC卡號,實例化Card類并通過Card類調(diào)用getEntity()函數(shù)將card_id值循環(huán)取出并顯示在下拉框中。在出場信息管理中可以設(shè)置車輛的出場。點擊設(shè)置車輛出場類似于一個刪除操作將設(shè)置過車輛出場的車輛信息在出入場設(shè)置中刪除,在此同時在停車信息管理里面出場日期會發(fā)生改變。停車信息管理的日期會從剛開始的未出場狀態(tài)自動生成為一個確定的日期時間。List<Object>list=(List<Object>)request.getAttribute("list");//獲取servlet端轉(zhuǎn)發(fā)的list數(shù)據(jù)列表out.write("<inputtype='hidden'name='hcondition'value='"+(request.getAttribute("condition")!=null?request.getAttribute("condition").toString():"")+"'/>");out.write("<inputtype='hidden'name='hvalue'value='"+(request.getAttribute("value")!=null?request.getAttribute("value").toString():"")+"'/>");if(list!=null){for(inti=0;i<list.size();i++){Object[]obj;obj=(Object[])list.get(i);Stringresult=obj[4].toString().equals("1111-11-11")?"未出場":obj[4].toString(); out.print("<tr><td>"+obj[0]+"</td><td>"+obj[1]+"</td><td>"+obj[7]+"</td><td>"+obj[6]+"</td><td>"+obj[2]+""+obj[3]+"</td><td>"+result+"</td><td><ahref='"+path+"/FixedHandle?type=1&fixed_id="+obj[0]+"'class='a_del'onclick='returnconfirm(\"是否確認刪除?\")'>刪除</a></td></tr>");}}停車信息管理:在停車信息管理中可根據(jù)記錄編號、IC卡號和車牌號碼進行模糊查詢。會顯示車輛的入場日期時間可出場日期時間,如果車輛未出場則在出場日期顯示車輛未出場。功能具體實現(xiàn)首先通過request.getAttribute()獲取到FixedHandle類轉(zhuǎn)發(fā)的list數(shù)據(jù)列表并循環(huán)數(shù)據(jù)列表生成表格行。還可將生成的表格生成Excel導出。根據(jù)記錄編號、IC卡號和車牌號碼進行模糊查詢功能具體實現(xiàn)過程為在FixedHandle類找到getEntityByWhere()函數(shù),在getEntityByWhere()函數(shù)中通過request.getParameter()獲取查詢字段的名字,通過Fixed類的getEntityByWhere()方法獲取查詢后的數(shù)據(jù)并將數(shù)據(jù)存放到request對象中,用于轉(zhuǎn)發(fā)給前臺頁面使用。刪除操作根據(jù)FixedHandle類找到deleteEntity()函數(shù),再獲取前臺通過get方式傳過來的Fixed_id值然后調(diào)用Temp類里面的deleteEntity()方法執(zhí)行sql語句進行刪除操作,刪除成功后跳轉(zhuǎn)至停車管理頁面。固定車主收費功能的實現(xiàn):由于本系統(tǒng)的固定車主停車管理模塊主要是為了停留至少一周時間的車主所設(shè)立的。所以在出入場設(shè)置界面管理員點擊設(shè)置車輛出場操作時,系統(tǒng)會根據(jù)車主停留時間計算是否達到一周,達到一周時間之后系統(tǒng)將自動彈出提示框提示管理員收費,費用為一周四百元以此累加。管理員點擊操作列的結(jié)算功能將跳轉(zhuǎn)至結(jié)算界面,在結(jié)算界面會顯示固定車主的基本信息以及停留時長和應(yīng)收取的費用。具體實現(xiàn)為點擊設(shè)置出場時進行IF判斷,在IF判斷里面獲取車輛入場和出場累積時間,如果時間大于等于一周彈出請收費提示框并跳轉(zhuǎn)至停車管理操作界面,如果時間小于一周彈出是否確認出場提示框。在停車信息管理界面,管理員選擇時間大于一周的車主信息點擊操作列的結(jié)算功能觸發(fā)超鏈接跳轉(zhuǎn)至FixedSettle.jsp界面,在FixedSettle.jsp頁面獲取url傳過來的fixed_id并實例化Fixed對象,根據(jù)fixed_id獲取Fixed數(shù)據(jù)并將Fixed數(shù)據(jù)轉(zhuǎn)換成Object[]賦值給obj,通過obj獲取到車輛停放時間以及基本信息。計算費用在function()函數(shù)里面首先通過日期列input標簽的name獲取到車輛入場時間和出場時間,之后通過獲取到的出場時間減去入場時間。再用Math.ceil()方法向上取整得到一個整數(shù)時間并顯示在輸入框中,IF判斷如果時間等于168小時則顯示費用為400元。點擊確定按鈕之后系統(tǒng)跳轉(zhuǎn)至車輛信息管理界面,這時車輛出場時間的狀態(tài)改變由未出場狀態(tài)變?yōu)榫唧w出場時間。如果時間小于一周在停車信息管理界面車輛的出場時間也會變?yōu)榫唧w時間,管理員可在結(jié)算界面查看車輛在停車場的停留時長不做結(jié)算。3.4.6臨時車輛停車管理功能實現(xiàn)臨時車輛信息管理:主要是對車主入場信息以及車主出場信息進行操作和管理。新增車主入場,點擊新增車主入場界面將新增車輛基本信息填寫完畢后點擊確定按鈕系統(tǒng)將自動跳轉(zhuǎn)至車輛出場信息管理界面,在車主出場管理界面可以根據(jù)臨時車輛停放的時間進行收費,具體為在車主出場信息界面車主出場信息中新增的車輛信息只顯示車輛入場時間則車主出場時間顯示狀態(tài)為未出場狀態(tài),如果要設(shè)置車輛出場可在操作列中點擊結(jié)算功能系統(tǒng)將根據(jù)車輛停留時間收取費用。停車出場信息還可以對臨時車輛的基本信息進行查詢和打印。其主要結(jié)構(gòu)和流程如圖3.13、3.14所示:圖3.13臨時車輛停車管理結(jié)構(gòu)圖圖3.14臨時車輛停車管理流程圖車主入場信息:車主入場信息相當于一個添加功能。填寫好臨時IC卡號和車牌號碼點擊確定按鈕即可添加。點擊提交按鈕將觸發(fā)Form表單,通過Form表單的action地址找到TempHandle類的insertEntity()函數(shù),在insertEntity()函數(shù)里面通過request.getParameter()得到客戶端傳入的值。在insertEntity()函數(shù)里面調(diào)用Temp類的insertEntity()方法進行數(shù)據(jù)庫操作,臨時卡號和車牌號碼不允許為空,在insertEntity()函數(shù)里面進行IF判斷如果為空彈出提示框顯示車牌號碼不能為空。if(!temp.checkExist(card_id)){if((card_id!=null&&card_id!="")&&(car_num!=null&&car_num!="")){if(temp.insertEntity(temp_id,card_id,car_num,entry_date,entry_time,out_date,out_time,temp_money)==1){ System.out.println("card_id="+card_id); System.out.println("car_num="+car_num); out.write("<script>alert('車牌號不能為空');location.href='/Parking/TempHandle?type=4';</script>");}}車主出場信息:臨時車主停車信息管理可以對臨時車主的信息進行刪除和查詢。具體功能實現(xiàn)為通過TempHandle類的getEntityByWhere()函數(shù)獲取對象的所有數(shù)據(jù)列表,將數(shù)據(jù)存放到request對象中,用于轉(zhuǎn)發(fā)給前臺頁面使用。在前臺頁面通過request.getAttribute()獲取控制端轉(zhuǎn)發(fā)的list數(shù)據(jù)表,循環(huán)數(shù)據(jù)列表生成表格顯示。模糊查詢功能具體實現(xiàn)過程為在TempHandle類找到getEntityByWhere()函數(shù),在getEntityByWhere()函數(shù)中通過request.getParameter()獲取查詢字段的名字,通過Temp類的getEntityByWhere()方法獲取查詢后的數(shù)據(jù)并將數(shù)據(jù)存放到request對象中,用于轉(zhuǎn)發(fā)給前臺頁面使用。刪除操作根據(jù)TempHandle類找到deleteEntity()函數(shù),再獲取前臺通過get方式傳過來的temp_id值然后調(diào)用Temp類里面的deleteEntity()方法執(zhí)行sql語句進行刪除操作,刪除成功后跳轉(zhuǎn)至管理頁面。停放車輛收費功能實現(xiàn):在車主出場的時候根據(jù)車輛的停留時間進行收費,車輛如果未出場在出場日期列顯示狀態(tài)為未出場,停車費用列狀態(tài)顯示為未結(jié)算。點擊操作列的結(jié)算功能將跳轉(zhuǎn)至結(jié)算界面,在結(jié)算界面會顯示車輛基本信息以及停留時長和應(yīng)收取的費用,停留時長一小時或不滿一小時收費三元并以此疊加。具體實現(xiàn)為用戶點擊結(jié)算將觸發(fā)超鏈接跳轉(zhuǎn)至TempEdit.jsp頁面,在TempEdit.jsp頁面獲取url傳過來的temp_id并實例化Temp對象,根據(jù)temp_id獲取Temp數(shù)據(jù)并將Temp數(shù)據(jù)轉(zhuǎn)換成Object[]賦值給obj,通過obj獲取到車輛停放時間以及基本信息。計算費用在function()函數(shù)里面首先通過日期列input標簽的name獲取到車輛入場時間和出場時間,之后通過獲取到的出場時間減去入場時間。再用Math.ceil()方法向上取整得到一個整數(shù)時間并顯示在輸入框中,通過獲取到的價格乘以時間最后得到一個總價。點擊確定按鈕之后系統(tǒng)跳轉(zhuǎn)至車主出場信息界面,這時車輛出場時間的狀態(tài)改變從未出場變?yōu)榫唧w出場時間。varlessTime=newDate(dateOut).getTime()-newDate(dateEntry).getTime();varhours=Math.ceil(parseFloat(lessTime)/(1000*60*60));$("[name=time]").val(hours);$("[name=temp_money]").val($("[name=price]").val()*hours);$("[name=price]").blur(function(){$("[name=temp_money]").val($("[name=price]").val()*hours);});3.4.7系統(tǒng)功能操作功能實現(xiàn)系統(tǒng)功能操作包括修改密碼和退出登錄功能,其主要流程如圖3.15所示:圖3.15系統(tǒng)功能操作流程圖修改密碼功能實現(xiàn):點擊修改密碼面界面輸入原始密碼使用UserHandle類的chagePwd()函數(shù),在chagePwd()函數(shù)里面使用user類調(diào)用checkPwd()方法檢查密碼是否輸入正確。新密碼和確認新密碼是在ChagePwd.jsp界面寫了一個checkPwd()函數(shù),如果兩次密碼輸入不一致彈出一個提示框提示兩次密碼不一致請重親輸入。functioncheckPwd(){if($("[name=NewPwd]").val()==$("[name=RepPwd]").val()){returntrue;}alert("兩次輸入密碼不一致,請重新輸入");returnfalse;}退出登錄功能:當用戶退出系統(tǒng)時,點擊退出登錄會跳轉(zhuǎn)到Logout.jsp頁面,在Logout.jsp頁面重定向到登錄界面。session.invalidate();response.sendRedirect("/Parking/Login.jsp");第4章系統(tǒng)的測試測試是為了發(fā)現(xiàn)軟件項目設(shè)計中存在的缺陷而執(zhí)行程序的過程,同時也是軟件程序中的最后一個步驟。測試可以測試項目的性能是否符合要求,以及項目預(yù)期功能是否全部實現(xiàn),也可以查找出軟件設(shè)計的不足以及是否符合用戶的需求。比如程序功能異常,前端界面拉伸問題等??偟膩碚f測試就是測試軟件是否達到了預(yù)期結(jié)果。4.1測試方法系統(tǒng)測試分為幾個不同的階段分別有單元測試、集成測試、系統(tǒng)測試和驗收測試階段。單元測試:測試各個代碼塊是否能正常,且能發(fā)現(xiàn)代碼設(shè)計的不合理之處。集成測試:集成測試是在單元測試的基礎(chǔ)上進行的測試,測試各個子模塊連接起來是否能夠正常工作。系統(tǒng)測試:系統(tǒng)測試是在單元測試和集成測試的基礎(chǔ)上進行的測試,且是對整個系統(tǒng)的測試以查看軟件是否有潛在的問題并保證系統(tǒng)能夠正常的運行。驗收測試:驗收測試是由用戶參與的測試。在完成上述測試之后,軟件要進行實際用戶數(shù)據(jù)測試之后方可發(fā)布。4.2測試內(nèi)容首先將項目部署到服務(wù)器之后運行項目看是否報錯,運行成功后對界面進行查看,看界面布局等內(nèi)容,然后對各個功能進行點擊測試,看能否達到需求。登陸界面如圖4.1所示:注冊界面如圖4.2所示:圖4.1登錄界面圖4.2注冊界面打開系統(tǒng)信息管理菜單欄如圖4.3所示,管理用戶信息的界面如圖4.4所示:圖4.3系統(tǒng)信息管理圖4.4管理系統(tǒng)用戶打開車位信息管理菜單欄如圖4.5所示:管理車位信息的界面如圖4.6所示:圖4.5車位信息管理圖4.6管理車位信息打開固定車主停車管理菜單欄如圖4.7所示:停車信息管理的界面如圖4.8所示:圖4.7固定車主停車管理圖4.8停車信息管理打開臨時車輛信息管理菜單欄如圖4.9所示:車輛出場信息的界面如圖4.10所示:圖4.9臨時車輛停車管理圖4.10車輛出場信息管理系統(tǒng)功能測試如表4.1所示:表4.1系統(tǒng)功能測試表模塊名稱測試內(nèi)容測試情況實際結(jié)果用戶模塊注冊使用錯誤字符進行命名,密碼長度小于六位的情況下進行注冊,系統(tǒng)會提示重新輸入;使用已注冊的用戶名進時,也顯示失??;兩次輸入的密碼不一致時,無法進行注冊;正確輸入時,注冊成功。功能實現(xiàn)登錄輸入不存在的賬戶,無法登錄;密碼錯誤時,登錄失敗;正確輸入注冊過的賬號后,登錄成功。系統(tǒng)信息管理模塊添加角色信息點擊添加角色信息菜單,可以正常添加角色。管理角色信息點擊管理角色信息菜單,可以對角色進行查詢編輯和刪除。添加用戶信息點擊添加用戶信息菜單,可以正常添加用戶。管理用戶信息點擊添加角色信息菜單,可以對用戶進行查詢編輯和刪除。車位信息管理模塊添加車位信息點擊右方的車位信息管理菜單欄,可以對車位編號、所屬區(qū)域進行添加。管理車位信息點擊右方的車位信息管理菜單欄,可以對車位進行查詢、編輯和刪除。IC卡信息管理模塊添加IC卡類型點擊右方的IC卡信息管理菜單欄,可對IC卡類型進行添加。管理IC卡類型點擊右方的IC卡信息管理菜單欄,可對IC卡進行查詢、編輯和刪除。固定車主停車管理模塊出入場設(shè)置點擊右方的固定車主停車信息管理菜單欄并打開出入場設(shè)置,可添加入場信息并查詢出場信息。停車信息管理可對停車信息進行查詢編輯并可將全部停車信息管理導出Excel表格。臨時車主停車管理模塊車主入場信息可添加臨時IC卡號、車牌號。車主出場信息可對停車信息進行模糊查詢編輯并可將全部停車信息管理導出Excel表格。系統(tǒng)功能操作修改密碼可對密碼進行修改。退出系統(tǒng)點擊退出系統(tǒng)將退出登錄。4.3測試結(jié)論結(jié)果顯示項目可以正常運行并無?,F(xiàn)象。軟件操作界面可以正常的顯示,所有功能都能夠正常操作。經(jīng)過以上測試,可以保證停車場管理系統(tǒng)可以正常運行,且展示效果較好,基本達到了預(yù)期結(jié)果以及項目的設(shè)計需求。結(jié)論本畢業(yè)設(shè)計實現(xiàn)了停車場管理系統(tǒng)的預(yù)期功能并達到了預(yù)期目的,且系統(tǒng)中的功能基本滿足人們實際社會生活中對停車場管理系統(tǒng)的需求。在選定課題之后,我開始搜集查找一些相關(guān)的資料,然后結(jié)合社會的實際情況,開始設(shè)計停車場管理系統(tǒng)。在完成設(shè)計的過程中不僅鍛煉了自己的邏輯思考能力還鍛煉了自己對代碼的敏感度。經(jīng)過本次畢業(yè)設(shè)計,使我明白了設(shè)計不是盲目的去直接進行代碼實現(xiàn),而是要有計劃和方法。雖然系統(tǒng)的功能實現(xiàn)了,但是也有很多的不足之處。例如在系統(tǒng)的功能交互方面,要多為用戶考慮,盡可能提升用戶體驗,不能只是以自己開發(fā)的角度去看待,只是以實現(xiàn)功能為目的,應(yīng)該多方面考慮,還有就是收費需要根據(jù)車輛停放的時間之后管理員根據(jù)車牌號碼在系統(tǒng)查找然后系統(tǒng)計算費用車主進行繳費,那是否可以用掃描儀器掃描到車輛的車牌號碼時系統(tǒng)會自動的就會顯示出車輛的基本信息呢?由于自己對這方面的專業(yè)知識還不夠透徹所以沒能完成,之后希望能通過自己知識的積累將這個功能完善??傊?,本次畢業(yè)設(shè)計做的很有意義,因為只有親身體會了才能知道自己的不足之處并加以改正。學習是不斷積累的過程,在進行畢業(yè)設(shè)計的過程中通過查閱各種資料,學到了一些別人的代碼思路以及規(guī)范方法,也復(fù)習和積累了很多專業(yè)知識并為以后的學習和工作積累了經(jīng)驗。致謝通過做畢業(yè)設(shè)計這段時間的學習,我查找到了許多非常優(yōu)秀的參考書籍以及參考視頻,且有很大的收獲,如果沒有這些視頻以及參考書,我的系統(tǒng)畢業(yè)設(shè)計會顯得很艱難。首先,非常感謝我的畢業(yè)設(shè)計導師劉老師對我的指導和幫助。在寫論文的過程中,遇到了很多的問題,在老師的耐心指導下,問題都得以解決。導師認真的工作態(tài)度和耐心的指導給了我很大的幫助,并且老師孜孜不倦、不厭其煩的指出我的問題以及提出自己的建議,在老師的嚴格要求和鼓舞一下,讓我的設(shè)計順利完成??梢哉f沒有老師地幫助,我是沒辦法這么快就完成畢業(yè)設(shè)計地,所以衷心地感謝劉老師!其次,要感謝我的同學們,感謝他們在論文過程中給我的關(guān)心和幫助。在我畢業(yè)設(shè)計實現(xiàn)的過程中,他們也幫我提出了許多的想法,在我感到挫折時給于我以鼓勵和支持,幫助我重新振作起來。馬上就要畢業(yè)了,真心的祝福他們都能夠順利地畢業(yè),并找到合適的工作!最后,還要感謝我的學校這年兩來的培養(yǎng),讓我能夠成為一名合格的畢業(yè)生。參考文獻[1]趙亞娟.計算機軟件JAVA編程特點及其技術(shù)研究[J].數(shù)字技術(shù)與應(yīng)用.2016.

[2]于用真.廈門市智慧停車信息系統(tǒng)建設(shè)研究[D].華僑大學.2015.

[3]田家旗.Java開發(fā)語言的開發(fā)平臺與J2EE編程技術(shù)問題的研究[J].信息技術(shù)與信息化.2016.[4]池建,侍非.小區(qū)停車場管理信息系統(tǒng)設(shè)計[J].智能計算機與應(yīng)用.2015.

[5]王浩.JAVA源代碼缺陷分析系統(tǒng)的設(shè)計與實現(xiàn)[J].信息技術(shù)與信息化.2016.

[6]賀展,劉菲.基于C/S和B/S模式的高校教務(wù)信息系統(tǒng)[J].武漢科技學院報.2015.

[7]徐唐倩惠,俞琦蕾,智露.城市立體停車場管理信息系統(tǒng)設(shè)計[J].智能計算機與應(yīng)用.2017.

[8]賈文瀟,鄧俊杰.JavaWeb應(yīng)用中常見的錯誤和異常問題處理[J].電子測試.2016.

[9]袁偉華.Java線程池的研究與實現(xiàn)[J],電腦編程技巧與維護.2015.

[10]王思為.企業(yè)用戶停車服務(wù)管理信息系統(tǒng)設(shè)計與分析[D].南京郵電大學.2015.

[11]Varga,M.,Lapin,I.,Kacur,J..PerformanceevaluationofGMMandKD-KNNalgorithmsimplementedinspeakeridentificationweb-applicationbasedonJavaEE[P].ELMAR(ELMAR),201456thInternationalSymposium.2014.

[12]Michael

Morrison.Head

First

JavaScript.[M].O’Reilly

Media,

Inc.2017.

[13]秦楷.JAVA語言特點及其在計算機軟件開發(fā)中的運用[J].中國新通信.2019.

[14]張劍.基于JSP技術(shù)的中文亂碼原因分析及對策研究[J].山西電子技術(shù).2016.[15]馬建紅.JSP應(yīng)用與開發(fā)技術(shù)[J].第三版.清華大學出版社.2018.[16]蘇航.接口的意義及在javaweb三層架構(gòu)中的作用分析[J].西部皮革.2016.[17]葛萌,張琳娜,陳偉.Java多態(tài)性機制應(yīng)用研究[J].攀枝花學院學報.2016.[18]王明鑫,于立婷,孫仲霖.簡述Java編程語言的發(fā)展及優(yōu)勢[J].通訊世界.2016.[19]徐茂.淺析面向SQL數(shù)據(jù)庫注入攻擊的JavaWeb防御措施[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用.2016.[20]賈曉芳,沈澤剛.JavaWeb應(yīng)用開發(fā)中的常見亂碼形式及解決方法[J].軟件導刊.2017.

HYPERLINK電腦快捷知識大全編輯本段一、常見用法F1顯示當前程序或者windows的幫助內(nèi)容。F2當你選中一個文件的話,這意味著“重命名”F3當你在桌面上的時候是打開“查找:所有文件”對話框F10或ALT激活當前程序的菜單欄windows鍵或CTRL+ESC打開開始菜單CTRL+ALT+DELETE在win9x中打開關(guān)閉程序?qū)υ捒駾ELETE刪除被選擇的選擇項目,如果是文件,將被放入回收站SHIFT+DELETE刪除被選擇的選擇項目,如果是文件,將被直接刪除而不是放入回收站CTRL+N新建一個新的文件CTRL+O打開“打開文件”對話框CTRL+P打開“打印”對話框CTRL+S保存當前操作的文件CTRL+X剪切被選擇的項目到剪貼板CTRL+INSERT或CTRL+C復(fù)制被選擇的項目到剪貼板SHIFT+INSERT或CTRL+V粘貼剪貼板中的內(nèi)容到當前位置ALT+BACKSPACE或CTRL+Z撤銷上一步的操作ALT+SHIFT+BACKSPACE重做上一步被撤銷的操作Windows鍵+L鎖屏鍵Windows鍵+M最小化所有被打開的窗口。Windows鍵+SHIFT+M重新將恢復(fù)上一項操作前窗口的大小和位置Windows鍵+E打開資源管理器Windows鍵+F打開“查找:所有文件”對話框Windows鍵+R打開“運行”對話框Windows鍵+BREAK打開“系統(tǒng)屬性”對話框Windows鍵+CTRL+F打開“查找:計算機”對話框SHIFT+F10或鼠標右擊打開當前活動項目的快捷菜單SHIFT在放入CD的時候按下不放,可以跳過自動播放CD。在打開word的時候按下不放,可以跳過自啟動的宏ALT+F4關(guān)閉當前應(yīng)用程序ALT+SPACEBAR打開程序最左上角的菜單ALT+TAB切換當前程序ALT+ESC切換當前程序ALT+ENTER將windows下運行的MSDOS窗口在窗口和全屏幕狀態(tài)間切換PRINTSCREEN將當前屏幕以圖象方式拷貝到剪貼板ALT+PRINTSCREEN將當前活動程序窗口以圖象方式拷貝到剪貼板CTRL+F4關(guān)閉當前應(yīng)用程序中的當前文本(如word中)CTRL+F6切換到當前應(yīng)用程序中的下一個文本(加shift可以跳到前一個窗口)在IE中:ALT+RIGHTARROW顯示前一頁(前進鍵)ALT+LEFTARROW顯示后一頁(后退鍵)CTRL+TAB在頁面上的各框架中切換(加shift反向)F5刷新CTRL+F5強行刷新目的快捷鍵激活程序中的菜單欄F10執(zhí)行菜單上相應(yīng)的命令A(yù)LT+菜單上帶下劃線的字母關(guān)閉多文檔界面程序中的當前窗口CTRL+F4關(guān)閉當前窗口或退出程序ALT+F4復(fù)制CTRL+C剪切CTRL+X刪除DELETE顯示所選對話框項目的幫助F1顯示當前窗口的系統(tǒng)菜單ALT+空格鍵顯示所選項目的快捷菜單SHIFT+F10顯示“開始”菜單CTRL+ESC顯示多文檔界面程序的系統(tǒng)菜單ALT+連字號(-)粘貼CTRL+V切換到上次使用的窗口或者按住ALT然后重復(fù)按TAB,切換到另一個窗口ALT+TAB撤消CTRL+Z編輯本段二、使用“Windows資源管理器”的快捷鍵目的快捷鍵如果當前選擇展開了,要折疊或者選擇父文件夾左箭頭折疊所選的文件夾NUMLOCK+負號(-)如果當前選擇折疊了,要展開或者選擇第一個子文件夾右箭頭展開當前選擇下的所有文件夾NUMLOCK+*展開所選的文件夾NUMLOCK+加號(+)在左右窗格間切換F6編輯本段三、使用WINDOWS鍵可以使用Microsoft自然鍵盤或含有Windows徽標鍵的其他任何兼容鍵盤的以下快捷鍵。目的快捷鍵在任務(wù)欄上的按鈕間循環(huán)WINDOWS+TAB顯示“查找:所有文件”WINDOWS+F顯示“查找:計算機”CTRL+WINDOWS+F顯示“幫助”WINDOWS+F1顯示“運行”命令WINDOWS+R顯示“開始”菜單WINDOWS顯示“系統(tǒng)屬性”對話框WINDOWS+BREAK顯示“Windows資源管理器”WINDOWS+E最小化或還原所有窗口WINDOWS+D撤消最小化所有窗口SHIFT+WINDOWS+M編輯本段四、“我的電腦”和“資源管理器”的快捷鍵目的快捷鍵關(guān)閉所選文件夾及其所有父文件夾按住SHIFT鍵再單擊“關(guān)閉按鈕(僅適用于“我的電腦”)向后移動到上一個視圖ALT+左箭頭向前移動到上一個視圖ALT+右箭頭查看上一級文件夾BACKSPACE編輯本段五、使用對話框中的快捷鍵目的快捷鍵取消當前任務(wù)ESC如果當前控件是個按鈕,要單擊該按鈕或者如果當前控件是個復(fù)選框,要選擇或清除該復(fù)選框或者如果當前控件是個選項按鈕,要單擊該選項空格鍵單擊相應(yīng)的命令A(yù)LT+帶下劃線的字母單擊所選按鈕ENTER在選項上向后移動SHIFT+TAB在選項卡上向后移動CTRL+SHIFT+TAB在選項上向前移動TAB在選項卡上向前移動CTRL+TAB如果在“另存為”或“打開”對話框中選擇了某文件夾,要打開上一級文件夾BACKSPACE在“另存為”或“打開”對話框中打開“保存到”或“查閱”F4刷新“另存為”或“打開”

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論