版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 陜西理工學(xué)院</b></p><p> 高級語言編程實(shí)訓(xùn) </p><p><b> 實(shí)訓(xùn)報(bào)告</b></p><p> 項(xiàng)目名稱:基于Web的網(wǎng)上機(jī)票預(yù)定管理系統(tǒng)</p><p> 學(xué)生姓名: 1209064006 &
2、lt;/p><p> 1209064033 </p><p> 1209064037 </p><p> 1209064028 </p><p> 1209064003 </p><p> 班 級: 信計(jì)1201
3、 </p><p> 成 績: </p><p> 指導(dǎo)教師: </p><p> 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院</p><p><b> 實(shí)訓(xùn)報(bào)告評閱</b></p>
4、<p><b> 摘 要</b></p><p> 世界多極化和經(jīng)濟(jì)全球化的趨勢在曲折中發(fā)展,科技進(jìn)步日新月異,綜合國力競爭日趨激烈。電子信息產(chǎn)品制造業(yè)經(jīng)濟(jì)運(yùn)行狀況良好,產(chǎn)業(yè)規(guī)模迅速擴(kuò)大。在計(jì)算機(jī)技術(shù)高速發(fā)展的今天,我國有必要引入高效的計(jì)算機(jī)系統(tǒng)來改善一些旅行社和酒店的機(jī)票預(yù)定,提高工作效率,協(xié)助處理機(jī)票預(yù)定工作。網(wǎng)上機(jī)票預(yù)訂管理系統(tǒng)的產(chǎn)生和發(fā)展正好滿足人們的這種需求。<
5、;/p><p> 機(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ī)票管理的工作效率。&
6、lt;/p><p> 根據(jù)航空公司管理的實(shí)際要求, 系統(tǒng)采用JSP,Tomcat,Servlet,利用Mysql作為數(shù)據(jù)庫管理工具,模塊復(fù)用率高、系統(tǒng)維護(hù)代價小,方便、靈活、高效。</p><p> 關(guān)鍵詞:航班信息管理;退票管理;訂票管理;Java語言</p><p><b> 目 錄</b></p><p>&l
7、t;b> 第一章 引言1</b></p><p> 1.1 題目背景1</p><p> 1.2 題目內(nèi)容2</p><p> 1.3 系統(tǒng)設(shè)計(jì)目標(biāo)2</p><p> 1.4 經(jīng)濟(jì)技術(shù)分析3</p><p> 1.5 本文結(jié)構(gòu)4</p><p> 第
8、二章 需求分析5</p><p> 2.1 角色及其職能5</p><p> 2.2 數(shù)據(jù)流圖5</p><p> 2.3 概念結(jié)構(gòu)設(shè)計(jì)6</p><p> 2.3.1 實(shí)體-聯(lián)系(E-R)圖6</p><p> 2.3.2 各實(shí)體詳細(xì)E-R圖7</p><p> 2.4
9、 設(shè)計(jì)工具環(huán)境9</p><p> 2.4.1 Java語言9</p><p> 2.4.2 MyEclipse開發(fā)平臺9</p><p> 2.4.3 MySQL9</p><p> 2.4.4 JSP10</p><p> 第三章 總體設(shè)計(jì)12</p><p> 3.
10、1總體結(jié)構(gòu)設(shè)計(jì)12</p><p> 3.2數(shù)據(jù)庫邏輯設(shè)計(jì)12</p><p> 3.2.1人員信息12</p><p> 3.2.2 機(jī)票信息13</p><p> 第四章 詳細(xì)設(shè)計(jì)16</p><p> 4.1系統(tǒng)部分時序圖16</p><p> 4.2系統(tǒng)的流程設(shè)計(jì)
11、17</p><p> 4.3系統(tǒng)功能的詳細(xì)實(shí)現(xiàn)19</p><p> 4.4詳細(xì)設(shè)計(jì)中關(guān)鍵技術(shù)的實(shí)現(xiàn)22</p><p> 4.4.1數(shù)據(jù)庫的連接23</p><p> 第五章 編碼實(shí)現(xiàn)24</p><p> 第六章 系統(tǒng)測試與調(diào)試37</p><p> 6.1軟件測試
12、常識37</p><p> 6.2系統(tǒng)功能測試計(jì)劃37</p><p> 6.3系統(tǒng)功能模塊測試38</p><p> 6.3.1管理人員模塊的測試38</p><p> 6.3.2乘客模塊測試38</p><p> 6.4調(diào)試中的問題38</p><p><b>
13、; 第七章 總結(jié)40</b></p><p><b> 參考文獻(xiàn)42</b></p><p><b> 第一章 引言</b></p><p><b> 題目背景</b></p><p> 當(dāng)今世界,以信息技術(shù)為主要標(biāo)志的科技進(jìn)步日新月異,高科技成果向現(xiàn)
14、實(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ā)展第十個五年計(jì)劃建議中已明確指出:信息化是當(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)略舉措??梢?,黨和國
15、家已將國民經(jīng)濟(jì)和社會信息化放在優(yōu)先發(fā)展位置,體現(xiàn)了先進(jìn)生產(chǎn)力的客觀要求,是一項(xiàng)重要的戰(zhàn)略決策。這是民航加快發(fā)展的機(jī)遇,更是民航信息化的難得機(jī)遇。</p><p> 隨著知識經(jīng)濟(jì)的到來,人類已經(jīng)逐步進(jìn)入信息化社會,信息增長的速度越來越快,人們希望利用先進(jìn)的管理理論方法手段來得到并處理越來越多的信息,以提高工作效率和管理水平。由于信息資源對人們生活的重要性,不斷提高信息的收集,傳輸,加以利用等活動,日益成為人們社會
16、生活的重要組成部分。</p><p> 隨著社會發(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ā)一套具有完整的存儲
17、,查詢,核對,打印機(jī)票功能的實(shí)時機(jī)票預(yù)定系統(tǒng)勢在必行。</p><p> 機(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ī)場工作人員對
18、機(jī)票信息進(jìn)行管理,提高了機(jī)場工作人員對機(jī)票管理的工作效率。</p><p><b> 題目內(nèi)容</b></p><p> 隨著信息技術(shù)的發(fā)展,航空售票業(yè)也成為一個高度依賴信息業(yè)的行業(yè)。信息技術(shù)的飛速發(fā)展不僅使航空售票工作者逐漸擺脫了繁重的手工勞動、提高了工作效率,而且推著航空事業(yè)向現(xiàn)代化管理邁進(jìn)?,F(xiàn)代化的航空售票也應(yīng)該有現(xiàn)代化的管理系統(tǒng)。在科技日益發(fā)達(dá)的今天,人們
19、對旅游出行更加重視。因此,航空售票進(jìn)行現(xiàn)代化管理就變的尤為重要。</p><p> 畢業(yè)設(shè)計(jì)的主要任務(wù)就是設(shè)計(jì)實(shí)現(xiàn)一個航空售票信息管理系統(tǒng),完成對航空公司的正常售票等業(yè)務(wù)的管理。具體任務(wù)如下:</p><p> ?。?)主要航空港基本信息管理;</p><p> ?。?)主要民航航線基本信息管理;</p><p> ?。?)售票信息管理;&
20、lt;/p><p> ?。?)預(yù)定票信息管理;</p><p> ?。?)退票信息管理;</p><p> ?。?)飛機(jī)票價格(包括打折)管理;</p><p> ?。?)上述信息的統(tǒng)計(jì)及圖形顯示。</p><p><b> 系統(tǒng)設(shè)計(jì)目標(biāo)</b></p><p> 此次設(shè)計(jì)
21、的主要任務(wù)就是設(shè)計(jì)實(shí)現(xiàn)一個航空售票信息管理系統(tǒng),其實(shí)現(xiàn)對航班信息、航線信息、客機(jī)信息、票務(wù)信息以及客戶信息的管理;客戶可以對航班的信息進(jìn)行查詢,如果想進(jìn)一步完成自己的訂票、退票,就必須進(jìn)行登錄。在沒有注冊的情況下,要注冊自己的相關(guān)信息,進(jìn)而完成自己所需航班的訂票業(yè)務(wù);客戶也可以對自己的注冊信息進(jìn)行修改。</p><p><b> 經(jīng)濟(jì)技術(shù)分析</b></p><p>
22、;<b> (1)經(jīng)濟(jì)可行性</b></p><p> 航空售票信息管理系統(tǒng)是整個航空管理系統(tǒng)中的一個子系統(tǒng),是根據(jù)各部分管理的功能開發(fā)的。從任務(wù)量上來說最好由多人開發(fā),雖然不需要投入太多的人力、物力、財(cái)力,但是這樣可以保障功能的完善,質(zhì)量的提高。如果航空公司沒有一個規(guī)范嚴(yán)謹(jǐn)?shù)氖燮毙畔⒐芾硐到y(tǒng),那么在面對眾多乘客訂票管理方面所需要消耗的人力是巨大的。僅乘客保險信息一項(xiàng),就需要對乘客身份證
23、號等許多數(shù)據(jù)進(jìn)行枯燥的管理,很容易出錯。尤其在類似于沈陽這樣的人員眾多的城市,數(shù)據(jù)量大的特點(diǎn)更是十分明顯。工作量大、效率低下是航空售票信息管理長期以來的詬病。而通過計(jì)算機(jī)管理航空售票不僅節(jié)約了人力資源,而且提高了效率與準(zhǔn)確性,使效益在質(zhì)量上有了很大的飛躍。所以,從經(jīng)濟(jì)角度上來說是完全可行的。</p><p><b> ?。?)技術(shù)可行性</b></p><p> 此
24、系統(tǒng)應(yīng)用JSP技術(shù)作為開發(fā)工具。Java語言具有面向?qū)ο?、與平臺無關(guān)、安全、穩(wěn)定和多線程等優(yōu)良特性,是目前軟件設(shè)計(jì)中極為健壯的編程語言。JSP技術(shù)還擁有很多的優(yōu)勢,一次編寫到處運(yùn)行,系統(tǒng)的多平臺支持,多樣化和功能強(qiáng)大的開發(fā)工具支持,強(qiáng)大的可伸縮性。系統(tǒng)后臺數(shù)據(jù)庫采用MySQL。所以,從技術(shù)角度上來說是完全可行的。</p><p> 該系統(tǒng)的主要用戶是航空公司的管理員和所有乘客。在開發(fā)過程中利用Java、面向?qū)ο?/p>
25、的程序思想和軟件工程的開發(fā)過程來進(jìn)行需求分析和設(shè)計(jì),其中是以Java中的Swing思想為基礎(chǔ)進(jìn)行各個圖形界面設(shè)計(jì)[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的連接方法。</p><p><b>
26、; 本文結(jié)構(gòu)</b></p><p> 此論文共分為緒論、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)和系統(tǒng)測試幾個章節(jié)。</p><p> 在需求分析與概要設(shè)計(jì)章節(jié)中共分為用戶需求分析、角色及其功能、數(shù)據(jù)流圖、E-R圖、模塊圖和設(shè)計(jì)環(huán)境及工具的介紹等幾部分。本論文的重點(diǎn)之一將以用戶的需求分析為主,從用戶的角度出發(fā)使系統(tǒng)的功能與用戶的要求達(dá)成一致。這需要全面地理解用戶的各項(xiàng)要求,準(zhǔn)確地表
27、達(dá)用戶需求,設(shè)計(jì)出系統(tǒng)的各項(xiàng)功能以解決“做什么”的問題。同時通過時序圖、ER圖、模塊圖等,更為詳細(xì)的說明此系統(tǒng)的功能和此系統(tǒng)的設(shè)計(jì)思路。在本章節(jié)的最后還將說明本系統(tǒng)所使用的工具和設(shè)計(jì)環(huán)境,并簡略的敘述其相關(guān)情況。</p><p> 在詳細(xì)設(shè)計(jì)章節(jié)中共分為數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)、程序流程圖等幾部分。本章節(jié)是此論文的另一重點(diǎn),在此章節(jié)中將詳細(xì)的對本系統(tǒng)進(jìn)行介紹。數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計(jì)是本次畢設(shè)的一個重要環(huán)節(jié),設(shè)計(jì)出正確的數(shù)據(jù)庫結(jié)
28、構(gòu)有助于準(zhǔn)確的敘述出各個實(shí)體之間的關(guān)系,進(jìn)而實(shí)現(xiàn)系統(tǒng)的各項(xiàng)功能。在本章還將通過程序流程圖給出設(shè)計(jì)程序的基本思路,同時設(shè)計(jì)出準(zhǔn)確、高效的程序代碼。</p><p> 在系統(tǒng)測試章節(jié)中共分為測試環(huán)境、測試結(jié)果、測試工具和測試界面等幾部分。在此章節(jié)將對此系統(tǒng)的具體功能、運(yùn)行情況等進(jìn)行測試。通過此章節(jié)完成對系統(tǒng)的最后檢測找出不足并加以完善。</p><p><b> 第二章 需求分析
29、</b></p><p> 2.1 角色及其職能</p><p> 本系統(tǒng)的角色是乘客和管理員。乘客除了具有買票和退票的操作權(quán)限外還有查詢所有信息的權(quán)限,管理人員具有對任何信息進(jìn)行增加,刪除、修改和查詢的操作,可以查詢統(tǒng)計(jì)信息。乘客可以通過登錄后查詢和修改與自己有關(guān)的信息。</p><p><b> 2.2 數(shù)據(jù)流圖</b>&
30、lt;/p><p> 經(jīng)過初步的需求分析,得到系統(tǒng)的主要功能要求如下:</p><p> (1) 用戶查詢自己的訂票信息和退票信息以及查詢相關(guān)信息;</p><p> 管理人員可以對各項(xiàng)信息進(jìn)行增加、刪除、修改、查詢操作。</p><p> 根據(jù)分析得到的系統(tǒng)功能要求,設(shè)計(jì)出航空售票信息管理系統(tǒng)的數(shù)據(jù)流圖,如圖2.1所示。</p&g
31、t;<p> 圖2.1網(wǎng)上航空售票管理信息系統(tǒng)的數(shù)據(jù)流圖</p><p> 2.3 概念結(jié)構(gòu)設(shè)計(jì)</p><p> 2.3.1 實(shí)體-聯(lián)系(E-R)圖</p><p> 概念模型的表示方法很多,其中最為著名最為常用的是實(shí)體-聯(lián)系方法(E-R圖)。</p><p> 實(shí)體-關(guān)系圖方法是抽象和描述現(xiàn)實(shí)世界的有力工具。用E
32、-R圖表示的概念模型獨(dú)立于具體的DBMS所支持的數(shù)據(jù)模型,它是各種數(shù)據(jù)模型的共同基礎(chǔ),因而比數(shù)據(jù)模型更一般、更抽象、更接近現(xiàn)實(shí)世界。</p><p> 系統(tǒng)E-R圖如圖2.2所示。</p><p> 圖2.2系統(tǒng)的E-R圖</p><p> 2.3.2 各實(shí)體詳細(xì)E-R圖</p><p> 圖2.3航班的E-R圖</p>
33、<p> 圖2.4機(jī)票的E-R圖</p><p> 圖2.5乘客和飛機(jī)的E-R圖</p><p> 圖2.6管理員的E-R圖 </p><p> 實(shí)體的屬性如下所示:</p><p> 機(jī)票(編號(KEY)、用戶名稱、航班編號、倉位類型、機(jī)票價格);</p><p> 航線(編號(KEY)、航
34、線編號、始發(fā)城市、到達(dá)城市、始發(fā)日期、始發(fā)時間、客機(jī)編號、經(jīng)濟(jì)艙價格、公務(wù)艙價格、頭等艙價格);</p><p> 乘客(ID(KEY)、姓名、性別、身份證號碼、聯(lián)系方式);</p><p> 管理員(ID(KEY)、姓名、密碼、密保問題、答案、職務(wù));</p><p> 飛機(jī)(ID(KEY)、客機(jī)編號、客機(jī)型號、購買時間、服務(wù)時間、頭等艙座位數(shù)、經(jīng)濟(jì)艙座位數(shù)
35、、公務(wù)艙座位數(shù));</p><p> 2.4 設(shè)計(jì)工具環(huán)境</p><p> 2.4.1 Java語言</p><p> Java語言是1995年由Sun公司開發(fā)的編程語言,它的出現(xiàn)是源于對獨(dú)立平臺語言的需要。Java語言是目前使用最為廣泛的編程語言之一,它具有簡單、面向?qū)ο?、穩(wěn)定、與平臺無關(guān)、多線程、動態(tài)等特點(diǎn)。</p><p>
36、2.4.2 MyEclipse開發(fā)平臺</p><p> 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ù)用戶很樂于將M
37、yEclipse當(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)境無縫集成工具。</p><p> MyEclipse可以集成不同的軟件工具開發(fā)供應(yīng)商的產(chǎn)品,任何開發(fā)工具廠商都可以將
38、他們的開發(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等大型軟件公司的支持。&
39、lt;/p><p> 2.4.3 MySQL</p><p> MySQL是一個精巧的SQL 數(shù)據(jù)庫管理系統(tǒng),以操作簡便著稱。由于其強(qiáng)大的功能、豐富的應(yīng)用編程接口以及精巧的系統(tǒng)結(jié)構(gòu)設(shè)計(jì),在基于數(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)行。此外,MySQ
40、L 還是多線程的,不僅具有運(yùn)行速度快,可處理大批量數(shù)據(jù)等特點(diǎn),還支持多CPU使用。</p><p><b> 2.4.4 JSP</b></p><p> 系統(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)頁H
41、TML文件(*.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)頁
42、設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于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í)</p><p> JSP頁面由HTML代碼和嵌入其中的Java
43、代碼所組成。服務(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í)行之前先被編譯成字
44、節(jié)碼,字節(jié)碼由Java虛擬機(jī)解釋執(zhí)行,比源碼解釋的效率高;服務(wù)器還有字節(jié)碼的Cacher(緩存)機(jī)制,能提高字節(jié)碼的訪問效率。第一次調(diào)用JSP網(wǎng)頁速度可能稍慢,因?yàn)樗痪幾g成緩存內(nèi)容,以后就快的多了。 </p><p> ?。?)JSP組件方式更方便。絕大多數(shù)JSP頁面依賴于可重用的、跨平臺的組件來執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使用這些組件為更多的使用者或者客戶
45、所使用。基于組件的方法加速了總體開發(fā)過程,并且使用各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。 </p><p> ?。?)JSP適應(yīng)平臺更廣。幾乎所有平臺都支持Java,JSP+Javabean可以在所有平臺下暢通無阻。從一個平臺移植到另一個平臺,JSP和Javabean甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)準(zhǔn)的與平臺無關(guān)的。</p><p> ?。?)簡單標(biāo)識簡化頁
46、面開發(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í)行使用其他方法更難于編碼和耗時的功能。</p><p><b> 第三章 總體設(shè)計(jì)</b></p><p>&l
47、t;b> 3.1總體結(jié)構(gòu)設(shè)計(jì)</b></p><p> 網(wǎng)上航空售票管理信息系統(tǒng)共分為客戶信息管理、航班信息管理、管理員信息管理、訂票信息管理和統(tǒng)計(jì)信息及圖形顯示幾個模塊。具體功能模塊如圖3.1所示。 </p><p><b> 圖3.1總體模塊圖</b></p><p> 3.2數(shù)據(jù)庫邏輯設(shè)計(jì)</p>
48、<p> 數(shù)據(jù)庫是系統(tǒng)的后臺部分,用來存儲信息以供前臺調(diào)用和輸出。數(shù)據(jù)庫設(shè)計(jì)的是否合理將直接影響到系統(tǒng)的穩(wěn)定性、安全性及可維護(hù)性,同時也會影響到后期的編碼。在進(jìn)行了需求分析和概要設(shè)計(jì)后,接下來將詳細(xì)介紹系統(tǒng)中各部分信息的存儲結(jié)構(gòu)。</p><p><b> 3.2.1人員信息</b></p><p> 人員信息包括管理員信息表、用戶信息表;具體表格如表
49、3.1,表3.2所示。</p><p> 表 3.1管理人員信息表</p><p> *注:管理人員信息表主要存儲系統(tǒng)管理人的相關(guān)信息,用于管理員登錄系統(tǒng)時驗(yàn)證身份,登錄系統(tǒng)后,可以修改數(shù)據(jù)庫的任何信息。主鍵: Id自增。</p><p> 表 3.2 用戶信息表</p><p> *注:用戶信息表主要是對乘客信息的存儲,添加乘客信息
50、存入該表,用戶登錄時驗(yàn)證輸入信息是否正確,刪除和修改乘客信息時即刪除和修改該表中對應(yīng)的相關(guān)信息。主鍵:id自增 。</p><p> 3.2.2 機(jī)票信息</p><p> 機(jī)票信息包括訂票信息表、機(jī)票信息表、航班信息表、客機(jī)信息表和機(jī)票價格信息表,這些機(jī)票信息表用來存放與機(jī)票相關(guān)的所用操作信息如表3.3,表3.4,表3.5所示。</p><p><b&g
51、t; 表3.3客機(jī)信息表</b></p><p> *注:客機(jī)信息表中存儲了每架客機(jī)的詳細(xì)信息,登錄系統(tǒng)后可以查詢該表中的相關(guān)信息。為管理人員統(tǒng)計(jì)客機(jī)數(shù)據(jù)提供信息。主鍵:id自增</p><p><b> 表3.4訂票信息表</b></p><p> *注:訂票信息表中記錄了乘客訂票的信息,每有一位用戶訂票,就在該表中插入一
52、條信息,為管理員統(tǒng)計(jì)數(shù)據(jù)提供信息。主鍵:id自增。</p><p><b> 表3.5航線信息表</b></p><p> *注:航班信息表中存儲了所有航班的相關(guān)信息,管理員可以對該表的信息進(jìn)行增刪改查等操作,其他人員只有查詢權(quán)限。主鍵:id自增。 </p><p><b> 第四章 詳細(xì)設(shè)計(jì)</b><
53、/p><p> 4.1系統(tǒng)部分時序圖</p><p> 時序圖是通過表示隨著時間的推移所發(fā)送的消息序列,來體現(xiàn)對象之間的動態(tài)協(xié)作關(guān)系,它主要是為了表示對象之間的交互過程,即對象之間發(fā)送消息的順序,以及引起的一系列事件。</p><p> 圖4.1登錄人員登錄系統(tǒng)時序圖</p><p> 圖4.1為登錄人員登錄系統(tǒng)主界面的時序圖,登錄人員先
54、在系統(tǒng)的登錄界面輸入登陸信息,系統(tǒng)對登錄信息進(jìn)行判斷,信息不正確則返回錯誤提示,信息正確便可進(jìn)入操作者所屬權(quán)限下要執(zhí)行的操作。該系統(tǒng)設(shè)定了二種登錄人員,管理員和乘客,并為他們設(shè)定了各自的訪問權(quán)限。</p><p> 圖4.2管理人員對信息進(jìn)行操作的時序圖</p><p> 圖4.2為登錄人員登錄系統(tǒng)后進(jìn)行各種操作的時序圖,登錄人員進(jìn)入操作界面先在操作界面選擇何種操作,更正后的信息會保存
55、在數(shù)據(jù)庫里。例如,選擇的是修改信息就會將更新后的信息顯示在頁面上。</p><p> 4.2系統(tǒng)的流程設(shè)計(jì)</p><p> 系統(tǒng)的流程設(shè)計(jì)對系統(tǒng)的編碼起著至關(guān)重要的地位,根據(jù)系統(tǒng)的功能要求,做出幾個重要的功能的流程圖。</p><p><b> (1)用戶登錄模塊</b></p><p> 為了安全性,進(jìn)入本系
56、統(tǒng)需要(管理員)身份驗(yàn)證,只有用戶通過帳號與密碼一致性的驗(yàn)證,才能進(jìn)入系統(tǒng)。登錄情況有三種:一是帳號與密碼一致,二是帳號不存在,三是密碼不正確,每一種情況系統(tǒng)都會有提示。另外,用戶也可以選擇取消登錄。</p><p> 當(dāng)輸入帳號時,系統(tǒng)會自動搜索數(shù)據(jù)庫(使用SELECT函數(shù))辨別此用戶是“管理員“還是“用戶”,并且顯示出來,倘若是管理員,那么在用戶管理模塊中可以修改用戶密碼以及增加新一般用戶,否則只能修改密碼
57、。設(shè)計(jì)出的登錄流程圖如圖4.3所示。</p><p> 圖4.3系統(tǒng)登錄流程圖</p><p><b> (2)訂票模塊</b></p><p> 該流程詳細(xì)描述用戶訂票,當(dāng)用戶發(fā)出訂票請求后,系統(tǒng)搜索數(shù)據(jù)庫中相應(yīng)的機(jī)票信息,如果沒找到則該機(jī)票已經(jīng)售完。如果找到相應(yīng)的機(jī)票信息,系統(tǒng)會將相關(guān)機(jī)票售予該用戶。</p><p
58、> 4.3系統(tǒng)功能的詳細(xì)實(shí)現(xiàn)</p><p> 下面介紹系統(tǒng)的詳細(xì)功能設(shè)計(jì)。</p><p><b> 用戶登錄</b></p><p> 系統(tǒng)登錄界面如圖4.4所示。在這里設(shè)置了一個圖片驗(yàn)證碼,可以更好的保護(hù)用戶的信息。當(dāng)用戶輸入正確的用戶賬號和密碼以及驗(yàn)證碼時,系統(tǒng)會跳轉(zhuǎn)到另一個界面,也就是主窗口。若用戶名密碼不正確,系統(tǒng)將給
59、出提示:“您輸入的用戶名和密碼不正確,請您重新輸入”,然后繼續(xù)重新輸入。</p><p> 圖4.4用戶登錄界面</p><p><b> 管理員主界面</b></p><p> 用戶登錄后,根據(jù)登錄的帳號進(jìn)行判斷:若是admin(管理員),則可以對系統(tǒng)中的所有信息進(jìn)行增加、刪除、修改和查詢等操作,如圖4.5所示。圖4.6所示的是管理員對
60、航班信息的管理。</p><p><b> 圖4.5主界面</b></p><p><b> 圖4.6查詢航班</b></p><p><b> 用戶訂票</b></p><p> 用戶登錄后,則可以進(jìn)行訂票和退票以及查詢機(jī)票信息等操作,圖4.7所示用戶跟據(jù)需要輸入機(jī)票
61、的查詢條件,從數(shù)據(jù)庫中找到相應(yīng)的機(jī)票,進(jìn)行確認(rèn)購買。會顯示購買成功。 </p><p><b> 圖4.7 查詢機(jī)票</b></p><p><b> 用戶退票</b></p><p> 當(dāng)用戶需要退票時,系統(tǒng)根據(jù)機(jī)票編號從數(shù)據(jù)庫查到關(guān)于此票的訂票信息如圖4.8所示,當(dāng)點(diǎn)退票時,數(shù)據(jù)庫中該票的信息會立刻更新,同時該
62、類機(jī)票的數(shù)量也會加一,以便及時將此票售予下位乘客。在退還票價時,要扣掉機(jī)票價格20%的手續(xù)費(fèi),如圖4.9所示。</p><p> 圖4.8 輸入乘客信息</p><p><b> 圖4.9退票界面</b></p><p> 圖4.10 退票金額</p><p> 4.4詳細(xì)設(shè)計(jì)中關(guān)鍵技術(shù)的實(shí)現(xiàn)</p>
63、<p> 以下主要介紹主要功能的關(guān)鍵技術(shù)的實(shí)現(xiàn)過程。</p><p> 4.4.1數(shù)據(jù)庫的連接</p><p> 數(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ù)操作將造成
64、系統(tǒng)性能的急劇下降。</p><p> 數(shù)據(jù)庫連接池是應(yīng)用程序啟動時建立足夠的數(shù)據(jù)庫連接,并將這些連接組成一個連接池,由程序動態(tài)地對池中的連接進(jìn)行申請、使用和釋放,當(dāng)連接的數(shù)量大于連接池中的連接數(shù)時,可以動態(tài)地根據(jù)情況增加或減少池中的連接數(shù)。</p><p> 用JDBC(Java DataBase Connectivity)連接MySQL數(shù)據(jù)庫需要經(jīng)過下面幾個步驟:</p>
65、;<p> ?。?)建立Conn.java類;</p><p> (2)載入JDBC驅(qū)動:Class.forName("org.gjt.mm.mysql.Driver");</p><p> ?。?) 建立與數(shù)據(jù)庫的連接:要建立與數(shù)據(jù)庫的連接,首先要創(chuàng)建指定數(shù)據(jù)庫的URL。利用DriverManager的getConnection方法連接數(shù)據(jù)庫的UR
66、L對象,URL格式如下:</p><p> String url="jdbc:mysql://localhost/shop?user=root&password=123";</p><p> (4) 調(diào)用執(zhí)行SQL語句。</p><p><b> ?。?) 結(jié)束連接。</b></p><p&g
67、t;<b> 編碼實(shí)現(xiàn)</b></p><p> 以下編碼是以管理員的管理為例</p><p> Com.model:Admin.java</p><p> public class Admin</p><p><b> {</b></p><p> privat
68、e int id;</p><p> private String name;</p><p> private String password;</p><p> private String question;</p><p> private String answer;</p><p> privat
69、e String position;</p><p> public Admin()</p><p><b> {</b></p><p><b> }</b></p><p> public int getId() {</p><p> return id;<
70、;/p><p><b> }</b></p><p> public void setId(int id) {</p><p> this.id = id;</p><p><b> }</b></p><p> public String getName() {<
71、;/p><p> return name;</p><p><b> }</b></p><p> public void setName(String name) {</p><p> this.name = name;</p><p><b> }</b></
72、p><p> public String getPassword() {</p><p> return password;</p><p><b> }</b></p><p> public void setPassword(String password) {</p><p> thi
73、s.password = password;</p><p><b> }</b></p><p> public String getQuestion() {</p><p> return question;</p><p><b> }</b></p><p>
74、 public void setQuestion(String question) {</p><p> this.question = question;</p><p><b> }</b></p><p> public String getAnswer() {</p><p> return answe
75、r;</p><p><b> }</b></p><p> public void setAnswer(String answer) {</p><p> this.answer = answer;</p><p><b> }</b></p><p> publ
76、ic String getPosition() {</p><p> return position;</p><p><b> }</b></p><p> public void setPosition(String position) {</p><p> this.position = position;
77、</p><p><b> }</b></p><p> public Admin(int id, String name, String password, String question,</p><p> String answer, String position) {</p><p><b>
78、 super();</b></p><p> this.id = id;</p><p> this.name = name;</p><p> this.password = password;</p><p> this.question = question;</p><p> this.a
79、nswer = answer;</p><p> this.position = position;</p><p><b> }</b></p><p> public Admin(String name, String password, String question,</p><p> String an
80、swer, String position) {</p><p> this.name = name;</p><p> this.password = password;</p><p> this.question = question;</p><p> this.answer = answer;</p><
81、p> this.position = position;</p><p><b> }</b></p><p><b> }</b></p><p> Com.dao:AdminDao.java</p><p> package com.dao;</p><p&g
82、t; import java.util.ArrayList;</p><p> import com.model.Admin;</p><p> public interface AdminDao</p><p><b> {</b></p><p> public boolean addAdmin(Admin
83、 a);</p><p> public ArrayList<Admin> listAdmin();</p><p> public Admin getById(int id);</p><p> public boolean delAdmin(int id);</p><p> public boolean modify
84、Admin(Admin a);</p><p> public ArrayList<Admin> listAdmin(int start,int count);</p><p> public boolean authAdmin(String name,String password);</p><p> public boolean authIn
85、fo(String name,String questio,String answer);</p><p> public boolean modifyPass(String name,String pass);</p><p> public Admin getByName(String name);</p><p><b> }</b>
86、;</p><p> Com.imp:AdminImp</p><p> package com.imp;</p><p> import java.sql.ResultSet;</p><p> import java.util.ArrayList;</p><p> import com.dao.Admi
87、nDao;</p><p> import com.model.Admin;</p><p> import com.model.Conn;</p><p> public class AdminImp implements AdminDao</p><p><b> {</b></p><p
88、> public boolean addAdmin(Admin a)</p><p><b> {</b></p><p> String name=a.getName();</p><p> String password=a.getPassword();</p><p> String questio
89、n=a.getQuestion();</p><p> String answer=a.getAnswer();</p><p> String position=a.getPosition();</p><p> String sql="insert into ap_admin(name,password,question,answer,posit
90、ion) values('"+name+"',password('"+password+"'),'"+question+"','"+answer+"','"+position+"')";</p><p> int resul
91、t=Conn.Insert(sql);</p><p> if(result==1)</p><p> return true;</p><p><b> else</b></p><p> return false;</p><p><b> }</b></
92、p><p> public ArrayList<Admin> listAdmin()</p><p><b> {</b></p><p> String sql="select * from ap_admin";</p><p> ResultSet rs=Conn.Select(s
93、ql);</p><p> ArrayList<Admin> list=new ArrayList<Admin>();</p><p><b> try</b></p><p><b> {</b></p><p> while(rs.next())</p>
94、;<p><b> {</b></p><p> int id=rs.getInt("id");</p><p> String name=rs.getString("name");</p><p> String password=rs.getString("passwo
95、rd");</p><p> String question=rs.getString("question");</p><p> String answer=rs.getString("answer");</p><p> String position=rs.getString("position
96、");</p><p> Admin a=new Admin(id,name,password,question,answer,position);</p><p> list.add(a);</p><p><b> }</b></p><p> return list;</p><
97、;p><b> }</b></p><p> catch(Exception e)</p><p><b> {</b></p><p> return null;</p><p><b> }</b></p><p><b>
98、 }</b></p><p> public Admin getById(int id)</p><p><b> {</b></p><p> String sql="select * from ap_admin where id="+id;</p><p> ResultSe
99、t rs=Conn.Select(sql);</p><p><b> try</b></p><p><b> {</b></p><p> if(rs.next())</p><p><b> {</b></p><p> String n
100、ame=rs.getString("name");</p><p> String password=rs.getString("password");</p><p> String question=rs.getString("question");</p><p> String answer=
101、rs.getString("answer");</p><p> String position=rs.getString("position");</p><p> Admin a=new Admin(id,name,password,question,answer,position);</p><p><b>
102、; return a;</b></p><p><b> }</b></p><p><b> else</b></p><p> return null;</p><p><b> }</b></p><p> catch(Ex
103、ception e)</p><p><b> {</b></p><p> return null;</p><p><b> }</b></p><p><b> }</b></p><p> public boolean delAdmin
104、(int id)</p><p><b> {</b></p><p> String sql="delete from ap_admin where id="+id;</p><p> int result=Conn.Delete(sql);</p><p> if(result==1)&l
105、t;/p><p> return true;</p><p><b> else</b></p><p> return false;</p><p><b> }</b></p><p> public boolean modifyAdmin(Admin a)<
106、/p><p><b> {</b></p><p> int id=a.getId();</p><p> String name=a.getName();</p><p> String password=a.getPassword();</p><p> String question=
107、a.getQuestion();</p><p> String answer=a.getAnswer();</p><p> String position=a.getPosition();</p><p> String sql="update ap_admin set name='"+name+"',pass
108、word=password('"+password+"'),question='"+question+"',answer='"+answer+"',position='"+position+"' where id="+id;</p><p> int resu
109、lt=Conn.Update(sql);</p><p> if(result==1)</p><p> return true;</p><p><b> else</b></p><p> return false;</p><p><b> }</b><
110、/p><p> public ArrayList<Admin> listAdmin(int start,int count)</p><p><b> {</b></p><p> String sql="select * from ap_admin limit "+start+","+co
111、unt;</p><p> ResultSet rs=Conn.Select(sql);</p><p> ArrayList<Admin> list=new ArrayList<Admin>();</p><p><b> try</b></p><p><b> {</
112、b></p><p> while(rs.next())</p><p><b> {</b></p><p> int id=rs.getInt("id");</p><p> String name=rs.getString("name");</p>
113、<p> String password=rs.getString("password");</p><p> String question=rs.getString("question");</p><p> String answer=rs.getString("answer");</p>&
114、lt;p> String position=rs.getString("position");</p><p> Admin a=new Admin(id,name,password,question,answer,position);</p><p> list.add(a);</p><p><b> }</b&
115、gt;</p><p> return list;</p><p><b> }</b></p><p> catch(Exception e)</p><p><b> {</b></p><p> return null;</p><p>
116、;<b> }</b></p><p><b> }</b></p><p> public boolean authAdmin(String name,String password)</p><p><b> {</b></p><p> String sql=&
117、quot;Select * from ap_admin where name='"+name+"' and password=password('"+password+"')";</p><p> ResultSet rs=Conn.Select(sql);</p><p><b> try&l
118、t;/b></p><p><b> {</b></p><p> if(rs.next())</p><p> return true;</p><p><b> else</b></p><p> return false;</p><
119、p><b> }</b></p><p> catch(Exception e)</p><p><b> {</b></p><p> return false;</p><p><b> }</b></p><p><b>
120、 }</b></p><p> public boolean authInfo(String name,String question,String answer)</p><p><b> {</b></p><p> String sql="select * from ap_admin where name=&
121、#39;"+name+"' and tel='"+question+"' and answer='"+answer+"'";</p><p> ResultSet rs=Conn.Select(sql);</p><p><b> try</b></
122、p><p><b> {</b></p><p> if(rs.next())</p><p> return true;</p><p><b> else</b></p><p> return false;</p><p><b>
123、; }</b></p><p> catch(Exception e)</p><p><b> {</b></p><p> return false;</p><p><b> }</b></p><p><b> }</b>
124、</p><p> public boolean modifyPass(String name,String pass)</p><p><b> {</b></p><p> String sql="update ap_admin set password=password('"+pass+"
125、9;) where name='"+name+"'";</p><p> int result=Conn.Update(sql);</p><p> if(result==1)</p><p> return true;</p><p><b> else</b>&l
126、t;/p><p> return false;</p><p><b> }</b></p><p> public Admin getByName(String name)</p><p><b> {</b></p><p> String sql="se
127、lect * from ap_admin where name='"+name+"'";</p><p> ResultSet rs=Conn.Select(sql);</p><p><b> try</b></p><p><b> {</b></p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- jsp網(wǎng)上機(jī)票銷售系統(tǒng)
- 網(wǎng)上機(jī)票預(yù)訂管理系統(tǒng)畢業(yè)論文
- JSP網(wǎng)上機(jī)票銷售系統(tǒng).doc
- 基于java web的機(jī)票網(wǎng)上訂購系統(tǒng) 定寫
- 機(jī)票預(yù)定系統(tǒng)案例分析doc
- 基于Web服務(wù)的網(wǎng)上預(yù)訂機(jī)票系統(tǒng)的研究與實(shí)現(xiàn).pdf
- 機(jī)票預(yù)定系統(tǒng)-課程設(shè)計(jì)報(bào)告
- 機(jī)票預(yù)定信息管理系統(tǒng)數(shù)據(jù)庫課程-正文
- 軟件工程課程設(shè)計(jì)-機(jī)票預(yù)定系統(tǒng)
- 基于web的網(wǎng)上訂餐系統(tǒng)
- 基于web的網(wǎng)上訂餐系統(tǒng)
- 基于-web的網(wǎng)上投稿系統(tǒng)
- 宏都大酒店網(wǎng)上預(yù)定管理系統(tǒng)(論文).doc
- 網(wǎng)上預(yù)定步驟
- 宏都大酒店網(wǎng)上預(yù)定管理系統(tǒng)(論文).doc
- 宏都大酒店網(wǎng)上預(yù)定管理系統(tǒng)(論文).doc
- 基于java web的網(wǎng)上招聘系統(tǒng)
- 基于Web的網(wǎng)上測試系統(tǒng).pdf
- 基于Web的網(wǎng)上購物系統(tǒng).pdf
- 基于web的網(wǎng)上書店系統(tǒng)
評論
0/150
提交評論