基于WEB的停車場管理系統的設計和實現【附源碼】

基于WEB的停車場管理系統的設計和實現

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

摘 要
隨著現代社會的快速發展,人民生活水平快速提高,汽車的數量飛速增加,與此同時停車問題也越來越受到人們的關注,為了實現對停車場進行有效的管理,結合一些停車場的模式和現狀開發出本停車場管理系統。
停車場管理系統是典型的信息管理系統,本停車場管理系統設計的主要功能包括場內車輛管理和后臺數據庫管理,其中場內車輛管理又分為出入場管理模塊、收費模塊、用戶管理模塊、停車場參數、停車場數據管理模塊、系統管理模塊等。我們從系統的設計和功能實現方面闡述了管理系統軟件的開發過程。
系統采用了B/S架構,Tomcat6.0作為運行服務器,基于J2EE標準、JSP技術利用Hibernate3.1和Struts1.2框架作為開發工具,MyEclipse6.0開發環境,數據庫采用Microsoft SQL Server 2000。開發過程利用MVC開發模式,層次分明。成功實現了該系統。試運行結果表明,該系統具有良好的性能和擴展性,較高的響應速度和效率,該系統符合實際的停車場管理系統,為停車場管理供一個快速,簡單規范的管理平臺。這對提高信息化程度,降低人力成本有著重要的意義。
關鍵詞:停車場管理系統,J2EE,Hibernate3.1,Struts1.2

Abstract
With the rapid development of modern society, people’s living standards improve and the number of vehicles increases rapidly. People pay more attention to parking problems at the same time. In order to manage the parking lots more efficiently, we have developed a Parking Management System, with some modes and the actuality of present parking lots considered.
Parking Management System is typically one of the information management systems. The main functions in the Parking Management System include vehicle management and background database management, and vehicle management is divided into the passing in and out module, the charging module, the user management module, the parking parameters, parking data management module, and the system management module. We discussed the management systems development process from the system design and function of the realization in the Papers.
Tomcat6.0 as a running server is used in this system on the basis of B/S structure. Based on J2EE standards, JSP technology as development tools which is taken advantage of Hibernate3.1 and Struts1.2 framework and MyEclipse6.0 as development environment are applied in the system. Microsoft SQL Server 2000 is used as background database. We develop the use of MVC pattern in development process. Test results show that the system has good performance and scalability, high response speed and efficiency which is in line with the actual park management system and can provide a fast, simple and standardized management platform. It is important to improve the information level and reduce labor costs.
Key words: parking management system, J2EE, Hibernate3.x, Struts1.2

目 錄
摘 要 I
Abstract II
目 錄 III
第一章 緒論 1
1.1 選題背景 1
1.2 主要相關技術 1
1.2.1 Struts技術 1
1.2.2 Hibernate 2
1.2.3 JSP(Java Server Pages)技術 2
1.2.4 J2EE 2
1.2.5 MVC 2
1.2.6 JavaScript技術 3
第二章 系統分析 4
2.1 系統分析 4
2.1.1 功能需求分析 4
2.1.2 系統流程分析 5
2.2 技術可行性分析 5
2.2.1 系統數據模型層的分析與設計 6
2.2.2 系統視圖層的設計與分析 6
2.2.3 系統控制層的分析與設計 6
第三章 系統總體設計 8
3.1 系統設計 8
3.1.1 總體設計 8
3.1.2 業務流程分析 8
3.1.2 系統功能模塊 9
3.1.3 系統模塊設計 10
3.2 數據庫設計與實現 10
3.2.1 數據庫的需求分析 10
3.2.2 數據庫的邏輯設計 11
3.2.3 數據庫的實現腳本 14
第四章 系統詳細設計與實現 18
4.1 登錄模塊 18
4.1.1 功能說明 18
4.1.2 程序描述 19
4.2 授權管理模塊 19
4.2.1 功能說明 20
4.2.2 程序功能描述 20
4.3 系統設置模塊 20
4.3.1 功能說明 20
4.3.2 程序功能描述 21
4.4 操作員檔案管理模塊 21
4.4.1 功能說明 21
4.4.2 程序功能描述 22
4.5 數據管理模塊 22
4.5.1 功能說明 22
4.5.2 程序功能描述 23
4.6 檔案管理 24
4.6.1 功能說明 24
4.6.2 程序功能描述 25
4.7 入場管理模塊 25
4.7.1 功能說明 25
4.7.2 程序功能描述 26
4.8 出場管理 27
4.8.1 功能說明 27
4.8.2 程序功能描述 28
4.9 收費管理模塊 28
4.9.1 功能說明 28
4.9.2 程序功能描述 29
第五章 系統測試、運行維護與評價 30
5.1 測試概況及測試用例 30
5.1.1 添加用戶信息 30
5.2 系統維護 31
5.2.1 系統維護的需求起因和目的 31
5.2.2 系統維護的內容 31
5.2.3 系統維護工作要考慮的因素 32
5.2.4 系統維護工作的管理 32
5.3 系統評價 32
結 論 33
參考文獻 34
致謝 35

第一章 緒論
1.1 選題背景
近年來,隨著我國經濟的快速發展,人們生活水平的不斷提高,物質需求和生活方式也發生著深刻的變化,以前屬于奢侈品的汽車己經逐步走入了市民的日常生活。伴隨汽車消費大眾化和各種機動車輛大范圍內的迅速普及,車輛對其配套設施特別是停車場提出了更高的要求。停車是"速度為零的交通”,停車場及附屬相關設施是靜態交通的重要組成部分。停車場收費管理系統是伴隨著公用收費停車場這一新生事物而誕生的。
目前的多數停車場存在著以下幾個問題,管理漏洞、系統的可靠性、獨立性強、收費過程比較繁瑣、勞動強度高、停車場利用率低下、票款易流失等。針對這些問題該停車場系統從以下方面進行設計。針對管理進行了優化,采用劃卡消費和現金支付相結合,系統計時計費。采用Java高級編程語言和WEB相關技術開發設計管理系統軟件,實現網絡管理操作。優化后的系統使用方便、服務高效、收費透明、防止票款的流失,提高可靠性同時也提高了操作者的工作效率。
1.2 主要相關技術
1.2.1 Struts技術
Struts其英文為在建筑和飛機中使用的金屬支架,有支持和支撐的含義,同時也說明了其在WEB設計中的重要作用。Struts是一個基于Sun J2EE平臺的MVC框架,Struts把Servlet、JSP、自定義標簽和信息資源(Message Resources)整合到統一的框架中,開發人員利用其進行開發時不用再自己編碼實現全套MVC模式,極大的節省了時間[4][11]。

