車輛管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
畢業(yè)論文(設(shè)計(jì))信商車輛管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)車輛調(diào)度管理模塊 專 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)摘要當(dāng)今社會(huì)的車輛數(shù)量正在以指數(shù)的形式增長,車輛為我們的生活和工作帶來了極大的方便,因此越來越多的車輛也加入到高等學(xué)校中,并且在高校的日常生活辦公中扮演著重要的角色。如果更好的實(shí)現(xiàn)車輛管理可以進(jìn)一步提高高等學(xué)校的日常工作和辦公的效率,同時(shí)也可以大大的節(jié)約學(xué)校在車輛上投入的成本,最重要的是可以更好的實(shí)現(xiàn)高等學(xué)校為學(xué)生服務(wù)的宗旨。本文分析了系統(tǒng)開發(fā)的背景以及校園車輛管理系統(tǒng)的發(fā)展現(xiàn)狀,簡要描述了系統(tǒng)需要解決的主要問題;概要描述了系統(tǒng)的整體情況;對(duì)系統(tǒng)的需求分析和架構(gòu)設(shè)計(jì)進(jìn)行了詳細(xì)描述;并對(duì)系統(tǒng)的實(shí)現(xiàn)進(jìn)行了詳細(xì)敘述。本文對(duì)信商車輛管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行了詳細(xì)的介紹,主要介紹的是車輛調(diào)度模塊,車輛調(diào)度模塊主要研究內(nèi)容有:車輛狀態(tài)動(dòng)態(tài)查詢、網(wǎng)上預(yù)訂、在線審批、派遣車輛、回車登記。信商車輛管理系統(tǒng)可以分為前臺(tái)和后臺(tái)兩個(gè)部分。后臺(tái)是給系統(tǒng)管理員用的,后臺(tái)的主要功能包括車輛基本信息管理,駕駛員基本信息管理以及費(fèi)用管理。車輛管理系統(tǒng)的前臺(tái)功能主要有車輛預(yù)約、車輛審核、用戶信息管理、注冊(cè)與登錄管理和回車登記管理等功能模塊。信商車輛管理系統(tǒng)的開發(fā)使用JSP +JavaScript 的模式實(shí)現(xiàn)前端界面層的開發(fā),在后端使用 Java+Servlet 的模式實(shí)現(xiàn)業(yè)務(wù)邏輯的開發(fā),前端通過嵌入的JavaScript代碼段可以直接實(shí)現(xiàn)與后臺(tái)服務(wù)器通信。 關(guān)鍵詞:JSP;Servlet;車輛調(diào)度;車輛預(yù)約AbstractTodays society of vehicles are growing in the form of index Numbers. The vehicles for our life and work has brought great convenience.So more and more vehicles are added to the institutions of higher learning. And in the daily life office plays an important role.Although the increase of vehicles made the higher schools daily work and work efficiency has been greatly ascend, but more and more vehicles into the campus but to the vehicle management leads to trouble.If you can better realize the vehicle management can further improve the higher schools daily work and work efficiency, but also can greatly save schools in vehicle input costs, the most important is that it can better achieve higher schools to the tenet of service.This paper analyzes the background and status of development of campus management system vehicle system development, a brief description of the main problems need to be solved; outlines the overall situation of the system, need for system analysis and architecture design are described in detail,and the system implementation is described in detail. This design and implementation of the letter and the ZCIB vehicle management system to carry out a detailed introduction, describes the vehicle scheduling module, vehicle scheduling module main contents are: the dynamic vehicle state inquiry, online booking, online approval, sending the vehicle, enter registration .The ZCIB Vehicle Management System can be divided into two parts front and back office. The background is for system administrator use, the main function of the background information including vehicle management, driver information management and expense management. Front office features vehicle management system is mainly a vehicle reservation, car review, customer information management, registration and login management and Enter registration management and other functional modules. Shin Trading vehicle management system developed using JSP + JavaScript model to achieve the development of front-end interface layer at the back end using Java + Servlet model business logic development, front-end through the embedded JavaScript code snippet can directly implement communication with the backend server.Key words: JSP; Servle; Vehicle Scheduling; Vehicle Reservation目 錄摘要IAbstractII1 緒論11.1 開發(fā)背景及意義11.2 校園車輛管理系統(tǒng)發(fā)展現(xiàn)狀11.3 研究目的21.4 論文研究內(nèi)容21.5 本論文章節(jié)安排32 需求分析42.1 系統(tǒng)技術(shù)概述42.1.1 JSP簡介42.1.2 Tomcat 服務(wù)器42.1.3 Navicat for MySQL52.1.4 B/S 結(jié)構(gòu)52.2 系統(tǒng)需求分析62.2.1 實(shí)現(xiàn)目標(biāo)62.2.2 開發(fā)環(huán)境和軟件要求72.2.3 開發(fā)平臺(tái)和數(shù)據(jù)庫的選擇72.2.4 系統(tǒng)的功能82.2.5 用戶類型和特征82.2.6 系統(tǒng)交互92.2.7 功能需求92.3 非功能需求102.3.1 業(yè)務(wù)規(guī)則102.3.2 性能需求112.4 本章小結(jié)113 系統(tǒng)設(shè)計(jì)123.1 系統(tǒng)子模塊設(shè)計(jì)123.1.1 用戶注冊(cè)123.1.2 車輛檢索133.1.3 車輛預(yù)約模塊143.1.4 用戶個(gè)人信息管理163.1.5 派遣車輛與回車登記163.2 數(shù)據(jù)庫分析與設(shè)計(jì)173.2.1 數(shù)據(jù)庫分析173.2.2 數(shù)據(jù)庫表設(shè)計(jì)183.3 本章小結(jié)224 系統(tǒng)實(shí)現(xiàn)234.1 用戶登錄模塊234.1.1 登錄處理流程234.1.2 用戶登錄實(shí)現(xiàn)234.2 用戶注冊(cè)模塊244.2.1 注冊(cè)處理流程244.2.2 用戶注冊(cè)實(shí)現(xiàn)254.3 車輛檢索264.4 車輛預(yù)約模塊274.4.1 我要預(yù)約274.4.2 我的預(yù)約304.5 個(gè)人信息管理314.6 車輛調(diào)度管理334.7 本章小結(jié)345 系統(tǒng)測(cè)試355.1測(cè)試目的355.2測(cè)試方法355.3 測(cè)試環(huán)境及工具355.4性能測(cè)試365.5可用性測(cè)試365.6功能測(cè)試過程365.6.1 系統(tǒng)管理測(cè)試365.6.2 車輛預(yù)約測(cè)試365.6.3 用戶個(gè)人中心測(cè)試375.6.4 車輛調(diào)度管理測(cè)試375.6.5 數(shù)據(jù)庫測(cè)試375.6.6 測(cè)試結(jié)果375.7 本章小結(jié)386 總結(jié)39參考文獻(xiàn)40致謝41 41畢業(yè)設(shè)計(jì)(論文)1 緒論1.1 開發(fā)背景及意義車輛管理是對(duì)所涉及到的人、財(cái)、物等資源的管理和調(diào)配,隨著交通運(yùn)輸業(yè)的飛速發(fā)展為人們的生活帶來了極大的便利,與此同時(shí),各種交通運(yùn)輸工具特別是汽車數(shù)量的劇增也給社會(huì)各方面帶來了日趨嚴(yán)重的巨大壓力。對(duì)于各事業(yè)或企業(yè)單位內(nèi)部的車輛管理,傳統(tǒng)手工操作手段由于工作量大、強(qiáng)度高,而導(dǎo)致的效率低下、出錯(cuò)率高已逐漸不能滿足目前車輛管理的需求。依據(jù)項(xiàng)目需求特點(diǎn),圍繞提高車輛使用和管理工作,結(jié)合車輛自身的特點(diǎn),完成對(duì)通行車輛調(diào)度的管理,對(duì)車輛使用調(diào)度、車輛信息和相關(guān)人員的信息管理、使用記錄、事故等信息統(tǒng)一管理,進(jìn)一步提高車輛管理、使用效率和安全保障,做到車輛狀態(tài)有案可查、有據(jù)可依,實(shí)現(xiàn)車輛的科學(xué)化、自動(dòng)化管理。在智能化的管理當(dāng)中,信息商務(wù)學(xué)院的車輛管理成為了急需解決的問題之一。高等教育時(shí)代的到來給信息商務(wù)學(xué)院的發(fā)展帶來了機(jī)遇,但同時(shí)越來越多的工作量需要使用更多的車輛來方便工作,這樣就給學(xué)校的車輛管理帶來了巨大的壓力,我校必須合理安排好下屬各個(gè)學(xué)院的車輛使用情況,提供即時(shí)的車輛信息,只有做到這一點(diǎn),才能使我校這個(gè)小社會(huì)更好的運(yùn)轉(zhuǎn)起來,最大化的提高學(xué)校的整體工作效率。 現(xiàn)今的情況是車輛的即時(shí)資料信息價(jià)值日漸提升,信息商務(wù)學(xué)院對(duì)車輛有著更好的要求,要利用好我校體系內(nèi)部的每一輛車,使得每一輛車都能發(fā)揮自己最大的價(jià)值,將車輛合理的進(jìn)行分配和使用。充分使用車輛的同時(shí),更要實(shí)現(xiàn)對(duì)汽車的維修和保養(yǎng),對(duì)報(bào)廢的車輛及時(shí)處理,在不斷降低成本的同時(shí)提高車輛的利用效率。由此,學(xué)校需要提高自己的對(duì)車輛的管理水平,實(shí)現(xiàn)車輛的信息化管理。將計(jì)算機(jī)的優(yōu)勢(shì)融入到車輛管理中來,利用計(jì)算機(jī)系統(tǒng)的智能化控制,實(shí)現(xiàn)車輛派遣、分配管理等原來人工處理的工作,減輕車輛管理部門的工作量的同時(shí),提高車輛管理的效率,大幅度的降低了車輛管理所需的費(fèi)用,形成智能的高校車輛管理系統(tǒng)。1.2 校園車輛管理系統(tǒng)發(fā)展現(xiàn)狀車輛管理系統(tǒng)在國內(nèi)也隨著中國互聯(lián)網(wǎng)的興起不斷的發(fā)展,在政府部門和高端企業(yè)的引導(dǎo)下,車輛管理系統(tǒng)變得越來越大眾化,越來越多的人意識(shí)到車輛的規(guī)范管理帶來好的效益。然而在高校這個(gè)領(lǐng)域還并沒有意識(shí)到對(duì)校園管理和學(xué)校運(yùn)作的重要性,國內(nèi)的絕大多數(shù)的高校沒有嘗試建立車輛管理規(guī)范系統(tǒng)。高校的政策和我國軟件的發(fā)展?fàn)顩r決定了現(xiàn)在的 OA 系統(tǒng)很少融入了車輛管理部分,因?yàn)檫€沒有意識(shí)到車輛管理帶來的效益,車輛管理涵蓋了車輛信息、資產(chǎn)信息、使用狀況和人力資源等等,他們之間緊密的配合,會(huì)對(duì)整體的運(yùn)行產(chǎn)生重要的影響。車輛系統(tǒng)對(duì)車輛使用者的管理,部門擁有車輛資產(chǎn)的把握和車輛使用的實(shí)際情況正是我們最需要的部分。 車輛管理系統(tǒng)的種類繁多,有綜合性的也有單獨(dú)功能模塊的。但是對(duì)于高校來說,既缺少應(yīng)用在學(xué)??偛康木C合性管理系統(tǒng),也缺少單獨(dú)應(yīng)用于校園的校園校門車輛管理系統(tǒng),因此在我國經(jīng)濟(jì)和科技高速發(fā)展的背景下,如何讓車輛管理系統(tǒng)走進(jìn)我們的校園管理體系,保障車輛使用和強(qiáng)化日常的管理,成為我們當(dāng)前需要解決的實(shí)際問題。1.3 研究目的目前的信息商務(wù)學(xué)院領(lǐng)域內(nèi)的 OA 辦公信息化系統(tǒng)已經(jīng)普及,但車輛管理系統(tǒng)任然屬于邊緣化,車輛管理系統(tǒng)沒有獨(dú)立的被部署,也沒有鏈接在 OA 管理系統(tǒng)中,所以在我校搭建車輛管理系統(tǒng)是當(dāng)務(wù)之急?,F(xiàn)車輛管理系統(tǒng),可以在我校范圍內(nèi)統(tǒng)一管理學(xué)校的車輛資源,通過合理的調(diào)配車輛,更好的為學(xué)校日常工作服務(wù),在未來高等教育普及后,越來越多的學(xué)生就會(huì)涌入校園,車輛管理系統(tǒng)的搭建可以為未來學(xué)生規(guī)模擴(kuò)大做好準(zhǔn)備,更好的實(shí)現(xiàn)學(xué)校為學(xué)生服務(wù)的宗旨。同時(shí)高校屬于事業(yè)機(jī)關(guān),類似與政府部門,可以通過車輛管理系統(tǒng)更好的監(jiān)管車輛的使用情況,避免公車濫用、公車私用等的行為,徹底實(shí)現(xiàn)車輛的智能化聯(lián)網(wǎng)監(jiān)控。1.4 論文研究內(nèi)容由于我校在車輛管理系統(tǒng)上面的缺失,不具備自動(dòng)化、信息化、智能化的車輛管理,在高等學(xué)校高速發(fā)展的今天,使得學(xué)校這個(gè)小社會(huì)更好的平穩(wěn)運(yùn)行、強(qiáng)化日常管理成了我們當(dāng)前的研究課題。本文主要是通過分析綜合已有的各行各業(yè)的車輛管理系統(tǒng)模型,構(gòu)造出適合學(xué)校使用的智能車輛管理系統(tǒng),吸取了之前管理系統(tǒng)在業(yè)務(wù)流程中的經(jīng)驗(yàn)和教訓(xùn),在先進(jìn)的技術(shù)和思想引導(dǎo)下,充分利用學(xué)校的優(yōu)勢(shì),實(shí)現(xiàn)高效的、智能的、面向信息商務(wù)學(xué)院的系統(tǒng)。1.5 本論文章節(jié)安排本文以項(xiàng)目設(shè)計(jì)為主,首先討論了研究背景和意義,給出了系統(tǒng)需求分析與車輛管理系統(tǒng)的概要設(shè)計(jì),然后給出了該系統(tǒng)的主界面和各個(gè)功能模塊設(shè)計(jì)與實(shí)現(xiàn)。本文的主要安排如下:第一章:介紹了課題的研究背景,指出課題是在車輛信息化的大背景下產(chǎn)生的;討論了課題的研究意義;討論了設(shè)計(jì)應(yīng)該實(shí)現(xiàn)的目標(biāo);分析了國內(nèi)外的發(fā)展?fàn)顩r。第二章:相關(guān)技術(shù)選擇和需求分析,指出進(jìn)行可行性分析的各個(gè)方面;為開發(fā)環(huán)境的介紹,分別介紹了Java和Tomcat的特點(diǎn)和優(yōu)勢(shì),充分展示了所用的語言和服務(wù)器的好處。第三章:系統(tǒng)的總體設(shè)計(jì),分析了車輛管理系統(tǒng)的總體功能;分析了該系統(tǒng)的數(shù)據(jù)流程圖,討論了系統(tǒng)的數(shù)據(jù)流圖的特性和畫出了系統(tǒng)流程圖;數(shù)據(jù)庫分析,分析數(shù)據(jù)庫的特點(diǎn)。第四章:系統(tǒng)的實(shí)現(xiàn),給出了系統(tǒng)的完整的功能分析;進(jìn)行了系統(tǒng)的結(jié)構(gòu)的設(shè)計(jì),詳細(xì)說明了每一個(gè)子模塊所應(yīng)該具有的功能;分析了模塊功能設(shè)計(jì),具體指出了每一個(gè)功能模塊所應(yīng)該包含的子模塊;分析了系統(tǒng)的模型結(jié)構(gòu);給出了數(shù)據(jù)庫的介紹以及數(shù)據(jù)庫的創(chuàng)建過程;數(shù)據(jù)庫表的關(guān)聯(lián)及數(shù)據(jù)庫表結(jié)構(gòu)。第五章:系統(tǒng)測(cè)試:對(duì)系統(tǒng)進(jìn)行功能測(cè)試,得出結(jié)果。第六章:本文總結(jié)。對(duì)信商車輛管理系統(tǒng)進(jìn)行總體評(píng)價(jià),對(duì)未來需要改進(jìn)的地方進(jìn)行總結(jié)。2 需求分析通過對(duì)我校的車輛使用情況進(jìn)行詳細(xì)的調(diào)查,明確了車輛管理系統(tǒng)所要實(shí)現(xiàn)的功能以及界面,本產(chǎn)品是在已有項(xiàng)目經(jīng)驗(yàn)的基礎(chǔ)上進(jìn)行開發(fā)的,在需求上充分考慮高校使用的實(shí)際情況,按照需求分析逐步實(shí)施系統(tǒng)設(shè)計(jì)。根據(jù)當(dāng)今管理系統(tǒng)軟件開發(fā)的技術(shù)使用情況,選擇合適的技術(shù)來進(jìn)行系統(tǒng)的實(shí)現(xiàn)。本系統(tǒng)主要適用于信息商務(wù)學(xué)院的車輛信息管理和車輛調(diào)度,旨在提高我學(xué)校對(duì)車輛的有效管理,提高辦事效能。2.1 系統(tǒng)技術(shù)概述通過全面分析高效智能車輛管理系統(tǒng)的各項(xiàng)需求,考慮到我校的軟硬件條件,特別是在校園網(wǎng)這個(gè)大局域網(wǎng)內(nèi)部,我們使用面向?yàn)g覽器的開發(fā)框架,使得各個(gè)部門利用網(wǎng)絡(luò)就可以登陸系統(tǒng),因此 B/S 結(jié)構(gòu)的開發(fā)成為了我們的選擇?;诳蚣艿倪x擇后,我們選擇 Java 語言的模式開發(fā),服務(wù)器我們選擇 Tomcat,前臺(tái)開發(fā)語言選擇 JSP,后臺(tái)開發(fā)語言使用 Java,MyEclipse 作為 IDE 來實(shí)現(xiàn)代碼的開發(fā),而在數(shù)據(jù)庫方面我們選擇MySQL等。2.1.1 JSP簡介JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁所需要的功能。利用JSP技術(shù),動(dòng)態(tài)信息由JSP頁面來表現(xiàn),JSP頁面由安裝在Web服務(wù)器或者使用JSP的應(yīng)用服務(wù)器上的JSP引擎執(zhí)行。JSP引擎接受客戶端對(duì)JSP頁面的請(qǐng)求,并且生成JSP頁面作為對(duì)客戶端的響應(yīng)。2.1.2 Tomcat 服務(wù)器 Tomcat 是來自 Java 領(lǐng)域的 Web 服務(wù)器,通常用于運(yùn)行基于 Java 的 JSP 和 Servlet網(wǎng)頁開發(fā)技術(shù)。良好的擴(kuò)展性和使用資源少是 Tomcat 的主要優(yōu)勢(shì),與我們經(jīng)常使用的Apache 相比,Tomcat 是在 Apache 基礎(chǔ)上的擴(kuò)充,用于發(fā)布基于 Java 的各種程序。最新的 Servlet 和 JSP 規(guī)范都可以在 Tomcat 中使用,因此我們首選 Tomcat 服務(wù)器來完成開發(fā)和測(cè)試。2.1.3 Navicat for MySQLNavicat for MySQL是一款強(qiáng)大的 MySQL 數(shù)據(jù)庫管理和開發(fā)工具,它為專業(yè)開發(fā)者提供了一套強(qiáng)大的足夠尖端的工具,但對(duì)于新用戶仍然易于學(xué)習(xí)。Navicat for MySQL 基于Windows平臺(tái),為 MySQL 量身訂作,提供類似于 MySQL 的用管理界面工具。此解決方案的出現(xiàn),將解放 PHP、J2EE 等程序員以及數(shù)據(jù)庫設(shè)計(jì)者、管理者的大腦,降低開發(fā)成本,為用戶帶來更高的開發(fā)效率。Navicat for MySQL 使用了極好的圖形用戶界面(GUI),可以用一種安全和更為容易的方式快速和容易地創(chuàng)建、組織、存取和共享信息。 用戶可完全控制 MySQL 數(shù)據(jù)庫和顯示不同的管理資料,包括一個(gè)多功能的圖形化管理用戶和訪問權(quán)限的管理工具,方便將數(shù)據(jù)從一個(gè)數(shù)據(jù)庫轉(zhuǎn)移到另一個(gè)數(shù)據(jù)庫中(Local to Remote、Remote to Remote、Remote to Local),進(jìn)行檔案備份。 Navicat for MySQL 支援 Unicode,以及本地或遠(yuǎn)程 MySQL 服務(wù)器多連線,用戶可瀏覽數(shù)據(jù)庫、建立和刪除數(shù)據(jù)庫、編輯數(shù)據(jù)、建立或執(zhí)行 SQL queries、管理用戶權(quán)限(安全設(shè)定)、將數(shù)據(jù)庫備份/復(fù)原、匯入/匯出數(shù)據(jù)(支援 CSV, TXT, DBF 和 XML 檔案種類)等。軟件與任何 MySQL 5.0.x 伺服器版本兼容,支援 Triggers,以及 BINARY VARBINARY/BIT 數(shù)據(jù)種類等的規(guī)范。2.1.4 B/S 結(jié)構(gòu) B/S (Browser/Server)是基于瀏覽器的服務(wù)結(jié)構(gòu),是在傳統(tǒng)客戶機(jī)/服務(wù)器結(jié)構(gòu)上的改進(jìn),通過對(duì)互聯(lián)網(wǎng)瀏覽器的擴(kuò)展,使瀏覽器代替了客戶機(jī),形成了瀏覽器和服務(wù)器結(jié)構(gòu)。B/S 結(jié)構(gòu)將邏輯層和界面層分開,使得客戶端可能更簡單的實(shí)現(xiàn)訪問,同時(shí)可以是互聯(lián)網(wǎng)上的用戶同時(shí)參與訪問,降低了客戶端的負(fù)載和提高了擴(kuò)展性,同時(shí)也降低了用戶的成本。B/S 結(jié)構(gòu)已經(jīng)成為了當(dāng)下流行的開發(fā)結(jié)構(gòu),本次系統(tǒng)實(shí)現(xiàn)我們將使用三層分布式架構(gòu)(B/S)。與 C/S 結(jié)構(gòu)相比,B/S 結(jié)構(gòu)具有自身的優(yōu)勢(shì): (1)維護(hù)處理簡單。B/S 架構(gòu)只需要在互聯(lián)網(wǎng)上就能使用,Web 服務(wù)器端與服務(wù)器端分離,客戶端很少負(fù)責(zé)邏輯業(yè)務(wù);而 C/S 結(jié)構(gòu)則牽一發(fā)而動(dòng)全身,維護(hù)處理起來與B/S 架構(gòu)相比不方便(2)使用簡單。B/S 架構(gòu)的軟件是分布式的,客戶端只需要通過瀏覽器就可達(dá)到訪問的目的,使用起來極其方便。而 C/S 結(jié)構(gòu)的軟件的用戶必須通過安裝客戶端的方式才能得以訪問系統(tǒng)。 (3)服務(wù)器端負(fù)載較重。B/S 架構(gòu)的軟件的主要邏輯層都在服務(wù)器端,因此當(dāng)面臨海量信息的時(shí)候,服務(wù)器端負(fù)載就會(huì)越來越大,這也就給軟件本身帶來了極大的風(fēng)險(xiǎn),極容易發(fā)生故障。B/S的這些優(yōu)點(diǎn)使得其在軟件開發(fā)中使用的十分廣泛,如圖2-1為B/S架構(gòu)模型圖。圖2-1 B/S架構(gòu)模型圖2.2 系統(tǒng)需求分析2.2.1 實(shí)現(xiàn)目標(biāo)隨著信商師生數(shù)量不斷增加,對(duì)智能化的車輛管理系統(tǒng)的需求迫在眉睫,針對(duì)這種情況,本系統(tǒng)主要可以完成以下任務(wù): (1)車輛動(dòng)態(tài)查詢通過網(wǎng)絡(luò)動(dòng)態(tài)實(shí)時(shí)的查詢到車輛的使用狀態(tài),管理人員可以及時(shí)掌握車輛總體情況,用車人以此預(yù)訂車量。車輛的動(dòng)態(tài)查詢是為了與網(wǎng)上預(yù)訂保持一致,數(shù)據(jù)庫在刷新頁面時(shí)會(huì)更新。(2)網(wǎng)上預(yù)訂用車人通過網(wǎng)絡(luò)選定車輛,登記用車目的、用車時(shí)間、目的地等用車申請(qǐng)相關(guān)信息。用戶可以在線查看并選擇合適的車輛和司機(jī),選擇之后填寫車輛預(yù)約表進(jìn)行申請(qǐng),預(yù)約表主要包含所申請(qǐng)使用的車輛、駕駛員、人數(shù)、事由、預(yù)計(jì)時(shí)間等信息,填寫完畢后進(jìn)行提交,由管理員進(jìn)行審核。(3)在線審批車輛管理人員在線批此用車申請(qǐng)信息。當(dāng)用戶提交預(yù)約申請(qǐng)表后,管理員可以在自己的頁面進(jìn)行查看,如果用戶所填寫內(nèi)容符合實(shí)際情況,管理員進(jìn)行批準(zhǔn)操作,用戶預(yù)約成功,如果所填情況不實(shí),管理員進(jìn)行退回操作,用戶重新預(yù)約。(4)派遣車輛應(yīng)用系統(tǒng)打印車輛調(diào)度單,派遣車輛完成出車任務(wù)。車輛預(yù)約成功后,在網(wǎng)頁上可以打印車輛調(diào)度單,管理員憑此調(diào)度單來派遣車輛,以完成出車任務(wù)。(5)回車登記根據(jù)回車報(bào)告錄入本次出車費(fèi)用、里程等相關(guān)信息?;剀噲?bào)告單是由司機(jī)所填的車輛的費(fèi)用信息,行車距離等信息。車輛返回以后,司機(jī)需將回車登記表交給管理員,管理員將出車費(fèi)用、里程等相關(guān)信息錄入系統(tǒng),以方便日后查看。2.2.2 開發(fā)環(huán)境和軟件要求該系統(tǒng)為 B/S 三層結(jié)構(gòu),它的運(yùn)行環(huán)境分瀏覽器、WEB 服務(wù)器端和數(shù)據(jù)庫三部分。 客戶端:IE6.0 瀏覽器,Google 等瀏覽器 WEB 服務(wù)器端: Windows 操作系統(tǒng) 數(shù)據(jù)庫訪問:DAO,Hibernate ,Tomcat 6.0 數(shù)據(jù)庫服務(wù)器端:Windows 操作系統(tǒng) 數(shù)據(jù)庫系統(tǒng):MySQL 2.2.3 開發(fā)平臺(tái)和數(shù)據(jù)庫的選擇 本文中的高校智能車輛管理系統(tǒng)以MyEclipse 6.5為開發(fā)平臺(tái)來實(shí)現(xiàn)Java領(lǐng)域的各項(xiàng)編程技術(shù),采用 MySQL數(shù)據(jù)庫進(jìn)行研究。 (1)數(shù)據(jù)庫的選擇 MySQL是當(dāng)前比較流行的一種數(shù)據(jù)庫管理系統(tǒng),它具有操作容易,便于聯(lián)機(jī)分析管理,數(shù)據(jù)存儲(chǔ)容量巨大等特點(diǎn),成為了 B/S 結(jié)構(gòu)和 C/S 結(jié)構(gòu)軟件開發(fā)的重要數(shù)據(jù)存儲(chǔ)管理工具。由于MySQL數(shù)據(jù)庫具有極強(qiáng)的可用性、可擴(kuò)展性、和數(shù)據(jù)安全性,在與 Java 結(jié)合方面具有先天的優(yōu)勢(shì),目前主流的基于 Java 常用的數(shù)據(jù)庫中 Oracle 使用比例最高,最主要就是源于它具有極強(qiáng)的存儲(chǔ)能力,甚至超過其他數(shù)據(jù)庫產(chǎn)品。因此,在本次高校智能車輛管理系統(tǒng)的實(shí)現(xiàn)過程中我們使用 Oracle 作為數(shù)據(jù)庫。 (2)開發(fā)平臺(tái) MyEclipse是對(duì) Eclipse IDE 的基礎(chǔ)上擴(kuò)展而來,具有跨 Windows 平臺(tái)和 Linux 平臺(tái)的特性,面向 Java 語言的開發(fā)環(huán)境。MyEclipse 可以用于提高數(shù)據(jù)庫和 J2EE 開發(fā)程序的效率,擁有編碼,調(diào)試和發(fā)布等功能,可以實(shí)現(xiàn)如 HTML,JSP,Javascript 等語言技術(shù)的開發(fā)使用。2.2.4 系統(tǒng)的功能 本產(chǎn)品分為車輛查詢模塊、車輛預(yù)約模塊、審核預(yù)約模塊、車輛調(diào)度模塊、用戶個(gè)人信息管理模塊、用戶登錄注冊(cè)模塊和回車登記管理七大主要功能模塊,這七部分功能共同組成了信商車輛管理系統(tǒng)的車輛調(diào)度管理。本系統(tǒng)使用網(wǎng)站實(shí)現(xiàn)用戶登陸,獲得自己的管理權(quán)限和可以瀏覽的信息,并根據(jù)這個(gè)信息實(shí)現(xiàn)聯(lián)接和驗(yàn)證。 2.2.5 用戶類型和特征 本產(chǎn)品主要面向信商院校的用戶群體: (1)信商院校的車輛管理部門 這類用戶是該產(chǎn)品的主要使用者,他們一般熟悉學(xué)校的車輛管理業(yè)務(wù),但在計(jì)算機(jī)的使用上可能具有一定程度的欠缺。 (2)查詢分析用戶 作為管理者對(duì)數(shù)據(jù)進(jìn)行查詢分析,是最重要的使用人。 (3)系統(tǒng)管理用戶 這類用戶是該產(chǎn)品的次要使用者,他們利用該系統(tǒng)對(duì)系統(tǒng)進(jìn)行維護(hù)。這類用戶熟悉計(jì)算機(jī)應(yīng)用,但在業(yè)務(wù)上可能有所欠缺。 2.2.6 系統(tǒng)交互確定系統(tǒng)用例后,繼續(xù)完成用例的細(xì)化階段,利用UML中的順序圖描述參與者與系統(tǒng)的交互,用活動(dòng)圖來描述工作流程。以下是信商車輛管理系統(tǒng)中用戶角色來完成順序圖的描述。用戶預(yù)約車輛時(shí)序圖如圖2-2所示。圖2-2 用戶預(yù)約車輛時(shí)序圖2.2.7 功能需求 前臺(tái)功能:登陸系統(tǒng)的初始時(shí)后,系統(tǒng)驗(yàn)證登陸帳號(hào)和密碼。當(dāng)用戶登陸成功后進(jìn)入到主界面中,系統(tǒng)根據(jù)用戶的級(jí)別給予相應(yīng)的權(quán)限,用戶的權(quán)限決定了用戶在系統(tǒng)的可見的部分和可執(zhí)行的操作功能。通過點(diǎn)擊界面中的功能選項(xiàng),來選擇所需要執(zhí)行的功能,點(diǎn)擊完成后,系統(tǒng)將請(qǐng)求傳向后臺(tái),后臺(tái)處理生成結(jié)果后返回到前臺(tái)界面。后臺(tái)功能:后臺(tái)實(shí)現(xiàn)系統(tǒng)的管理和前臺(tái)功能相適應(yīng)的請(qǐng)求,通過對(duì)存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫端通過不斷的操作實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)與提出,完成的結(jié)果返回到前臺(tái)當(dāng)中。 系統(tǒng)功能模塊用例圖,如圖2-3所示。圖2-3 系統(tǒng)功能模塊用例圖2.3 非功能需求 2.3.1 業(yè)務(wù)規(guī)則 本系統(tǒng)分為兩種權(quán)限角色,包括管理員和普通用戶。其中普通用戶可以瀏覽前臺(tái)的車輛展示頁面,如需預(yù)約車輛可進(jìn)行操作,并填寫申請(qǐng)表。后臺(tái)管理員對(duì)申請(qǐng)進(jìn)行審核,審核通過后進(jìn)行車輛派遣。 2.3.2 性能需求 系統(tǒng)需要實(shí)現(xiàn)平穩(wěn)的運(yùn)行,保障對(duì)客戶端的響應(yīng)迅速,確保數(shù)據(jù)存儲(chǔ)安全,具有性能上的擴(kuò)展能力。 2.4 本章小結(jié) 本章主要介紹了系統(tǒng)開發(fā)所選擇的技術(shù),選出最適合的技術(shù)完成系統(tǒng)的開發(fā),并對(duì)相關(guān)重要的技術(shù)進(jìn)行重點(diǎn)介紹。同時(shí)完成了對(duì)學(xué)校車輛管理的調(diào)研,通過調(diào)研結(jié)果得出需求分析,將需求分類歸納出一個(gè)個(gè)功能模塊。制定出軟件的設(shè)計(jì)規(guī)則和標(biāo)準(zhǔn)、功能需求和非功能需求,為下一步系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)做好了準(zhǔn)備。3 系統(tǒng)設(shè)計(jì)本章將詳細(xì)的分析介紹用戶模塊的各個(gè)功能,功能的實(shí)現(xiàn)以及遇到的問題和解決問題的方法。結(jié)構(gòu)框架圖能清楚的呈現(xiàn)出系統(tǒng)的框架,用戶模塊主要有用戶登錄注冊(cè),車輛搜索,預(yù)約表管理,個(gè)人信息管理,車輛派遣等五個(gè)模塊;后臺(tái)模塊的主要有產(chǎn)品管理,產(chǎn)品類別管理,訂單管理,信息管理和管理員管理功能,各個(gè)模塊都有精確的分工。本文著重介紹前臺(tái)模塊。根據(jù)對(duì)系統(tǒng)的模塊設(shè)計(jì),畫出系統(tǒng)的功能模塊圖。系統(tǒng)功能模塊示意圖如圖3-1所示。圖3-1 系統(tǒng)框架結(jié)構(gòu)圖3.1 系統(tǒng)子模塊設(shè)計(jì)3.1.1 用戶注冊(cè)用戶從主界面點(diǎn)擊注冊(cè),進(jìn)入注冊(cè)頁面,填寫相應(yīng)資料,點(diǎn)擊提交,既完成注冊(cè),成為會(huì)員。如果信息有誤或者格式不對(duì),則給予提示,用戶可按提示填寫正確的資料。(1)用戶名填寫在用戶注冊(cè)頁面,用戶需要對(duì)所要求的資料進(jìn)行填寫。填寫用戶名時(shí),系統(tǒng)需要判斷用戶名是否可用,即在數(shù)據(jù)庫user表中是否已有相同的用戶名字段存在,如果有即用戶名重復(fù),則不可用。(2)確認(rèn)密碼,密碼需要輸入兩遍,系統(tǒng)需要將第二與第一遍所輸入的密碼進(jìn)行對(duì)比,如果一致,則可用。(3)其他資料完整的檢測(cè),系統(tǒng)需要檢測(cè)這些文本框在提交時(shí)是否為空,如果為空則提示信息不完整。以上三點(diǎn)都符合,則可以完成注冊(cè)。用戶注冊(cè)模塊的流程圖,如圖3-2所示。圖3-2 用戶注冊(cè)流程圖3.1.2 車輛檢索用戶未登錄也可從主界面上直接查看所有車輛列表或?qū)囕v進(jìn)行檢索。使用搜索工具對(duì)車輛進(jìn)行搜索查詢??煞诸惒樵?。用戶可以選擇車輛的類別,在類別下拉菜單中,選出自己需要搜索的類別即可,系統(tǒng)根據(jù)此類別的名稱返回?cái)?shù)據(jù)庫進(jìn)行檢索,返回檢索結(jié)果。查詢結(jié)果直接顯示。(1)車輛添加到預(yù)約表,用戶對(duì)所選擇的車輛進(jìn)行預(yù)約,系統(tǒng)讀取車輛信息之后,自動(dòng)在頁面中生成車輛預(yù)約表信息。(2)在確認(rèn)預(yù)約時(shí),需填寫申請(qǐng)表,提交申請(qǐng)表。(3)在預(yù)約車輛頁面中,每項(xiàng)預(yù)約記錄都有刪除這一選項(xiàng)功能,用戶點(diǎn)擊刪除,系統(tǒng)則清除此條信息。車輛查詢流程圖如圖3-3所示。圖3-3 車輛查詢模塊流程圖3.1.3 車輛預(yù)約模塊用戶注冊(cè)成功登錄之后進(jìn)行預(yù)約,把要預(yù)約的車輛添加到預(yù)約表,可對(duì)預(yù)約表中的車輛進(jìn)行管理。管理包括是否刪除所選車輛,選擇好之后,可選擇繼續(xù)預(yù)約,或是去填寫申請(qǐng)表。繼續(xù)預(yù)約保留列表中車輛信息,可繼續(xù)添加車輛。去填寫申請(qǐng)表則跳轉(zhuǎn)進(jìn)入用戶申請(qǐng)?zhí)顚戫撁妗S脩籼詈蒙暾?qǐng)單后提交申請(qǐng)則確認(rèn)生成申請(qǐng)。用戶通過用戶面板進(jìn)入我的預(yù)約??刹樵冏约旱念A(yù)約以及預(yù)約詳情,但不可以進(jìn)行修改。車輛預(yù)約流程圖,如圖3-4所示。圖3-4 車輛預(yù)約模塊流程圖3.1.4 用戶個(gè)人信息管理用戶在用戶中心中點(diǎn)擊修改信息和修改密碼可自行修改個(gè)人的資料,用戶名不可修改,其他信息都可修改。用戶名在注冊(cè)時(shí)是可以修改的,一旦完成了注冊(cè),用戶名在庫表中便是主鍵,是不可以更改的,這也是用戶身份的標(biāo)識(shí)。用戶修改密碼和其他信息,與用戶注冊(cè)時(shí)的操作和系統(tǒng)的判定都是一樣的。如圖3-5所示為用戶信息修改流程圖。圖3-5 用戶信息修改流程圖3.1.5 派遣車輛與回車登記車輛預(yù)約時(shí)生成的申請(qǐng)單初始狀態(tài)為未審核,管理員審核通過后,管理員需根據(jù)申請(qǐng)單派遣車輛出車。在車輛返回學(xué)校時(shí),司機(jī)需要跟管理員聯(lián)系,上交費(fèi)用表。管理員在系統(tǒng)上將該次申請(qǐng)狀態(tài)標(biāo)記為已完成,進(jìn)行費(fèi)用登記,即完成回車登記。如圖3-6所示為派遣車輛流程圖。圖3-6 派遣車輛流程圖3.2 數(shù)據(jù)庫分析與設(shè)計(jì)3.2.1 數(shù)據(jù)庫分析根據(jù)對(duì)信商車輛的調(diào)研,以及參考已有的車輛管理系統(tǒng),設(shè)計(jì)出系統(tǒng)的數(shù)據(jù)庫。在設(shè)計(jì)數(shù)據(jù)庫時(shí)考慮到用戶的實(shí)際需求以及我校車輛管理的現(xiàn)有狀況,分別設(shè)計(jì)出系統(tǒng)中所涉及的實(shí)例所有屬性。并根據(jù)分析系統(tǒng)的流程設(shè)計(jì)出用戶模塊各個(gè)實(shí)例之間的聯(lián)系。用戶模塊相關(guān)的E-R圖,如圖3-7所示。圖3-7用戶模塊E-R圖3.2.2 數(shù)據(jù)庫表設(shè)計(jì)(1)車輛表(car)用來記錄商品的各項(xiàng)信息,考慮到信息的完整性,所有的字段均不可以為空。車輛品牌通過外鍵brand_id進(jìn)行傳遞,車輛類型通過外鍵type_id進(jìn)行傳遞,車輛規(guī)格通過外鍵specification_id進(jìn)行傳遞。車輛表各字段及其意義,如表3-1所示。表3-1 車輛表(car)字段名類型長度允許空描述car_idint11否車輛ID,主鍵,自增licenseplatevarchar32否牌照brand_idint32否車輛品牌,外健type_idint32否車輛類型,外鍵specification_idint11否車輛規(guī)格,外鍵buydatevarchar32否購入時(shí)間 pricefloat0否購入價(jià)格from_idvarchar11否提供者/制造商ID appearancetext0否車輛外觀及詳細(xì)描述beizhuvarchar255是備注carflagint11否狀態(tài),車輛是否可用(2)車輛品牌表(brand)記錄車輛品牌信息,表中各字段設(shè)計(jì)如表3-2所示。表3-2 車輛品牌表(brand)字段名類型長度允許空描述brand_idint11否車輛品牌ID,主鍵,自增brand_namevarchar32否車輛品牌名稱sortint11否排序號(hào)(3)車輛類型表(cartype)記錄車輛類型信息,表中各字段設(shè)計(jì)如表3-3所示。表3-3 車輛類型表(cartype)字段類型長度允許空描述type_idint 11否車輛類型ID,主鍵,自增type_namevarchar32否車輛類型名稱sortint11否排序號(hào)(4)車輛規(guī)格表(carspecification)記錄車輛規(guī)格信息,表中各字段設(shè)計(jì)如表3-4所示。表3-4 車輛規(guī)格表(carspecification)字段類型長度允許空描述specification_idint 11否車輛規(guī)格ID,主鍵,自增specification_namevarchar32否車輛規(guī)格名稱sortint11否排序號(hào)type_idint11否類型ID,外鍵(5)車輛來源表(carfrom)記錄車輛的提供者或者制造商的詳細(xì)信息,表中各字段設(shè)計(jì)如表3-5所示。表3-5 車輛來源表(carfrom)字段類型長度允許空描述from_idint 11否車輛來源ID,主鍵,自增from_namevarchar32否車輛來源phoneint11否排序號(hào)addressvarchar32否地址beizhuvarchar255是備注(6)用戶表(user)用來存儲(chǔ)用戶的基本信息,基本信息都是用戶注冊(cè)填寫。其中密碼(password)的存儲(chǔ)并非直觀的用戶密碼,而是由MD5加密后的字符串。用戶表各字段及其意義,如表3-6所示。表3-6 用戶表(user)字段名類型長度允許空描述useridint11否用戶ID,主鍵,自增usernamevarchar32否用戶名passwordint32否密碼sexvarchar32否性別departmentvarchar32否所在部門positionvarchar32否職位telvarchar32否聯(lián)系電話(7)申請(qǐng)表(application)是存放用戶填寫申請(qǐng)表后生成的申請(qǐng)信息,其中userid為申請(qǐng)表的外鍵,存儲(chǔ)申請(qǐng)車輛用戶的id。申請(qǐng)表各字段及其意義,如表3-7所示。表3-7 申請(qǐng)表(application)字段名類型長度允許空描述applyidint11否申請(qǐng)表ID,主鍵,自增useridint11否用戶ID,外鍵usernamevarchar32否用戶名incidentvarchar32否出車事由departmentvarchar32否借車人所在部門borrowtimevarchar32否借車時(shí)間backtimevarchar32否還車時(shí)間placevarchar32否出車地點(diǎn)beizuvarchar255是備注(8)預(yù)訂表(orders)是在用戶提交一個(gè)申請(qǐng)以后生成的預(yù)訂信息。預(yù)定表包含的信息有預(yù)訂的ID號(hào),申請(qǐng)表ID等信息。表中各字段設(shè)計(jì)如表3-8所示。表3-8 預(yù)約表(orders)字段名類型長度允許空描述orderidint11否預(yù)訂表ID,主鍵,自增applyidint11否申請(qǐng)表ID,外鍵maketimevarchar32否預(yù)訂時(shí)間statusvarchar32否狀態(tài)useridint11否用戶ID,外鍵(9)申請(qǐng)明細(xì)表(applydetail)是在用戶查看申請(qǐng)明細(xì)時(shí)用來顯示申請(qǐng)的車輛信息,申請(qǐng)表信息等。管理員也需要查看該表,對(duì)申請(qǐng)進(jìn)行審核以及派遣車輛等操作。申請(qǐng)明細(xì)表各字段及其意義,如表3-9所示。表3-9申請(qǐng)明細(xì)表(applydetail)字段名類型長度允許空描述applydetailidint11否申請(qǐng)明細(xì)表ID,主鍵,自增applyidint11否申請(qǐng)表ID,外鍵useridint11否用戶ID,外鍵3.3 本章小結(jié)本章主要介紹了系統(tǒng)的總體設(shè)計(jì)方案,其中包括系統(tǒng)的各模塊的設(shè)計(jì)和數(shù)據(jù)庫的設(shè)計(jì)。根據(jù)系統(tǒng)的需求分析完成系統(tǒng)的總體架構(gòu)設(shè)計(jì),設(shè)計(jì)出適合的功能框架。構(gòu)建數(shù)據(jù)庫表,將數(shù)據(jù)表按照邏輯索引鏈接在一起,實(shí)現(xiàn)物理邏輯和數(shù)據(jù)邏輯接口。 4 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn)是將用戶所需要的系統(tǒng)呈現(xiàn)在用戶面前的關(guān)鍵步驟,它是建立在系統(tǒng)需求分析和系統(tǒng)設(shè)計(jì)的基礎(chǔ)之上的,在完成前幾章系統(tǒng)實(shí)現(xiàn)的準(zhǔn)備工作之后,本章將信商車輛管理系統(tǒng)實(shí)現(xiàn)過程和結(jié)果進(jìn)行闡述。以下是系統(tǒng)子模塊的具體實(shí)現(xiàn)方法和實(shí)現(xiàn)結(jié)果。4.1 用戶登錄模塊 4.1.1 登錄處理流程 每個(gè)系統(tǒng)都少不了系統(tǒng)登錄管理,在信商車輛管理系統(tǒng)中,用戶通過前臺(tái)主頁面進(jìn)行操作,實(shí)現(xiàn)用戶登錄,以便完成車輛預(yù)約等流程。系統(tǒng)對(duì)登錄者進(jìn)行 session 值存取用戶名和 id,根據(jù)登錄是否成功的提示信息,跳轉(zhuǎn)到不同的界面。當(dāng)退出登錄的時(shí)候,消除 session值。4.1.2 用戶登錄實(shí)現(xiàn)用戶在登錄時(shí),輸入的密碼為MD5加密的密文,這樣數(shù)據(jù)庫中所存儲(chǔ)的密碼不會(huì)泄露。這樣保證了用戶登錄的安全性。同時(shí),系統(tǒng)采用了輸入驗(yàn)證碼才能進(jìn)行登錄,這樣防止了不法用戶的侵入。用戶登錄界面如圖4-1所示。圖4-1 用戶登錄界面圖實(shí)現(xiàn)用戶登錄的核心代碼如下:String username=request.getParameter(username);String password=request.getParameter(password);/獲取用戶提交的驗(yàn)證碼String checkcode=request.getParameter(checkcode);String message=;HttpSession session=request.getSession();/獲取服務(wù)器保存的驗(yàn)證碼String realcheckcode=session.getAttribute(checkcode).toString();/驗(yàn)證用戶輸入的驗(yàn)證碼是否正確if(checkcode.equals(realcheckcode)UserDAO userDAO=new UserDAO();Mapuser=userDAO.validateVip(username, MD5.md5(password);if(user!=null)Map record=new HashMap();/更新用戶上一次的登錄時(shí)間record.put(lastlogintime, new SimpleDateFormat(yyyy-MM-dd HH:mm:ss).format(new Date();record.put(userid,user.get(userid);userDAO.update(record);session.setAttribute(user, user); /將該用戶信息放入Session 4.2 用戶注冊(cè)模塊4.2.1 注冊(cè)處理流程 用戶在主頁面中除可以登錄外還有注冊(cè)的功能,由于注冊(cè)界面需要填寫的信息較少,所以全部都是必填項(xiàng),包括有用戶名,密碼,性別,所在部門,職務(wù)以及用戶電話。從用戶名開始每個(gè)輸入項(xiàng)都會(huì)驗(yàn)證正確性。在用戶名這個(gè)方面要檢測(cè)用戶名是否重復(fù),既要與數(shù)據(jù)庫中的字段username進(jìn)行對(duì)比,在JAVA語言中由username來存儲(chǔ)user表中的username,利用SQL語句對(duì)表中的數(shù)據(jù)進(jìn)行檢索,如果查詢返回結(jié)果為空,則說明該用戶名未被使用,則為可用用戶名;如果返回結(jié)果不為空,則說明該用戶名已被注冊(cè),即為不可用。4.2.2 用戶注冊(cè)實(shí)現(xiàn)新用戶在車輛管理系統(tǒng)首頁可以選擇進(jìn)行注冊(cè),用戶注冊(cè)需填寫注冊(cè)頁面中所有的信息,每一項(xiàng)都不可以為空。用戶的密碼系統(tǒng)會(huì)檢測(cè)兩次輸入密碼的一致性,系統(tǒng)需要根據(jù)第一次輸入的密碼與第二次輸入的密碼進(jìn)行對(duì)比,兩次輸入一致才能通過注冊(cè)檢測(cè),如果兩次不一致則提示密碼不一致。用戶想要完成注冊(cè)最關(guān)鍵的是信息的完整性,用戶信息都必須正確且完整才能通過注冊(cè),正式的寫入數(shù)據(jù)庫中的用戶表。點(diǎn)擊注冊(cè)按鈕,系統(tǒng)進(jìn)行檢測(cè)數(shù)據(jù)的完整性。用戶注冊(cè)主界面如圖4-2所示。圖4-2 用戶注冊(cè)主界面圖實(shí)現(xiàn)用戶注冊(cè)的核心代碼如下:/獲取用戶的用戶名,密碼,姓名,所在部門,職務(wù),聯(lián)系電話,密碼提示問題,答案等數(shù)據(jù)String username=request.getParameter(username);String password1=request.getParameter(password1);String password2=request.getParameter(password2);String sex=request.getParameter(sex);String department=request.getParameter(department);String position=request.getParameter(position);String tel=request.getParameter(tel);String question=request.getParameter(question);String answer=request.getParameter(answer);/將用戶名,密碼,姓名,所在部門,職務(wù),聯(lián)系電話,密碼提示問題,答案等數(shù)據(jù)進(jìn)行組裝Map record=new HashMap();record.put(username, username);record.put(password, MD5.md5(password1);record.put(sex, sex);record.put(department, department);record.put(position, position);record.put(tel, tel);record.put(question, question);record.put(answer, answer);record.put(lastlogintime, new SimpleDateFormat(yyyy-MM-dd HH:mm:ss).format(new Date();boolean isSuccess=false; /標(biāo)志變量if(password1!=null & !password1.equals() & password2!=null & !password2.equals() ) if(password1.equals(password2)/判斷兩次的密碼是否一致UserDAO userDAO=new UserDAO();/檢測(cè)數(shù)據(jù)庫中是否已存在該用戶名Map user=userDAO.getByusername(username);4.3 車輛檢索根據(jù)用戶需求分析,在前臺(tái)車輛列表首頁,增加了車輛檢索功能。用戶需要預(yù)約車輛時(shí),可以根據(jù)所需車輛類型來進(jìn)行快速查找。這樣大大提高的系統(tǒng)效率,也為用戶提供了方便。車輛檢索采用的是模糊查詢。車輛檢索頁面如圖4-3所示。圖4-3 車輛檢索頁面圖實(shí)現(xiàn)用戶前臺(tái)搜索車輛的核心代碼如下:/ 按車輛類型進(jìn)行查詢String type_id = request.getParameter(type_id);/當(dāng)前要瀏覽的頁數(shù)String currentPage=request.getParameter(currentPage);/若未輸入頁數(shù),則顯示第一頁if(currentPage=null | currentPage.equals()currentPage=1; String where= ;if(type_id!=null & !type_id.equals()& !type_id.equals(0)where += and c.type_id=+type_id ;request.setAttribute(type_id, type_id); /將當(dāng)前分類的名字放入頁面String orderby= order by a.buydate desc;/排序方式(默認(rèn)值:按時(shí)間降序)int pageSize=4; /設(shè)置頁面所能顯示的最大數(shù)int startIndex=(Integer.parseInt(currentPage)-1)*pageSize;/ 調(diào)用DAO層函數(shù),執(zhí)行DAO中的searchWithWhere函數(shù)CarDAO carDAO = new CarDAO();/ 查詢出所有符合條件的車輛QueryResult qr = carDAO.searchWithWhere(startIndex, pageSize,where, orderby);4.4 車輛預(yù)約模塊4.4.1 我要預(yù)約用戶可以根據(jù)自己的需求進(jìn)行車輛預(yù)約,用戶進(jìn)入車輛管理系統(tǒng)主頁,可以瀏覽車輛列表,也可以進(jìn)行分類查詢,以便迅速查找到想要預(yù)約的車輛。用戶通過檢索車輛,選擇自己所要預(yù)約的車輛,該車的狀態(tài)應(yīng)為“可預(yù)約”。下面以某一用戶預(yù)約車輛為例,詳細(xì)介紹用戶預(yù)約車輛的實(shí)現(xiàn)方法以及流程。如圖4-4所示為車輛展示頁面。圖4-4 車輛列表展示頁面用戶預(yù)約某一車輛時(shí),把該車輛信息放入Session中,并且可以在頁面上展示。用戶在頁面上可以選擇繼續(xù)預(yù)約車輛或去填寫申請(qǐng)表。也可以對(duì)所選的車輛進(jìn)行刪除操作。如圖4-5所示為用戶所選車輛信息頁面。圖4-5 用戶所選車輛信息頁面用戶選擇完畢后,借車人需填寫申請(qǐng)表,申請(qǐng)表包含的信息有:借車人ID,借車人姓名,借車人所在部門,出車事由,借車時(shí)間,還車時(shí)間,去往地點(diǎn),備注和申請(qǐng)表狀態(tài)。用戶登錄后選擇車輛,在填寫車輛申請(qǐng)表時(shí),借車人ID和借車人姓名以及借車人所在部門是由登錄后讀取該用戶信息時(shí)獲取的。在