




已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
(論文)陜西理工學(xué)院 高級(jí)語(yǔ)言編程實(shí)訓(xùn) 實(shí)訓(xùn)報(bào)告項(xiàng)目名稱:基于Web的網(wǎng)上機(jī)票預(yù)定管理系統(tǒng)學(xué)生姓名: 任瑩 1209064006 韓璐 1209064033 梁澤志 1209064037 魚愛春 1209064028 楊瑞 1209064003 班 級(jí): 信計(jì)1201 成 績(jī): 指導(dǎo)教師: 趙暉 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院實(shí)訓(xùn)報(bào)告評(píng)閱項(xiàng)目組分工:評(píng)語(yǔ):成績(jī)指導(dǎo)教師簽名: 年 月 日 摘 要世界多極化和經(jīng)濟(jì)全球化的趨勢(shì)在曲折中發(fā)展,科技進(jìn)步日新月異,綜合國(guó)力競(jìng)爭(zhēng)日趨激烈。電子信息產(chǎn)品制造業(yè)經(jīng)濟(jì)運(yùn)行狀況良好,產(chǎn)業(yè)規(guī)模迅速擴(kuò)大。在計(jì)算機(jī)技術(shù)高速發(fā)展的今天,我國(guó)有必要引入高效的計(jì)算機(jī)系統(tǒng)來改善一些旅行社和酒店的機(jī)票預(yù)定,提高工作效率,協(xié)助處理機(jī)票預(yù)定工作。網(wǎng)上機(jī)票預(yù)訂管理系統(tǒng)的產(chǎn)生和發(fā)展正好滿足人們的這種需求。機(jī)票預(yù)定系統(tǒng)是為機(jī)場(chǎng)工作人員和客戶提供訂票退票等與機(jī)票相關(guān)內(nèi)容和管理的系統(tǒng),它具有開放體系結(jié)構(gòu)的、易擴(kuò)充的、易維護(hù)的、具有良好人機(jī)界面的優(yōu)點(diǎn).它除克服了存儲(chǔ)乘客信息少,查詢效率低下等問題外,更重要的是其安全性,可靠性,實(shí)現(xiàn)航空公司的機(jī)票銷售的自動(dòng)化。它為企業(yè)的決策層提供準(zhǔn)確、精細(xì)、迅速的機(jī)票銷售信息,為乘客出行提供方便,便于機(jī)場(chǎng)工作人員對(duì)機(jī)票信息進(jìn)行管理,提高了機(jī)場(chǎng)工作人員對(duì)機(jī)票管理的工作效率。根據(jù)航空公司管理的實(shí)際要求, 系統(tǒng)采用JSP,Tomcat,Servlet,利用Mysql作為數(shù)據(jù)庫(kù)管理工具,模塊復(fù)用率高、系統(tǒng)維護(hù)代價(jià)小,方便、靈活、高效。關(guān)鍵詞:航班信息管理;退票管理;訂票管理;Java語(yǔ)言目 錄第一章 引言11.1 題目背景11.2 題目?jī)?nèi)容21.3 系統(tǒng)設(shè)計(jì)目標(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è)計(jì)62.3.1 實(shí)體-聯(lián)系(E-R)圖62.3.2 各實(shí)體詳細(xì)E-R圖72.4 設(shè)計(jì)工具環(huán)境82.4.1 Java語(yǔ)言82.4.2 MyEclipse開發(fā)平臺(tái)82.4.3 MySQL92.4.4 JSP9第三章 總體設(shè)計(jì)123.1總體結(jié)構(gòu)設(shè)計(jì)123.2數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)123.2.1人員信息123.2.2 機(jī)票信息13第四章 詳細(xì)設(shè)計(jì)164.1系統(tǒng)部分時(shí)序圖164.2系統(tǒng)的流程設(shè)計(jì)174.3系統(tǒng)功能的詳細(xì)實(shí)現(xiàn)194.4詳細(xì)設(shè)計(jì)中關(guān)鍵技術(shù)的實(shí)現(xiàn)224.4.1數(shù)據(jù)庫(kù)的連接22第五章 編碼實(shí)現(xiàn)23第六章 系統(tǒng)測(cè)試與調(diào)試316.1軟件測(cè)試常識(shí)316.2系統(tǒng)功能測(cè)試計(jì)劃316.3系統(tǒng)功能模塊測(cè)試326.3.1管理人員模塊的測(cè)試326.3.2乘客模塊測(cè)試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ì)增長(zhǎng)的主要推動(dòng)力之一,正在改變著傳統(tǒng)的生產(chǎn)和經(jīng)營(yíng)方式以至生活方式,發(fā)達(dá)國(guó)家經(jīng)過產(chǎn)業(yè)結(jié)構(gòu)的升級(jí)和經(jīng)濟(jì)結(jié)構(gòu)的轉(zhuǎn)型已進(jìn)入信息經(jīng)濟(jì)階段。中共十七屆五中全會(huì)通過的國(guó)民經(jīng)濟(jì)和社會(huì)發(fā)展第十個(gè)五年計(jì)劃建議中已明確指出:信息化是當(dāng)今世界經(jīng)濟(jì)和社會(huì)發(fā)展的大趨勢(shì),也是我國(guó)產(chǎn)業(yè)優(yōu)化升級(jí)和實(shí)現(xiàn)工業(yè)化、現(xiàn)代化的關(guān)鍵環(huán)節(jié)。大力推進(jìn)國(guó)民經(jīng)濟(jì)和社會(huì)信息化,是覆蓋現(xiàn)代化建設(shè)全局的戰(zhàn)略舉措??梢?,黨和國(guó)家已將國(guó)民經(jīng)濟(jì)和社會(huì)信息化放在優(yōu)先發(fā)展位置,體現(xiàn)了先進(jìn)生產(chǎn)力的客觀要求,是一項(xiàng)重要的戰(zhàn)略決策。這是民航加快發(fā)展的機(jī)遇,更是民航信息化的難得機(jī)遇。隨著知識(shí)經(jīng)濟(jì)的到來,人類已經(jīng)逐步進(jìn)入信息化社會(huì),信息增長(zhǎng)的速度越來越快,人們希望利用先進(jìn)的管理理論方法手段來得到并處理越來越多的信息,以提高工作效率和管理水平。由于信息資源對(duì)人們生活的重要性,不斷提高信息的收集,傳輸,加以利用等活動(dòng),日益成為人們社會(huì)生活的重要組成部分。隨著社會(huì)發(fā)展的不斷進(jìn)步,民航事業(yè)的壯大,人們消費(fèi)水平的提高,乘坐民航的消費(fèi)者也越來越多,旅游也逐漸成為普通老百姓的生活組成部分,飛機(jī)票預(yù)定查詢系統(tǒng)在各機(jī)票預(yù)定網(wǎng)點(diǎn)中的作用也越顯重要。目前,我國(guó)一些旅行社和酒店的機(jī)票預(yù)定還停留在人工處理階段,這已經(jīng)嚴(yán)重制約了工作效率,在計(jì)算機(jī)技術(shù)高速發(fā)展的今天,有必要引入高效的計(jì)算機(jī)系統(tǒng),來協(xié)助處理機(jī)票預(yù)定工作。因此,開發(fā)一套具有完整的存儲(chǔ),查詢,核對(duì),打印機(jī)票功能的實(shí)時(shí)機(jī)票預(yù)定系統(tǒng)勢(shì)在必行。機(jī)票預(yù)定系統(tǒng)是為機(jī)場(chǎng)工作人員和客戶提供訂票退票等與機(jī)票相關(guān)內(nèi)容和管理的系統(tǒng),它具有開放體系結(jié)構(gòu)的、易擴(kuò)充的、易維護(hù)的、具有良好人機(jī)界面的優(yōu)點(diǎn).它除克服了存儲(chǔ)乘客信息少,查詢效率低下等問題外,更重要的是其安全性,可靠性,實(shí)現(xiàn)航空公司的機(jī)票銷售的自動(dòng)化。它為企業(yè)的決策層提供準(zhǔn)確、精細(xì)、迅速的機(jī)票銷售信息,為乘客出行提供方便,便于機(jī)場(chǎng)工作人員對(duì)機(jī)票信息進(jìn)行管理,提高了機(jī)場(chǎng)工作人員對(duì)機(jī)票管理的工作效率。1.2 題目?jī)?nèi)容隨著信息技術(shù)的發(fā)展,航空售票業(yè)也成為一個(gè)高度依賴信息業(yè)的行業(yè)。信息技術(shù)的飛速發(fā)展不僅使航空售票工作者逐漸擺脫了繁重的手工勞動(dòng)、提高了工作效率,而且推著航空事業(yè)向現(xiàn)代化管理邁進(jìn)?,F(xiàn)代化的航空售票也應(yīng)該有現(xiàn)代化的管理系統(tǒng)。在科技日益發(fā)達(dá)的今天,人們對(duì)旅游出行更加重視。因此,航空售票進(jìn)行現(xiàn)代化管理就變的尤為重要。畢業(yè)設(shè)計(jì)的主要任務(wù)就是設(shè)計(jì)實(shí)現(xiàn)一個(gè)航空售票信息管理系統(tǒng),完成對(duì)航空公司的正常售票等業(yè)務(wù)的管理。具體任務(wù)如下:(1)主要航空港基本信息管理;(2)主要民航航線基本信息管理;(3)售票信息管理;(4)預(yù)定票信息管理;(5)退票信息管理;(6)飛機(jī)票價(jià)格(包括打折)管理;(7)上述信息的統(tǒng)計(jì)及圖形顯示。1.3 系統(tǒng)設(shè)計(jì)目標(biāo)此次設(shè)計(jì)的主要任務(wù)就是設(shè)計(jì)實(shí)現(xiàn)一個(gè)航空售票信息管理系統(tǒng),其實(shí)現(xiàn)對(duì)航班信息、航線信息、客機(jī)信息、票務(wù)信息以及客戶信息的管理;客戶可以對(duì)航班的信息進(jìn)行查詢,如果想進(jìn)一步完成自己的訂票、退票,就必須進(jìn)行登錄。在沒有注冊(cè)的情況下,要注冊(cè)自己的相關(guān)信息,進(jìn)而完成自己所需航班的訂票業(yè)務(wù);客戶也可以對(duì)自己的注冊(cè)信息進(jìn)行修改。1.4 經(jīng)濟(jì)技術(shù)分析(1)經(jīng)濟(jì)可行性航空售票信息管理系統(tǒng)是整個(gè)航空管理系統(tǒng)中的一個(gè)子系統(tǒng),是根據(jù)各部分管理的功能開發(fā)的。從任務(wù)量上來說最好由多人開發(fā),雖然不需要投入太多的人力、物力、財(cái)力,但是這樣可以保障功能的完善,質(zhì)量的提高。如果航空公司沒有一個(gè)規(guī)范嚴(yán)謹(jǐn)?shù)氖燮毙畔⒐芾硐到y(tǒng),那么在面對(duì)眾多乘客訂票管理方面所需要消耗的人力是巨大的。僅乘客保險(xiǎn)信息一項(xiàng),就需要對(duì)乘客身份證號(hào)等許多數(shù)據(jù)進(jìn)行枯燥的管理,很容易出錯(cuò)。尤其在類似于沈陽(yáng)這樣的人員眾多的城市,數(shù)據(jù)量大的特點(diǎn)更是十分明顯。工作量大、效率低下是航空售票信息管理長(zhǎng)期以來的詬病。而通過計(jì)算機(jī)管理航空售票不僅節(jié)約了人力資源,而且提高了效率與準(zhǔn)確性,使效益在質(zhì)量上有了很大的飛躍。所以,從經(jīng)濟(jì)角度上來說是完全可行的。(2)技術(shù)可行性此系統(tǒng)應(yīng)用JSP技術(shù)作為開發(fā)工具。Java語(yǔ)言具有面向?qū)ο蟆⑴c平臺(tái)無(wú)關(guān)、安全、穩(wěn)定和多線程等優(yōu)良特性,是目前軟件設(shè)計(jì)中極為健壯的編程語(yǔ)言。JSP技術(shù)還擁有很多的優(yōu)勢(shì),一次編寫到處運(yùn)行,系統(tǒng)的多平臺(tái)支持,多樣化和功能強(qiáng)大的開發(fā)工具支持,強(qiáng)大的可伸縮性。系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)采用MySQL。所以,從技術(shù)角度上來說是完全可行的。該系統(tǒng)的主要用戶是航空公司的管理員和所有乘客。在開發(fā)過程中利用Java、面向?qū)ο蟮某绦蛩枷牒蛙浖こ痰拈_發(fā)過程來進(jìn)行需求分析和設(shè)計(jì),其中是以Java中的Swing思想為基礎(chǔ)進(jìn)行各個(gè)圖形界面設(shè)計(jì)1;MyEclipse的開發(fā)環(huán)境使得本系統(tǒng)的開發(fā)簡(jiǎn)單節(jié)省時(shí)間,而且在運(yùn)行測(cè)試以及維護(hù)等方面也不像其他的開發(fā)工具那么繁瑣,更將少了在維護(hù)方面的成本。對(duì)于各種數(shù)據(jù)的管理采用的是SQL Server的數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行的2,連接數(shù)據(jù)庫(kù)的時(shí)候采用的是JDBC的連接方法。1.5 本文結(jié)構(gòu)此論文共分為緒論、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)和系統(tǒng)測(cè)試幾個(gè)章節(jié)。在需求分析與概要設(shè)計(jì)章節(jié)中共分為用戶需求分析、角色及其功能、數(shù)據(jù)流圖、E-R圖、模塊圖和設(shè)計(jì)環(huán)境及工具的介紹等幾部分。本論文的重點(diǎn)之一將以用戶的需求分析為主,從用戶的角度出發(fā)使系統(tǒng)的功能與用戶的要求達(dá)成一致。這需要全面地理解用戶的各項(xiàng)要求,準(zhǔn)確地表達(dá)用戶需求,設(shè)計(jì)出系統(tǒng)的各項(xiàng)功能以解決“做什么”的問題。同時(shí)通過時(shí)序圖、ER圖、模塊圖等,更為詳細(xì)的說明此系統(tǒng)的功能和此系統(tǒng)的設(shè)計(jì)思路。在本章節(jié)的最后還將說明本系統(tǒng)所使用的工具和設(shè)計(jì)環(huán)境,并簡(jiǎn)略的敘述其相關(guān)情況。在詳細(xì)設(shè)計(jì)章節(jié)中共分為數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)、程序流程圖等幾部分。本章節(jié)是此論文的另一重點(diǎn),在此章節(jié)中將詳細(xì)的對(duì)本系統(tǒng)進(jìn)行介紹。數(shù)據(jù)庫(kù)的結(jié)構(gòu)設(shè)計(jì)是本次畢設(shè)的一個(gè)重要環(huán)節(jié),設(shè)計(jì)出正確的數(shù)據(jù)庫(kù)結(jié)構(gòu)有助于準(zhǔn)確的敘述出各個(gè)實(shí)體之間的關(guān)系,進(jìn)而實(shí)現(xiàn)系統(tǒng)的各項(xiàng)功能。在本章還將通過程序流程圖給出設(shè)計(jì)程序的基本思路,同時(shí)設(shè)計(jì)出準(zhǔn)確、高效的程序代碼。在系統(tǒng)測(cè)試章節(jié)中共分為測(cè)試環(huán)境、測(cè)試結(jié)果、測(cè)試工具和測(cè)試界面等幾部分。在此章節(jié)將對(duì)此系統(tǒng)的具體功能、運(yùn)行情況等進(jìn)行測(cè)試。通過此章節(jié)完成對(duì)系統(tǒng)的最后檢測(cè)找出不足并加以完善。第二章 需求分析2.1 角色及其職能本系統(tǒng)的角色是乘客和管理員。乘客除了具有買票和退票的操作權(quán)限外還有查詢所有信息的權(quán)限,管理人員具有對(duì)任何信息進(jìn)行增加,刪除、修改和查詢的操作,可以查詢統(tǒng)計(jì)信息。乘客可以通過登錄后查詢和修改與自己有關(guān)的信息。2.2 數(shù)據(jù)流圖經(jīng)過初步的需求分析,得到系統(tǒng)的主要功能要求如下:(1) 用戶查詢自己的訂票信息和退票信息以及查詢相關(guān)信息;管理人員可以對(duì)各項(xiàng)信息進(jìn)行增加、刪除、修改、查詢操作。根據(jù)分析得到的系統(tǒng)功能要求,設(shè)計(jì)出航空售票信息管理系統(tǒng)的數(shù)據(jù)流圖,如圖2.1所示。網(wǎng)上訂票信息管理系統(tǒng)管理員用戶管理員用戶售票信息、退票信息、價(jià)格信息、訂票信息、航班信息、客機(jī)信息、機(jī)票信息管理查詢結(jié)果結(jié)果 圖2.1網(wǎng)上航空售票管理信息系統(tǒng)的數(shù)據(jù)流圖2.3 概念結(jié)構(gòu)設(shè)計(jì)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圖航 線航線編號(hào)始發(fā)城市始發(fā)時(shí)間到達(dá)城市始發(fā)日期公務(wù)艙價(jià)格客機(jī)編號(hào)頭等艙價(jià)格經(jīng)濟(jì)艙價(jià)格圖2.3航班的E-R圖 客機(jī)編號(hào)客機(jī)型號(hào)購(gòu)買時(shí)間服務(wù)時(shí)間頭等艙數(shù)經(jīng)濟(jì)艙數(shù)編號(hào)公務(wù)艙數(shù)飛機(jī) 圖2.4機(jī)票的E-R圖身份證號(hào)乘客姓名乘客性別聯(lián)系電話乘客類型編號(hào)航班編號(hào)用戶名稱乘客倉(cāng)位類型機(jī)票價(jià)格編號(hào)機(jī)票 圖2.5乘客和飛機(jī)的E-R圖 圖2.6管理員的E-R圖 實(shí)體的屬性如下所示:機(jī)票(編號(hào)(KEY)、用戶名稱、航班編號(hào)、倉(cāng)位類型、機(jī)票價(jià)格);航線(編號(hào)(KEY)、航線編號(hào)、始發(fā)城市、到達(dá)城市、始發(fā)日期、始發(fā)時(shí)間、客機(jī)編號(hào)、經(jīng)濟(jì)艙價(jià)格、公務(wù)艙價(jià)格、頭等艙價(jià)格);乘客(ID(KEY)、姓名、性別、身份證號(hào)碼、聯(lián)系方式);管理員(ID(KEY)、姓名、密碼、密保問題、答案、職務(wù));飛機(jī)(ID(KEY)、客機(jī)編號(hào)、客機(jī)型號(hào)、購(gòu)買時(shí)間、服務(wù)時(shí)間、頭等艙座位數(shù)、經(jīng)濟(jì)艙座位數(shù)、公務(wù)艙座位數(shù));2.4 設(shè)計(jì)工具環(huán)境2.4.1 Java語(yǔ)言 Java語(yǔ)言是1995年由Sun公司開發(fā)的編程語(yǔ)言,它的出現(xiàn)是源于對(duì)獨(dú)立平臺(tái)語(yǔ)言的需要。Java語(yǔ)言是目前使用最為廣泛的編程語(yǔ)言之一,它具有簡(jiǎn)單、面向?qū)ο?、穩(wěn)定、與平臺(tái)無(wú)關(guān)、多線程、動(dòng)態(tài)等特點(diǎn)。2.4.2 MyEclipse開發(fā)平臺(tái)MyEclipse 是基于Java的、開放源代碼的可擴(kuò)展開發(fā)平臺(tái),它最初由IBM公司投入巨資開發(fā),后來被捐贈(zèng)給國(guó)際開放源代碼團(tuán)體。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,MyEclipse附帶了一個(gè)標(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),這個(gè)組件主要針對(duì)希望擴(kuò)展MyEclipse的軟件開發(fā)人員,因?yàn)樗试S開發(fā)人員構(gòu)建與MyEclipse環(huán)境無(wú)縫集成工具。MyEclipse可以集成不同的軟件工具開發(fā)供應(yīng)商的產(chǎn)品,任何開發(fā)工具廠商都可以將他們的開發(fā)工具或組件加入到MyEclipse 平臺(tái),用戶可以通過相同的接口使用不同的工具。也就是說,可以在同一集成環(huán)境中同時(shí)使用不同開發(fā)商開發(fā)的軟件工具。由于MyEclipse具有這種整和不同工具的特性,開發(fā)者可以綜合性能調(diào)節(jié)、監(jiān)測(cè)、調(diào)試等處理,從而可以在較短的時(shí)間內(nèi)開發(fā)出更高性能和質(zhì)量的應(yīng)用軟件。因此,MyEclipse 平臺(tái)不僅得到了許多開發(fā)者和新興的中小企業(yè)軟件公司的支持而且得到IBM、Sun、Oracle等大型軟件公司的支持。2.4.3 MySQLMySQL是一個(gè)精巧的SQL 數(shù)據(jù)庫(kù)管理系統(tǒng),以操作簡(jiǎn)便著稱。由于其強(qiáng)大的功能、豐富的應(yīng)用編程接口以及精巧的系統(tǒng)結(jié)構(gòu)設(shè)計(jì),在基于數(shù)據(jù)庫(kù)的應(yīng)用軟件開發(fā)中得到了廣泛的應(yīng)用。MySQL 是客戶機(jī)/服務(wù)器模式的分布式系統(tǒng),由SQL服務(wù)器、客戶端、管理工具和應(yīng)用編程接口等組成。它平臺(tái)無(wú)關(guān)性的優(yōu)點(diǎn)使其能在多個(gè)操作系統(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)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,即能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。 JSP技術(shù)使用Java編程語(yǔ)言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。 Web服務(wù)器在遇到訪問JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。JSP與Java Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。 JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁(yè)面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶端的瀏覽器。Java Servlet 是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο螅哂衅脚_(tái)無(wú)關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。 1 JSP技術(shù)的優(yōu)勢(shì) (1)JSP的效率和安全性更高。JSP在執(zhí)行之前先被編譯成字節(jié)碼,字節(jié)碼由Java虛擬機(jī)解釋執(zhí)行,比源碼解釋的效率高;服務(wù)器還有字節(jié)碼的Cacher(緩存)機(jī)制,能提高字節(jié)碼的訪問效率。第一次調(diào)用JSP網(wǎng)頁(yè)速度可能稍慢,因?yàn)樗痪幾g成緩存內(nèi)容,以后就快的多了。 (2)JSP組件方式更方便。絕大多數(shù)JSP頁(yè)面依賴于可重用的、跨平臺(tái)的組件來執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使用這些組件為更多的使用者或者客戶所使用?;诮M件的方法加速了總體開發(fā)過程,并且使用各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。 (3)JSP適應(yīng)平臺(tái)更廣。幾乎所有平臺(tái)都支持Java,JSP+Javabean可以在所有平臺(tái)下暢通無(wú)阻。從一個(gè)平臺(tái)移植到另一個(gè)平臺(tái),JSP和Javabean甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)準(zhǔn)的與平臺(tái)無(wú)關(guān)的。(4)簡(jiǎn)單標(biāo)識(shí)簡(jiǎn)化頁(yè)面開發(fā)。Web頁(yè)面開發(fā)人員不一定都是熟悉腳本語(yǔ)言的編程人員。JSP技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標(biāo)識(shí)中進(jìn)行動(dòng)態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識(shí)能夠訪問和實(shí)例化Javabean組件,設(shè)置或者檢索組件屬性,下載Applet以及執(zhí)行使用其他方法更難于編碼和耗時(shí)的功能。第三章 總體設(shè)計(jì)3.1總體結(jié)構(gòu)設(shè)計(jì)網(wǎng)上航空售票管理信息系統(tǒng)共分為客戶信息管理、航班信息管理、管理員信息管理、訂票信息管理和統(tǒng)計(jì)信息及圖形顯示幾個(gè)模塊。具體功能模塊如圖3.1所示。 圖3.1總體模塊圖3.2數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)數(shù)據(jù)庫(kù)是系統(tǒng)的后臺(tái)部分,用來存儲(chǔ)信息以供前臺(tái)調(diào)用和輸出。數(shù)據(jù)庫(kù)設(shè)計(jì)的是否合理將直接影響到系統(tǒng)的穩(wěn)定性、安全性及可維護(hù)性,同時(shí)也會(huì)影響到后期的編碼。在進(jìn)行了需求分析和概要設(shè)計(jì)后,接下來將詳細(xì)介紹系統(tǒng)中各部分信息的存儲(chǔ)結(jié)構(gòu)。3.2.1人員信息人員信息包括管理員信息表、用戶信息表;具體表格如表3.1,表3.2所示。表 3.1管理人員信息表屬性名數(shù)據(jù)類型長(zhǎng)度允許空字段描述idInt11管理員編號(hào)nameVarchar255姓名passwordVarchar255密碼questionVarchar255密碼提示問題answerVarchar255 問題答案positionVarchar 255 職務(wù)*注:管理人員信息表主要存儲(chǔ)系統(tǒng)管理人的相關(guān)信息,用于管理員登錄系統(tǒng)時(shí)驗(yàn)證身份,登錄系統(tǒng)后,可以修改數(shù)據(jù)庫(kù)的任何信息。主鍵: Id自增。表 3.2 用戶信息表屬性名數(shù)據(jù)類型長(zhǎng)度允許空字段描述idInt11用戶編號(hào)nameVarchar255用戶姓名sexVarchar4用戶性別idcardVarchar18用戶身份證號(hào)碼telVarchar11 電話號(hào)碼*注:用戶信息表主要是對(duì)乘客信息的存儲(chǔ),添加乘客信息存入該表,用戶登錄時(shí)驗(yàn)證輸入信息是否正確,刪除和修改乘客信息時(shí)即刪除和修改該表中對(duì)應(yīng)的相關(guān)信息。主鍵:id自增 。3.2.2 機(jī)票信息機(jī)票信息包括訂票信息表、機(jī)票信息表、航班信息表、客機(jī)信息表和機(jī)票價(jià)格信息表,這些機(jī)票信息表用來存放與機(jī)票相關(guān)的所用操作信息如表3.3,表3.4,表3.5所示。 表3.3客機(jī)信息表屬性名數(shù)據(jù)類型長(zhǎng)度允許空字段描述idInteger11編號(hào)kjbhVarchar255客機(jī)編號(hào)kjxhVarchar255客機(jī)型號(hào)gmsjVarchar255購(gòu)買時(shí)間fwsjVarchar255服務(wù)時(shí)間jingjiInteger11v經(jīng)濟(jì)艙座位數(shù)gongwuInteger11公務(wù)艙座位數(shù) topInteger11頭等艙座位數(shù)*注:客機(jī)信息表中存儲(chǔ)了每架客機(jī)的詳細(xì)信息,登錄系統(tǒng)后可以查詢?cè)摫碇械南嚓P(guān)信息。為管理人員統(tǒng)計(jì)客機(jī)數(shù)據(jù)提供信息。主鍵:id自增表3.4訂票信息表屬性名數(shù)據(jù)類型長(zhǎng)度允許空字段描述idInteger11編號(hào)nameVarchar255乘客姓名hxbhVarchar255航線編號(hào)t_typeint4倉(cāng)位類型priceInteger11機(jī)票價(jià)格*注:訂票信息表中記錄了乘客訂票的信息,每有一位用戶訂票,就在該表中插入一條信息,為管理員統(tǒng)計(jì)數(shù)據(jù)提供信息。主鍵:id自增。 表3.5航線信息表屬性名數(shù)據(jù)類型長(zhǎng)度允許空字段描述idInteger11編號(hào)hxbhVarchar255航線編號(hào)startcityVarchar255始發(fā)城市endcityVarchar255到達(dá)城市riqiVarchar0始發(fā)日期 starttimeVarchar0始發(fā)時(shí)間 endtimeVarchar0到達(dá)時(shí)間 kjbhVarchar255客機(jī)編號(hào) jingjipriceInteger11經(jīng)濟(jì)艙價(jià)格gongwupriceInteger11公務(wù)艙價(jià)格toppriceInteger11頭等艙價(jià)格*注:航班信息表中存儲(chǔ)了所有航班的相關(guān)信息,管理員可以對(duì)該表的信息進(jìn)行增刪改查等操作,其他人員只有查詢權(quán)限。主鍵:id自增。 第四章 詳細(xì)設(shè)計(jì)4.1系統(tǒng)部分時(shí)序圖時(shí)序圖是通過表示隨著時(shí)間的推移所發(fā)送的消息序列,來體現(xiàn)對(duì)象之間的動(dòng)態(tài)協(xié)作關(guān)系,它主要是為了表示對(duì)象之間的交互過程,即對(duì)象之間發(fā)送消息的順序,以及引起的一系列事件。圖4.1登錄人員登錄系統(tǒng)時(shí)序圖圖4.1為登錄人員登錄系統(tǒng)主界面的時(shí)序圖,登錄人員先在系統(tǒng)的登錄界面輸入登陸信息,系統(tǒng)對(duì)登錄信息進(jìn)行判斷,信息不正確則返回錯(cuò)誤提示,信息正確便可進(jìn)入操作者所屬權(quán)限下要執(zhí)行的操作。該系統(tǒng)設(shè)定了二種登錄人員,管理員和乘客,并為他們?cè)O(shè)定了各自的訪問權(quán)限。1:選擇菜單7:顯示改后信息6:保存新信息息5:填寫修改信息4:顯示界面3:選擇2:列出菜單管理人員newticketsmainmenu1menuumenutickets圖4.2管理人員對(duì)信息進(jìn)行操作的時(shí)序圖圖4.2為登錄人員登錄系統(tǒng)后進(jìn)行各種操作的時(shí)序圖,登錄人員進(jìn)入操作界面先在操作界面選擇何種操作,更正后的信息會(huì)保存在數(shù)據(jù)庫(kù)里。例如,選擇的是修改信息就會(huì)將更新后的信息顯示在頁(yè)面上。4.2系統(tǒng)的流程設(shè)計(jì)系統(tǒng)的流程設(shè)計(jì)對(duì)系統(tǒng)的編碼起著至關(guān)重要的地位,根據(jù)系統(tǒng)的功能要求,做出幾個(gè)重要的功能的流程圖。(1)用戶登錄模塊為了安全性,進(jìn)入本系統(tǒng)需要(管理員)身份驗(yàn)證,只有用戶通過帳號(hào)與密碼一致性的驗(yàn)證,才能進(jìn)入系統(tǒng)。登錄情況有三種:一是帳號(hào)與密碼一致,二是帳號(hào)不存在,三是密碼不正確,每一種情況系統(tǒng)都會(huì)有提示。另外,用戶也可以選擇取消登錄。當(dāng)輸入帳號(hào)時(shí),系統(tǒng)會(huì)自動(dòng)搜索數(shù)據(jù)庫(kù)(使用SELECT函數(shù))辨別此用戶是“管理員“還是“用戶”,并且顯示出來,倘若是管理員,那么在用戶管理模塊中可以修改用戶密碼以及增加新一般用戶,否則只能修改密碼。設(shè)計(jì)出的登錄流程圖如圖4.3所示。 結(jié)束圖4.3系統(tǒng)登錄流程圖(2)訂票模塊該流程詳細(xì)描述用戶訂票,當(dāng)用戶發(fā)出訂票請(qǐng)求后,系統(tǒng)搜索數(shù)據(jù)庫(kù)中相應(yīng)的機(jī)票信息,如果沒找到則該機(jī)票已經(jīng)售完。如果找到相應(yīng)的機(jī)票信息,系統(tǒng)會(huì)將相關(guān)機(jī)票售予該用戶。4.3系統(tǒng)功能的詳細(xì)實(shí)現(xiàn)下面介紹系統(tǒng)的詳細(xì)功能設(shè)計(jì)。(1) 用戶登錄系統(tǒng)登錄界面如圖4.4所示。在這里設(shè)置了一個(gè)圖片驗(yàn)證碼,可以更好的保護(hù)用戶的信息。當(dāng)用戶輸入正確的用戶賬號(hào)和密碼以及驗(yàn)證碼時(shí),系統(tǒng)會(huì)跳轉(zhuǎn)到另一個(gè)界面,也就是主窗口。若用戶名密碼不正確,系統(tǒng)將給出提示:“您輸入的用戶名和密碼不正確,請(qǐng)您重新輸入”,然后繼續(xù)重新輸入。圖4.4用戶登錄界面(2) 管理員主界面 用戶登錄后,根據(jù)登錄的帳號(hào)進(jìn)行判斷:若是admin(管理員),則可以對(duì)系統(tǒng)中的所有信息進(jìn)行增加、刪除、修改和查詢等操作,如圖4.5所示。圖4.6所示的是管理員對(duì)航班信息的管理。圖4.5主界面 圖4.6查詢航班(3) 用戶訂票用戶登錄后,則可以進(jìn)行訂票和退票以及查詢機(jī)票信息等操作,圖4.7所示用戶跟據(jù)需要輸入機(jī)票的查詢條件,從數(shù)據(jù)庫(kù)中找到相應(yīng)的機(jī)票,進(jìn)行確認(rèn)購(gòu)買。會(huì)顯示購(gòu)買成功。 圖4.7 查詢機(jī)票(4) 用戶退票當(dāng)用戶需要退票時(shí),系統(tǒng)根據(jù)機(jī)票編號(hào)從數(shù)據(jù)庫(kù)查到關(guān)于此票的訂票信息如圖4.8所示,當(dāng)點(diǎn)退票時(shí),數(shù)據(jù)庫(kù)中該票的信息會(huì)立刻更新,同時(shí)該類機(jī)票的數(shù)量也會(huì)加一,以便及時(shí)將此票售予下位乘客。在退還票價(jià)時(shí),要扣掉機(jī)票價(jià)格20%的手續(xù)費(fèi),如圖4.9所示。 圖4.8 輸入乘客信息 圖4.9退票界面 圖4.10 退票金額4.4詳細(xì)設(shè)計(jì)中關(guān)鍵技術(shù)的實(shí)現(xiàn)以下主要介紹主要功能的關(guān)鍵技術(shù)的實(shí)現(xiàn)過程。 4.4.1數(shù)據(jù)庫(kù)的連接數(shù)據(jù)庫(kù)連接的建立及關(guān)閉對(duì)系統(tǒng)而言是耗費(fèi)系統(tǒng)資源的操作。在多層結(jié)構(gòu)應(yīng)用程序環(huán)境中,這種耗費(fèi)資源的動(dòng)作對(duì)系統(tǒng)性能的影響很大。在傳統(tǒng)的數(shù)據(jù)庫(kù)連接方式中,一個(gè)數(shù)據(jù)庫(kù)連接對(duì)象均對(duì)應(yīng)一個(gè)邏輯數(shù)據(jù)庫(kù)連接,每次操作都打開一個(gè)邏輯連接,使用完后再關(guān)閉連接,這樣的反復(fù)操作將造成系統(tǒng)性能的急劇下降。數(shù)據(jù)庫(kù)連接池是應(yīng)用程序啟動(dòng)時(shí)建立足夠的數(shù)據(jù)庫(kù)連接,并將這些連接組成一個(gè)連接池,由程序動(dòng)態(tài)地對(duì)池中的連接進(jìn)行申請(qǐng)、使用和釋放,當(dāng)連接的數(shù)量大于連接池中的連接數(shù)時(shí),可以動(dòng)態(tài)地根據(jù)情況增加或減少池中的連接數(shù)。用JDBC(Java DataBase Connectivity)連接MySQL數(shù)據(jù)庫(kù)需要經(jīng)過下面幾個(gè)步驟:(1)建立Conn.java類;(2)載入JDBC驅(qū)動(dòng):Class.forName(org.gjt.mm.mysql.Driver);(3) 建立與數(shù)據(jù)庫(kù)的連接:要建立與數(shù)據(jù)庫(kù)的連接,首先要?jiǎng)?chuàng)建指定數(shù)據(jù)庫(kù)的URL。利用DriverManager的getConnection方法連接數(shù)據(jù)庫(kù)的URL對(duì)象,URL格式如下:String url=jdbc:mysql:/localhost/shop?user=root&password=123;(4) 調(diào)用執(zhí)行SQL語(yǔ)句。(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. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教練和女兒私下協(xié)議書
- 咖啡廳加盟合同協(xié)議書
- 財(cái)產(chǎn)賬戶協(xié)議書
- 藥店變更協(xié)議書
- 郵儲(chǔ)就業(yè)協(xié)議書
- 屠宰檢疫員合同協(xié)議書
- 合同外增加工程協(xié)議書
- 郵寄快遞協(xié)議書
- 液化氣供氣合同協(xié)議書
- 美國(guó)導(dǎo)彈協(xié)議書
- 店面出讓股權(quán)協(xié)議書
- 深圳2025年深圳市住房公積金管理中心員額人員招聘8人筆試歷年參考題庫(kù)附帶答案詳解
- 英文電影鑒賞知到智慧樹期末考試答案題庫(kù)2025年北華大學(xué)
- 美容診所合作協(xié)議書
- 2025年人教版小學(xué)一年級(jí)下學(xué)期奧林匹克數(shù)學(xué)競(jìng)賽試卷(附答案解析)
- 2025年滁州市軌道交通運(yùn)營(yíng)有限公司第二批次招聘31人筆試參考題庫(kù)附帶答案詳解
- 2025年高考英語(yǔ)考前熱點(diǎn)話題押題卷(新高考Ⅰ卷)-2025年高考英語(yǔ)模擬考試(解析版)
- 浙江國(guó)企筆試題目及答案
- 電力現(xiàn)場(chǎng)安全管理課件
- 分子生物學(xué)技術(shù)在檢驗(yàn)中的應(yīng)用試題及答案
- 中考語(yǔ)文專題一非連續(xù)性文本閱讀市公開課一等獎(jiǎng)市賽課獲獎(jiǎng)?wù)n件
評(píng)論
0/150
提交評(píng)論