圖 1-1 Struts工作原理
對于基于Struts框架的Web應用程序,當客戶端瀏覽器發出請求時,請求會被控制器截獲,并調用在Web應用啟動時就加載并初始化核心控制器組件ActionServlet,然后通過ActionServlet從Struts-config.xml文件中讀取預先設置的配置信息,并且把他們存放到各個配置對象中。控制器根據配置文件中的信息,或者選擇合適的Action對象,或者直接選擇合適的View對象返回給瀏覽器。Action對象本身沒有任何的邏輯功能,它只是控制器和模型層之間的接口,控制器通過Action調用匹配的模型對象,模型對象根據執行結果,選擇合適的View對象返回給瀏覽器。,控制器時整個程序執行流程的調度者,在Struts中基本的控制器組建是ActionServlet類,但是Action-Servlet類不包含任何控制信息,程序的所有調度信息都需要在Struts-con-fig.xml配置文件中設置。
1.2.2 Hibernate
Hibernate[2]是目前最流行的ORM(Object/Relational Mapper),是連接Java對象模型和關系數據庫模型的橋梁,它對JDBC進行了輕量級封裝不僅提供ORM映射服務,還提供數據查詢和數據緩沖查詢功能。Hibernate將SQL操作完全封裝成對象化的操作,開發人員可以方便通過Hibernate來訪問數據庫。
1.2.3 JSP(Java Server Pages)技術
JSP是一種動態網頁的技術標準,是一種服務器端嵌入了Java代碼的腳本語言。它把內容的生成和顯示分離,能生成可重用的組件,應用了標記簡化頁面的開發并且具有Java特點。
1.2.4 J2EE

  1. J2EE介紹
    J2EE(Java 2 Platform, Enterprise Edition)是SUN公司定義的一個開放式企業級應用規范,他提供了一個多層次的分布式應用模型和一系列開發技術規范,多層次分布式應用模型是根據功能把應用邏輯分成多個層次,每個層次支持相應的服務器和組件.組件在分布式服務器的組件容器中運行,如Servlet組件在Servlet容器上運行,EJB組件在EJB容器上運行,容器間通過相關的協議進行通訊,實現組件的相互調用。遵從這個規范的開發者將得到行業的廣泛支持,使企業級應用的開發變得簡單、快速。
  2. 構建本系統J2EE開發工具
    Java虛擬機:J2SDK1.6;Java開發工具:MyEclipse6.0;WEB服務器采用:Tomcat 6.0。環境配制過程:安裝好J2SDK1.6后。在MyEclipse6.0中選擇新建J2EE Project->Web Project,并在Web Project中Add Struts和Hibernate3.1。
    1.2.5 MVC
    MVC的英文全稱為Model-View-Controller,即把一個應用程序的輸入層、業務處理層、控制流程按照View、Model、Controller的方式進行分離,這樣一個應用程序就被劃分成相對獨立而又協同工作的3個層,即視圖層、模型層、控制層。在MVC設計模式中,客戶端WEB瀏覽器會提交各種不同的用戶請求,這些請求由控制器進行處理,控制器根據時間的類型來改變模型或視圖,視圖也可以接受模型層發出的數據更新通知,依據數據更新的結果調整視圖效果,并呈現給用戶。而模型也可以通過視圖所獲得的用戶提交的數據進行具體業務邏輯的處理。
    1.2.6 JavaScript技術
    JavaScript語言的前身是LiveScript語言[5]。由美國Netscape(網景)公司的布瑞登·艾克(Brendan Eich)為即將在1995年發布的Navigator 2.0 瀏覽器的應用而開發的腳本語言。JavaScript是一種基于對象的語言,這意味它能運用自己已經創建的對象。本系統主要用JavaScript小程序代碼做一些客戶端的登陸驗證和頁面的選擇控制。

第二章 系統分析
2.1 系統分析
2.1.1 功能需求分析
根據停車場管理系統的需求,確定了該系統的用例圖如圖2-1所示。

圖2-1 停車場管理系統用例圖
如圖2-1所示,該系統主要有超級管理員、管理員和操作員三種角色,不同角色的基本任務如下所述。
超級管理員具有最高的權限,即對本系統所有的權限操作權。超級管理員授權給管理員賦予管理員應有的權限。
管理員可根據需要來維護角色信息,并授權給相應的操作員。進行系統的設置,權限設置,數據管理,操作員檔案的管理。
操作員行使管理員給與的權限,行使檔案管理(車輛檔案、卡檔案管理、用戶檔案管理),入場的管理,收費管理,以及出場的管理。
根據用例圖得到的部分類圖,如圖 2-2

圖 2-2 類圖
2.1.2 系統流程分析
停車場管理系統分為入場停車和出場取車兩部分。如圖2-3所示。

圖 2-3 系統流程圖
1.入場停車流程
(1)入場
根據系統提示的停車場的現有信息控制車輛的入場,停車場在有車位的情況下方能停車。
(2)卡審核
審核用戶的卡類型并判斷卡的有效性。
(3)停車
指定停車位置提示給用戶
2.出場取車流程
(1)出場審核
卡審核,卡與車輛的匹配審核。
(2)收費
根據車輛信息,卡類型以及停車的時間等依據收費標準計算收費額度實施收費環節。
(3)出場
交費之后在出場的相關信息提示下完成停車管理過程。
2.2 技術可行性分析
停車場管理系統設計中,MVC(Model-View-Control)分層設計模式貫穿了整個設計流程,系統開發框架采用Struts1.2 +Hibernate3.1組合結構。
? 模型層
模型層主要包括數據邏輯和業務邏輯。 在本系統中,Hibernate提供處理數據持久化,JavaBean對業務邏輯Service封裝。
? 視圖層
系統采用JSP實現視圖層。
? 控制層
采用Struts技術處理前臺請求與Service業務邏輯的調用。
2.2.1 系統數據模型層的分析與設計
MVC設計模式中的M(Model),主要包括了數據邏輯與業務邏輯。
? 數據邏輯
數據邏輯作為Model層面中的主要組成部分,其設計的優劣會對系統得整體性能表現產生至關重要的影響。
Hibernate提供了強大、高性能的對象到關系型數據庫的持久化服務。利用Hibernate,可以按照Java的基礎定義進行持久化層開發,Hibernate在對象與關系型數據庫之間構建了一條快速、高效、便捷的溝通渠道。在本系統中對數據庫的增加、修改、刪除、查詢的操作都通過Hibernate對數據表進行相對應的操作。
? 業務邏輯
業務邏輯是業務系統實現的主要組成部分,業務邏輯層主要負責以下幾個方面的實現。
(1)管理應用的業務邏輯和業務校驗。如添加數據時數據表中沒有該項記錄,才允許添加。
(2)管理業務級對象之間的依賴性。
(3)管理與其他層進行交互的接口。
(4)事物代理。對數據庫的插入和刪除時要調用事物處理才能物理上執行對數據表的更新操作。
(5)錯誤管理。
2.2.2 系統視圖層的設計與分析
MVC設計模式中的V(View)即視圖層(或表現層),本系統采用JSP技術實現。本系統所有的頁面都是通過此技術來實現的。
2.2.3 系統控制層的分析與設計
MVC設計模式中的C(Control)即控制層,采用Struts框架技術實現控制層。控制層需要負責以下功能:
(1) 接受來自客戶端的HTTP請求。
(2) 調用M層模型組件來執行相應得業務邏輯。
(3) 獲得M層業務邏輯的處理結果。
(4) 根據處理結果選擇合適的視圖層呈現給客戶端。

