基于javaweb機(jī)票訂購管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于javaweb機(jī)票訂購管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于javaweb機(jī)票訂購管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于javaweb機(jī)票訂購管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于javaweb機(jī)票訂購管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、. . . 1 / 45基于 java web 的機(jī)票訂購管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)摘 要隨著社會(huì)發(fā)展的不斷進(jìn)步,民航事業(yè)的壯大,人們消費(fèi)水平的提高,乘坐民航的消費(fèi)者也越來越多,旅游也逐漸成為普通老百姓的生活組成部分,飛機(jī)票預(yù)定查詢系統(tǒng)在各機(jī)票預(yù)定網(wǎng)點(diǎn)中的作用也越顯重要。目前,我國一些旅行社和酒店的機(jī)票預(yù)定還停留在人工處理階段,這已經(jīng)嚴(yán)重制約了工作效率,在計(jì)算機(jī)技術(shù)高速發(fā)展的今天,有必要引入高效的計(jì)算機(jī)系統(tǒng),來協(xié)助處理機(jī)票預(yù)定工作。因此,開發(fā)一套具有完整的存儲(chǔ),查詢,核對,打印機(jī)票功能的實(shí)時(shí)機(jī)票預(yù)定系統(tǒng)勢在必行。 機(jī)票預(yù)定系統(tǒng)是為機(jī)場工作人員和客戶提供訂票退票等與機(jī)票相關(guān)容和管理的系統(tǒng),它具有開放體系

2、結(jié)構(gòu)的、易擴(kuò)充的、易維護(hù)的、具有良好人機(jī)界面的優(yōu)點(diǎn).它除克服了存儲(chǔ)乘客信息少,查詢效率低下等問題外,更重要的是其安全性,可靠性,實(shí)現(xiàn)航空公司的機(jī)票銷售的自動(dòng)化。它為企業(yè)的決策層提供準(zhǔn)確、精細(xì)、迅速的機(jī)票銷售信息,為乘客出行提供方便,便于機(jī)場工作人員對機(jī)票信息進(jìn)行管理,提高了機(jī)場工作人員對機(jī)票管理的工作效率。 機(jī)票訂購系統(tǒng)采用 MySQL 來設(shè)計(jì)數(shù)據(jù)庫,并使用當(dāng)前優(yōu)秀的開發(fā)工具-Myeclipse,主流技術(shù)jsp、ajax、easyui以與主流 J2EE 架構(gòu)-SSH 來實(shí)現(xiàn)系統(tǒng)。關(guān)鍵詞關(guān)鍵詞: 機(jī)票訂購系統(tǒng)、JavaWeb 系統(tǒng)、管理系統(tǒng) 、jsp、ajax、easyui . . . 2 /

3、45Ticket ordering systemAbstractAlong with the advance of social development, civil aviation growing, people raise the level of consumption, consumers more and more, in civil aviation tourism has gradually become a part of ordinary life, air ticket reservation query system in the role of the ticket

4、booking outlets are more important. At present, our country some travel agencies and hotels is ticket reservation in artificial processing stage, which has seriously restricted the work efficiency, in todays high-speed development of computer technology, it is necessary to introduce effective comput

5、er system, to assist processing flight reservation. Therefore, to develop a set of complete with storage, query, check and print the ticket function real-time ticket reservation system is imperative. Ticket reservation system is for the airport staff and customers booking ticket and ticket related c

6、ontents and management system, such as it has open architecture, easy expansion, easy maintenance, has a good man-machine interface. The advantages of it in addition to overcome the passenger information less storage, such problems as low query efficiency, more important is the safety, reliability,

7、realize the automation of airline ticket sales. It for enterprise decision-making to provide accurate, precise, rapid ticket sales information, provides the convenience for passengers, facilitate the ticket information management of the airport staff, improve the efficiency of the airport staff to t

8、icket management.Ticket ordering system to design the database, MySQl, and use the best development tools Myeclipse, as well as the mainstream - SSH J2EE architecture to implement the system.Keywords:Keywords: Ticket ordering system, JavaWeb system, management system . . . 3 / 45TICKETTICKET ORDERIN

9、GORDERING SYSTEMSYSTEM2 2ABSTRACTABSTRACT2 2第第 1 1 章緒論章緒論- - 1 1 - -1.1 機(jī)票訂購系統(tǒng)的開發(fā)背景- 1 -1.2 設(shè)計(jì)目的與意義- 2 -第第 2 2 章系統(tǒng)的需求分析和技術(shù)設(shè)計(jì)章系統(tǒng)的需求分析和技術(shù)設(shè)計(jì)- - 2 2 - -2.1 可行性分析- 2 -2.1.1 操作可行性- 2 -2.1.2 經(jīng)濟(jì)可行性- 2 -2.1.3 技術(shù)可行性- 2 -2.2 方案的設(shè)計(jì)與比較- 2 -2.2.1 C/S 設(shè)計(jì)結(jié)構(gòu)和 B/S 設(shè)計(jì)結(jié)構(gòu)比較- 2 -2.2.2 系統(tǒng)模式的設(shè)計(jì)- 2 -2.2.3 系統(tǒng)設(shè)計(jì)的技術(shù)選擇- 2 -2.2.

