基于Web的航空機(jī)票售票管理信息系統(tǒng)實(shí)訓(xùn)報告.doc_第1頁
基于Web的航空機(jī)票售票管理信息系統(tǒng)實(shí)訓(xùn)報告.doc_第2頁
基于Web的航空機(jī)票售票管理信息系統(tǒng)實(shí)訓(xùn)報告.doc_第3頁
基于Web的航空機(jī)票售票管理信息系統(tǒng)實(shí)訓(xùn)報告.doc_第4頁
基于Web的航空機(jī)票售票管理信息系統(tǒng)實(shí)訓(xùn)報告.doc_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

(論文)陜西理工學(xué)院 高級語言編程實(shí)訓(xùn) 實(shí)訓(xùn)報告項(xiàng)目名稱:基于Web的網(wǎng)上機(jī)票預(yù)定管理系統(tǒng)學(xué)生姓名: 任瑩 1209064006 韓璐 1209064033 梁澤志 1209064037 魚愛春 1209064028 楊瑞 1209064003 班 級: 信計1201 成 績: 指導(dǎo)教師: 趙暉 數(shù)學(xué)與計算機(jī)科學(xué)學(xué)院實(shí)訓(xùn)報告評閱項(xiàng)目組分工:評語:成績指導(dǎo)教師簽名: 年 月 日 摘 要世界多極化和經(jīng)濟(jì)全球化的趨勢在曲折中發(fā)展,科技進(jìn)步日新月異,綜合國力競爭日趨激烈。電子信息產(chǎn)品制造業(yè)經(jīng)濟(jì)運(yùn)行狀況良好,產(chǎn)業(yè)規(guī)模迅速擴(kuò)大。在計算機(jī)技術(shù)高速發(fā)展的今天,我國有必要引入高效的計算機(jī)系統(tǒng)來改善一些旅行社和酒店的機(jī)票預(yù)定,提高工作效率,協(xié)助處理機(jī)票預(yù)定工作。網(wǎng)上機(jī)票預(yù)訂管理系統(tǒng)的產(chǎn)生和發(fā)展正好滿足人們的這種需求。機(jī)票預(yù)定系統(tǒng)是為機(jī)場工作人員和客戶提供訂票退票等與機(jī)票相關(guān)內(nèi)容和管理的系統(tǒng),它具有開放體系結(jié)構(gòu)的、易擴(kuò)充的、易維護(hù)的、具有良好人機(jī)界面的優(yōu)點(diǎn).它除克服了存儲乘客信息少,查詢效率低下等問題外,更重要的是其安全性,可靠性,實(shí)現(xiàn)航空公司的機(jī)票銷售的自動化。它為企業(yè)的決策層提供準(zhǔn)確、精細(xì)、迅速的機(jī)票銷售信息,為乘客出行提供方便,便于機(jī)場工作人員對機(jī)票信息進(jìn)行管理,提高了機(jī)場工作人員對機(jī)票管理的工作效率。根據(jù)航空公司管理的實(shí)際要求, 系統(tǒng)采用JSP,Tomcat,Servlet,利用Mysql作為數(shù)據(jù)庫管理工具,模塊復(fù)用率高、系統(tǒng)維護(hù)代價小,方便、靈活、高效。關(guān)鍵詞:航班信息管理;退票管理;訂票管理;Java語言目 錄第一章 引言11.1 題目背景11.2 題目內(nèi)容21.3 系統(tǒng)設(shè)計目標(biāo)21.4 經(jīng)濟(jì)技術(shù)分析21.5 本文結(jié)構(gòu)3第二章 需求分析52.1 角色及其職能52.2 數(shù)據(jù)流圖52.3 概念結(jié)構(gòu)設(shè)計62.3.1 實(shí)體-聯(lián)系(E-R)圖62.3.2 各實(shí)體詳細(xì)E-R圖72.4 設(shè)計工具環(huán)境82.4.1 Java語言82.4.2 MyEclipse開發(fā)平臺82.4.3 MySQL92.4.4 JSP9第三章 總體設(shè)計123.1總體結(jié)構(gòu)設(shè)計123.2數(shù)據(jù)庫邏輯設(shè)計123.2.1人員信息123.2.2 機(jī)票信息13第四章 詳細(xì)設(shè)計164.1系統(tǒng)部分時序圖164.2系統(tǒng)的流程設(shè)計174.3系統(tǒng)功能的詳細(xì)實(shí)現(xiàn)194.4詳細(xì)設(shè)計中關(guān)鍵技術(shù)的實(shí)現(xiàn)224.4.1數(shù)據(jù)庫的連接22第五章 編碼實(shí)現(xiàn)23第六章 系統(tǒng)測試與調(diào)試316.1軟件測試常識316.2系統(tǒng)功能測試計劃316.3系統(tǒng)功能模塊測試326.3.1管理人員模塊的測試326.3.2乘客模塊測試326.4調(diào)試中的問題32第七章 總結(jié)34參考文獻(xiàn)357第一章 引言1.1 題目背景當(dāng)今世界,以信息技術(shù)為主要標(biāo)志的科技進(jìn)步日新月異,高科技成果向現(xiàn)實(shí)生產(chǎn)力的轉(zhuǎn)化越來越快??v觀全球經(jīng)濟(jì)發(fā)展,信息技術(shù)和信息產(chǎn)業(yè)已經(jīng)成為經(jīng)濟(jì)增長的主要推動力之一,正在改變著傳統(tǒng)的生產(chǎn)和經(jīng)營方式以至生活方式,發(fā)達(dá)國家經(jīng)過產(chǎn)業(yè)結(jié)構(gòu)的升級和經(jīng)濟(jì)結(jié)構(gòu)的轉(zhuǎn)型已進(jìn)入信息經(jīng)濟(jì)階段。中共十七屆五中全會通過的國民經(jīng)濟(jì)和社會發(fā)展第十個五年計劃建議中已明確指出:信息化是當(dāng)今世界經(jīng)濟(jì)和社會發(fā)展的大趨勢,也是我國產(chǎn)業(yè)優(yōu)化升級和實(shí)現(xiàn)工業(yè)化、現(xiàn)代化的關(guān)鍵環(huán)節(jié)。大力推進(jìn)國民經(jīng)濟(jì)和社會信息化,是覆蓋現(xiàn)代化建設(shè)全局的戰(zhàn)略舉措??梢?,黨和國家已將國民經(jīng)濟(jì)和社會信息化放在優(yōu)先發(fā)展位置,體現(xiàn)了先進(jìn)生產(chǎn)力的客觀要求,是一項(xiàng)重要的戰(zhàn)略決策。這是民航加快發(fā)展的機(jī)遇,更是民航信息化的難得機(jī)遇。隨著知識經(jīng)濟(jì)的到來,人類已經(jīng)逐步進(jìn)入信息化社會,信息增長的速度越來越快,人們希望利用先進(jìn)的管理理論方法手段來得到并處理越來越多的信息,以提高工作效率和管理水平。由于信息資源對人們生活的重要性,不斷提高信息的收集,傳輸,加以利用等活動,日益成為人們社會生活的重要組成部分。隨著社會發(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ī)技術(shù)高速發(fā)展的今天,有必要引入高效的計算機(jī)系統(tǒng),來協(xié)助處理機(jī)票預(yù)定工作。因此,開發(fā)一套具有完整的存儲,查詢,核對,打印機(jī)票功能的實(shí)時機(jī)票預(yù)定系統(tǒng)勢在必行。機(jī)票預(yù)定系統(tǒng)是為機(jī)場工作人員和客戶提供訂票退票等與機(jī)票相關(guān)內(nèi)容和管理的系統(tǒng),它具有開放體系結(jié)構(gòu)的、易擴(kuò)充的、易維護(hù)的、具有良好人機(jī)界面的優(yōu)點(diǎn).它除克服了存儲乘客信息少,查詢效率低下等問題外,更重要的是其安全性,可靠性,實(shí)現(xiàn)航空公司的機(jī)票銷售的自動化。它為企業(yè)的決策層提供準(zhǔn)確、精細(xì)、迅速的機(jī)票銷售信息,為乘客出行提供方便,便于機(jī)場工作人員對機(jī)票信息進(jìn)行管理,提高了機(jī)場工作人員對機(jī)票管理的工作效率。1.2 題目內(nèi)容隨著信息技術(shù)的發(fā)展,航空售票業(yè)也成為一個高度依賴信息業(yè)的行業(yè)。信息技術(shù)的飛速發(fā)展不僅使航空售票工作者逐漸擺脫了繁重的手工勞動、提高了工作效率,而且推著航空事業(yè)向現(xiàn)代化管理邁進(jìn)?,F(xiàn)代化的航空售票也應(yīng)該有現(xiàn)代化的管理系統(tǒng)。在科技日益發(fā)達(dá)的今天,人們對旅游出行更加重視。因此,航空售票進(jìn)行現(xiàn)代化管理就變的尤為重要。畢業(yè)設(shè)計的主要任務(wù)就是設(shè)計實(shí)現(xiàn)一個航空售票信息管理系統(tǒng),完成對航空公司的正常售票等業(yè)務(wù)的管理。具體任務(wù)如下:(1)主要航空港基本信息管理;(2)主要民航航線基本信息管理;(3)售票信息管理;(4)預(yù)定票信息管理;(5)退票信息管理;(6)飛機(jī)票價格(包括打折)管理;(7)上述信息的統(tǒng)計及圖形顯示。1.3 系統(tǒng)設(shè)計目標(biāo)此次設(shè)計的主要任務(wù)就是設(shè)計實(shí)現(xiàn)一個航空售票信息管理系統(tǒng),其實(shí)現(xiàn)對航班信息、航線信息、客機(jī)信息、票務(wù)信息以及客戶信息的管理;客戶可以對航班的信息進(jìn)行查詢,如果想進(jìn)一步完成自己的訂票、退票,就必須進(jìn)行登錄。在沒有注冊的情況下,要注冊自己的相關(guān)信息,進(jìn)而完成自己所需航班的訂票業(yè)務(wù);客戶也可以對自己的注冊信息進(jìn)行修改。1.4 經(jīng)濟(jì)技術(shù)分析(1)經(jīng)濟(jì)可行性航空售票信息管理系統(tǒng)是整個航空管理系統(tǒng)中的一個子系統(tǒng),是根據(jù)各部分管理的功能開發(fā)的。從任務(wù)量上來說最好由多人開發(fā),雖然不需要投入太多的人力、物力、財力,但是這樣可以保障功能的完善,質(zhì)量的提高。如果航空公司沒有一個規(guī)范嚴(yán)謹(jǐn)?shù)氖燮毙畔⒐芾硐到y(tǒng),那么在面對眾多乘客訂票管理方面所需要消耗的人力是巨大的。僅乘客保險信息一項(xiàng),就需要對乘客身份證號等許多數(shù)據(jù)進(jìn)行枯燥的管理,很容易出錯。尤其在類似于沈陽這樣的人員眾多的城市,數(shù)據(jù)量大的特點(diǎn)更是十分明顯。工作量大、效率低下是航空售票信息管理長期以來的詬病。而通過計算機(jī)管理航空售票不僅節(jié)約了人力資源,而且提高了效率與準(zhǔn)確性,使效益在質(zhì)量上有了很大的飛躍。所以,從經(jīng)濟(jì)角度上來說是完全可行的。(2)技術(shù)可行性此系統(tǒng)應(yīng)用JSP技術(shù)作為開發(fā)工具。Java語言具有面向?qū)ο?、與平臺無關(guān)、安全、穩(wěn)定和多線程等優(yōu)良特性,是目前軟件設(shè)計中極為健壯的編程語言。JSP技術(shù)還擁有很多的優(yōu)勢,一次編寫到處運(yùn)行,系統(tǒng)的多平臺支持,多樣化和功能強(qiáng)大的開發(fā)工具支持,強(qiáng)大的可伸縮性。系統(tǒng)后臺數(shù)據(jù)庫采用MySQL。所以,從技術(shù)角度上來說是完全可行的。該系統(tǒng)的主要用戶是航空公司的管理員和所有乘客。在開發(fā)過程中利用Java、面向?qū)ο蟮某绦蛩枷牒蛙浖こ痰拈_發(fā)過程來進(jìn)行需求分析和設(shè)計,其中是以Java中的Swing思想為基礎(chǔ)進(jìn)行各個圖形界面設(shè)計1;MyEclipse的開發(fā)環(huán)境使得本系統(tǒng)的開發(fā)簡單節(jié)省時間,而且在運(yùn)行測試以及維護(hù)等方面也不像其他的開發(fā)工具那么繁瑣,更將少了在維護(hù)方面的成本。對于各種數(shù)據(jù)的管理采用的是SQL Server的數(shù)據(jù)庫管理系統(tǒng)進(jìn)行的2,連接數(shù)據(jù)庫的時候采用的是JDBC的連接方法。1.5 本文結(jié)構(gòu)此論文共分為緒論、需求分析、概要設(shè)計、詳細(xì)設(shè)計和系統(tǒng)測試幾個章節(jié)。在需求分析與概要設(shè)計章節(jié)中共分為用戶需求分析、角色及其功能、數(shù)據(jù)流圖、E-R圖、模塊圖和設(shè)計環(huán)境及工具的介紹等幾部分。本論文的重點(diǎn)之一將以用戶的需求分析為主,從用戶的角度出發(fā)使系統(tǒng)的功能與用戶的要求達(dá)成一致。這需要全面地理解用戶的各項(xiàng)要求,準(zhǔn)確地表達(dá)用戶需求,設(shè)計出系統(tǒng)的各項(xiàng)功能以解決“做什么”的問題。同時通過時序圖、ER圖、模塊圖等,更為詳細(xì)的說明此系統(tǒng)的功能和此系統(tǒng)的設(shè)計思路。在本章節(jié)的最后還將說明本系統(tǒng)所使用的工具和設(shè)計環(huán)境,并簡略的敘述其相關(guān)情況。在詳細(xì)設(shè)計章節(jié)中共分為數(shù)據(jù)庫結(jié)構(gòu)設(shè)計、程序流程圖等幾部分。本章節(jié)是此論文的另一重點(diǎn),在此章節(jié)中將詳細(xì)的對本系統(tǒng)進(jìn)行介紹。數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計是本次畢設(shè)的一個重要環(huán)節(jié),設(shè)計出正確的數(shù)據(jù)庫結(jié)構(gòu)有助于準(zhǔn)確的敘述出各個實(shí)體之間的關(guān)系,進(jìn)而實(shí)現(xiàn)系統(tǒng)的各項(xiàng)功能。在本章還將通過程序流程圖給出設(shè)計程序的基本思路,同時設(shè)計出準(zhǔn)確、高效的程序代碼。在系統(tǒng)測試章節(jié)中共分為測試環(huán)境、測試結(jié)果、測試工具和測試界面等幾部分。在此章節(jié)將對此系統(tǒng)的具體功能、運(yùn)行情況等進(jìn)行測試。通過此章節(jié)完成對系統(tǒng)的最后檢測找出不足并加以完善。第二章 需求分析2.1 角色及其職能本系統(tǒng)的角色是乘客和管理員。乘客除了具有買票和退票的操作權(quán)限外還有查詢所有信息的權(quán)限,管理人員具有對任何信息進(jìn)行增加,刪除、修改和查詢的操作,可以查詢統(tǒng)計信息。乘客可以通過登錄后查詢和修改與自己有關(guān)的信息。2.2 數(shù)據(jù)流圖經(jīng)過初步的需求分析,得到系統(tǒng)的主要功能要求如下:(1) 用戶查詢自己的訂票信息和退票信息以及查詢相關(guān)信息;管理人員可以對各項(xiàng)信息進(jìn)行增加、刪除、修改、查詢操作。根據(jù)分析得到的系統(tǒng)功能要求,設(shè)計出航空售票信息管理系統(tǒng)的數(shù)據(jù)流圖,如圖2.1所示。網(wǎng)上訂票信息管理系統(tǒng)管理員用戶管理員用戶售票信息、退票信息、價格信息、訂票信息、航班信息、客機(jī)信息、機(jī)票信息管理查詢結(jié)果結(jié)果 圖2.1網(wǎng)上航空售票管理信息系統(tǒng)的數(shù)據(jù)流圖2.3 概念結(jié)構(gòu)設(shè)計2.3.1 實(shí)體-聯(lián)系(E-R)圖概念模型的表示方法很多,其中最為著名最為常用的是實(shí)體-聯(lián)系方法(E-R圖)。實(shí)體-關(guān)系圖方法是抽象和描述現(xiàn)實(shí)世界的有力工具。用E-R圖表示的概念模型獨(dú)立于具體的DBMS所支持的數(shù)據(jù)模型,它是各種數(shù)據(jù)模型的共同基礎(chǔ),因而比數(shù)據(jù)模型更一般、更抽象、更接近現(xiàn)實(shí)世界。系統(tǒng)E-R圖如圖2.2所示。 圖2.2系統(tǒng)的E-R圖2.3.2 各實(shí)體詳細(xì)E-R圖航 線航線編號始發(fā)城市始發(fā)時間到達(dá)城市始發(fā)日期公務(wù)艙價格客機(jī)編號頭等艙價格經(jīng)濟(jì)艙價格圖2.3航班的E-R圖 客機(jī)編號客機(jī)型號購買時間服務(wù)時間頭等艙數(shù)經(jīng)濟(jì)艙數(shù)編號公務(wù)艙數(shù)飛機(jī) 圖2.4機(jī)票的E-R圖身份證號乘客姓名乘客性別聯(lián)系電話乘客類型編號航班編號用戶名稱乘客倉位類型機(jī)票價格編號機(jī)票 圖2.5乘客和飛機(jī)的E-R圖 圖2.6管理員的E-R圖 實(shí)體的屬性如下所示:機(jī)票(編號(KEY)、用戶名稱、航班編號、倉位類型、機(jī)票價格);航線(編號(KEY)、航線編號、始發(fā)城市、到達(dá)城市、始發(fā)日期、始發(fā)時間、客機(jī)編號、經(jīng)濟(jì)艙價格、公務(wù)艙價格、頭等艙價格);乘客(ID(KEY)、姓名、性別、身份證號碼、聯(lián)系方式);管理員(ID(KEY)、姓名、密碼、密保問題、答案、職務(wù));飛機(jī)(ID(KEY)、客機(jī)編號、客機(jī)型號、購買時間、服務(wù)時間、頭等艙座位數(shù)、經(jīng)濟(jì)艙座位數(shù)、公務(wù)艙座位數(shù));2.4 設(shè)計工具環(huán)境2.4.1 Java語言 Java語言是1995年由Sun公司開發(fā)的編程語言,它的出現(xiàn)是源于對獨(dú)立平臺語言的需要。Java語言是目前使用最為廣泛的編程語言之一,它具有簡單、面向?qū)ο?、穩(wěn)定、與平臺無關(guān)、多線程、動態(tài)等特點(diǎn)。2.4.2 MyEclipse開發(fā)平臺MyEclipse 是基于Java的、開放源代碼的可擴(kuò)展開發(fā)平臺,它最初由IBM公司投入巨資開發(fā),后來被捐贈給國際開放源代碼團(tuán)體。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,MyEclipse附帶了一個標(biāo)準(zhǔn)的插件集,包括了Java開發(fā)工具(Java development Tools,JDT)。雖然大多數(shù)用戶很樂于將MyEclipse當(dāng)作Java IDE 來用,但MyEclipse的目標(biāo)不僅限于此。MyEclipse還包括插件開發(fā)環(huán)境(Plug-in Development Environment,PDE),這個組件主要針對希望擴(kuò)展MyEclipse的軟件開發(fā)人員,因?yàn)樗试S開發(fā)人員構(gòu)建與MyEclipse環(huán)境無縫集成工具。MyEclipse可以集成不同的軟件工具開發(fā)供應(yīng)商的產(chǎn)品,任何開發(fā)工具廠商都可以將他們的開發(fā)工具或組件加入到MyEclipse 平臺,用戶可以通過相同的接口使用不同的工具。也就是說,可以在同一集成環(huán)境中同時使用不同開發(fā)商開發(fā)的軟件工具。由于MyEclipse具有這種整和不同工具的特性,開發(fā)者可以綜合性能調(diào)節(jié)、監(jiān)測、調(diào)試等處理,從而可以在較短的時間內(nèi)開發(fā)出更高性能和質(zhì)量的應(yīng)用軟件。因此,MyEclipse 平臺不僅得到了許多開發(fā)者和新興的中小企業(yè)軟件公司的支持而且得到IBM、Sun、Oracle等大型軟件公司的支持。2.4.3 MySQLMySQL是一個精巧的SQL 數(shù)據(jù)庫管理系統(tǒng),以操作簡便著稱。由于其強(qiáng)大的功能、豐富的應(yīng)用編程接口以及精巧的系統(tǒng)結(jié)構(gòu)設(shè)計,在基于數(shù)據(jù)庫的應(yīng)用軟件開發(fā)中得到了廣泛的應(yīng)用。MySQL 是客戶機(jī)/服務(wù)器模式的分布式系統(tǒng),由SQL服務(wù)器、客戶端、管理工具和應(yīng)用編程接口等組成。它平臺無關(guān)性的優(yōu)點(diǎn)使其能在多個操作系統(tǒng)上運(yùn)行。此外,MySQL 還是多線程的,不僅具有運(yùn)行速度快,可處理大批量數(shù)據(jù)等特點(diǎn),還支持多CPU使用。2.4.4 JSP系統(tǒng)用JSP技術(shù)作為開發(fā)工具。JSP(JavaServer Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。用JSP開發(fā)的Web應(yīng)用是跨平臺的,即能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。 JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示分離,支持可重用的基于組件的設(shè)計,使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。 Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。JSP與Java Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。 JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請求以后對這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Java Servlet 是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡單易用,完全的面向?qū)ο螅哂衅脚_無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。 1 JSP技術(shù)的優(yōu)勢 (1)JSP的效率和安全性更高。JSP在執(zhí)行之前先被編譯成字節(jié)碼,字節(jié)碼由Java虛擬機(jī)解釋執(zhí)行,比源碼解釋的效率高;服務(wù)器還有字節(jié)碼的Cacher(緩存)機(jī)制,能提高字節(jié)碼的訪問效率。第一次調(diào)用JSP網(wǎng)頁速度可能稍慢,因?yàn)樗痪幾g成緩存內(nèi)容,以后就快的多了。 (2)JSP組件方式更方便。絕大多數(shù)JSP頁面依賴于可重用的、跨平臺的組件來執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使用這些組件為更多的使用者或者客戶所使用?;诮M件的方法加速了總體開發(fā)過程,并且使用各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。 (3)JSP適應(yīng)平臺更廣。幾乎所有平臺都支持Java,JSP+Javabean可以在所有平臺下暢通無阻。從一個平臺移植到另一個平臺,JSP和Javabean甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)準(zhǔn)的與平臺無關(guān)的。(4)簡單標(biāo)識簡化頁面開發(fā)。Web頁面開發(fā)人員不一定都是熟悉腳本語言的編程人員。JSP技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標(biāo)識中進(jìn)行動態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識能夠訪問和實(shí)例化Javabean組件,設(shè)置或者檢索組件屬性,下載Applet以及執(zhí)行使用其他方法更難于編碼和耗時的功能。第三章 總體設(shè)計3.1總體結(jié)構(gòu)設(shè)計網(wǎng)上航空售票管理信息系統(tǒng)共分為客戶信息管理、航班信息管理、管理員信息管理、訂票信息管理和統(tǒng)計信息及圖形顯示幾個模塊。具體功能模塊如圖3.1所示。 圖3.1總體模塊圖3.2數(shù)據(jù)庫邏輯設(shè)計數(shù)據(jù)庫是系統(tǒng)的后臺部分,用來存儲信息以供前臺調(diào)用和輸出。數(shù)據(jù)庫設(shè)計的是否合理將直接影響到系統(tǒng)的穩(wěn)定性、安全性及可維護(hù)性,同時也會影響到后期的編碼。在進(jìn)行了需求分析和概要設(shè)計后,接下來將詳細(xì)介紹系統(tǒng)中各部分信息的存儲結(jié)構(gòu)。3.2.1人員信息人員信息包括管理員信息表、用戶信息表;具體表格如表3.1,表3.2所示。表 3.1管理人員信息表屬性名數(shù)據(jù)類型長度允許空字段描述idInt11管理員編號nameVarchar255姓名passwordVarchar255密碼questionVarchar255密碼提示問題answerVarchar255 問題答案positionVarchar 255 職務(wù)*注:管理人員信息表主要存儲系統(tǒng)管理人的相關(guān)信息,用于管理員登錄系統(tǒng)時驗(yàn)證身份,登錄系統(tǒng)后,可以修改數(shù)據(jù)庫的任何信息。主鍵: Id自增。表 3.2 用戶信息表屬性名數(shù)據(jù)類型長度允許空字段描述idInt11用戶編號nameVarchar255用戶姓名sexVarchar4用戶性別idcardVarchar18用戶身份證號碼telVarchar11 電話號碼*注:用戶信息表主要是對乘客信息的存儲,添加乘客信息存入該表,用戶登錄時驗(yàn)證輸入信息是否正確,刪除和修改乘客信息時即刪除和修改該表中對應(yīng)的相關(guān)信息。主鍵:id自增 。3.2.2 機(jī)票信息機(jī)票信息包括訂票信息表、機(jī)票信息表、航班信息表、客機(jī)信息表和機(jī)票價格信息表,這些機(jī)票信息表用來存放與機(jī)票相關(guān)的所用操作信息如表3.3,表3.4,表3.5所示。 表3.3客機(jī)信息表屬性名數(shù)據(jù)類型長度允許空字段描述idInteger11編號kjbhVarchar255客機(jī)編號kjxhVarchar255客機(jī)型號gmsjVarchar255購買時間fwsjVarchar255服務(wù)時間jingjiInteger11v經(jīng)濟(jì)艙座位數(shù)gongwuInteger11公務(wù)艙座位數(shù) topInteger11頭等艙座位數(shù)*注:客機(jī)信息表中存儲了每架客機(jī)的詳細(xì)信息,登錄系統(tǒng)后可以查詢該表中的相關(guān)信息。為管理人員統(tǒng)計客機(jī)數(shù)據(jù)提供信息。主鍵:id自增表3.4訂票信息表屬性名數(shù)據(jù)類型長度允許空字段描述idInteger11編號nameVarchar255乘客姓名hxbhVarchar255航線編號t_typeint4倉位類型priceInteger11機(jī)票價格*注:訂票信息表中記錄了乘客訂票的信息,每有一位用戶訂票,就在該表中插入一條信息,為管理員統(tǒng)計數(shù)據(jù)提供信息。主鍵:id自增。 表3.5航線信息表屬性名數(shù)據(jù)類型長度允許空字段描述idInteger11編號hxbhVarchar255航線編號startcityVarchar255始發(fā)城市endcityVarchar255到達(dá)城市riqiVarchar0始發(fā)日期 starttimeVarchar0始發(fā)時間 endtimeVarchar0到達(dá)時間 kjbhVarchar255客機(jī)編號 jingjipriceInteger11經(jīng)濟(jì)艙價格gongwupriceInteger11公務(wù)艙價格toppriceInteger11頭等艙價格*注:航班信息表中存儲了所有航班的相關(guān)信息,管理員可以對該表的信息進(jìn)行增刪改查等操作,其他人員只有查詢權(quán)限。主鍵:id自增。 第四章 詳細(xì)設(shè)計4.1系統(tǒng)部分時序圖時序圖是通過表示隨著時間的推移所發(fā)送的消息序列,來體現(xiàn)對象之間的動態(tài)協(xié)作關(guān)系,它主要是為了表示對象之間的交互過程,即對象之間發(fā)送消息的順序,以及引起的一系列事件。圖4.1登錄人員登錄系統(tǒng)時序圖圖4.1為登錄人員登錄系統(tǒng)主界面的時序圖,登錄人員先在系統(tǒng)的登錄界面輸入登陸信息,系統(tǒng)對登錄信息進(jìn)行判斷,信息不正確則返回錯誤提示,信息正確便可進(jìn)入操作者所屬權(quán)限下要執(zhí)行的操作。該系統(tǒng)設(shè)定了二種登錄人員,管理員和乘客,并為他們設(shè)定了各自的訪問權(quán)限。1:選擇菜單7:顯示改后信息6:保存新信息息5:填寫修改信息4:顯示界面3:選擇2:列出菜單管理人員newticketsmainmenu1menuumenutickets圖4.2管理人員對信息進(jìn)行操作的時序圖圖4.2為登錄人員登錄系統(tǒng)后進(jìn)行各種操作的時序圖,登錄人員進(jìn)入操作界面先在操作界面選擇何種操作,更正后的信息會保存在數(shù)據(jù)庫里。例如,選擇的是修改信息就會將更新后的信息顯示在頁面上。4.2系統(tǒng)的流程設(shè)計系統(tǒng)的流程設(shè)計對系統(tǒng)的編碼起著至關(guān)重要的地位,根據(jù)系統(tǒng)的功能要求,做出幾個重要的功能的流程圖。(1)用戶登錄模塊為了安全性,進(jìn)入本系統(tǒng)需要(管理員)身份驗(yàn)證,只有用戶通過帳號與密碼一致性的驗(yàn)證,才能進(jìn)入系統(tǒng)。登錄情況有三種:一是帳號與密碼一致,二是帳號不存在,三是密碼不正確,每一種情況系統(tǒng)都會有提示。另外,用戶也可以選擇取消登錄。當(dāng)輸入帳號時,系統(tǒng)會自動搜索數(shù)據(jù)庫(使用SELECT函數(shù))辨別此用戶是“管理員“還是“用戶”,并且顯示出來,倘若是管理員,那么在用戶管理模塊中可以修改用戶密碼以及增加新一般用戶,否則只能修改密碼。設(shè)計出的登錄流程圖如圖4.3所示。 結(jié)束圖4.3系統(tǒng)登錄流程圖(2)訂票模塊該流程詳細(xì)描述用戶訂票,當(dāng)用戶發(fā)出訂票請求后,系統(tǒng)搜索數(shù)據(jù)庫中相應(yīng)的機(jī)票信息,如果沒找到則該機(jī)票已經(jīng)售完。如果找到相應(yīng)的機(jī)票信息,系統(tǒng)會將相關(guān)機(jī)票售予該用戶。4.3系統(tǒng)功能的詳細(xì)實(shí)現(xiàn)下面介紹系統(tǒng)的詳細(xì)功能設(shè)計。(1) 用戶登錄系統(tǒng)登錄界面如圖4.4所示。在這里設(shè)置了一個圖片驗(yàn)證碼,可以更好的保護(hù)用戶的信息。當(dāng)用戶輸入正確的用戶賬號和密碼以及驗(yàn)證碼時,系統(tǒng)會跳轉(zhuǎn)到另一個界面,也就是主窗口。若用戶名密碼不正確,系統(tǒng)將給出提示:“您輸入的用戶名和密碼不正確,請您重新輸入”,然后繼續(xù)重新輸入。圖4.4用戶登錄界面(2) 管理員主界面 用戶登錄后,根據(jù)登錄的帳號進(jìn)行判斷:若是admin(管理員),則可以對系統(tǒng)中的所有信息進(jìn)行增加、刪除、修改和查詢等操作,如圖4.5所示。圖4.6所示的是管理員對航班信息的管理。圖4.5主界面 圖4.6查詢航班(3) 用戶訂票用戶登錄后,則可以進(jìn)行訂票和退票以及查詢機(jī)票信息等操作,圖4.7所示用戶跟據(jù)需要輸入機(jī)票的查詢條件,從數(shù)據(jù)庫中找到相應(yīng)的機(jī)票,進(jìn)行確認(rèn)購買。會顯示購買成功。 圖4.7 查詢機(jī)票(4) 用戶退票當(dāng)用戶需要退票時,系統(tǒng)根據(jù)機(jī)票編號從數(shù)據(jù)庫查到關(guān)于此票的訂票信息如圖4.8所示,當(dāng)點(diǎn)退票時,數(shù)據(jù)庫中該票的信息會立刻更新,同時該類機(jī)票的數(shù)量也會加一,以便及時將此票售予下位乘客。在退還票價時,要扣掉機(jī)票價格20%的手續(xù)費(fèi),如圖4.9所示。 圖4.8 輸入乘客信息 圖4.9退票界面 圖4.10 退票金額4.4詳細(xì)設(shè)計中關(guān)鍵技術(shù)的實(shí)現(xiàn)以下主要介紹主要功能的關(guān)鍵技術(shù)的實(shí)現(xiàn)過程。 4.4.1數(shù)據(jù)庫的連接數(shù)據(jù)庫連接的建立及關(guān)閉對系統(tǒng)而言是耗費(fèi)系統(tǒng)資源的操作。在多層結(jié)構(gòu)應(yīng)用程序環(huán)境中,這種耗費(fèi)資源的動作對系統(tǒng)性能的影響很大。在傳統(tǒng)的數(shù)據(jù)庫連接方式中,一個數(shù)據(jù)庫連接對象均對應(yīng)一個邏輯數(shù)據(jù)庫連接,每次操作都打開一個邏輯連接,使用完后再關(guān)閉連接,這樣的反復(fù)操作將造成系統(tǒng)性能的急劇下降。數(shù)據(jù)庫連接池是應(yīng)用程序啟動時建立足夠的數(shù)據(jù)庫連接,并將這些連接組成一個連接池,由程序動態(tài)地對池中的連接進(jìn)行申請、使用和釋放,當(dāng)連接的數(shù)量大于連接池中的連接數(shù)時,可以動態(tài)地根據(jù)情況增加或減少池中的連接數(shù)。用JDBC(Java DataBase Connectivity)連接MySQL數(shù)據(jù)庫需要經(jīng)過下面幾個步驟:(1)建立Conn.java類;(2)載入JDBC驅(qū)動:Class.forName(org.gjt.mm.mysql.Driver);(3) 建立與數(shù)據(jù)庫的連接:要建立與數(shù)據(jù)庫的連接,首先要創(chuàng)建指定數(shù)據(jù)庫的URL。利用DriverManager的getConnection方法連接數(shù)據(jù)庫的URL對象,URL格式如下:String url=jdbc:mysql:/localhost/shop?user=root&password=123;(4) 調(diào)用執(zhí)行SQL語句。(5) 結(jié)束連接。41第5章 編碼實(shí)現(xiàn) 以下編碼是以管理員的管理為例Com.model:Admin.javapublic class Adminprivate int id;private String name;private String password;private String question;private String answer;private String position;public Admin()public int getId() return id;public void setId(int id) this.id = id;public String getName() return name;public void setName(String name) = name;public String getPassword() return password;public void setPassword(String password) this.password = password;public String getQuestion() return question;public void setQuestion(String question) this.question = question;public String getAnswer() return answer;public void setAnswer(String answer) this.answer = answer;public String getPosition() return position;public void setPosition(String position) this.position = position;public Admin(int id, String name, String password, String question,String answer, String position) super();this.id = id; = name;this.password = password;this.question = question;this.answer = answer;this.position = position;public Admin(String name, String password, String question,String answer, String position) = name;this.password = password;this.question = question;this.answer = answer;this.position = position;Com.dao:AdminDao.javapackage com.dao;import java.util.ArrayList;import com.model.Admin;public interface AdminDaopublic boolean addAdmin(Admin a);public ArrayList listAdmin();public Admin getById(int id);public boolean delAdmin(int id);public boolean modifyAdmin(Admin a);public ArrayList listAdmin(int start,int count);public boolean authAdmin(String name,String password);public boolean authInfo(String name,String questio,String answer);public boolean modifyPass(String name,String pass);public Admin getByName(String name);Com.imp:AdminImppackage com.imp;import java.sql.ResultSet;import java.util.ArrayList;import com.dao.AdminDao;import com.model.Admin;import com.model.Conn;public class AdminImp implements AdminDaopublic boolean addAdmin(Admin a)String name=a.getName();String password=a.getPassword();String question=a.getQuestion();String answer=a.getAnswer();String position=a.getPosition();String sql=insert into ap_admin(name,password,question,answer,position) values(+name+,password(+password+),+question+,+answer+,+position+);int result=Conn.Insert(sql);if(result=1)return true;elsereturn false;public ArrayList listAdmin()String sql=select * from ap_admin;ResultSet rs=Conn.Select(sql);ArrayList list=new ArrayList();trywhile(rs.next()int id=rs.getInt(id);String name=rs.getString(name);String password=rs.getString(password);String question=rs.getString(question);String answer=rs.getString(answer);String position=rs.getString(position);Admin a=new Admin(id,name,password,question,answer,position);list.add(a);return list;catch(Exception e)return null;public Admin getById(int id)String sql=select * from ap_admin where id=+id;ResultSet rs=Conn.Select(sql);tryif(rs.next()String name=rs.getString(name);String password=rs.getString(password);String question=rs.getString(question);String answer=rs.getString(answer);String position=rs.getString(position);Admin a=new Admin(id,name,password,question,answer,position);return a;elsereturn null;catch(Exception e)return null;public boolean delAdmin(int id)String sql=delete from ap_admin where id=+id;int result=Conn.Delete(sql);if(result=1)return true;elsereturn false;public boolean modifyAdmin(Admin a)int id=a.getId();String name=a.getName();String password=a.getPassword();String question=a.getQuestion();String answer=a.getAnswer();String position=a.getPosition();String sql=update ap_admin set name=+name+,password=password(+password+),question=+question+,answer=+answer+,position=+position+ where id=+id;int result=Conn.Update(sql);if(result=1)return true;elsereturn false;public ArrayList listAdmin(int start,int count)String sql=select * from ap_admin limit +start+,+count;ResultSet rs=Conn.Select(sql);ArrayList list=new ArrayList();trywhile(rs.next()int id=rs.getInt(id);String name=rs.getString(name);String password=rs.getString(password);String question=rs.getString(question);String answer=rs.getString(answer);String position=rs.getString(position);Admin a=new Admin(id,name,password,question,answer,position);list.add(a);return list;catch(Exception e)return null;public boolean authAdmin(String name,String password)String sql=Select * from ap_admin where name=+name+ and password=password(+password+);ResultSet rs=Conn.Select(sql);tryif(rs.next()return true;elsereturn false;catch(Exception e)return false;public boolean authInfo(String name,String question,String answer)String sql=select * from ap_admin where name=+name+ and tel=+question+ and answer=+answer+;ResultSet rs=Conn.Select(sql);tryif(rs.next()return true;els

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論