第三章 系統總體設計
3.1 系統設計
3.1.1 總體設計
首先判斷登錄的身份,進入相應的操作頁面通過需要的操作,最終完成目的操作的功能。本系統UML活動圖如圖3-1所示。
他們在內在關系由數據庫和程序來控制。

圖3-1 UML活動圖
3.1.2 業務流程分析
本系統的的使用者是停車場的工作人員,為了便于管理并借鑒現有停車場的管理模式,劃分成三個角色的用戶。工作人員首先登陸系統,經過一系列的身份驗證,登陸成功之后進入相應的操作界面,實現各自的管理功能。總體功能分析業務流程圖。如圖 3-2業務流程圖

圖3-2 業務流程圖
其中各模塊有對應的添加、修改及刪除功能。
3.1.2 系統功能模塊
如圖 3-3 系統功能模塊劃分

圖 3-3 系統功能模塊劃分
3.1.3 系統模塊設計
(1)授權管理模塊 具有最高管理權限超級管理員對該模塊進行操作,對管理員進行授權,添加刪除修改管理員。
(2)系統設置 由超級管理員授權的管理員行使該功能,主要是對停車場的參數進行設置。
(3)操作員檔案管理 由管理員行使改功能,停車場業務操作員進行管理,添加、刪除、修改操作員的信息。
(4)數據管理模塊 該模塊顯示了停車場日常運行所產生的數據,場內車輛,進出數據,收費金額以及交班記錄的相關信息。
(5)檔案管理 該部分功能為操作員所使用,主要是對停車場發放的卡進行管理、車檔案的管理以及停車場顧客的信息檔案管理。他們都有自己的添加、刪改、修改的功能。
(6)入場管理 該模塊是本系統的一個重要的功能模塊,主要采集汽車入場時候的一些必要的參數,對參數進行處理和判斷,這些獲得的參數提交到后臺進行相關的處理。
(7)出場管理 汽車離場之前對其進行的離場驗證和停車時間的數據收集,為下一收費模塊提供數據。
(8)收費管理 該模塊是本系統最重要的一個模塊,根據出入場提供的參數結合該模塊收費標準的設置計算出收費的金額,完成收費并打印出收費清單。
3.2 數據庫設計與實現
3.2.1 數據庫的需求分析
數據庫設計的ER圖。如圖 3-4系統數據庫ER圖,制定一個收費標準要卡的類型以及收費的標準(時收費或次收費)來確定。停車場的顧客用戶有唯一的一條卡信息與自己的車信息綁定。停車場的總車位數決定了車位表的總車位,一個車位只能存放一部車。收費的根據時入場時的信息和出場時的信息以及收費標準的綜合得出。交班記錄要記下該員工在工作時間內的所有的操作記錄,上下班時間以及在這段時間內的操作。

圖 3-4 系統數據庫ER圖

根據系統需求,本系統需要設計13張表。
(1) 卡信息表:存放卡的相關信息。
(2) 停車場參數表:存放停車場的基本參數。
(3) 用戶表:存放用戶的基本信息。
(4) 車信息表:存放車的基本信息。
(5) 權限表:存放對應的權限信息和對應的行使該權限人員的相關信息。
(6) 時收費表:存放按時收費的時間段。
(7) 次收費表:存放按次收費的時間段。
(8) 入場表:存放入場時候的一些信息。
(9) 出場表:存放出場時的相關信息。
(10) 交班表:存放操作員交接班的相關信息。
(11) 收費表:存放停車一段時間的收費信息。
(12) 車位表:用于存放每一個車位上的停車狀態。
(13) 收費標準表:存放收費的統一標準。

3.2.2 數據庫的邏輯設計
下面給出各個表的詳細結構。

表3-1 卡信息表
字段名 描述 類型 長度 是否為空 是否主鍵
id 自增 int 4 否 是
cardid 卡編號 varchar 20 是 否
cardno 卡號 varchar 20 是 否
cardtype 卡類型 varchar 20 是 否
cardmoney 余額 money 8 是 否
sendtime 發卡時間 datetime 8 是 否
activetime 有效時間 datetime 8 是 否
sendflag 已發 tinyint 1 是 否
loseflag 掛失 tinyint 1 是 否

表3-2 停車場參數表
字段名 描述 類型 長度 是否為空 是否主鍵
id 自增 int 4 否 是
parkname 停車場名字 varchar 20 是 否
parktotal 總車位 int 4 是 否
entertotal 入口車道數 int 4 是 否
exittotal 出口車道數 int 4 是 否
parktel 停車場電話 varchar 20 是 否
parkadd 停車場地址 varchar 20 是 否

表3-3 用戶表
字段名 描述 類型 長度 是否為空 是否主鍵
id 編號 varchar 20 否 是
name 用戶名 varchar 20 是 否
sex 性別 char 2 是 否
tel 電話 varchar 20 是 否
cardno 卡號 varchar 20 是 否
carno 車牌 varchar 20 是 否
address 地址 varchar 20 是 否

表3-4 車信息表
字段名 描述 類型 長度 是否為空 是否主鍵
id 自增 int 4 否 是
carid 編號 varchar 20 否 是
carno 車牌號 varchar 20 是 否
cartype 車類型 varchar 20 是 否

表3-5 權限表

字段名 描述 類型 長度 是否為空 是否主鍵
id 自增 int 4 否 是
poperatorid 編號 varchar 20 否 是
poperatorname 姓名 varchar 20 是 否
poperatorsex 性別 char 10 是 否
poperatorpsw 密碼 varchar 20 是 否
poperatorright 權限 varchar 20 是 否

表3-6時收費表
字段名 描述 類型 長度 是否為空 是否主鍵
id 自增 int 4 否 是
timeno 時間號 int 4 否 是
starttime 開始時間 char 10 是 否
endtime 結束時間 char 20 是 否

表3-7 次收費表
字段名 描述 類型 長度 是否為空 是否主鍵
id 自增 int 4 否 是
times_no 時間號 int 4 否 是
starttime 開始時間 char 10 是 否
endtime 結束時間 char 10 是 否