10、4 系統(tǒng)的運(yùn)行環(huán)境- 3 -2.3 系統(tǒng)基本功能需求- 3 -2.3.1 系統(tǒng)結(jié)構(gòu)- 3 -2.3.2 系統(tǒng)業(yè)務(wù)流程圖- 3 -2.4 數(shù)據(jù)庫需求分析- 6 -2.5 系統(tǒng)目標(biāo)- 6 -第第 3 3 章系統(tǒng)總體設(shè)計(jì)章系統(tǒng)總體設(shè)計(jì) 7 73.1 總體設(shè)計(jì) 73.1.1 處理流程 73.1.2 系統(tǒng)的數(shù)據(jù)流圖 73.2 系統(tǒng)結(jié)構(gòu)圖 93.3 數(shù)據(jù)庫設(shè)計(jì) 103.4 邏輯結(jié)構(gòu)設(shè)計(jì) 123.5 數(shù)據(jù)庫表的設(shè)計(jì) 12第第 4 4 章系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)章系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 14144.1 前臺(tái)系統(tǒng)設(shè)計(jì)實(shí)現(xiàn) 144.1.1 首頁界面實(shí)現(xiàn) 144.1.2 用戶注冊功能實(shí)現(xiàn) 164.1.3 用戶登錄功能實(shí)現(xiàn) 1

11、74.1.4 航班信息查詢 18 . . . 4 / 454.1.5 機(jī)票訂購功能實(shí)現(xiàn) 204.1.6 個(gè)人信息管理功能實(shí)現(xiàn) 214.1.7 訂單管理功能實(shí)現(xiàn) 224.24.2 后臺(tái)系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)后臺(tái)系統(tǒng)設(shè)計(jì)實(shí)現(xiàn) 25254.2.1 管理員登錄功能 254.2.2 用戶管理 274.2.3 客機(jī)管理 284.2.4 航班管理 314.2.5 機(jī)票管理 334.2.11 系統(tǒng)管理 35第第 5 5 章系統(tǒng)的調(diào)試與測試章系統(tǒng)的調(diào)試與測試 37375.1 軟件測試的目的 375.2 軟件測試的任務(wù) 375.3 測試環(huán)境 375.4 白盒、黑盒測試 385.5 手工測試與自動(dòng)測試 385.6 軟件缺陷

12、38結(jié)束語結(jié)束語 3939參考文獻(xiàn)參考文獻(xiàn) 4040 . . . - 1 - / 45第 1 章 緒 論1.1 機(jī)票訂購系統(tǒng)的開發(fā)背景從 20 世紀(jì) 70 年代起,歐美與日本等發(fā)達(dá)國家就開始利用計(jì)算機(jī)開發(fā)售票業(yè)務(wù),如英國的 Tribute 系統(tǒng)、日本的 MARS 系統(tǒng)和德國的 TRAINS 系統(tǒng)等。隨著互聯(lián)網(wǎng)技術(shù)與電子商務(wù)的迅猛發(fā)展,利用 Web 技術(shù)開發(fā)的網(wǎng)絡(luò)售票系統(tǒng)也得到了蓬勃的發(fā)展并日益影響到人們的日常生活,例如澳大利亞的 BASS 系統(tǒng)。20世紀(jì) 90 年代開始,我國的部分大型企業(yè)為了適應(yīng)市場經(jīng)濟(jì)的條件下自身發(fā)展的需要,陸續(xù)研究和開發(fā)了利用計(jì)算機(jī)和計(jì)算機(jī)網(wǎng)絡(luò)運(yùn)行的票務(wù)系統(tǒng),如我國的鐵路

13、售票系統(tǒng),該系統(tǒng)通過十年左右的開發(fā)、應(yīng)用和完善,系統(tǒng)已經(jīng)覆蓋了全國的鐵路主干網(wǎng)絡(luò),平均每天發(fā)售火車票達(dá) 250 萬,計(jì)算機(jī)網(wǎng)絡(luò)售票業(yè)務(wù)額占票務(wù)總收入的 90%以上。目前網(wǎng)上訂票系統(tǒng)與其類似應(yīng)用軟件的開發(fā)技術(shù)大多基于 B/S 架構(gòu),在系統(tǒng)開發(fā)過程中用到的主要技術(shù)包括動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)技術(shù),如 ASP、JSP 和 PHP 技術(shù)等、.NET 和 J2EE 技術(shù)等。在這些技術(shù)中ASP 是一個(gè) Web 服務(wù)器端的開發(fā)環(huán)境,它的應(yīng)用可以產(chǎn)生和運(yùn)行動(dòng)態(tài)交互的 Web 服務(wù)應(yīng)用程序,其開發(fā)語言一般為VBScript 或者 JAVAScript。具有簡單易懂、無需編譯、與瀏覽器無關(guān)、兼容性和擴(kuò)展性較好等特性。PHP

