版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
III摘要隨著互聯(lián)網(wǎng)的普及,越來越多的人開始享受到互聯(lián)網(wǎng)帶來的好處,網(wǎng)站成為用戶與企業(yè)之間的橋梁,讓用戶足不出戶就可享受到貼心的服務(wù)。當(dāng)今較為發(fā)達(dá)的交通工具之一—飛機(jī),成為越來越多乘客的選擇,為此開發(fā)一套網(wǎng)上航空訂票系統(tǒng)已經(jīng)迫在眉睫,開發(fā)該系統(tǒng)不僅有利于工作人員及時(shí)獲取各個(gè)機(jī)票的發(fā)售情況、乘客訂票情況;還可以在系統(tǒng)中操作退票、改簽等操作,大大的提高了工作效率。開發(fā)主要涉及到前端的jsp技術(shù)、后臺Java技術(shù)以及mysql數(shù)據(jù)庫技術(shù)。通過前端設(shè)計(jì)出簡潔大方的界面,后端盡可能使功能完備,讓用戶有良好的體驗(yàn),同時(shí)通過mysql數(shù)據(jù)庫保證數(shù)據(jù)的安全性和可靠性。最終開發(fā)一個(gè)具有用戶管理(系統(tǒng)用戶)、機(jī)票管理(訂單管理、流水記錄、改簽、退票、售票情況查詢)、基礎(chǔ)信息管理(機(jī)票信息、新聞公告、留言信息管理)。關(guān)鍵詞:JAVAJSPMYSQL,網(wǎng)上航空訂票系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)ABSTRACTWiththepopularityoftheInternet,moreandmorepeoplearebeginningtoenjoythebenefitsbroughtbytheInternet.Thewebsitehasbecomeabridgebetweenusersandenterprises,allowinguserstoenjoyintimateserviceswithoutleavingthehouse.Oneofthemoredevelopedmeansoftransportationtoday,airplanes,hasbecomethechoiceofmoreandmorepassengers.Forthisreason,thedevelopmentofanonlineairlinebookingsystemisimminent.Thedevelopmentofthissystemwillnotonlyhelpthestafftoobtainthesalesstatusofeachticket,passengersTicketbookingsituation;Youcanalsooperaterefund,changeandotheroperationsinthesystem,whichgreatlyimprovesworkefficiency.Thedevelopmentmainlyinvolvesfront-endjsptechnology,back-endJavatechnologyandmysqldatabasetechnology.Asimpleandelegantinterfaceisdesignedthroughthefrontend,andthebackendisascompleteaspossibletoprovideuserswithagoodexperience.Atthesametime,thedatasecurityandreliabilityareguaranteedthroughthemysqldatabase.Eventuallydevelopausermanagement(systemusers),ticketmanagement(ordermanagement,flowrecords,change,refund,ticketsalesquery),basicinformationmanagement(ticketinformation,newsannouncements,messageinformationmanagement).Keywords:JAVAJSPMYSQL,designandimplementationofonlineairlinebookingsystem目錄TOC\o"1-2"\h\z\t"標(biāo)題3,3,標(biāo)題4,4"24332摘要 39534ABSTRACT 311212第一章引言 7267281.1選題背景及意義 7283351.2國內(nèi)外現(xiàn)狀分析 8247561.2.1國內(nèi)現(xiàn)狀分析 842321.2.2國外現(xiàn)狀分析 8292091.3論文工作內(nèi)容 9128461.4系統(tǒng)特點(diǎn) 9234941.5論文組織結(jié)構(gòu) 106376第二章相關(guān)開發(fā)技術(shù)背景 1134422.1開發(fā)工具簡介 11243072.1.1Eclipse 1110882.1.2Navicat 1144432.2關(guān)鍵技術(shù)研究 11214332.2.1JSP技術(shù) 11280342.2.2Bootstrap技術(shù) 12255172.2.3B/S三層架構(gòu) 12174222.2.4Mysql數(shù)據(jù)庫 1229172第三章系統(tǒng)需求分析與設(shè)計(jì) 13297153.1系統(tǒng)的設(shè)計(jì)目標(biāo) 1380443.2需求分析 15186093.2.1功能需求 15188503.2.2權(quán)限與責(zé)任 1652483.3概要設(shè)計(jì) 17161343.3.1總體設(shè)計(jì) 173833.3.2模塊功能設(shè)計(jì) 182472第四章系統(tǒng)詳細(xì)設(shè)計(jì) 193544.1管理員功能模塊設(shè)計(jì) 19114554.1.1登錄功能 19270004.1.2公告管理功能 20213904.1.3機(jī)票管理功能 22241834.1.4用戶管理功能 2493234.1.5訂單管理功能 2661294.1.6退票管理功能 27166194.1.7留言回復(fù)功能 28724.2用戶功能模塊設(shè)計(jì) 3111554.2.1用戶注冊功能 3175034.2.2用戶登錄功能 33238384.2.3機(jī)票查詢功能 34202324.2.4用戶訂票功能 35136884.2.5訂單退票功能 4174404.2.6機(jī)票改簽功能 42264314.3數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì) 45206704.3.1基本設(shè)計(jì)概念和處理流程 4569834.3.2數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì) 5018699第五章系統(tǒng)測試 51287585.1系統(tǒng)測試目的與意義 5178475.2測試過程及結(jié)果 52177425.3其他錯(cuò)誤 548696第六章結(jié)束語 56106986.1論文工作總結(jié) 5618901隨著科學(xué)技術(shù)的發(fā)展,航空訂票系統(tǒng)也在不斷的革新來滿足用戶的需求,網(wǎng)上航空訂票系統(tǒng)不僅能幫助用戶解決訂票的問題,還能幫助航空公司降低對人工的需求有以及提高提高工作人員的工作效率,所以設(shè)計(jì)網(wǎng)上航空訂票系統(tǒng)具有重要意義。同時(shí),在設(shè)計(jì)本次系統(tǒng)過程中,我學(xué)會了要以更加全面的態(tài)度看待問題,比如在需求分析沒做好的情況下,急于實(shí)現(xiàn)系統(tǒng)功能可能在后期出現(xiàn)較大的失誤和漏洞,同時(shí),要站在多方面的立場上考慮問題,才能更好的實(shí)現(xiàn)用戶的航空公司想要的功能。另一方面,我對大學(xué)期間所學(xué)的java面向?qū)ο笤O(shè)計(jì)、數(shù)據(jù)庫系統(tǒng)原理、網(wǎng)頁設(shè)計(jì)等知識理解的更加透徹,對eclipse和navicat等開發(fā)軟件的使用更加熟練,本次設(shè)計(jì)既深化了課堂理論,又提高了動手鍛煉的能力,同時(shí)讓我學(xué)會了傾聽老師和同學(xué)的建議,讓我在完善系統(tǒng)的同時(shí)收獲了友情。相信在本次畢業(yè)設(shè)計(jì)的磨練下,可以為以后的工作奠定知識基礎(chǔ)。 56205746.2后續(xù)工作展望 568498參考文獻(xiàn) 5730748致謝 58第一章引言1.1選題背景及意義隨著中國經(jīng)濟(jì)社會的發(fā)展,互聯(lián)網(wǎng)事業(yè)也如“星星之火可以燎原”的態(tài)勢迅猛發(fā)展,人們對出行的便利性也有了更高的要求,對于航空運(yùn)輸業(yè)這個(gè)快捷的出行方式,成為越來越多人們的選擇。俗話說“想致富先修路”,說明運(yùn)輸業(yè)對經(jīng)濟(jì)發(fā)展起一定的促進(jìn)作用,同時(shí)運(yùn)輸業(yè)也成為聯(lián)系各地經(jīng)濟(jì)發(fā)展的橋梁,航運(yùn)作為運(yùn)輸業(yè)的一個(gè)重要分支,成為促進(jìn)經(jīng)濟(jì)發(fā)展的基本手段。在飛速發(fā)展的智能交通時(shí)代,網(wǎng)上航空訂票信息化也亟待解決。傳統(tǒng)的人工訂票方式暴露出越來越多的缺陷,以及用戶對于網(wǎng)上訂票的需求以及航空部門對于票務(wù)的有效管理促使我設(shè)計(jì)出一套網(wǎng)上航空訂票系統(tǒng),該訂票系統(tǒng)具有頁面整齊、通俗易懂、與用戶的交互性強(qiáng)、開發(fā)簡單、維護(hù)方便、成本低等特點(diǎn),同時(shí)具有訂票、退票、改簽、后臺管理等功能。通過詳細(xì)的需求分析確定本系統(tǒng)的設(shè)計(jì)目標(biāo),并通過Java語言、JSP技術(shù)、MYSQL技術(shù)共同開發(fā)網(wǎng)上航空訂票系統(tǒng),希望它能方便快捷的運(yùn)用到航運(yùn)事業(yè)中,減少用戶的路程奔忙和時(shí)間、金錢耗費(fèi),方便用戶在線訂票,幫助機(jī)場柜臺人員降低工作量,提高工作效率。1.2國內(nèi)外現(xiàn)狀分析1.2.1國內(nèi)現(xiàn)狀分析國內(nèi)的網(wǎng)上航空訂票系統(tǒng)在近三十年來有了卓越的發(fā)展,在1999年9月,中國羊城道路公司首次使用網(wǎng)上航空訂票系統(tǒng)來處理用戶的訂票信息,用戶只需要登錄系統(tǒng)就可以訂購機(jī)票,在幾個(gè)月后,中國南方航空公司推出了第一張電子機(jī)票,國內(nèi)網(wǎng)上航空系統(tǒng)開始逐步發(fā)展,但那時(shí)僅對一部分用戶提供了便利,大部分人還是得去柜臺買票。最近幾年,人們生活水平出現(xiàn)了質(zhì)的飛越,人們越來越看好飛機(jī)這種出行方式,這對航空公司提出了更高的要求,航空公司不得不投入更多的人力去解決用戶訂票的問題,這對航空公司的負(fù)荷加重,迫使航空公司采取更有效的手段?;ヂ?lián)網(wǎng)的發(fā)展給航空公司帶來了希望,逐步發(fā)展起來的電子機(jī)票也越來越廣泛,從民航在線、航班管家,航運(yùn)事業(yè)發(fā)展日新月異,最近比較火的軟件如飛豬、同程旅行、途牛旅行、攜程旅行等都努力發(fā)揮自身優(yōu)勢,以攜程舉例,攜程網(wǎng)最大的優(yōu)勢是實(shí)現(xiàn)了與旅游酒店合作的一站式服務(wù),攜程網(wǎng)會幫用戶定制用戶喜歡且價(jià)格優(yōu)惠的出行服務(wù),這極大的吸引了廣大用戶的目光,滿足了用戶的基本需求,相信在不久的將來,網(wǎng)上訂票服務(wù)將發(fā)展的越來越好。1.2.2國外現(xiàn)狀分析外國航空訂票系統(tǒng)由于互聯(lián)網(wǎng)早期時(shí)代的發(fā)展,在20世紀(jì)初建立了比較完整的B/S航空訂票系統(tǒng),實(shí)現(xiàn)目的是互聯(lián)網(wǎng)能夠以操作票相關(guān)事宜。英國航空公司已經(jīng)開發(fā)能夠執(zhí)行預(yù)定功能和銷售的電子客票,在當(dāng)時(shí)引起了廣大航空公司的關(guān)注。隨著出行旅客的增加,航空公司開始縮短航線時(shí)間增加飛機(jī)數(shù)目滿足用戶的需求,航空公司的負(fù)擔(dān)加重,于是在1995年,美國逐步在全國推行電子客票。1996年,他宣布了一項(xiàng)分四配股方案,訂購24架空客319,持有國內(nèi)最大的航空客運(yùn)和貨運(yùn)承運(yùn)人的地位。1997年,進(jìn)入國際貨運(yùn)領(lǐng)域,和加拿大航空、德國漢莎航空公司、泰國航空公司以及北歐聯(lián)合成立了“星空聯(lián)盟”的服務(wù)范圍擴(kuò)展到全球范圍。使用電子客票的英國,成為第一家航空公司使用電子客票的國際水平。在1998年,它訂購了30架空中客車飛機(jī),23架波音飛機(jī),他宣布與美國達(dá)美航空公司七年的合作伙伴關(guān)系。。出票方式有電子機(jī)票、機(jī)場取票、快遞服務(wù)等多種方式。1.3論文工作內(nèi)容論文研究的課題內(nèi)容為網(wǎng)上航空訂票系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),該航空訂票系統(tǒng)旨在方便廣大出行的乘客和售票的服務(wù)人員。在調(diào)查各航空公司的訂票服務(wù)后,分析并討論了在市場需求方面存在的一些問題和潛在的弊端,決定開發(fā)一套完整的網(wǎng)上航空訂票系統(tǒng)。首先對該程序設(shè)計(jì)的背景進(jìn)行調(diào)查和分析,并通過國內(nèi)外現(xiàn)狀努力找到該系統(tǒng)的亮點(diǎn)和突破點(diǎn),確定論文的主要研究內(nèi)容和系統(tǒng)架構(gòu)。其次以Java語言作為開發(fā)本系統(tǒng)的主要語言,并查找相關(guān)的理論知識,分析并討論在技術(shù)、經(jīng)濟(jì)、政治等方面的可行性。接著分析系統(tǒng)在功能上的需求,通過業(yè)務(wù)流程圖展現(xiàn)主要的功能需求,在業(yè)務(wù)流程圖的基礎(chǔ)上實(shí)現(xiàn)功能的整體規(guī)劃,最后進(jìn)行登錄模塊測試和核心功能測試,進(jìn)一步完善網(wǎng)上航空訂票系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。1.4系統(tǒng)特點(diǎn)本系統(tǒng)主要具有以下幾個(gè)特色:(1)系統(tǒng)界面展示友好,功能實(shí)用且操作比較快捷簡單。(2)開發(fā)系統(tǒng)所用的周期短,維護(hù)費(fèi)用低,軟件的更新速度也較快,具有可靠性、安全性、可維護(hù)性的特點(diǎn)。(3)系統(tǒng)具有很好的可移植和擴(kuò)展性,也主要表現(xiàn)在:首先,用戶只需要瀏覽器(IE5.0及以上)就可使用該系統(tǒng);其次,該系統(tǒng)提供的管理員登陸功能,可以方便的進(jìn)行權(quán)限的控制;最后,該系統(tǒng)可以根據(jù)交通運(yùn)輸部門隨著市場相關(guān)策略的改動,而增加或者修改一些功能,卻不影響到系統(tǒng)本身。(4)系統(tǒng)從開發(fā)到完成,考慮的都是要很好地實(shí)現(xiàn)人機(jī)交互,能夠讓操作人員,特別是對計(jì)算機(jī)知識、網(wǎng)絡(luò)知識不是很熟悉的人員,也能夠快速地理解并使用該系統(tǒng)。(5)在操作人員輸入數(shù)據(jù)時(shí),系統(tǒng)可以自動提示數(shù)據(jù)的類型,例如:日期。這樣保證操作人員輸入數(shù)據(jù)的正確性。(6)同時(shí),系統(tǒng)采用B/S的架構(gòu)體系,維護(hù)方便、開發(fā)簡單,成本低,選擇也比較多。1.5論文組織結(jié)構(gòu)本系統(tǒng)主要研究的內(nèi)容分是如何設(shè)計(jì)和實(shí)現(xiàn)網(wǎng)上航空訂票系統(tǒng),文章共分為六個(gè)章節(jié)的內(nèi)容:第一章:引言,本章主要對課題的背景、課題研究的意義,國內(nèi)外航空訂票系統(tǒng)的現(xiàn)狀分析以及論文的工作內(nèi)容、系統(tǒng)特點(diǎn)和論文組織結(jié)構(gòu)進(jìn)行介紹。第二章:相關(guān)開發(fā)技術(shù)背景的介紹。本章從Eclipse、Navicat等開發(fā)工具以及JSP技術(shù)、bootstrap技術(shù)、B/S三層架構(gòu)、Mysql數(shù)據(jù)庫等方面來介紹系統(tǒng)所涉及的相關(guān)技術(shù)。第三章:主要對網(wǎng)上航空訂票系統(tǒng)的需求分析,概要設(shè)計(jì)進(jìn)行詳細(xì)的介紹。第四章:系統(tǒng)需求分析與設(shè)計(jì),從管理員功能模塊、用戶功能模塊以及數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)三個(gè)方面具體闡述了網(wǎng)上航空訂票系統(tǒng)的主要功能設(shè)計(jì)。第五章:網(wǎng)上航空訂票系統(tǒng)的測試與分析,對主要的功能進(jìn)行測試,排查系統(tǒng)中的錯(cuò)誤,并對測試過程和結(jié)果進(jìn)行分析第六章:結(jié)束語,對論文工作進(jìn)行總結(jié),并提出后續(xù)工作的展望。第二章相關(guān)開發(fā)技術(shù)背景2.1開發(fā)工具簡介2.1.1EclipseEclipse是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(JavaDevelopmentKit,JDK)。Eclipse很適合Java語言開發(fā),在編寫后臺代碼時(shí),eclipse會有錯(cuò)誤提示,幫助程序員及時(shí)定位和解決錯(cuò)誤,同時(shí)eclipse中可以安裝開源免費(fèi)的tomcat服務(wù)器,可以將項(xiàng)目放在tomcat上運(yùn)行調(diào)試,當(dāng)系統(tǒng)報(bào)錯(cuò)時(shí),還可以通過debug進(jìn)行斷點(diǎn)調(diào)試,并在eclipse內(nèi)置的Internetwebbrowser上展示頁面。Eclipse不僅可以編寫后臺代碼,還可以編寫jsp頁面??傊?,Eclipse是個(gè)非常強(qiáng)大的開發(fā)工具,使用它可以很方便的進(jìn)行JavaWeb開發(fā)。2.1.2NavicatNavicat是一套快速、可靠并價(jià)格相當(dāng)便宜的數(shù)據(jù)庫管理工具,專為簡化數(shù)據(jù)庫的管理及降低系統(tǒng)管理成本而設(shè)。它的設(shè)計(jì)符合數(shù)據(jù)庫管理員、開發(fā)人員及中小企業(yè)的需要。Navicat是以直覺化的圖形用戶界面而建的,讓你可以以安全并且簡單的方式創(chuàng)建、組織、訪問并共用信息。Navicat由于操作簡單,功能強(qiáng)大等優(yōu)點(diǎn)被廣大程序員所認(rèn)可和使用,navicat不僅可以連接mysql,還可以連接postgreSQL、SQLServer、Oracle等數(shù)據(jù)庫,并包含了表、視圖、函數(shù)、事件、用戶、查詢、報(bào)表等基本功能,界面簡潔,也適合初學(xué)者進(jìn)行學(xué)習(xí)和開發(fā),設(shè)計(jì)的數(shù)據(jù)庫可以進(jìn)行導(dǎo)入導(dǎo)出,方便保存。2.2關(guān)鍵技術(shù)研究2.2.1JSP技術(shù)JSP(全稱JavaServer
Pages)是由SunMicrosystems公司主導(dǎo)創(chuàng)建的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP部署于網(wǎng)絡(luò)服務(wù)器上,可以響應(yīng)客戶端發(fā)送的請求,并根據(jù)請求內(nèi)容動態(tài)地生成HTML、XML或其他格式文檔的Web網(wǎng)頁,然后返回給請求者。JSP技術(shù)以Java語言作為腳本語言,為用戶的HTTP請求提供服務(wù),并能與服務(wù)器上的其它Java程序共同處理復(fù)雜的業(yè)務(wù)需求。因此,在使用Java作為后臺語言的基礎(chǔ)上,使用JSP技術(shù)能夠更好的配合Java實(shí)現(xiàn)業(yè)務(wù)邏輯、跨平臺性、預(yù)編譯等特點(diǎn)。JSP技術(shù)有一個(gè)很大的特點(diǎn),就是JSP頁面中可以嵌套Java代碼,JSP頁面中的html負(fù)責(zé)實(shí)現(xiàn)頁面繪制,Java代碼負(fù)責(zé)動態(tài)數(shù)據(jù)的顯示。而Java代碼受后臺業(yè)務(wù)控制層代碼的管理,即使嵌套的Java代碼發(fā)生錯(cuò)誤,也不影響JSP頁面的顯示。本系統(tǒng)即利用了JSP技術(shù)中能夠配合Java動態(tài)顯示數(shù)據(jù)及預(yù)編譯的特點(diǎn)。2.2.2Bootstrap技術(shù)Bootstrap是Twitter推出的一個(gè)開源的用于前端開發(fā)的工具包,是一個(gè)CSS/HTML框架。它由Twitter的設(shè)計(jì)師MarkOtto和JacobThornton合作開發(fā)。Bootstrap提供了優(yōu)雅的HTML和CSS規(guī)范,它即是由動態(tài)CSS語言Less寫成。Bootstrap一經(jīng)推出后頗受歡迎,一直是GitHub上的熱門開源項(xiàng)目,包括NASA的MSNBC(微軟全國廣播公司)的BreakingNews都使用了該項(xiàng)目。Bootstrap功能強(qiáng)大,根據(jù)官網(wǎng)提供的中文文檔就可以進(jìn)行基礎(chǔ)學(xué)習(xí)和使用,里面有全局css樣式、豐富的組件以及JavaScript插件供程序員選擇,對快速設(shè)計(jì)漂亮的界面有很大的幫助,bootstrap還有一個(gè)重要的功能是柵格系統(tǒng),通過設(shè)置柵格參數(shù),可以用一套代碼同時(shí)在手機(jī)、平板、桌面上展示頁面。本系統(tǒng)主要使用了Glyphicons字體圖標(biāo)、按鈕、表單等顯示簡潔的頁面。
2.2.3B/S三層架構(gòu)三層架構(gòu)(3-tierarchitecture)通常意義上的三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:界面層(UserInterfacelayer)、業(yè)務(wù)邏輯層(BusinessLogicLayer)、數(shù)據(jù)訪問層(Dataaccesslayer)。區(qū)分層次的目的即為了“\t"/item/%E4%B8%89%E5%B1%82%E6%9E%B6%E6%9E%84/_blank"高內(nèi)聚低耦合”的思想。在軟件體系架構(gòu)設(shè)計(jì)中,分層式結(jié)構(gòu)是最常見,也是最重要的一種結(jié)構(gòu)。微軟推薦的分層式結(jié)構(gòu)一般分為三層,從下至上分別為:數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層(又或稱為領(lǐng)域?qū)樱?、表示層?.2.4Mysql數(shù)據(jù)庫MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),這樣就增加了速度并提高了靈活性。MySQL所使用的SQL語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。mysql安裝簡單,且可以通過終端直接登錄到mysql,在終端輸入sql語句可以查看已有的數(shù)據(jù)庫及數(shù)據(jù)庫表,也可以對數(shù)據(jù)庫進(jìn)行增刪改查。Mysql有mysqlworkbench、navicat等可視化軟件,操作簡單易上手,非常適合初學(xué)者或者想要開發(fā)簡單程序的人。Mysql還有視圖、函數(shù)、事務(wù)、權(quán)限控制、性能調(diào)優(yōu)、緩存機(jī)制等的深入原理值得學(xué)習(xí)。Mysql由于是開源的,這就引起了眾多優(yōu)秀的程序員研究mysql,并將mysql改造成更適應(yīng)自己工作需求的數(shù)據(jù)庫,這也造成了現(xiàn)如今很多數(shù)據(jù)庫的分支。第三章系統(tǒng)需求分析與設(shè)計(jì)3.1系統(tǒng)的設(shè)計(jì)目標(biāo)網(wǎng)上航空訂票系統(tǒng)旨在幫助出行的乘客提供快捷方便的購票平臺,同時(shí)使航空部門更好的管理票務(wù)信息。從用戶角度來看,簡單易操作的界面,可以幫助乘客快速掌握訂票流程,實(shí)現(xiàn)足不出戶就能購買到心儀的機(jī)票,減少了時(shí)間耗費(fèi)和出行成本,同時(shí)在乘客改變行程時(shí)也可以通過系統(tǒng)改簽或者退票,滿足了乘客的基本需求;從航空公司的角度來看,極大地節(jié)省了人力的需求量,減少了出現(xiàn)錯(cuò)誤的可能性,運(yùn)用持久化數(shù)據(jù)庫的方式也更好的用戶和票務(wù)信息。同時(shí)航空部門也可以通過公告管理向乘客推送最新的航空動態(tài),讓用戶更好的管理自己的出行計(jì)劃。綜上,根據(jù)用戶和航空公司方面的需求,網(wǎng)上航空訂票系統(tǒng)主要包含以下幾個(gè)基本功能:一、用戶管理系統(tǒng):首頁、新聞公告、機(jī)票查詢、留言交流、根據(jù)起始點(diǎn)查詢機(jī)票、用戶注冊、用戶登錄、個(gè)人信息,購買機(jī)票、改簽、退票;二、管理員系統(tǒng):管理員登錄、管理員信息修改、公告管理、機(jī)票管理、訂單管理、流水記錄、退票管理、用戶管理、留言管理。網(wǎng)上航空訂票系統(tǒng)的系統(tǒng)功能結(jié)構(gòu)圖如圖3.1所示:圖3.1系統(tǒng)功能結(jié)構(gòu)圖3.2需求分析需求分析是程序設(shè)計(jì)中非常重要的一部分,需求分析做的完整到位才能在程序設(shè)計(jì)中設(shè)計(jì)出有價(jià)值、有意義,可供企業(yè)選擇和用戶使用的系統(tǒng)。網(wǎng)上航空訂票系統(tǒng)主要分為用戶和管理員兩個(gè)權(quán)限,分別要實(shí)現(xiàn)用戶的訂票功能和管理員的管理功能,同時(shí)注意前后臺數(shù)據(jù)的交互性。3.2.1功能需求1.航空公司需求1.訂票與取票分離隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,選擇通過飛機(jī)出行這種快捷方式的乘客也越來越多,這就對航空公司提出了更高的要求,僅靠人力去完成乘客的訂票取票需求的缺陷越來越明顯,于是航空公司需要一套系統(tǒng)去實(shí)現(xiàn)取票與訂票的分離。現(xiàn)在最常用的訂票方式有網(wǎng)絡(luò)訂票、電話訂票、機(jī)場買票三種方式。這三種訂票方式基本覆蓋了絕大多數(shù)用戶的訂票需求,但對那些對互聯(lián)網(wǎng)略懂一二的人來說,網(wǎng)絡(luò)訂票無疑是最快捷的訂票方式,對年齡較大或偏遠(yuǎn)地區(qū)的人也可以采用電話訂票和機(jī)場買票的方式;現(xiàn)在的取票方式主要有兩種,如果乘客通過網(wǎng)絡(luò)購票的方式,可以在起飛當(dāng)日提前兩個(gè)小時(shí)到達(dá)機(jī)場通過身份證進(jìn)行取票,或者不能到機(jī)場取票的乘客,可以選擇“快遞服務(wù)”。2.付款隨著微信支付寶等數(shù)字貨幣的普及,用戶通過網(wǎng)銀的方式進(jìn)行付款方便快捷,對于航空公司來說也方便管理和維護(hù),所以系統(tǒng)也采用了網(wǎng)銀付款的方式進(jìn)行設(shè)計(jì)。3.取票取票可在機(jī)場進(jìn)行或者由工作人員安排送票上門。去機(jī)場取票時(shí),可以去柜臺取票或者找到自助取票機(jī),通過身份證識別身份信息,確認(rèn)航班信息準(zhǔn)確無誤后,即可打印機(jī)票。此時(shí),如果乘客有大件行李,可以在柜臺辦理托運(yùn),辦理托運(yùn)需支付一定的費(fèi)用(20公斤內(nèi)免費(fèi))。安檢過安檢時(shí),會有專門的安檢通道,乘客需將身份證,登機(jī)牌等證件交由工作人員進(jìn)行終端自動驗(yàn)票,同時(shí)工作人員會檢查乘客是否攜帶違規(guī)物品,保證航線安全出行。5.保留人工現(xiàn)場售票、驗(yàn)票系統(tǒng)柜臺售票處將作為辦理特殊售票地點(diǎn)。同時(shí)也是為因種種原因沒有隨身攜帶身 份信息的乘客提供售票服務(wù)的地點(diǎn)。對于不能提供或忘帶身份信息的乘客,可以到 機(jī)場指定窗口進(jìn)行求助,也可以到當(dāng)?shù)嘏沙鏊k理臨時(shí)身份證進(jìn)行登機(jī);對于沒有 辦理身份證的兒童,應(yīng)出示乘機(jī)人的戶口,辦理相關(guān)證明進(jìn)行登機(jī);工作人員將根 據(jù)這些信息準(zhǔn)確錄入請保存進(jìn)系統(tǒng)2.乘客需求分析1.乘客要求可對機(jī)票信息實(shí)時(shí)的查詢。2.乘客要求可以查看機(jī)場方面發(fā)布的實(shí)時(shí)新聞公告,以便及時(shí)了解,改變行程。3.乘客要求可以網(wǎng)上支付,以減少路途奔波和出行費(fèi)用。4.乘客要求對已訂購的機(jī)票能改簽、退票。5.乘客要求系統(tǒng)設(shè)置留言功能可以提交建議給機(jī)場。3.2.2權(quán)限與責(zé)任航空訂票系統(tǒng)有兩種角色的人員,因此需要設(shè)置兩種權(quán)限。一是用戶可以在線查詢機(jī)票,購買機(jī)票,機(jī)票的退票改簽等;二是管理員能夠管理所有機(jī)票信息,對機(jī)票信息及時(shí)更新,查詢機(jī)票的銷量情況以及管理用戶等。1、用戶:查詢新聞公告、查詢機(jī)票、機(jī)票預(yù)訂、機(jī)票退票改簽、留言交流、個(gè)人信息修改。2、管理員:新聞公告信息維護(hù)、機(jī)票信息維護(hù)、訂單信息查詢、退票管理、流水記錄、留言管理、用戶管理、管理員信息修改。3.3概要設(shè)計(jì)3.3.1總體設(shè)計(jì)網(wǎng)上航空訂票系統(tǒng)包含以下功能:用戶模塊的用戶注冊登錄功能,個(gè)人信息修改,機(jī)票信息查詢,機(jī)票預(yù)定,新聞公告,留言交流,機(jī)票的退票改簽等;管理員模塊的公告管理,機(jī)票信息管理,訂單管理,退票管理,流水記錄,用戶管理,留言管理,密碼修改等。網(wǎng)上航空訂票系統(tǒng)除了應(yīng)具備用戶模塊注冊、登錄、驗(yàn)證功能的實(shí)現(xiàn)和管理員登錄、驗(yàn)證的原始賬號設(shè)置以外,還應(yīng)該具備的基本網(wǎng)站使用功能如下:1.實(shí)現(xiàn)機(jī)票查詢:用戶可以通過起始點(diǎn)查詢指定航班的機(jī)票信息,機(jī)票編號、所屬路線、機(jī)票時(shí)間、價(jià)格、余票等一目了然。用戶可根據(jù)自己的出行計(jì)劃選擇合適的機(jī)票進(jìn)行購買。2.實(shí)現(xiàn)購買機(jī)票:用戶在沒有登錄系統(tǒng)之前是不允許購買機(jī)票的,所以用戶需要首先登錄系統(tǒng),用戶可根據(jù)自身需求查詢自己要乘坐的航班,選擇機(jī)票后會加入我的購物車,確定購買后,通過網(wǎng)銀付款支付訂單后完成購買。3.實(shí)現(xiàn)退票或改簽:用戶購買機(jī)票后,可能因?yàn)樾谐淘蛐枰暮灮蛲似薄.?dāng)用戶選擇改簽時(shí),系統(tǒng)會提示“只能進(jìn)行一次改簽,確認(rèn)改簽嗎?”,用戶確認(rèn)改簽之后,系統(tǒng)會查詢到當(dāng)前航線其他機(jī)次的機(jī)票,改簽后的訂單金額與原訂單金額一致,所以不需要額外支付費(fèi)用或者退款;當(dāng)用戶選擇退票時(shí),系統(tǒng)會提示“退票將扣除5%的手續(xù)費(fèi),確認(rèn)退票嗎”,用戶選擇確認(rèn)退票后,系統(tǒng)會自動扣除票面金額的5%,剩余的錢退回到用戶的支付賬戶。4.實(shí)現(xiàn)電話訂票:由于時(shí)間和能力有限,本系統(tǒng)沒有實(shí)現(xiàn)在線客服功能,但是在留言板上提供了國航銷售服務(wù)熱線,用戶如果對訂購機(jī)票方面有疑問,可以撥打熱線電話進(jìn)行咨詢。5.實(shí)現(xiàn)實(shí)時(shí)機(jī)票信息:用戶可以通過機(jī)票查詢頁面查詢到詳細(xì)的機(jī)票信息,通過余票數(shù)量,用戶可以直觀的判斷該機(jī)次能否購票;當(dāng)用戶購買機(jī)票并支付成功后,后臺機(jī)票管理頁面對應(yīng)機(jī)票數(shù)量會減少一張,前臺機(jī)票查詢頁面機(jī)票余票也會自動更新;當(dāng)用戶選擇改簽操作時(shí),原價(jià)票數(shù)量會增加一張,改簽后的機(jī)票數(shù)量會減少一張;當(dāng)用戶選擇退票操作時(shí),對應(yīng)機(jī)票數(shù)量會增加一張6.實(shí)現(xiàn)后臺管理員操作:a.管理員可對航班的機(jī)票編號、機(jī)票時(shí)間、價(jià)格、所屬路線等信息進(jìn)行修改b.查詢和管理所有的訂單信息c.發(fā)布最新的新聞公告d.查詢并顯示用戶的退票信息e.對機(jī)票的出入庫情況進(jìn)行統(tǒng)計(jì)和查詢f.回復(fù)用戶的留言或刪除用戶不恰當(dāng)?shù)难哉揼.管理用戶,對做出不正當(dāng)行為的用戶采取加入黑名單操作3.3.2模塊功能設(shè)計(jì)1、用戶可以進(jìn)行的操作(1)用戶中心:用戶首次登陸系統(tǒng)需要進(jìn)行注冊、登陸;用戶個(gè)人信息修改;用戶訂單查詢;(2)查詢機(jī)票信息:機(jī)票編號、所屬路線、機(jī)票時(shí)間、價(jià)格、余票等。(3)訂單:核對機(jī)票信息,填寫個(gè)人信息;支付訂單。(4)退票:退票需要收取票面金額5%的手續(xù)費(fèi),剩余的錢退回到原賬戶。(5)改簽:改簽只允許改一次,且只允許改簽到當(dāng)前航線其他機(jī)次的機(jī)票2、管理員可以進(jìn)行的操作(1)公告管理:管理員可以通過公告管理頁面向用戶推送最新的航空動態(tài)。(2)訂單管理:對用戶提交的訂單信息進(jìn)行統(tǒng)計(jì),方便查詢。(3)修改航班信息:管理員可以對飛機(jī)的機(jī)票編號、機(jī)票時(shí)間、價(jià)格、所屬路線等航班信息進(jìn)行修改。(4)退票管理:管理員可以對用戶的退票信息進(jìn)行查詢和統(tǒng)計(jì)。(5)流水記錄:機(jī)票的出入庫信息將在流水記錄頁面展示。(6)用戶管理:管理員可以對用戶進(jìn)行加入黑名單或取消加入黑名單操作。(7)留言管理:管理員可以及時(shí)回復(fù)用戶提出的問題,并對用戶留下的不當(dāng)言論進(jìn)行刪除。(8)管理員信息修改:管理員可以修改登錄密碼。第四章系統(tǒng)詳細(xì)設(shè)計(jì)4.1管理員功能模塊設(shè)計(jì)4.1.1登錄功能管理員要想獲得管理權(quán)限,首先要登錄系統(tǒng),管理員需輸入正確的用戶名和密碼才能登錄系統(tǒng)。登錄的實(shí)現(xiàn)代碼為:publicStringadminLogin(){ Mapsession=ServletActionContext.getContext().getSession(); upass=MD5.getDigest(upass); Stringhql="fromSysuserwhereuname='"+uname+"'andupass='" +upass+"'andtype='管理員'"; ListadminList=commonDAO.findByHql(hql); if(adminList.size()!=0){ Sysusersysuser=(Sysuser)adminList.get(0); session.put("admin",sysuser); suc=""; return"success"; }else{ no=""; return"erro"; } }登錄頁面如圖所示:圖4-1管理員登錄頁面4.1.2公告管理功能 管理員通過公告管理頁面發(fā)布最新的航空動態(tài),讓用戶看到最新的航空訂票信息,從而及時(shí)合理安排出行計(jì)劃。管理員可以新增公告,新增內(nèi)容包括公告標(biāo)題、類型、公告標(biāo)題,可以查詢公告,公告查詢內(nèi)容包括類型、公告標(biāo)題、發(fā)布日期,管理員還可以修改公告以及刪除公告。 新增新聞公告的實(shí)現(xiàn)代碼為: publicStringnoticeAdd(){ Noticenotice=newNotice(); notice.setTitle(title); notice.setContent(content); notice.setSavetime(Info.getDateStr()); commonDAO.save(notice); suc=""; return"success"; }編輯新聞公告的實(shí)現(xiàn)代碼為: publicStringnoticeEdit(){ Noticenotice=(Notice)commonDAO.findById(id,"Notice"); notice.setTitle(title); notice.setContent(content); commonDAO.update(notice); suc=""; return"success"; }刪除新聞公告的實(shí)現(xiàn)代碼為:publicStringnoticeDel(){ commonDAO.delete(id,"Notice"); suc=""; return"success"; }公告管理的頁面如圖所示:圖4-2公告管理頁面4.1.3機(jī)票管理功能管理員可以通過機(jī)票管理頁面管理機(jī)票信息,管理員可以添加機(jī)票信息,機(jī)票信息包括機(jī)票編號、機(jī)票時(shí)間、價(jià)格、所屬線路等,可以根據(jù)線路查詢機(jī)票信息,主要是查詢當(dāng)前機(jī)票的余票信息,管理員還可以修改機(jī)票信息以及刪除機(jī)票。機(jī)票管理的功能有新增、查詢、編輯和刪除,具體的實(shí)現(xiàn)代碼如下://新增機(jī)票 publicStringproductAdd() { System.out.println("11=="+field1); Productproduct=newProduct(); product.setProname(proname); product.setProno(prono); //product.setImg(img); product.setPrice(price); product.setProtype(protype); product.setRemark(remark); product.setDelstatus("0");//0:正常;1:刪除 product.setField1(field1);//時(shí)間 product.setField2(field2.trim()); product.setField3(field3.trim()); product.setField4(field4); product.setField5(field5); product.setField6(field6); product.setField9(field9); product.setField10(field10); commonDAO.save(product); suc=""; return"success"; } //編輯機(jī)票 publicStringproductEdit(){ Productproduct=(Product)commonDAO.findById(id,"Product"); product.setProname(proname); product.setProno(prono); product.setPrice(price); product.setProtype(protype); product.setRemark(remark); product.setField1(field1);//時(shí)間 product.setField2(field2); product.setField3(field3); product.setField4(field4); product.setField5(field5); commonDAO.update(product); suc=""; return"success"; } //刪除機(jī)票 publicStringproductDel(){ Productproduct=(Product)commonDAO.findById(id,"Product"); product.setDelstatus("1"); commonDAO.update(product); return"success"; }機(jī)票管理頁面如圖所示:圖4-3機(jī)票管理頁面4.1.4用戶管理功能 管理員可以通過用戶管理頁面管理用戶信息,要想創(chuàng)造一個(gè)和諧的系統(tǒng)環(huán)境,就要對用戶的言語、行為等進(jìn)行一定的約束,當(dāng)用戶作出不恰當(dāng)?shù)男袨闀r(shí),管理員可以對用戶進(jìn)行加入黑名單操作,加入黑名單的實(shí)現(xiàn)方式為將用戶信息的blackname設(shè)為yes,拉黑后的用戶不可登錄本系統(tǒng),當(dāng)用戶承諾遵守系統(tǒng)規(guī)范并通過熱線電話等方式申請登錄系統(tǒng)時(shí),管理員可根據(jù)實(shí)際情況取消加入黑名單,取消加入黑名單的實(shí)現(xiàn)方式為將用戶信息的blackname設(shè)為no。 實(shí)現(xiàn)代碼為:Stringinid=request.getParameter("inid");Stringoutid=request.getParameter("outid");if(inid!=null){ Sysusers1=(Sysuser)dao.findById(inid,"Sysuser"); s1.setBlackname("yes"); dao.update(s1);}if(outid!=null){ Sysusers2=(Sysuser)dao.findById(outid,"Sysuser"); s2.setBlackname("no"); dao.update(s2);} 用戶管理頁面如圖所示:圖4-4用戶管理頁面4.1.5訂單管理功能 管理員可以通過訂單管理頁面查看用戶的訂單信息,由于本系統(tǒng)為自動售票系統(tǒng),所以管理員只能對訂單信息進(jìn)行查詢,不需要作其它操作,查詢訂單信息包括訂單號、訂單機(jī)票、訂單總金額、付款狀態(tài)、訂單時(shí)間、訂單人、電話、身份證號、是否改簽等。訂單管理的實(shí)現(xiàn)代碼為:訂單管理頁面如圖所示:圖4-5訂單管理頁面4.1.6退票管理功能管理員可以通過退票管理頁面查看用戶提交的退票信息,用戶退票產(chǎn)生的數(shù)據(jù)一目了然,查詢到的退票信息包括訂單號、訂單機(jī)票、訂單總金額、退款狀態(tài)、訂單時(shí)間、訂單人、電話、身份證號等信息。退票管理頁面如下: 圖4-6退票管理頁面4.1.7留言回復(fù)功能管理員可以通過留言管理頁面查看用戶的留言信息,管理員可以回復(fù)留言,在系統(tǒng)內(nèi)形成一個(gè)互動平臺,管理員可以幫助用戶解決不必要的麻煩,同時(shí)加強(qiáng)與用戶的溝通,也能更好的了解用戶的需求,從而優(yōu)化和升級系統(tǒng)。管理員還可以對不良言論進(jìn)行刪除,保證系統(tǒng)的良好環(huán)境。 管理員后臺回復(fù)留言和留言刪除的代碼實(shí)現(xiàn)為://留言回復(fù) publicStringmsgReply(){ Msgmsg=(Msg)commonDAO.findById(id,"Msg"); msg.setReply(reply); commonDAO.update(msg); suc=""; return"success"; } //留言刪除 publicStringmsgDel(){ commonDAO.delete(id,"Msg"); suc=""; return"success"; }圖4-7退票管理頁面4.2用戶功能模塊設(shè)計(jì)4.2.1用戶注冊功能 用戶想要在線訂票就必須先進(jìn)行用戶注冊,沒有注冊登錄系統(tǒng)之前,用戶僅可以瀏覽新聞公告、留言交流信息、機(jī)票信息等,不可以在線訂票或留言。用戶注冊信息包括用戶名、密碼、重復(fù)密碼、真實(shí)姓名、性別、年齡、電話、email、身份證號等。用戶注冊時(shí)要按照正確的格式輸入信息,否則系統(tǒng)將提示格式不正確。用戶注冊完后,可以登錄系統(tǒng),同時(shí)可以對個(gè)人信息進(jìn)行修改。用戶注冊頁面如下:圖4-8用戶注冊頁面注冊時(shí)的代碼實(shí)現(xiàn)為://用戶注冊 publicStringmemberReg() { Stringhql="fromSysuserwhereuname='"+uname+"'"; ListadminList=commonDAO.findByHql(hql); if(adminList.size()!=0){ no=""; return"erro"; }else{ Sysusersysuser=newSysuser(); sysuser.setUname(uname); upass=MD5.getDigest(upass); sysuser.setUpass(upass); sysuser.setRealname(realname); sysuser.setSex(sex); sysuser.setAge(age); sysuser.setTel(tel); sysuser.setAddr(addr); sysuser.setType("用戶"); sysuser.setDelstatus("0"); sysuser.setEmail(email); sysuser.setMoney("0"); commonDAO.save(sysuser); suc=""; return"success"; } }用戶登陸后可以對自己的個(gè)人信息進(jìn)行修改 //用戶編輯個(gè)人信息 publicStringmemberEdit(){ Sysusersysuser=(Sysuser)commonDAO.findById(id,"Sysuser"); System.out.println("aa="+upass.equals("")); if(!upass.equals("")){ upass=MD5.getDigest(upass); sysuser.setUpass(upass); } sysuser.setRealname(realname); sysuser.setSex(sex); sysuser.setAge(age); sysuser.setTel(tel); sysuser.setAddr(addr); sysuser.setEmail(email); commonDAO.update(sysuser); suc=""; return"success"; }4.2.2用戶登錄功能用戶注冊完成之后,可以通過登錄頁面登錄系統(tǒng)。登錄頁面如圖所示:圖4-9用戶登錄頁面登錄時(shí)的代碼實(shí)現(xiàn)為:publicStringmemberLogin(){ Mapsession=ServletActionContext.getContext().getSession(); upass=MD5.getDigest(upass); Stringhql="fromSysuserwhereuname='"+uname+"'andupass='"+upass +"'andtype='會員'andblackname='no'"; ListadminList=commonDAO.findByHql(hql); if(adminList.size()!=0){ Sysusersysuser=(Sysuser)adminList.get(0); session.put("member",sysuser); suc=""; return"success"; }else{ no=""; return"erro"; } }4.2.3機(jī)票查詢功能用戶可以通過機(jī)票查詢頁面查看當(dāng)前所有的機(jī)票信息,用戶還可以通過起始點(diǎn)查詢指定線路的航班機(jī)票,機(jī)票信息包含機(jī)票編號、所屬線路、機(jī)票時(shí)間、價(jià)格、余票等,用戶選擇自己想要的機(jī)票點(diǎn)擊購買,即可加入購物車。機(jī)票查詢頁面如下:圖4-10機(jī)票查詢頁面4.2.4用戶訂票功能 用戶可以在我的購物車中選擇自己想要購買的機(jī)票,如果機(jī)票的余量為0時(shí)會提示用戶當(dāng)前余票不足,請購買其他機(jī)票,否則在我的購物車中可以點(diǎn)擊購買或移除等操作。選擇的機(jī)票余票充足時(shí),會進(jìn)入訂單填寫頁面,用戶需要核對機(jī)票信息并填寫個(gè)人信息,確認(rèn)信息無誤后,提交訂單,此時(shí)會進(jìn)入我的訂單頁面。我的購物車頁面如圖所示:圖4-11我的購物車頁面預(yù)選機(jī)票的代碼實(shí)現(xiàn)為: publicvoidcarAdd()throwsIOException { System.out.println("aaaaaaaaa"); Carcar=newCar(); car.setProductid(productid); car.setNum(num); car.setMemberid(memberid); commonDAO.save(car); intresponseContext; responseContext=1; System.out.println(responseContext); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setContentType("text/html"); PrintWriterout=response.getWriter(); out.println(responseContext); out.flush(); out.close(); } //移出機(jī)票 publicStringcarDel(){ commonDAO.delete(id,"Car"); suc=""; return"success"; } 訂單填寫頁面如圖所示:圖4-12訂單填寫頁面//新增訂單 publicStringorderAdd() { Orderorder=newOrder(); order.setOrderid(Info.getAutoId()); order.setMemberid(memberid); order.setPrice(price); order.setFkstatus("未付款"); order.setProinfo(proinfo); order.setSavetime(Info.getDateStr()); order.setFhstatus("未發(fā)貨"); order.setShstatus("未確認(rèn)"); order.setTel(tel); order.setAddr(addr); order.setType("0");//0:訂單1:退貨 order.setIsgq("no");//yes:改簽訂單no:非改簽訂單 commonDAO.save(order); commonDAO.delete(carids,"Car"); suc=""; return"success"; }訂單頁面為已付款或未付款的結(jié)果頁面,用戶可以在此對未付款訂單進(jìn)行付款或者刪除訂單,對已付款訂單進(jìn)行退票或改簽。我的訂單頁面如圖所示:圖4-13我的訂單頁面//用戶付款 publicStringorderFk(){ Ordero=(Order)commonDAO.findById(id,"Order"); Stringis="yes"; Stringb[]=o.getProinfo().split(","); Kcrecordkc=newKcrecord(); kc.setProductid(b[0]);//機(jī)票ID kc.setNum(b[1]); //數(shù)量 ArrayList<Kcrecord>inlist=(ArrayList<Kcrecord>)commonDAO.findByHql("fromKcrecordwhereproductid='"+b[0]+"'andtype='in'"); ArrayList<Kcrecord>outlist=(ArrayList<Kcrecord>)commonDAO.findByHql("fromKcrecordwhereproductid='"+b[0]+"'andtype='out'"); intk=0; if(inlist.size()!=0){ intinnum=0; intoutnum=0; for(Kcrecordin:inlist){ innum+=Integer.parseInt(in.getNum()); } for(Kcrecordkout:outlist){ outnum+=Integer.parseInt(kout.getNum()); } k=innum-outnum; }else{ k=0; } System.out.println("kkkkkkkkk=="+k); System.out.println("Integer.parseInt(b[1]=="+b[1]); if(Integer.parseInt(b[1])<=k){ System.out.println("yyyyyyyyyy"); kc.setType("out"); kc.setSavetime(Info.getDateStr()); commonDAO.save(kc); Salessales=newSales(); sales.setProductid(b[0].toString());//機(jī)票ID sales.setNum(b[1].toString());//數(shù)量 sales.setSavetime(Info.getDateStr()); commonDAO.save(sales); }else{ System.out.println("wwwwwwwwwwwwww"); is="no"; } if(is!="no"){ o.setFkstatus("已付款"); commonDAO.update(o); suc=""; return"success"; }else{ no=""; return"erro"; } }4.2.5訂單退票功能用戶可根據(jù)退票功能退票,當(dāng)用戶單擊退票時(shí),系統(tǒng)會提示“退票將收取5%的手續(xù)費(fèi),確認(rèn)退票嗎?”,用戶可以取消退票操作,也可以選擇繼續(xù)退票,退票后會顯示退票成功,并將票面金額的95%返還到用戶的支付賬戶。 具體的邏輯代碼為://用戶訂單退票 publicStringorderTh(){ Ordero=newOrder(); o=(Order)commonDAO.findById(id,"Order"); Stringpinfo=o.getProinfo(); //返庫 Stringb[]=pinfo.split(","); Kcrecordkc=newKcrecord(); kc.setProductid(b[0]); kc.setNum(b[1]); kc.setType("in"); kc.setSavetime(Info.getDateStr()); commonDAO.update(kc); //變更退票狀態(tài) o.setType("1"); o.setFhstatus("退票成功"); //這里加退票返金額至用戶帳戶 Sysusersysuser=(Sysuser)commonDAO.findById(o.getMemberid(),"Sysuser"); Stringfh=o.getPrice();//返還金額 sysuser.setMoney(String.valueOf(Double.valueOf(sysuser.getMoney())+Double.valueOf(fh)-Double.valueOf(fh)*0.05)); commonDAO.update(sysuser); commonDAO.update(o); suc=""; return"success"; }4.2.6機(jī)票改簽功能用戶可以通過改簽功能進(jìn)行改簽,當(dāng)用戶點(diǎn)擊改簽時(shí),系統(tǒng)會提示“只能進(jìn)行一次改簽,確認(rèn)改簽嗎?”用戶的每個(gè)訂單僅有一次改簽的機(jī)會,用戶可以選擇取消改簽,也可以選擇繼續(xù)改簽,用戶選擇確認(rèn)改簽后,會跳轉(zhuǎn)到改簽頁面,系統(tǒng)會自動查詢到所有當(dāng)前航線的機(jī)票供用戶選擇,當(dāng)用戶選定目標(biāo)機(jī)票后,后臺先判斷目標(biāo)機(jī)票的余量信息,若舊機(jī)票的數(shù)量大于目標(biāo)機(jī)票的余量則不允許改簽并給予提示,反之則將目標(biāo)機(jī)票的余票減于訂單中舊機(jī)票的數(shù)量,且將舊機(jī)票的余票量加上對應(yīng)的數(shù)據(jù),保證了整個(gè)票務(wù)余票的進(jìn)出合理性。改簽不需要手續(xù)費(fèi)且改簽后的票面金額與原訂單金額一致,用戶不需要支付額外的費(fèi)用。改簽頁面如圖所示:圖4-13訂單改簽頁面 //改簽 publicStringorderGq(){ Stringis="yes"; Ordero=(Order)commonDAO.findById(id,"Order"); Stringpinfo[]=o.getProinfo().split(","); Stringoldpid=pinfo[0]; Stringoldnum=pinfo[1]; Stringnewnum=oldnum; o.setProinfo(newpid+","+newnum); o.setIsgq("yes"); //檢查目標(biāo)機(jī)票庫存 Kcrecordkc=newKcrecord(); kc.setProductid(newpid);//機(jī)票ID kc.setNum(newnum); //數(shù)量 ArrayList<Kcrecord>inlist=(ArrayList<Kcrecord>)commonDAO.findByHql("fromKcrecordwhereproductid='"+newpid+"'andtype='in'"); ArrayList<Kcrecord>outlist=(ArrayList<Kcrecord>)commonDAO.findByHql("fromKcrecordwhereproductid='"+newpid+"'andtype='out'"); intk=0;//總庫存 if(inlist.size()!=0){ intinnum=0; intoutnum=0; for(Kcrecordin:inlist){ innum+=Integer.parseInt(in.getNum()); } for(Kcrecordkout:outlist){ outnum+=Integer.parseInt(kout.getNum()); } k=innum-outnum; }else{ k=0; } //如果目標(biāo)機(jī)票數(shù)量小于總庫存則可以改簽 if(Integer.parseInt(newnum)<=k){ //目標(biāo)機(jī)票出庫 kc.setType("out"); kc.setSavetime(Info.getDateStr()); KcrecordoldProductkc=newKcrecord(); //舊機(jī)票入庫 oldProductkc.setProductid(oldpid); oldProductkc.setNum(oldnum); oldProductkc.setType("in"); oldProductkc.setSavetime(Info.getDateStr()); commonDAO.save(oldProductkc); commonDAO.save(kc); //commonDAO.save(sales); commonDAO.update(o); }else{ is="no"; } if(is!="no"){ suc1=""; return"success"; }else{ no=""; return"erro"; } }4.3數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)4.3.1基本設(shè)計(jì)概念和處理流程系統(tǒng)的出現(xiàn)是為了將操作簡單且重復(fù)性高的操作自動化,使網(wǎng)站與用戶具有交互性。那么此時(shí)系統(tǒng)必然會出現(xiàn)一定的數(shù)據(jù)處理,怎么去處理和存儲數(shù)據(jù)也是程序設(shè)計(jì)中關(guān)鍵的一部分。根據(jù)平時(shí)所學(xué)的知識以及各數(shù)據(jù)庫優(yōu)點(diǎn)的對比,最終確定使用mysql作為本次開發(fā)的數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)通過功能分析,確定了系統(tǒng)中的實(shí)體關(guān)系,實(shí)體屬性圖如下圖所示:圖4-14用戶E-R圖圖4-15機(jī)票信息E-R圖圖4-16訂單E-R圖圖4-17留言板塊E-R圖圖4-18新聞E-R圖數(shù)據(jù)庫表設(shè)計(jì)本系統(tǒng)主要的數(shù)據(jù)表如表4.1至表4.7所示。(1)系統(tǒng)用戶信息表系統(tǒng)用戶信息表主要用來存儲系統(tǒng)用戶的信息。表的結(jié)構(gòu)如表4.1所示。表4.1系統(tǒng)用戶信息表字段名數(shù)據(jù)類型長度描述IDint11ID(主鍵)unamevarchar255用戶名upassvarchar255密碼realname varchar255姓名sexvarchar255性別agevarchar255年齡telvarchar255電話addr varchar255地址delstatusvarchar255刪除狀態(tài)typevarchar255用戶類別(2)我的購物車表我的購物車表用來保存用戶預(yù)選的機(jī)票信息。表的結(jié)構(gòu)如表4.2所示。表4.2:我的購物車表字段名數(shù)據(jù)類型長度描述IDint11ID(主鍵)productidvarchar 255機(jī)票IDnumvarchar255數(shù)量memberidvarchar255用戶ID(3)機(jī)票信息主表機(jī)票信息主表用來記錄商品的出入庫記錄信息。表的結(jié)構(gòu)如表4.3所示。表4.3機(jī)票信息表字段名數(shù)據(jù)類型長度描述IDint11ID(主鍵)productidvarchar255機(jī)票IDnumvarchar255增減數(shù)量typevarchar255增減類型savetimeDate255日期(4)留言信息表留言表用來保存用戶的留言信息。表的結(jié)構(gòu)如表4.4所示。表4.4留言信息表字段名數(shù)據(jù)類型長度描述IDint255ID(主鍵)contentvarchar255留言內(nèi)容replyvarchar255回復(fù)內(nèi)容savetimevarchar255留言日期memberidvarchar255用戶ID(5)新聞類信息表新聞表用來保存站內(nèi)新聞信息。表的結(jié)構(gòu)如表4.5所示。表4.5新聞信息表字段名數(shù)據(jù)類型長度描述IDint11ID(主鍵)titlevarchar 255信息標(biāo)題contentvarchar255內(nèi)容savetimevarchar 255日期typevarchar255信息類別(6)訂單信息表訂單表用來保存用戶提交的訂單信息。表的結(jié)構(gòu)如表4.6所示。表4.6訂單信息表字段名數(shù)據(jù)類型長度描述IDint11ID(主鍵)orderidvarchar255訂單IDproinfovarchar255訂單機(jī)票明細(xì)memberidvarchar255用戶IDpricevarchar255訂單金額savetimevarchar255訂單日期fkstatusvarchar255付款狀態(tài)telvarchar255收貨人電話addrvarchar255身份證typevarchar255訂單類別(7)機(jī)票信息表機(jī)票信息表用來保存機(jī)票信息。表的結(jié)構(gòu)如表4.7所示。表4.7機(jī)票信息表字段名數(shù)據(jù)類型長度描述IDint11ID(主鍵)pronovarchar255機(jī)票編號Filed1varchar255出發(fā)地Filed2varchar255到達(dá)地pricevarchar255單價(jià)remarktext0機(jī)票詳情delstatusvarchar255刪除狀態(tài)4.3.2數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)概念設(shè)計(jì)完成以后,就要將需求分析中的概念模型,轉(zhuǎn)化為系統(tǒng)支持的數(shù)據(jù)類型。系統(tǒng)中的E-R圖轉(zhuǎn)換為關(guān)系模型如下:用戶信息表(用戶ID,用戶名,密碼,姓名,電話,用戶類型……)訂單信息表(訂單ID,編號,機(jī)票ID,時(shí)間,用戶ID,電話,身份證號……)機(jī)票信息表(機(jī)票ID,,起始地,到達(dá)地,時(shí)間……) 通過以上數(shù)據(jù)庫關(guān)系可以可以得出以下E-R圖第五章系統(tǒng)測試5.1系統(tǒng)測試目的與意義測試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而進(jìn)行的排錯(cuò)和不斷優(yōu)化的過程,系統(tǒng)測試是程序設(shè)計(jì)中不可或缺的一部分。通過進(jìn)行系統(tǒng)測試,能夠及時(shí)發(fā)現(xiàn)并改正程序中的bug,分析并解決錯(cuò)誤,找到問題的原因并總結(jié),不僅能優(yōu)化系統(tǒng)還能提升自己,為日后工作提供扎實(shí)的基礎(chǔ)和培養(yǎng)攻堅(jiān)克難的精神。系統(tǒng)測試是軟件開發(fā)中一個(gè)必要且漫長的的階段。系統(tǒng)測試在保證系統(tǒng)正常運(yùn)行和可靠性方面發(fā)揮著重要的作用,對開發(fā)一套完整的網(wǎng)上航空訂票系統(tǒng)有著最終審查的作用,所以應(yīng)嚴(yán)格按照要求進(jìn)行測試。5.2測試過程及結(jié)果核心功能模塊測試以下八個(gè)測試用例是對系統(tǒng)中其他核心模塊功能的測試:用戶提交機(jī)票訂單模塊測試用戶端提交機(jī)票訂單過程:①用戶登錄系統(tǒng);②點(diǎn)擊機(jī)票查詢頁面或通過起始點(diǎn)查詢指定航班的機(jī)票;③用戶選擇想要購買的機(jī)票點(diǎn)擊購買;④用戶選擇購買機(jī)票數(shù)量,并加入購物車;⑤用戶在我的購物車頁面點(diǎn)擊購買,核對機(jī)票信息以及填寫訂單;⑥用戶核對信息無誤后,提交機(jī)票訂單;管理員端管理機(jī)票過程:①管理員登錄系統(tǒng);②管理員查看訂單管理頁面新增一條訂單信息且為未付款的狀態(tài)用戶提交機(jī)票訂單模塊測試結(jié)果:用戶成功提交機(jī)票訂單,訂單管理頁面也成功新增一條用戶的信息。用戶支付機(jī)票訂單模塊測試用戶端支付機(jī)票訂單過程:①用戶選擇網(wǎng)銀支付;②用戶選擇一種支付方式(建設(shè)銀行、中國銀行等);③用戶支付成功,在我的訂單頁面顯示用戶的機(jī)票訂單信息;④用戶管理系統(tǒng)中用戶購買的那張機(jī)票對應(yīng)減少一張管理員端機(jī)票訂單管理過程:①管理員登錄系統(tǒng);②管理員查看訂單管理頁面中用戶提交的機(jī)票訂單是否顯示已付款;③管理員查看流水記錄頁面是否增加機(jī)票出庫信息;④管理員查看機(jī)票管理頁面對應(yīng)機(jī)票是否減少一張用戶支付機(jī)票訂單模塊測試結(jié)果:用戶成功購買機(jī)票,管理員可以查看到訂單信息。用戶改簽?zāi)K測試:用戶改簽過程:①用戶選擇改簽(在系統(tǒng)提示只能改簽一次的情況下依然改簽);②用戶查看當(dāng)前航線其他機(jī)次的機(jī)票并選擇;③改簽成功;④我的訂單頁面顯示改簽后的信息;⑤機(jī)票查詢頁面更新機(jī)票余票信息;管理員管理改簽過程:①管理員登錄系統(tǒng);②訂單管理頁面是否改簽項(xiàng)更新為yes;③流水記錄頁面增加兩條信息(機(jī)票入庫一張、出庫一張);④機(jī)票管理頁面更新機(jī)票余票信息;用戶改簽?zāi)K測試結(jié)果:用戶可以成功改簽,管理員可以管理用戶改簽信息。用戶退票模塊測試:用戶退票過程:①用戶選擇退票;②系統(tǒng)根據(jù)票面金額扣除5%的手續(xù)費(fèi)后退還到用戶的支付賬戶;③退票成功;④機(jī)票查詢頁面更新機(jī)票余票信息;管理員管理退票過程:①管理員登錄系統(tǒng);②管理員在退票管理頁面查看用戶的退票信息;③流水記錄頁面增加一條機(jī)票入庫記錄;④機(jī)票管理頁面更新余票信息;用戶退票模塊測試結(jié)果:用戶可以成功退票,管理員可以管理用戶退票信息。公告管理模塊測試管理員管理公告過程:①管理員登錄系統(tǒng);②管理員通過公告管理頁面 新增一條公告;③管理員對公告進(jìn)行修改;④管理員通過公告標(biāo)題進(jìn)行查詢; ⑤管理員對過時(shí)公告進(jìn)行刪除;用戶查看新聞公告過程:①用戶可以看到管理員新增的公告;②用戶可 以查看管理員修改后的公告;③用戶不可以看到管理員刪除的公告;公告管理模塊測試結(jié)果:管理員可以對公告進(jìn)行設(shè)置,用戶可以看到正確的用 戶信息。機(jī)票管理模塊測試管理員管理機(jī)票過程:①管理員登錄系統(tǒng);②管理員新增一張機(jī)票,且在機(jī)票信息列表中顯示;③管理員修改機(jī)票信息;④管理員通過起始點(diǎn)查詢指定航班的機(jī)票;⑤管理員可以刪除機(jī)票信息;用戶查看機(jī)票過程:①用戶可以看到管理員新增的機(jī)票信息;②用戶可以查看管理員修改后的機(jī)票信息;③用戶可以通過起始點(diǎn)查詢指定航班的機(jī)票信息;機(jī)票管理模塊測試結(jié)果:管理員可以對公告進(jìn)行設(shè)置,用戶可以看到正確的機(jī)票信息。留言管理模塊測試用戶的留言過程:①用戶登錄系統(tǒng);②用戶在留言管理頁面的留言板處進(jìn)行留言;③提交留言信息管理員管理留言過程:①管理員登錄系統(tǒng);②管理員查看用戶的留言信息;③管理員回復(fù)用戶的留言;④管理員刪除用戶的留言留言管理模塊測試結(jié)果:用戶可以成功留言并看到管理員的留言回復(fù),管理員可以對留言進(jìn)行管理。用戶管理模塊測試管理員管理用戶過程:①管理員登錄系統(tǒng);②管理員在用戶管理頁面通 過用戶名查詢指定用戶;③管理員
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)保型化妝品添加劑的合成與應(yīng)用考核試卷
- 繪畫課程設(shè)計(jì)理念
- 氫化可的松的課程設(shè)計(jì)
- 電路課程設(shè)計(jì)摘要
- 礦山地質(zhì)環(huán)境保護(hù)法律法規(guī)考核試卷
- 電機(jī)在電力國際合作的應(yīng)用考核試卷
- 2025年度林業(yè)工程項(xiàng)目樹木安全隱患清理與施工合同
- 2025年微蜂窩無線通信系統(tǒng)項(xiàng)目建議書
- 全科半期含期末復(fù)習(xí)試題含答案
- 2025冬季四川成都湔江投資集團(tuán)限公司招聘32人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 搭乘私家車免責(zé)協(xié)議書
- TD/T 1032-2011 基本農(nóng)田劃定技術(shù)規(guī)程(正式版)
- 模擬集成電路設(shè)計(jì)智慧樹知到期末考試答案章節(jié)答案2024年廣東工業(yè)大學(xué)
- 某冶金機(jī)械修造廠全廠總壓降變電所及配電系統(tǒng)設(shè)計(jì)
- 2022年北京豐臺初二(上)期末語文試卷及答案
- 2024年江蘇省安全員A證試題題庫
- 2013年4月自考00814中國古代文論選讀試題及答案含解析
- 2024年全國高考物理電學(xué)實(shí)驗(yàn)真題(附答案)
- 污泥處置服務(wù)保障措施
- 2024中國雄安集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 預(yù)防性維護(hù)課件
評論
0/150
提交評論