表3-8 入場表
字段名 描述 類型 長度 是否為空 是否主鍵
id 自增 int 4 否 是
encardid 入場編號 varchar 20 否 否
encardno 卡號 varchar 20 是 否
encarno 車牌 varchar 20 是 否
enway 入場車道 varchar 20 是 否
entime 入場時間 datetime 8 是 否
enposition 指定車位 varchar 20 是 否

表3-9 出場表
字段名 描述 類型 長度 是否為空 是否主鍵
id 自增 int 4 否 是
exited 出場編號 varchar 20 否 否
excardno 卡號 varchar 20 是 否
excarno 車牌 varchar 20 是 否
exway 出場車道 varchar 20 是 否
extime 出場時間 datetime 8 是 否

表3-10 交班表

字段名 描述 類型 長度 是否為空 是否主鍵
id 自增 int 4 否 是
tnoperator 操作員 varchar 20 否 否
tnlogintime 登錄時間 datetime 8 是 否
tnturntime 交班時間 datetime 8 是 否
entimes 進場次數 int 4 是 否
extimes 出場次數 int 4 是 否
totalmoney 金額總計 money 8 是 否

表3-11 收費表
字段名 描述 類型 長度 是否為空 是否主鍵
id 自增 int 4 否 是
chargeid 收費編號 varchar 20 否 否
chcardno 卡號 varchar 20 是 否
chcarno 車牌 varchar 20 是 否
chmoney 收費金額 money 8 是 否

表3-12 車位表
字段名 描述 類型 長度 是否為空 是否主鍵
id 自增 int 4 否 是
cpcarno 車牌 varchar 20 是 否
positionstate 車位狀態 varchar 20 是 否

表3-13 收費標準表
字段名 描述 類型 長度 是否為空 是否主鍵
id 自增 int 4 否 是
chargestid 標準編號 int 4 是 否
cardtype 卡類型 varchar 20 是 否
cartype 車類型 varchar 20 是 否
chargetype 收費類型 varchar 20 是 否
timeno 時間編號 int 4 是 否
unittime 單位時間 int 4 是 否
unitsum 單位金額 int 4 是 否
mostsum 最大金額 int 4 是 否

3.2.3 數據庫的實現腳本
1 卡信息表
CREATE TABLE [dbo].[pcard] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[cardid] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[cardno] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[cardtype] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[cardmoney] [money] NULL ,
[sendtime] [datetime] NULL ,
[activetime] [datetime] NULL ,
[sendflag] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[loseflag] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
2 停車場參數表
CREATE TABLE [dbo].[parkparameter] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[parkname] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[parktotal] [int] NULL ,
[entertotal] [int] NULL ,
[exittotal] [int] NULL ,
[parkadd] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[parktel] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
3 用戶表
CREATE TABLE [dbo].[users] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[userid] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[username] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[usersex] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[usertel] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[u_carid] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[u_cardid] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[useradd] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
4 車信息表
CREATE TABLE [dbo].[car] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[carid] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[carno] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[cartype] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
5 權限表
CREATE TABLE [dbo].[rateright] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[poperatorid] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[poperatorname] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[poperatorsex] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[poperatorright] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[poperatorpsw] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
6 時收費表
CREATE TABLE [dbo].[ptime] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[timeno] [int] NOT NULL ,
[timestart] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[timeend] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
7 次收費表
CREATE TABLE [dbo].[ptimes] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[timesno] [int] NOT NULL ,
[timesstart] [char] (8) COLLATE Chinese_PRC_CI_AS NULL ,
[timesend] [char] (8) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
8 入場表
CREATE TABLE [dbo].[entrance] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[encardno] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[encardtype] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[encarno] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[encartype] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[enway] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[entime] [datetime] NULL ,
[enposition] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[enchargetype] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[enoperator] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
9 出場表
CREATE TABLE [dbo].[pexit] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[excardno] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[excarno] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[exway] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[extime] [datetime] NULL
) ON [PRIMARY]
10 交班表
CREATE TABLE [dbo].[turn] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[tnoperator] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[tnlogintime] [datetime] NULL ,
[tnturntime] [datetime] NULL ,
[entimes] [int] NULL ,
[extimes] [int] NULL ,
[totalmoney] [money] NULL
) ON [PRIMARY]
11 收費表
CREATE TABLE [dbo].[charge] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[cardid] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[cardtype] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[cartype] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[carno] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[money] [money] NULL
) ON [PRIMARY]
12 車位表
CREATE TABLE [dbo].[carposition] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[cpcarno] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[positionstate] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
13 收費標準表
CREATE TABLE [dbo].[standardcharge] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[chargestid] [int] NOT NULL ,
[cardtype] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[cartype] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[chargetype] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[timeno] [int] NULL ,
[unittime] [int] NULL ,
[unitsum] [int] NULL ,
[mostsum] [int] NULL
) ON [PRIMARY]

第四章 系統詳細設計與實現
4.1 登錄模塊

圖4-1 登錄界面圖

4.1.1 功能說明
登陸頁面需要用戶名、密碼以及用戶的登錄類型,分為超級管理員、管理員和操作員,所以在登錄類型中進行區別,進入后根據管理的級別,行使不同的功能。登陸時進行驗證,首先進行頁面級的驗證輸入的信息,用戶名和密碼不能為空。其次進行數據庫的驗證,當系統中沒有該管理員的信息時將把錯誤信息拋出到頁面,提示用戶出錯原因。當同一個用戶已經登錄時,使用同一賬號和密碼將不能登陸該系統,在一定程度上提高了系統的安全性。
數據流圖如圖4-2所示。

圖4-2 登錄模塊數據流程圖
4.1.2 程序描述
login.jsp提供登錄用戶名、密碼和登陸類型三個屬性。通過loginForm采集數據交由loginAction進行登錄信息的驗證根據驗證的信息進入到相應的界面。
try{
byte[] buffer=logintype.getBytes(“ISO-8859-1”);//中文處理
logintype=new String(buffer,“GBK”);
}
catch(UnsupportedEncodingException e)
{e.printStackTrace();}
boolean bool =rightDAO.isLogin(username, password,logintype);
if(bool){
if(logintype.equals(“1”))//判斷時哪個權限類型的登錄超級管理員
{PlublicStr=“administratorsuccess”;
}
else if(logintype.equals(“2”))//管理員
{
PlublicStr=“adminsuccess”;
}
else if(logintype.equals(“3”))//操作員
{
PlublicStr=“operatorsuccess”;
}
}
else//如果輸入的賬號時非法的賬號則在頁面上進行提示
{
ActionMessages errors = new ActionMessages();
request.getSession().setAttribute(“errors”,“賬號不存在,或沒有該登陸權限!”);
return (new ActionForward(mapping.getInput()));}
return mapping.findForward(PlublicStr);
4.2 授權管理模塊