14、是一種跨平臺(tái)的服務(wù)器端的嵌入式腳本語言,具有便于與數(shù)據(jù)庫連接和面向?qū)ο蟮忍攸c(diǎn)。JSP 是由 SUN 公司推出的站點(diǎn)開發(fā)語言,具有代碼生成和顯示分離、可重用性能好頁面開發(fā)簡單等特點(diǎn)。 .NET 技術(shù)是為了適應(yīng)基于Web 的應(yīng)用程序和 Web 服務(wù)而產(chǎn)生的,它基于 XML 和 SOAP 等互聯(lián)網(wǎng)標(biāo)準(zhǔn)將遠(yuǎn)程服務(wù)器所提供的計(jì)算能力和允許用戶交互操作所必需的通信結(jié)合在一起,實(shí)現(xiàn)了基于 Web 的分布式計(jì)算模式。.NET 采用的 CLR 技術(shù)規(guī)允許開發(fā)者應(yīng)用自己最熟悉的語言來創(chuàng)建應(yīng)用程序。 J2EE 是一套全然不同于傳統(tǒng)應(yīng)用開發(fā)的技術(shù)架構(gòu),包含許多組件,主要可簡化且規(guī)應(yīng)用系統(tǒng)的開發(fā)與部署,進(jìn)而提高可移植性

15、、安全與再用價(jià)值。J2EE 核心是一組技術(shù)規(guī)與指南,其中所包含的各類組件、服務(wù)架構(gòu)與技術(shù)層次,均有共通的標(biāo)準(zhǔn)與規(guī)格,讓各種依循 J2EE 架構(gòu)的不同平臺(tái)之間存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,企業(yè)部或外部難以互通的窘境。J2EE 體系結(jié)構(gòu)提供中間層集成框架用來滿足無需太多費(fèi)用而又需 . . . - 2 - / 45要高可用性、高可靠性以與可擴(kuò)展性的應(yīng)用的需求。通過提供統(tǒng)一的開發(fā)平臺(tái),J2EE 降低了開發(fā)多層應(yīng)用的費(fèi)用和復(fù)雜性,同時(shí)提供對現(xiàn)有應(yīng)用程序集成強(qiáng)有力支持,完全支持 Enterprise JavaBeans,有良好的向?qū)еС执虬筒渴饝?yīng)用,添加目錄支持,增強(qiáng)

16、了安全機(jī)制,提高了性能。J2EE 為搭建具有可伸縮性、靈活性、易維護(hù)性的商務(wù)系統(tǒng)提供了良好的機(jī)制。1.2 設(shè)計(jì)目的與意義隨著互聯(lián)網(wǎng)的飛速發(fā)展,網(wǎng)絡(luò)業(yè)務(wù)也得到了迅猛地發(fā)展。網(wǎng)上訂票系統(tǒng)就是互聯(lián)網(wǎng)和網(wǎng)絡(luò)業(yè)務(wù)發(fā)展的產(chǎn)物。該類系統(tǒng)的出現(xiàn)和應(yīng)用一方面擴(kuò)展了票務(wù)銷售的業(yè)務(wù)領(lǐng)域,豐富了票據(jù)業(yè)務(wù)營銷的方式和手段,另一方面,人們不用出門就可以購買到相關(guān)的活動(dòng)票據(jù),大大方便了人們的生活。因此,網(wǎng)上訂票系統(tǒng)對社會(huì)的發(fā)展和社會(huì)生活方式的變革帶來了深遠(yuǎn)的影響。 本課題的任務(wù)就是開發(fā)一套網(wǎng)上機(jī)票訂購系統(tǒng),要求能通過 Internet 網(wǎng)絡(luò)為顧客提供航班查詢,購買機(jī)票以與退票的服務(wù)。該系統(tǒng)在 Web 中能夠完成客戶注冊與登

17、錄、查詢航班、出票等功能,在航空公司部能夠完成管理員添加或刪除航班、用戶管理和票務(wù)維護(hù)等功能。本系統(tǒng)采用Struts+Hibernate+Spring 的 J2EE框架,這個(gè)開源的 WEB 開發(fā)架構(gòu)在市場上占主導(dǎo)地位。其采用的 MVC 模式使頁面的顯示與處理分離,使前臺(tái)頁面人員更專注于頁面的設(shè)計(jì),而不用關(guān)注業(yè)務(wù)邏輯。編程人員只需集中精力于業(yè)務(wù)邏輯的實(shí)現(xiàn)提高開發(fā)效率。第 2 章 系統(tǒng)的需求分析和技術(shù)設(shè)計(jì)2.1 可行性分析2.1.1 操作可行性本系統(tǒng)的開發(fā)是在三個(gè)月的時(shí)間完成的。前期主要是以學(xué)習(xí)以與收集資料為主,接下來就是對系統(tǒng)的分析,設(shè)計(jì)數(shù)據(jù)庫,界面,以與中間的連接。對于計(jì)算機(jī)專業(yè)作為畢業(yè)設(shè)計(jì)來

18、說是可行的。 . . . - 2 - / 452.1.2 經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性主要是對項(xiàng)目的經(jīng)濟(jì)效益進(jìn)行評價(jià)。目前,具備了運(yùn)行網(wǎng)絡(luò)平臺(tái)的 MIS 的硬件基礎(chǔ),而且本系統(tǒng)是我組成員自行開發(fā),免費(fèi)幫助設(shè)計(jì)并實(shí)施的。因此開發(fā)、設(shè)計(jì)這套系統(tǒng)的支出費(fèi)用是學(xué)??梢猿袚?dān)的,即經(jīng)濟(jì)上是可行的。2.1.3 技術(shù)可行性技術(shù)上的可行性要考慮將來采用的硬件和軟件技術(shù)能否滿足用戶提出的要求?;诋?dāng)前的計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)技術(shù)已成熟,而且管理信息系統(tǒng)(MIS)的各種開發(fā)技術(shù)也已經(jīng)相當(dāng)成熟,并且在各個(gè)領(lǐng)域都不乏成熟的案例。所以開發(fā)一套網(wǎng)絡(luò)平臺(tái)的多用戶共享信息的在線考試系統(tǒng)在技術(shù)上是可行的。 2.2 方案的設(shè)計(jì)與比較2.2.