圖4-3 授權管理界面
4.2.1 功能說明
此模塊只有超級管理員才能進行相關的操作,一般用戶無法進入該頁面進行操作。所有的管理員級別的用戶都有該超級管理員進行授權產生。授權管理模塊數據流圖4-4:

圖4-4 授權管理數據流圖
4.2.2 程序功能描述
超級管理員進入該模塊之后可以查詢管理員的信息,并可以進行管理員信息的編輯,主要的編輯是添加、刪除和修改。
添加管理員的信息的前提是保證數據庫中沒有該管理員的信息,所以在添加的時候首先要對添加的管理員在管理員表中進行檢查,如果存在則提示不能添加該管理員的信息。修改管理員的信息,作了一個人為的規定,即管理員的ID號時不允許修改的,其他的項目可以修改,修改之前要在復選框中選中,利用JavaScript代碼控制只能選擇一個管理員的信息進行修改。刪除的時候可以選擇多項和選擇所有的管理員進行刪除。
4.3 系統設置模塊

圖 4-5 系統設置界面
4.3.1 功能說明
管理員進入該功能界面進行停車場參數的設置。數據流圖4-6

圖 4-6 停車場參數數據流圖
4.3.2 程序功能描述
主要是根據管理員輸入的停車場的參數,這些參數是由管理員對停車場的參數進行初始化,通過查詢停車場參數顯示停車場的參數信息。
SystemsetForm systemsetForm = (SystemsetForm) form;
Parkparameter pp = new Parkparameter();
pp.setParkname(systemsetForm.getParkname());
System.out.println(systemsetForm.getParkname());
pp.setParktotal(Integer.parseInt(systemsetForm.getParktotal()));
pp.setEntertotal(Integer.parseInt(systemsetForm.getEntertotal()));
pp.setExittotal(Integer.parseInt(systemsetForm.getExittotal()));
pp.setParkadd(systemsetForm.getParkadd());
pp.setParktel(systemsetForm.getParktel());
ParkparameterDAO ppDao = new ParkparameterDAO();
request.setAttribute(“parkparameter”, pp);
try{ppDao.save(pp);}catch(Exception e){e.printStackTrace()}
return mapping.findForward(“systemsetsuccess”);
4.4 操作員檔案管理模塊

圖4-7 操作員檔案管理界面
4.4.1 功能說明
管理員進入該界面,查詢操作員的權限檔案信息,并可以進行添加刪除修改。數據流程圖4-8。

圖 4-8 操作員檔案管理數據流程圖
4.4.2 程序功能描述
管理員進入該模塊之后可以查詢操作員的信息,并可以進行操作員信息的編輯,主要的編輯是添加、刪除和修改。
添加操作員的信息的前提是保證數據庫中沒有該操作員的信息,所以在添加的時候首先要對添加的操作員在操作員表中進行檢查,如果存在則提示不能添加該操作員的信息。修改操作員的信息,作了一個人為的規定,即操作員的ID號時不允許修改的,其他的項目可以修改,修改之前要在復選框中選中,利用JavaScript代碼控制只能選擇一個操作員的信息進行修改。刪除的時候可以選擇多項和選擇所有的操作員進行刪除。
4.5 數據管理模塊

圖 4-9 數據管理交班記錄界面
4.5.1 功能說明
數據管理頁面主要是對停車場的數據進行管理,場內車輛管理信息的查詢,進出場數據的查詢,操作員收費金額信息的查詢,以及操作員交班記錄的查詢。在設計交班數據表中的數據時候,考慮到該表中的記錄會在上班的過程中隨時發生變化,所以在本系統中,所有與該表數據關聯的模塊中都實現了對交班記錄表數據的更新。由于這些記錄可能會出現很多,所以在頁面進行了分頁顯示。實現對停車場和操作員的綜合管理。圖4-10 數據管理流程圖。

圖4-10 數據管理流程圖
4.5.2 程序功能描述
只實現對數據庫的讀數據操作,對停車場的日常管理進行監理。綜合這些數據信息便于管理者進行必要的商業決策和人事管理等。該分頁設計的思想是將所有符合條件的數據的記錄集取出,然后根據記錄總數和每頁要顯示的記錄數進行分頁。
//分頁顯示查詢的記錄
int intPageSize;//一頁顯示的記錄數
int intRowCount;//記錄總數
int intPageCount;//總頁數
int intPage;//待顯示頁碼
String strPage;
int m,pagecounter;
int j=1;
intPageSize=10;//設置一頁顯示的記錄數
int len=intPageSize;
Turn turn;
strPage=request.getParameter(“page”);//取得待顯示頁碼
if(strPage==null)//表明在QueryString中沒有page這一個參數,此時顯示第一頁數據
{
intPage = 1;
}
else//將字符串轉換成整型
{
intPage = java.lang.Integer.parseInt(strPage);
}
if(intPage< 1)
{
intPage = 1;
}
//獲取記錄總數
intRowCount = turnlist.size();
//記算總頁數
intPageCount = (intRowCount+intPageSize-1) / intPageSize;
//調整待顯示的頁碼
if(intPage >intPageCount)
intPage = intPageCount;
if(intPageCount >0){
//將記錄指針定位到待顯示頁的第一條記錄上
len=(intPage-1)*intPageSize;
turnlist.get((intPage-1)*intPageSize);
turn=(Turn)turnlist.get((intPage-1)*intPageSize);
//顯示數據
}
m=0;
while(m< intPageSize && len<intRowCount)
{
turn=(Turn)turnlist.get(len);
len++;
m++;
%>

<%=turn.getTnoperator() %> <%=turn.getTnlogintime() %> <%=turn.getTnturntime() %> <%=turn.getEntimes() %> <%=turn.getExtimes() %> <%=turn.getTotalmoney() %> <%} %>

共<%=intRowCount%>個記錄,分<%=intPageCount%>頁顯示,您所在的頁面是:第<%=strPage %>頁 <%for(;j<=intPageCount;j++) {out.print("??"+j+""); }%> 4.6 檔案管理

圖 4-11 檔案管理界面
4.6.1 功能說明
操作員登錄該界面進行檔案管理的功能,包括卡檔案、車檔案以及用戶的檔案管理實現對以上檔案的編輯。檔案管理數據流程圖4-12。

圖4-12檔案管理數據流程圖
4.6.2 程序功能描述
檔案管理下有個小的功能模塊,卡檔案管理實現對卡的信息管理,標記卡的類型,卡的狀態,如金額,發卡時間,卡丟失后的掛失標記等信息,以及長期卡的充值。用戶管理小模塊是長期卡用戶進行的管理,在整個系統中,長期卡與車牌號以及用戶即持卡人是一一對應的關系。檔案的管理也包含對這這些信息的編輯如添加、刪除以及修改的過程。
4.7 入場管理模塊