19、1 C/S 設(shè)計(jì)結(jié)構(gòu)和 B/S 設(shè)計(jì)結(jié)構(gòu)比較目前網(wǎng)絡(luò)應(yīng)用軟件運(yùn)行的模式主要有兩類:Client/Server 模式,Browser/Server 模式。前者的主要的缺點(diǎn)是維護(hù)、升級較為麻煩。且要同時(shí)開發(fā)服務(wù)器端和客戶端;后者是近幾年伴隨 Internet 迅速發(fā)展起來的一種技術(shù),B/S 模式客戶端是一個(gè)標(biāo)準(zhǔn)的瀏覽器,服務(wù)器端是 web server,而 Web server與數(shù)據(jù)庫和應(yīng)用服務(wù)器的緊密結(jié)合,使得這種模式的應(yīng)用圍不斷擴(kuò)大,它已不僅僅用于網(wǎng)上查詢,有很多企業(yè)部門的業(yè)務(wù)系統(tǒng),企業(yè)的 MIS 系統(tǒng)紛紛采用這種模式,它的優(yōu)點(diǎn)是便于擴(kuò)展應(yīng)用、升級維護(hù)簡便、不需要開發(fā)專門的客戶端、不需要對用戶

20、進(jìn)行特殊的設(shè)置和軟件安裝,降低了維護(hù)成本,客戶端只要有瀏覽器就可以了。2.2.2 系統(tǒng)模式的設(shè)計(jì)本系統(tǒng)的設(shè)計(jì)是兩種用戶,一種是普通用戶,一種是管理員用戶。權(quán)限都不一樣;2.2.3 系統(tǒng)設(shè)計(jì)的技術(shù)選擇處于安全性,功能可擴(kuò)展性。我們采用 java ee。數(shù)據(jù)庫使用開源的 Mysql; . . . - 3 - / 45服務(wù)器采用 Tomcat;2.2.4 系統(tǒng)的運(yùn)行環(huán)境(1).系統(tǒng):Windows XP 與其以上版本(2).Web 服務(wù)器:Tomcat6 與其以上版本(3).數(shù)據(jù)庫服務(wù)器:MySql(4).瀏覽器:IE7,8,9、火狐、Chrome2.3 系統(tǒng)基本功能需求系統(tǒng)中涉與系統(tǒng)普通用戶和管理

21、員兩種權(quán)限;接下來針對這兩種權(quán)限分別說明下功能結(jié)構(gòu);2.3.1 系統(tǒng)結(jié)構(gòu)主要功能有:普通用戶:用戶注冊,用戶登錄;查詢機(jī)票信息,購買機(jī)票;個(gè)人信息管理,訂購管理(退票,改簽) ;系統(tǒng)管理員:管理員登錄;用戶管理;客機(jī)管理;航班管理;機(jī)票管理;系統(tǒng)管理(修改密碼,安全推出) ;2.3.2 系統(tǒng)業(yè)務(wù)流程圖 普通用戶: . . . - 4 - / 45 . . . - 5 - / 45 管理員: . . . - 6 - / 452.4 數(shù)據(jù)庫需求分析根據(jù)上面業(yè)務(wù)流程圖所涉與到的容,數(shù)據(jù)庫要設(shè)計(jì)的表有:用戶表,管理員表,客機(jī)表,航班表,機(jī)票訂購表;2.5 系統(tǒng)目標(biāo)本選題系統(tǒng)的設(shè)計(jì)主要將實(shí)現(xiàn)以下目標(biāo):(

22、1).人性化設(shè)計(jì):系統(tǒng)界面友好,操作簡單;(2).前臺(tái)實(shí)現(xiàn)用戶登錄,用戶注冊,航班查詢,機(jī)票訂購,個(gè)人信息管理,機(jī)票訂購管理;(3)后臺(tái)實(shí)現(xiàn)管理員登錄,用戶管理,客機(jī)管理,航班管理,訂購管理,系統(tǒng)管理; . . . 7 / 45第 3 章 系統(tǒng)總體設(shè)計(jì)3.1 總體設(shè)計(jì)3.1.1 處理流程一,普通用戶 (1).打開系統(tǒng),進(jìn)入系統(tǒng)前臺(tái)首頁界面,用戶可以瀏覽商品,查看新聞和公告; (2).用后登錄,可以購買商品; (3).用戶進(jìn)入個(gè)人中心,可以修改個(gè)人信息以與管理訂單 (4).退出系統(tǒng)。二,管理員 (1).打開系統(tǒng),進(jìn)入系統(tǒng)登錄界面, (2).通過驗(yàn)證后,進(jìn)入系統(tǒng)管理主界面 (3).用戶操作,執(zhí)行相