圖 4-13 入場管理模塊界面
4.7.1 功能說明
如果有車入場,首先要檢測一下是否還有空閑的車位,如果沒有空閑車位,入場不成功。這一過程的實現通過設置每個車位的狀態來進行實現,每個車位的信息都存儲在車位信息表中。入場管理需要手動輸入一些信息,提交之后要進行必要的判斷之后按照指定車位進入停車場,在指定車位的時候是根據車位在車位表中的順序來進行指定的。為了記錄停車場的一些人員操作的信息,入場時的操作員實行自動簽名的方式,實現該方式是根據其登陸時候的名稱在入場模塊中有系統寫入。圖4-14 是入場模塊的數據流程圖。

圖 4-14入場模塊的數據流程圖
4.7.2 程序功能描述
車輛進入以后,在有空車為的情況下,手動輸入卡的信息,根據卡的信息進行判斷卡類型。長期卡如果有效直接按指定車位停車。臨時卡需要臨時發放。車輛入場后總車位數減1,該車位的狀態由先前的有車狀態標記為無車狀態。
4.8 出場管理

圖 4-15出場管理界面
4.8.1 功能說明
用戶取車時操作員使用該功能,手動輸入出場車輛的卡號,輸入出場車道編號。圖4-16是出場管理數據流程圖。

圖4-16 出場管理數據流程圖
4.8.2 程序功能描述
用戶取車,手動輸入卡的信息,并與入場表中的卡信息相比較,如果入場表中沒有記錄,說明該卡信息相關的車輛沒有入場,所以在出場時提示沒有入場,根據卡的信息進行判斷卡類型。根據入場表中的卡類型,車類型,入場時間,收費類型和出場時的時間,計算出收費的金額,調用收費模塊,將入場表中的與該車相關的入場數據從數據表中刪除,并將出入場相關的數據記錄到出入場記錄表中。交費后離場,出場后停車場的總車位數加1。
4.9 收費管理模塊

圖 4-17 收費清單界面

圖 4-18 收費標準設置界面
4.9.1 功能說明
收費管理是停車場管理系統最重要的功能之一,綜合以上入場時提供的信息,根據設置的計費標準計算出收費金額,并打印出收費清單。收費管理的數據流程如圖 4-19

圖 4-19 收費管理的數據流程
4.9.2 程序功能描述
顯示收費清單是進行收費的憑據,并打印出收費單提供給用戶。收費標準的設置有時收費和次收費,時收費以時段為系統收費提供依據。根據設置的時間段設置對應得收費金額。次收費按次收費,在指定的時間段內設置每次停車的收費金額。收費的標準也與車輛類型和卡類型有關,單位時間單位為分鐘,金額單位為元。最大金額設置收費最大的額度。

第五章 系統測試、運行維護與評價
在系統設計完成后還要經過測試階段,系統外部環境與內部因素的變化,不斷影響系統的運行,同時需要系統不斷適應這些變化,不斷完善該系統,以提高系統運行的效率與水平,這時就需要從始至終的進行系統的維護工作。
系統評價主要是指系統建成后,經過一段時間的運行,要對系統目標與功能的實現情況進行檢查,并與系統開發中設立的系統與其的目標進行對比,及時寫出系統評價報告。
系統維護與評價階段是系統生命周期中的最后一個階段,也是時間最長的一個重要階段,系統維護工作的好壞可以決定系統生命周期的長短和使用效果。
由于時間的關系,并未對所有的功能模塊進行測試,系統的測試和維護工作相對較少,這里選擇幾個典型的功能做一下測試。
5.1 測試概況及測試用例
測試是一個執行程序的過程,即要求被測程序在機器上運行。其實,不執行程序也可以發現程序的錯誤。通常將前者稱為“動態測試”,后者稱為“靜態分析”。廣義的說,它們都屬于程序測試。
動態測試也可以區分為兩類。一類把被測程序看成一個黑盒,根據程序的功能來設計測試用例,稱為黑盒測試(Black Box Testing);另一類則根據被測程序的內部結構設計測試用例,測試者需事先了解被測程序的結構,故稱為白盒測試(White Box Testing)。
在本設計中,所用測試方法是黑盒法設計的測試用例。由于篇幅關系,只列出具有代表性的測試用例,現將幾個在測試中發現的主要問題列出。
5.1.1 添加用戶信息
添加用戶信息時,其中有7個字段用戶ID、姓名、性別、電話、卡號、車牌、地址,這中間的卡號和車牌必須是卡信息表和車信息表中已存在的信息,當操作員執行添加操作時,后臺會判斷是否存在該用戶的信息。下面是添加用戶信息這一模塊,運用黑合測試方法中的等價劃分類來寫出程序功能的測試用例。步驟如下:
1.建立輸入等價類表,如表5-1所示:
表5-1 “添加用戶”的等價類表
輸入數據 有效等價類 無效等價類
卡號 ○1卡信息表中有該卡號
○2卡信息表中無該卡號

車牌 ○3車信息表中有車牌
○4車信息表中無該車牌

2.設計有效等價類需要的測試用例,如表5-2所示:
表5-1中的○1、○32個有效等價類,用一個公用測試用例,測試用例如下:

表5-2 添加用戶的有效等價類
測試數據 期望結果 測試范圍
2000,3000 輸入有效 ○1○3

3.設計一個無效等價類的測試用例,如表5-3所示:
表5-1中的○2、○42個無效等價類,用一個公用測試用例,測試用例如下表5-3:
表5-3添加用戶無效等價類
測試數據 期望結果 測試范圍
0002,0003 輸入無效 ○2○4