23、應(yīng)的功能, (4).退出系統(tǒng)。3.1.2 系統(tǒng)的數(shù)據(jù)流圖 機(jī)票訂購系統(tǒng)普通用戶后臺(tái)管理系統(tǒng)前臺(tái)系統(tǒng)管理員 . . . 8 / 45 . . . 9 / 453.2 系統(tǒng)結(jié)構(gòu)圖 . . . 10 / 45針對本系統(tǒng)的需求,設(shè)計(jì)出如下面所示的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):用戶表:編號,用戶名,密碼,真實(shí),性別, ,聯(lián)系;管理員表:編號,用戶名,密碼,真實(shí),聯(lián)系;客機(jī)表:編號,客機(jī)名稱,購買日期,服役日期,備注;航班表:編號,航班名稱,航班類型,出發(fā)城市,目的城市,出發(fā)時(shí)間,到點(diǎn)時(shí)間,使用客機(jī),經(jīng)濟(jì)艙票價(jià)以與座位數(shù),頭等艙票價(jià)以與座位數(shù);訂單表:編號,訂單號,訂購時(shí)間,票價(jià),座艙類別,航班,用戶,訂購數(shù)量,總價(jià)

24、;3.3 數(shù)據(jù)庫設(shè)計(jì)(1).用戶信息 E-R 圖(2). 管理員信息 E-R 圖 編號真實(shí) XX用戶名用戶名密碼聯(lián)系 用戶 管理員實(shí)體真實(shí) XX編號密碼聯(lián)系 郵件性別XX . . . 11 / 45(3). 客機(jī)信息 E-R 圖(4). 航班信息 E-R 圖(5). 訂單信息 E-R 圖 客機(jī)實(shí)體 客機(jī)名稱購買日期 航班實(shí)體編號航班名稱出發(fā)地點(diǎn) 訂單實(shí)體編號使用日期航班類型 編號備注到達(dá)地點(diǎn)出發(fā)時(shí)間使用飛機(jī)頭等艙票價(jià)與座位數(shù)經(jīng)濟(jì)艙票價(jià)與座位數(shù)到達(dá)時(shí)間總價(jià)訂購數(shù)量用戶航班訂購時(shí)間價(jià)格座艙類型訂單號 . . . 12 / 45(8)實(shí)體之間的關(guān)系圖3.4 邏輯結(jié)構(gòu)設(shè)計(jì)1,航班和客機(jī)實(shí)體的關(guān)系是多對

25、一;2,訂單實(shí)體和航班實(shí)體的關(guān)系是多對一;3,用戶和訂單是一對多;3.5 數(shù)據(jù)庫表的設(shè)計(jì)(1).用戶信息表字段名數(shù)據(jù)類型長度是否主鍵描述idInt11是自動(dòng)編號Usernamevarchar20用戶名Passwordvarchar20密碼trueNameVarchar20用戶sexVarchar5性別 . . . 13 / 45sfzVarchar20emailVarchar20phoneVarchar20聯(lián)系(2). 客機(jī)表字段名數(shù)據(jù)類型長度是否主鍵描述idvarchar40是namevarchar20客機(jī)名稱buyDatedatatime購買日期useDatedatatime使用日期rem

26、arkvarchar1000備注(3).航班表字段名數(shù)據(jù)類型長度是否主鍵描述idInt11是自動(dòng)編號ecPriceint經(jīng)濟(jì)艙票價(jià)ecTicketRemainint經(jīng)濟(jì)艙剩余票ecTicketTotalint經(jīng)濟(jì)艙總票數(shù)fcPriceint頭等艙票價(jià)fcTicketRemainint頭等艙剩余票fcTicketTotalint頭等艙總票數(shù)flightTypevarchar20航班類型fromCityvarchar20出發(fā)地點(diǎn)fromTimedatetime出發(fā)時(shí)間Namevarchar航班名稱toCityvarchar到達(dá)城市toTimedatetime到達(dá)時(shí)間aircraftIdint使用飛

27、機(jī) . . . 14 / 45(4). 管理員表字段名數(shù)據(jù)類型長度是否主鍵描述idInt11是自動(dòng)編號userNameVarchar20用戶名passwordVarchar20密碼trueNameVarchar20真實(shí)phoneVarchar20聯(lián)系(5).訂單表字段名數(shù)據(jù)類型長度是否主鍵描述idInt11是自動(dòng)編號orderNovarchar30訂單號orderTimeDatetime訂購時(shí)間priceint價(jià)格spaceTypevarchar20座位類型flightIdint航班 IDuserIdint用戶 IDnumint購買數(shù)量totalPriceint總價(jià)第 4 章 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)

28、現(xiàn)4.1 前臺(tái)系統(tǒng)設(shè)計(jì)實(shí)現(xiàn) 采用 struts2+spring+hibernate 三大框架,自主設(shè)計(jì),分配各個(gè)功能模塊,讓其實(shí)現(xiàn)各自的功能,共同完成程序的運(yùn)行。4.1.1 首頁界面實(shí)現(xiàn) 效果圖: . . . 15 / 45相關(guān)說明:用戶進(jìn)入系統(tǒng)首頁,上方從左是系統(tǒng) Logo 最左側(cè)是一個(gè)登錄,注冊,航班查詢功能;右側(cè)的話,是航班信息,上方是最新的國航班信息,下方是國際航班信息;視頻欣賞等等關(guān)鍵代碼實(shí)現(xiàn):主界面布局:公共界面:Head.jspjsp:include page= . . . 16 / 45Foot.jsp查詢航班信息:4.1.2 用戶注冊功能實(shí)現(xiàn) 點(diǎn)擊“注冊”功能,彈出用戶注冊彈