添加用戶信息時如果輸入表5-2中的測試數據,會提示操作員添加成功,如果輸入5-3中的測試數據,則會提示操作員用戶信息已經存在這一錯誤報告。
5.2 系統維護
軟件產品開發出來并交付用戶使用之后,就進入了軟件維護階段,維護階段是軟件生存周期中時間最長的一個階段,所花費的精力和費用也是最多的一個階段。
本系統運行階段管理工作的目的要求與開發階段有根本的區別,開發階段要求經濟地、按質按時開發好系統,而運行管理的目的是使信息系統在一個預期的時間內能正常的發揮其應有的作用,產生其應有的效益。
系統運行管理的任務圍繞這一目的開展,一般包括三個方面的工作:
(1)日常運行的管理
(2)運行情況的記錄
(3)對系統的運行情況進行檢查與評價
系統維護工作是為了適應系統內部因素和外部環境的變化,排除運行故障,不斷滿足新的要求,保證系統正常工作所采取的一切活動。離開系統維護工作,信息系統就無法生存下去。
5.2.1 系統維護的需求起因和目的
系統維護工作的主要需求起因主要有來自上級領導的命令和要求;來自業務部門的進一步要求;組織系統內部管理方式、方法、策略的變化;先進的計算機與通信信息等技術的發展和創新等因素。
軟件維護的最終目的,時滿足用戶對已開發產品的性能與運行環境不斷提高的需要,進而達到延長軟件的壽命。根據每次進行維護的具體目標可分為完善性維護、適應性維護和糾錯性維護。不管時哪種維護,其最終目的時始終如一的。
5.2.2 系統維護的內容
系統維護工作的主要內容有程序的維護、數據文件的維護、系統代碼的維護、機器設備的維護、系統維護機構和人員的變動等等。
5.2.3 系統維護工作要考慮的因素
系統維護工作時間長、范圍廣、情況復雜,一般在進行系統維護工作項目時要從系統運行的實際情況、該項維護工作對系統即有關組織的影響、系統維護所需費用和人員等資源的要求等方面來考慮。
5.2.4 系統維護工作的管理
要建立嚴格的有關的規章制度和程序,提供必要的資源保證,要有專人負責各項維護工作,職責明確。維護時期的配置管理貫穿與整個生存的周期,在運行維護的時期,其任務尤其繁重。維護管理的文檔維護日志時評價維護工作有效性的主要依據,要詳細記錄維護前后和維護過程中的重要數據和情況,為以后的維護查詢時使用。維護費用的估算,軟件維護是軟件開發的一個縮影,其復雜度和工作量不下于開發過程,要合理的做出估算。
針對本系統的維護工作,主要是在系統投入運行之后出現的問題,及時發現,找出原因,進行排除,保證系統在運行的過程中不會因為技術問題而影響整個系統的運行。
5.3 系統評價
本系統采用JSP+Struts+Hibernate+SQL Server 2000實現。JSP用于頁面的設計,Java用來處理后臺跳轉、對數據庫操作,實現對數據庫的增、刪、改等操作。使用是Tomcat6.0作為WEB服務器,提供適應性強的Intranet服務器功能,具有很高的執行效率。
該系統符合實際的停車場管理系統,為停車場管理供一個快速,簡單規范的管理平臺。這對提高信息化程度,降低人力成本有著重要的意義

結 論
本文對基于WEB的停車場管理系統的設計和實現做了闡述和分析。探討了在MyEclipse6.0的開發環境上利用Struts1.2+Hibernate3技術來分析和開發該停車場管理系統。實現基于J2EE平臺開發WEB版停車場管理系統,基本實現一般規模停車場的應用管理。
該系統設計采用了MVC開發設計模式,把整個系統的應用分成三個模塊:模型、視圖和控制器,讓他們分擔不同的任務,使整個系統在結構上看起來思路清晰,易于系統的改進和維護。系統使用時,只需要開啟服務器,在瀏覽器中即可完成對該系統的操作。停車場管理系統的收費功能是該系統的主要功能模塊,在利用在程序設置的收費標準進行計算收費金額實施收費。出入場的管理,實現卡與車的一一對應關系,在安全防盜車方面有一定作用。由于本系統只做了軟件管理方面的實現,所以在采集數據方面還需要手動輸入。由于開發能力和時間所限,本系統目前還需要在一定程度上進行改進和完善,根據以后系統在運行過程中出現的問題,主要是在系統性能、功能完善方面進一步加強。

參考文獻
[1] 梁建全,周力,孟志勇,田利軍.精通輕量級Java EE框架整合方案[M].人民郵電出版社,2008.
[2] 夏昕,曹曉剛,唐勇.深入淺出Hibernate[M].電子工業出版社,2005.
[3] 呂鳳翥,馬皓.Java語言程序設計[M].清華大學出版社,2006.
[4] 孫更新,賓晟,周峰.Struts框架結構的Java Web開發技術基礎與實踐教程[M].電子工業出版社,2008.
[5] 明日科技,梁冰,蘇宇,呂繼迪.JavaScript技術開發大全[M].人民郵電出版社,2008.
[6] 王俊標.精通Java Web開發—基于Struts、EJB、Hibernate、JBuilder[M].人民郵電出版社,2007.
[7] 史濟民,顧春華,李昌武,苑榮.軟件工程—原理、方法與應用[M].高等教育出版社,2002.
[8] 樊月華.Web技術應用基礎[M].清華大學出版社,2006.
[9] 馬海軍,景麗.Java編程原理與實踐[M].清華大學出版社,2005.
[10] 明日科技,王毅,尹相群.Struts應用開發完全手冊[M].人民郵電出版社,2007.
[11] 孫衛琴.精通Struts:基于MVC的Java Web設計與開發.電子工業出版社,2008
[12] 鄧子云,燕鋒.JSP網絡編程從基礎到實踐[M].電子工業出版社,2007

致謝
首先要感謝我的導師李正茂老師,在百忙之中用寶貴的時間為我悉心的指導,導師認真的工作態度和耐心的指導給了我很大的幫助,在大學最后的時間感受到了老師最真切和有效的鼓勵。
在學校生活的四年中,感謝每一位老師的辛勤勞動,是你們無私的奉獻使我們得以汲取更多的養分,讓我們學到知識的同時也學到了很多做人的道理。忠心祝福老師們健康快樂。
其次,要感謝我的同學,感謝他們在論文過程中給我的關心和幫助。感謝他們留給我大學生活美好的記憶。
最后感謝我的家人,正他們無盡的關懷和深沉的愛是我今生最大的財富。感謝答辯老師對我論文的批評和指正。

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

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

相關文章

游戲被攻擊了怎么辦

隨著網絡技術和網絡應用的發展&#xff0c;網絡安全問題顯得越來越重要&#xff0c;在創造一個和諧共贏的互聯網生態環境的路途中總是會遇到各種各樣的問題。最常見的當屬于DDOS攻擊&#xff08;Distributed Denial of Service&#xff09;即分布式阻斷服務。由于容易實施、難以…

【LeetCode刷題】--40.組合總和II

40.組合總和II 本題詳解&#xff1a;回溯算法 class Solution {public List<List<Integer>> combinationSum2(int[] candidates, int target) {int len candidates.length;List<List<Integer>> res new ArrayList<>();if (len 0) {return re…

深度學習之基于YoloV5車輛和行人目標檢測系統

歡迎大家點贊、收藏、關注、評論啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代碼。 文章目錄 一項目簡介YOLOv5 簡介YOLOv5 特點 車輛和行人目標檢測系統 二、功能三、系統四. 總結 一項目簡介 # 深度學習之基于 YOLOv5 車輛和行人目標檢測系統介紹 深度學習在…

2023 年 亞太賽 APMCM 國際大學生數學建模挑戰賽 |數學建模完整代碼+建模過程全解全析

當大家面臨著復雜的數學建模問題時&#xff0c;你是否曾經感到茫然無措&#xff1f;作為2022年美國大學生數學建模比賽的O獎得主&#xff0c;我為大家提供了一套優秀的解題思路&#xff0c;讓你輕松應對各種難題。 cs數模團隊在亞太賽 APMCM前為大家提供了許多資料的內容呀&…

【西行紀年番】孫悟空對戰陰界王,素衣奄奄一息,巨靈拳霸氣一擊

Hello,小伙伴們&#xff0c;我是拾荒君。 《西行紀年番》第20集已更新。為了救回素衣&#xff0c;孫悟空想盡辦法&#xff0c;最后他拜托沙悟凈幫忙&#xff0c;終于成功把自己傳送到陰界。原來&#xff0c;素衣的魂魄被陰界王藏在了他制造的人偶之中。沙悟凈提醒孫悟空必須在…

8.2 Windows驅動開發:內核解鎖與強刪文件

在某些時候我們的系統中會出現一些無法被正常刪除的文件&#xff0c;如果想要強制刪除則需要在驅動層面對其進行解鎖后才可刪掉&#xff0c;而所謂的解鎖其實就是釋放掉文件描述符&#xff08;句柄表&#xff09;占用&#xff0c;文件解鎖的核心原理是通過調用ObSetHandleAttri…

Axios使用方式

ajax是JQUERY封裝的XMLHttprequest用來發送http請求 Axios簡單點說它就是一個js庫,支持ajax請求,發送axios請求功能更加豐富,豐富在哪不知道 1.npm使用方式 vue項目中 npm install axios 2.cdn方式 <script src"https://unpkg.com/axios/dist/axios.min.js">…

【三維幾何學習】自制簡單的網格可視化軟件 — Mesh Visualization

自制簡單的網格可視化軟件 — Mesh Visualization 引言一、整體框架1.1 三角形網格1.2 界面管理1.3 VTK可視化界面 二、核心源碼2.1 三角形網格&#xff1a;TriMesh類2.2 界面Widget_Mesh_Manager2.3 VTK可視化2.4 main 引言 使用PyQt自制簡單的網格可視化軟件 - 視頻展示 本是…

Node.js入門指南(一)

目錄 Node.js入門 什么是Node.js Node.js的作用 Node.js安裝 Node.js編碼注意事項 Buffer(緩沖器&#xff09; 定義 使用 fs模塊 概念 文件寫入 文件讀取 文件移動與重命名 文件刪除 文件夾操作 查看資源狀態 路徑問題 path模塊 Node.js入門 什么是Node.js …

2023最新面試題

第一家 自我介紹介紹一下最近一個&#xff08;最熟悉的一個&#xff09;項目 項目幾個人在負責 項目實際在用了嗎&#xff0c;哪個平臺在用啊&#xff08;在哪里上線&#xff09; 你認為你自己做的項目里面哪個比較難做呢&#xff0c;項目里面有什么難點&#xff1f;常用的是V…

安卓隱私指示器學習筆記

最近了解到Google 在Android12上新增了權限指示器&#xff0c;可以在信號欄的右側顯示當前訪問錄音機和Camera的應用&#xff0c;點擊后可以跳轉到相應應用的權限界面&#xff0c;消費者可以控制權限的開啟和關閉。國內手機廠商最近幾年都在增加隱私看板供能&#xff0c;消費者…

java 中漢字轉拼音

需要引入的jar <!-- pinyin --><dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.0</version></dependency> 實現工具類 package com.julong.util;import java.util.regex…

編程語言發展史:高級語言的興起

一、高級語言的定義 高級語言是相對于匯編語言而言的&#xff0c;它是一種更加抽象、更加易于理解和使用的計算機編程語言。高級語言的特點是語法簡單、易于學習、易于使用、可讀性強、可移植性好等。高級語言的出現極大地提高了程序員的工作效率&#xff0c;同時也使得計算機…

Qt connect()方法Qt::ConnectionType

connect() Qt&#xff0c;綁定信號和槽原型&#xff1a; static QMetaObject::Connection connect(const QObject *sender, const char *signal,const QObject *receiver, const char *member, Qt::ConnectionType Qt::AutoConnection);static QMetaObject::Connection conn…

JSP:Javabean

起初&#xff0c;JavaBean的目的是為了將可以重復使用的代碼進行打包&#xff0c;在傳統的應用中&#xff0c;JavaBean主要用于實現一些可視化界面&#xff0c;如一個窗體、按鈕、文本框等&#xff0c;這樣的JavaBean稱之可視化的JavaBean。 隨著技術的不斷發展與項目的需求&am…

防火墻部署模式 -- 鏡像流量(旁路模式)

鏡像流量&#xff08;旁路模式&#xff09; 如圖&#xff0c;與單臂路由模式不同&#xff0c;旁路模式中&#xff0c;PC的流量不會流經防火墻&#xff0c;就算防火墻宕機也不會影他們之間的數據傳輸。 鏡像的原理是交換機把被鏡像端口的流量復制一份&#xff0c;發到監聽端口&…

尋找二叉樹最近公共祖先

二叉樹為BST LCR 193. 二叉搜索樹的最近公共祖先 1.1 遞歸 利用BST的性質 p root 或者 q root ,顯然根為公共祖先p < root < q 或者 p > root > q,顯然p&#xff0c;q分別位于root的一顆子樹上&#xff0c;故根為公共祖先max{p,q} < root ,顯然 p 和q 均在…

基于單片機聲光控智能路燈系統仿真設計

**單片機設計介紹&#xff0c; 基于單片機聲光控智能路燈系統仿真設計 文章目錄 一 概要二、功能設計設計思路 三、 軟件設計原理圖 五、 程序六、 文章目錄 一 概要 基于單片機的聲光控智能路燈系統是一種利用單片機技術實現智能控制的路燈系統。它通過感知環境音量和光照強度…

Axios 請求響應結果的結構

發送請求 this.$axios.get(https://apis.jxcxin.cn/api/title?urlhttps://apis.jxcxin.cn/,{params: {id: 10}}).then(res > {console.log(res)})輸出返回結果 confing 請求時的配置對象&#xff0c;如果請求的url&#xff0c;請求的方法&#xff0c;請求的參數&#xff0c…

深入理解Java注解的實現原理以及前世今生

深入理解Java注解的實現原理以及前世今生 小雪初寒&#xff0c;請添衣&#xff0c;冬棋如意&#xff0c;待良人&#xff0c;望歸期。 1.Java注解的前世今生 Java注解是一種元數據標記&#xff0c;它提供了一種在Java代碼中添加元數據&#xff08;注釋&#xff09;的方式。注解…