29、窗;如圖:public List findFlightList(Flight s_flight,PageBean pageBean)List param=new LinkedList();StringBuffer hql=new StringBuffer(from Flight);if(s_flight!=null)if(StringUtil.isNotEmpty(s_flight.getName()hql.append( and name like %+s_flight.getName()+%);if(StringUtil.isNotEmpty(s_flight.getFlightType(

30、)hql.append( and flightType=+s_flight.getFlightType()+);if(StringUtil.isNotEmpty(s_flight.getFromCity()hql.append( and fromCity=+s_flight.getFromCity()+);if(StringUtil.isNotEmpty(s_flight.getToCity()hql.append( and toCity=+s_flight.getToCity()+);if(s_flight.getFromTime()!=null)hql.append( and fromTi

31、me +DateUtil.formatDate(s_flight.getFromTime(), yyyy-MM-dd)+);hql.append( order by fromTime desc);if(pageBean!=null)return baseDAO.find(hql.toString().replaceFirst(and, where), param, pageBean);elsereturn baseDAO.find(hql.toString().replaceFirst(and, where), param);Copyright 2013-2015 XXX 版權(quán)所有 . . .

32、 17 / 45相關(guān)說明: 用戶填寫 用戶名,密碼,確認(rèn)密碼, 。然后點(diǎn)擊“注冊” ,即可完成用戶注冊;關(guān)鍵代碼:4.1.3 用戶登錄功能實(shí)現(xiàn) 效果圖:public String register()throws ExceptionJSONObject result=new JSONObject();if(userService.existUserWithUserName(user.getUserName()result.put(error, 用戶名已存在,請更換!);elseuserService.saveUser(user);result.put(success, true);Respon

33、seUtil.write(ServletActionContext.getResponse(), result);return null; . . . 18 / 45相關(guān)說明: 輸入用戶名,密碼,然后點(diǎn)擊登錄,假如用戶名,密碼正確,則登錄成功,否則提示錯(cuò)誤信息;關(guān)鍵代碼: 用戶登錄:4.1.4 航班信息查詢效果圖:public String login()throws Exception Session session=request.getSession();User currentUser=userService.login(user);boolean flag=false;if(curr

34、entUser=null)flag=false; elsesession.setAttribute(currentUser, currentUser);flag=true;JSONObject result=new JSONObject();result.put(success, flag);ResponseUtil.write(ServletActionContext.getResponse(), result);return null; . . . 19 / 45相關(guān)說明: 在航班查詢框,輸入查詢條件信息,然后點(diǎn)擊搜索,即可查詢出相應(yīng)結(jié)果;關(guān)鍵代碼實(shí)現(xiàn): 條件查詢航班信息public Li

35、st findFlightList(Flight s_flight,PageBean pageBean)List param=new LinkedList();StringBuffer hql=new StringBuffer(from Flight);if(s_flight!=null)if(StringUtil.isNotEmpty(s_flight.getName()hql.append( and name like %+s_flight.getName()+%);if(StringUtil.isNotEmpty(s_flight.getFlightType()hql.append( a

36、nd flightType=+s_flight.getFlightType()+);if(StringUtil.isNotEmpty(s_flight.getFromCity()hql.append( and fromCity=+s_flight.getFromCity()+);if(StringUtil.isNotEmpty(s_flight.getToCity()hql.append( and toCity=+s_flight.getToCity()+);if(s_flight.getFromTime()!=null)hql.append( and fromTime +DateUtil.f

37、ormatDate(s_flight.getFromTime(), yyyy-MM-dd)+);hql.append( order by fromTime desc);if(pageBean!=null)return baseDAO.find(hql.toString().replaceFirst(and, where), param, pageBean);elsereturn baseDAO.find(hql.toString().replaceFirst(and, where), param); . . . 20 / 454.1.5 機(jī)票訂購功能實(shí)現(xiàn)擊“訂票” ,顯示:說明: 點(diǎn)擊“訂票”

38、跳轉(zhuǎn)到機(jī)票訂購界面,用戶可以選擇座艙類別(經(jīng)濟(jì)艙,頭等艙) ,可以設(shè)置要訂購的機(jī)票數(shù)量。最后點(diǎn)擊提交。完成機(jī)票訂購;關(guān)鍵代碼實(shí)現(xiàn): 通過 ID 獲取航班信息; 保存訂單信息:/* * 機(jī)票訂購預(yù)操作 * return * throws Exception */public String preTicketOrder()throws Exceptionflight=flightService.getFlightById(flightId);mainPage=ticket/ticketOrder.jsp;return SUCCESS;/* * 保存機(jī)票訂單 * return * throws Ex

39、ception */public String saveTicketOrder()throws ExceptionString orderNo=NO+DateUtil.getCurrentDateStr(); / 生成訂單號 ticketOrder.setOrderNo(orderNo);ticketOrder.setOrderTime(new Date();String strs=price_type.split(-);if(strs1.equals(1)ticketOrder.setSpaceType(經(jīng)濟(jì)艙);elseticketOrder.setSpaceType(頭等艙);ticke

40、tOrder.setPrice(Integer.parseInt(strs0);ticketOrder.setTotalPrice(ticketOrder.getNum()*ticketOrder.getPrice();ticketService.saveTicket(ticketOrder);mainPage=ticket/orderSuccess.jsp;return SUCCESS; . . . 21 / 454.1.6 個(gè)人信息管理功能實(shí)現(xiàn) 進(jìn)入個(gè)人中心,如圖:點(diǎn)擊“修改”按鈕,如圖:用戶對信息進(jìn)行編輯,修改完,點(diǎn)擊“保存” ,完成用戶信息修改;關(guān)鍵代碼實(shí)現(xiàn): 用戶信息保存/* * 用

41、戶修改 * return * throws Exception */public String save()throws Exception Session session=request.getSession();JSONObject result=new JSONObject();userService.saveUser(user);result.put(success, true);session.setAttribute(currentUser, user);ResponseUtil.write(ServletActionContext.getResponse(), result);r

42、eturn null; . . . 22 / 454.1.7 訂單管理功能實(shí)現(xiàn) 點(diǎn)擊訂單管理效果圖: 用戶可以進(jìn)行“退票” , “改簽操作” ;點(diǎn)擊“確定” ,則完成“退票” ,點(diǎn)擊“取消” ,不執(zhí)行; . . . 23 / 45點(diǎn)擊“改簽” ,如圖:彈出航班信息查詢界面,用戶可以搜索自己想要改簽的航班,然后點(diǎn)擊確定,完成“改簽”關(guān)鍵代碼實(shí)現(xiàn): 獲取當(dāng)前用戶的機(jī)票訂單信息:退票功能:public List findTicketOrderList(TicketOrder s_ticketOrder,PageBean pageBean) List param=new LinkedList();St

43、ringBuffer hql=new StringBuffer(from TicketOrder);if(s_ticketOrder!=null)if(s_ticketOrder.getUser().getId()!=null)hql.append( and user.id=+s_ticketOrder.getUser().getId();if(s_ticketOrder.getUser()!=null & StringUtil.isNotEmpty(s_ticketOrder.getUser().getUserName()hql.append( and user.userName like

44、%+s_ticketOrder.getUser().getUserName()+%);if(StringUtil.isNotEmpty(s_ticketOrder.getOrderNo()hql.append( and orderNo like %+s_ticketOrder.getOrderNo()+%);hql.append( order by orderTime desc);if(pageBean!=null)return baseDAO.find(hql.toString().replaceFirst(and, where), param, pageBean);elsereturn b

45、aseDAO.find(hql.toString().replaceFirst(and, where),param);public void deleteTicketOrder(Integer id) TicketOrder ticketOrder=baseDAO.get(TicketOrder.class, id);baseDAO.delete(ticketOrder);Flight flight=baseDAO2.get(Flight.class, ticketOrder.getFlight().getId();if(經(jīng)濟(jì)艙.equals(ticketOrder.getSpaceType(

46、)flight.setEcTicketRemain(flight.getEcTicketRemain()+ticketOrder.getNum();elseflight.setFcTicketRemain(flight.getFcTicketRemain()+ticketOrder.getNum();baseDAO2.save(flight); . . . 24 / 45 改簽功能實(shí)現(xiàn):public void saveMeal(Integer id, Integer newFlightId,User currentUser) throws Exception Flight newFlight=

47、baseDAO2.get(Flight.class, newFlightId); / 新的航班TicketOrder ticketOrder=baseDAO.get(TicketOrder.class, id); / 原先的機(jī)票訂購實(shí)體Flight oldFlight=ticketOrder.getFlight(); / 原先的航班TicketOrder newTicketOrder=new TicketOrder();newTicketOrder.setOrderNo(NO+DateUtil.getCurrentDateStr();newTicketOrder.setOrderTime(ne

48、w Date();newTicketOrder.setNum(ticketOrder.getNum();newTicketOrder.setSpaceType(ticketOrder.getSpaceType();if(經(jīng)濟(jì)艙.equals(ticketOrder.getSpaceType()newTicketOrder.setPrice(newFlight.getEcPrice();newTicketOrder.setTotalPrice(newFlight.getEcPrice()*newTicketOrder.getNum();oldFlight.setEcTicketRemain(ol

49、dFlight.getEcTicketRemain()+newTicketOrder.getNum(); / 原先的航班要加上機(jī)票newFlight.setEcTicketRemain(newFlight.getEcTicketRemain()-newTicketOrder.getNum(); / 新的航班要剪掉機(jī)票elsenewTicketOrder.setPrice(newFlight.getFcPrice();newTicketOrder.setTotalPrice(newFlight.getFcPrice()*newTicketOrder.getNum();oldFlight.setF

50、cTicketRemain(oldFlight.getFcTicketRemain()+newTicketOrder.getNum(); / 原先的航班要加上機(jī)票newFlight.setFcTicketRemain(newFlight.getFcTicketRemain()-newTicketOrder.getNum(); / 新的航班要剪掉機(jī)票newTicketOrder.setFlight(newFlight);newTicketOrder.setUser(currentUser);baseDAO.save(newTicketOrder); / 保存新的訂單baseDAO2.save(o

51、ldFlight); / 保存原先的航班信息baseDAO2.save(newFlight); / 保存新的航班信息baseDAO.delete(ticketOrder); / 刪除原先的訂單 . . . 25 / 454.2 后臺(tái)系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)4.2.1 管理員登錄功能 管理員在瀏覽器地址欄輸入:localhost:8080/TicketOrderSys/admin/login.jsp 則進(jìn)入后臺(tái)管理登錄頁面,如圖:管理員輸入正確的用戶名和密碼,則進(jìn)去系統(tǒng)主界面;如圖: . . . 26 / 45關(guān)鍵代碼: 用戶登錄:/* * 用戶登錄 * return * throws Exception

52、*/public String login()throws Exception Session session=request.getSession();User currentUser=userService.login(user);boolean flag=false;if(currentUser=null)flag=false; elsesession.setAttribute(currentUser, currentUser);flag=true;JSONObject result=new JSONObject();result.put(success, flag);ResponseU

53、til.write(ServletActionContext.getResponse(), result);return null; . . . 27 / 454.2.2 用戶管理 點(diǎn)擊“管理用戶”菜單按鈕,顯示:說明:用戶管理模塊包括用戶信息的查詢,用戶添加,用戶修改,用戶刪除;說明:進(jìn)入添加用戶界面,輸入用戶信息,點(diǎn)擊“保存”按鈕。即可完成保存功能;關(guān)鍵代碼實(shí)現(xiàn):分頁查詢獲取所有用戶信息;public List findUserList(User s_user, PageBean pageBean) List param=new LinkedList();StringBuffer hql=

54、new StringBuffer(from User);if(s_user!=null)if(StringUtil.isNotEmpty(s_user.getUserName()hql.append( and userName like ? );param.add(%+s_user.getUserName()+%);if(pageBean!=null)return baseDAO.find(hql.toString().replaceFirst(and, where), param, pageBean);elsereturn null; . . . 28 / 45添加或者修改用戶信息:刪除用戶

55、信息:4.2.3 客機(jī)管理 點(diǎn)擊“客機(jī)管理”菜單按鈕,顯示:說明:客機(jī)管理模塊里,有客機(jī)分頁顯示功能,按照客機(jī)名稱查詢功能,以與客機(jī)添加,客機(jī)修改,客機(jī)刪除;點(diǎn)擊“添加按鈕” ,效果如圖:public void delete(User user) baseDAO.delete(user);public void saveUser(User user) baseDAO.merge(user); . . . 29 / 45說明:進(jìn)入客機(jī)添加頁面,輸入客機(jī)信息,點(diǎn)擊“保存” ,即可完成客機(jī)添加功能;點(diǎn)擊“修改”按鈕,效果如圖:說明:進(jìn)入客機(jī)修改界面,根據(jù)需要,修改指定字段,點(diǎn)擊“保存”按鈕,即可完成

56、保存功能;選中需要?jiǎng)h除的客機(jī),點(diǎn)擊“刪除”按鈕,效果如圖: . . . 30 / 45說明:點(diǎn)擊“確定”按鈕,即可刪除客機(jī);關(guān)鍵代碼實(shí)現(xiàn):分頁查詢客機(jī)信息功能:添加商品和修改客機(jī)功能:public void saveAircraft(Aircraft aircraft) baseDAO.merge(aircraft);public List findAircraftList(Aircraft s_aircraft,PageBean pageBean) List param=new LinkedList();StringBuffer hql=new StringBuffer(from Aircr

57、aft);if(s_aircraft!=null)if(StringUtil.isNotEmpty(s_aircraft.getName()hql.append( and name like ? );param.add(%+s_aircraft.getName()+%);if(pageBean!=null)return baseDAO.find(hql.toString().replaceFirst(and, where), param, pageBean);elsereturn baseDAO.find(hql.toString().replaceFirst(and, where), par

58、am); . . . 31 / 45刪除客機(jī)功能:4.2.4 航班管理點(diǎn)擊菜單欄中的“航班管理” ,顯示:說明:進(jìn)入航班管理頁面,管理員可以查詢航班,添加航班,修改航班,刪除航班。 點(diǎn)擊“添加”按鈕,顯示:說明:進(jìn)入航班添加頁面,輸入信息,點(diǎn)擊“保存”按鈕,即可完成航班的添加功能;public void delete(Aircraft aircraft) baseDAO.delete(aircraft); . . . 32 / 45說明:進(jìn)入航班修改界面,修改信息,點(diǎn)擊“保存”按鈕,即可完成航班修改功能;選擇“確定”按鈕,即可刪除數(shù)據(jù),完成商品大類刪除功能;關(guān)鍵代碼實(shí)現(xiàn):分頁查詢所有航班信息:

59、 添加和修改航班功能:public List findFlightList(Flight s_flight,PageBean pageBean)List param=new LinkedList();StringBuffer hql=new StringBuffer(from Flight);if(s_flight!=null)if(StringUtil.isNotEmpty(s_flight.getName()hql.append( and name like %+s_flight.getName()+%);if(StringUtil.isNotEmpty(s_flight.getFligh

60、tType()hql.append( and flightType=+s_flight.getFlightType()+);if(StringUtil.isNotEmpty(s_flight.getFromCity()hql.append( and fromCity=+s_flight.getFromCity()+);if(StringUtil.isNotEmpty(s_flight.getToCity()hql.append( and toCity=+s_flight.getToCity()+);if(s_flight.getFromTime()!=null)hql.append( and

溫馨提示

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

評論

0/150

提交評論