火車票網(wǎng)上在線預(yù)訂管理系統(tǒng)畢業(yè)論文_第1頁
已閱讀1頁,還剩46頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  本文針對用戶沒有時間買票、買票難以及目前旅游公司靠人工的記錄客戶的火車票需求信息的情況而開發(fā)了這款火車票網(wǎng)上在線預(yù)訂管理系統(tǒng)。本系統(tǒng)的研究可以解決這一問題,系統(tǒng)的實現(xiàn)不僅讓旅客能更加方便更加快捷地預(yù)訂火車票這一產(chǎn)品,也極大地減輕旅游公司在火車票預(yù)訂這塊的人力物力財力,提高公司的盈利。此次系統(tǒng)的開發(fā)按照軟件工程的結(jié)構(gòu)化設(shè)計思想

2、,經(jīng)過項目的可行性研究和需求分析、總體設(shè)計、詳細設(shè)計,以及編碼實現(xiàn)和調(diào)試等步驟進行設(shè)計開發(fā)。并運用數(shù)據(jù)流圖和數(shù)據(jù)字典、E-R圖和數(shù)據(jù)庫邏輯結(jié)構(gòu)、層次圖、系統(tǒng)流程圖、以及程序流程圖,對該系統(tǒng)的數(shù)據(jù)需求、數(shù)據(jù)庫、系統(tǒng)軟件結(jié)構(gòu)、系統(tǒng)流程、以及處理過程等進行了分析和設(shè)計。</p><p>  本次設(shè)計采用java語言、jsp、struts和spring框架、MySQL數(shù)據(jù)庫管理系統(tǒng)以及MyEclipse開發(fā)工具來開發(fā)一個

3、基于網(wǎng)站的火車票預(yù)訂管理系統(tǒng),使得公司管理員能夠有效地管理車次、旅客信息、退票信息。同時旅客可以通過查詢到相關(guān)的火車票信息,選擇適合自己的車票,也可以直接在網(wǎng)上訂票、退票,省時省力。</p><p>  火車票網(wǎng)上在線預(yù)訂管理系統(tǒng)在功能上已基本實現(xiàn)管理員在后臺進行車次信息、訂單信息、注冊會員信息等模塊的相關(guān)操作以及管理員身份驗證和用戶在前臺注冊、身份驗證,以及查詢余票、訂票、退票的相關(guān)操作。此系統(tǒng)操作簡單、界面簡

4、潔,使用人員稍加培訓(xùn)就可以完全掌握和使用該系統(tǒng)。此系統(tǒng)的缺陷就是界面不夠絢麗,比較單一,同時有些模塊功能的設(shè)計考慮得不是很周全。</p><p>  關(guān)鍵詞: 信息管理; 火車售票; 數(shù)據(jù)庫管理系統(tǒng)</p><p><b>  Abstract</b></p><p>  The train tickets online booking man

5、agement system, which is presented in this paper, is developed to solve three following problems. The first problem is the user does not have time to buy tickets. The second problem is that it is difficult for the users

6、to buy tickets. The third problem is that travel companies rely on the manual record of customer demand information. This system can solve this problem, the implementation of the system not only will enable travelers boo

7、king train tickets more </p><p>  The design uses the java language, jsp, struts and the spring framework, MySQL database management system, as well as the MyEclipse development tools to develop a web-based

8、train ticket booking system, making the company administrator manage the trips, passenger information, refund information effectively. At the same time visitors can query the relevant ticket information, choose ticket,

9、but also directly book online, and refund, so as to save time and effort.</p><p>  Train tickets online booking management system has the basic functions. Firstly administrators can manage trips information,

10、 order information, member information. Secondly administrators have to authenticate by the system. Thirdly users can register in the foreground, authenticate , perform query, booking, and refund-related operations. This

11、 system is user-friendly. After minimal training, the users can fully grasp and use the system. The defects of this system is that the interface is not bril</p><p>  Key words: Information management; Tick

12、et selling ; Database management</p><p><b>  目 錄</b></p><p><b>  1 緒論1</b></p><p><b>  1.1 引言1</b></p><p>  1.2 問題描述1</p&

13、gt;<p><b>  1.3 任務(wù)1</b></p><p>  1.4 本論文的主要結(jié)構(gòu)2</p><p>  2 系統(tǒng)的可行性研究與需求分析3</p><p>  2.1 可行性研究3</p><p>  2.1.1 經(jīng)濟可行性3</p><p>  2.

14、1.2 技術(shù)可行性3</p><p>  2.1.3 操作可行性3</p><p>  2.2 需求分析3</p><p>  2.2.1 功能需求4</p><p>  2.2.2 數(shù)據(jù)需求5</p><p>  2.2.3 性能需求6</p><p>  2.2.4

15、 數(shù)據(jù)流圖6</p><p>  2.2.5 數(shù)據(jù)字典7</p><p>  2.2.6 實體-聯(lián)系圖9</p><p>  2.2.7 數(shù)據(jù)庫邏輯結(jié)構(gòu)10</p><p>  3 系統(tǒng)的總體設(shè)計12</p><p>  3.1 系統(tǒng)軟件結(jié)構(gòu)設(shè)計12</p><p>  3

16、.1.1 軟件結(jié)構(gòu)12</p><p>  3.2 系統(tǒng)流程圖13</p><p>  4 系統(tǒng)的詳細設(shè)計17</p><p>  4.1 接口設(shè)計17</p><p>  4.1.1 用戶接口17</p><p>  4.1.2 外部接口17</p><p>  4.1

17、.3 內(nèi)部接口17</p><p>  4.1.4 軟件接口17</p><p>  4.1.5 模塊內(nèi)部18</p><p>  4.2 過程設(shè)計18</p><p>  4.2.1 程序流程圖18</p><p>  5 系統(tǒng)的實現(xiàn)與調(diào)試20</p><p>  5.

18、1 應(yīng)用系統(tǒng)的開發(fā)及測試20</p><p>  5.1.1 后臺管理系統(tǒng)運行結(jié)果截圖:21</p><p>  5.1.2 前臺訂票網(wǎng)站運行截圖31</p><p><b>  6 結(jié)論39</b></p><p>  6.1 系統(tǒng)評價39</p><p>  6.2 安全

19、性39</p><p><b>  參考文獻40</b></p><p><b>  致謝41</b></p><p><b>  1 緒論</b></p><p><b>  1.1 引言</b></p><p>  隨

20、著互聯(lián)網(wǎng)的飛速發(fā)展,網(wǎng)絡(luò)在人們的生活中扮演著越來越重要的角色。傳統(tǒng)的紙質(zhì)火車票、飛機票也慢慢被電子票所取代,而人工記錄火車票的預(yù)訂銷售也逐漸以網(wǎng)上預(yù)訂系統(tǒng)來代替。在線火車票預(yù)訂管理系統(tǒng)有著查找迅速、方便、可靠性強、存儲量大等傳統(tǒng)人工記錄無法比擬的優(yōu)勢。</p><p>  傳統(tǒng)的人工去記錄用戶的火車票預(yù)訂信息,不僅效率低下,也很不方便,更容易造成數(shù)據(jù)上的混亂,另外很難應(yīng)付車票訂購高峰時刻的大量數(shù)據(jù)處理問題,還會出

21、現(xiàn)由此帶來的大量記錄存放和管理所帶來的問題??蛻纛A(yù)訂火車票也很不方便。本系統(tǒng)的研究可以解決這一問題。系統(tǒng)的實現(xiàn)不僅讓旅客能更加方便更加快捷地預(yù)訂火車票這一產(chǎn)品,也極大地減輕公司在火車票預(yù)訂這塊的人力物力財力,提高公司的盈利。</p><p><b>  1.2 問題描述</b></p><p>  許多的旅行網(wǎng)站中提供標(biāo)準(zhǔn)化的旅游產(chǎn)品,方便了人們的出行,帶來生活上的

22、便利。但是在旅游公司中像火車票這類隨意性很強的非標(biāo)準(zhǔn)化產(chǎn)品卻一直由員工手工進行記錄,不僅效率低下,也很不方便,更容易造成數(shù)據(jù)上的混亂。另外很難應(yīng)付車票訂購高峰時刻的大量數(shù)據(jù)處理問題,還會出現(xiàn)由此帶來的大量記錄存放和管理所帶來的問題。同時手工記錄會經(jīng)常記錄錯誤的需求信息,不僅客戶帶來極大的不便,而且還會給客戶留下不好的印象。因此建立火車票預(yù)訂管理系統(tǒng)是一個很好的解決辦法。</p><p>  作為計算機應(yīng)用的一部分

23、,使用計算機對火車票信息進行管理,具有手工管理所無法比擬的優(yōu)點:查找迅速、方便、可靠性強、存儲量大等。這些優(yōu)點能夠極大地提高公司在火車票預(yù)訂信息管理方面的效率,同時節(jié)約了成本提高了收入。因此本文所研究的火車票預(yù)訂管理系統(tǒng)分為后臺管理系統(tǒng)和前臺預(yù)訂系統(tǒng)。后臺管理系統(tǒng)主要是生成車次信息供旅客去訂票參考,以及后臺供管理員對車次信息、訂單信息、管理員信息以及會員信息的管理操作,而前臺主要供用戶去注冊、查詢火車票、預(yù)訂火車票、查詢訂單、退票的相關(guān)

24、操作。同時前后臺分開給管理員和普通的用戶使用,不同的用戶分配有不同的權(quán)限,不僅明確了使用人群,而且也較大的提高了火車票預(yù)訂管理系統(tǒng)的安全性。操作簡單、安全可靠、界面美觀的火車票在線預(yù)訂管理系統(tǒng)優(yōu)勢顯而易見。</p><p><b>  1.3 任務(wù)</b></p><p>  本次設(shè)計采用java語言[1] [2]、jsp、struts和spring框架、MySQL

25、數(shù)據(jù)庫管理系統(tǒng)以及MyEclipse開發(fā)工具[3]來開發(fā)一個基于網(wǎng)站的火車票預(yù)訂管理系統(tǒng),使得公司管理員能夠有效地管理車次、旅客信息、退票信息。同時旅客可以通過查詢到相關(guān)的火車票信息,選擇適合自己的車票,也可以直接在網(wǎng)上訂票、退票,省時省力。</p><p>  1.4 本論文的主要結(jié)構(gòu)</p><p>  本學(xué)位論文主要由五個部分組成,其內(nèi)容具體安排如:</p><

26、p>  第一部分是緒論。主要介紹了本課題的來源、選題背景、問題描述和論文的主要結(jié)構(gòu)。</p><p>  第二部分介紹系統(tǒng)的可行性研究與需求分析。</p><p>  第三部分介紹系統(tǒng)的總體設(shè)計。</p><p>  第四部分介紹系統(tǒng)的詳細設(shè)計。</p><p>  第五部分是介紹系統(tǒng)的實現(xiàn)與調(diào)試。</p><p&g

27、t;  第六部分是本課題研究的結(jié)論。</p><p>  2 系統(tǒng)的可行性研究與需求分析</p><p>  2.1 可行性研究</p><p>  該階段通過對系統(tǒng)目標(biāo)的初步調(diào)研和分析,提出可行性方案并進行論證。我們在這里主要從技術(shù)可行性、經(jīng)濟可行性和操作可行性三方面進行分析。</p><p>  2.1.1 經(jīng)濟可行性</p&

28、gt;<p>  開發(fā)該系統(tǒng)所需的相關(guān)資料可以通過已存在的網(wǎng)上訂票系統(tǒng)進行調(diào)查采集,所需的其他應(yīng)用軟件、硬件系統(tǒng)也易于獲得.因此,開發(fā)成本較低。而引進使用本系統(tǒng)后,與傳統(tǒng)方式相比,具有高效率、低成本、高質(zhì)量的特點,可以節(jié)省不少人力、物力及財力。所以,從經(jīng)濟的角度來看,該系統(tǒng)可行。</p><p>  2.1.2 技術(shù)可行性</p><p>  開發(fā)工具:Myeclipse&

29、lt;/p><p>  數(shù)據(jù)庫環(huán)境:Mysql</p><p>  系統(tǒng)環(huán)境:Microsoft Windows 2000或以上版本。</p><p>  系統(tǒng)實現(xiàn)依靠相對熟悉的Java語言[4]、jsp技術(shù)[5]、struts2和spring框架、Mysql數(shù)據(jù)庫系統(tǒng)[6],其基本操作實質(zhì)還是對數(shù)據(jù)庫進行添加、刪除、查找等操作,暫不存在技術(shù)問題。</p>

30、<p>  2.1.3 操作可行性</p><p>  系統(tǒng)采用菜單式,實現(xiàn)用戶與數(shù)據(jù)庫的交互、界面簡潔友好、操作方便。用戶只需對訂票流程和業(yè)務(wù)調(diào)查了解即可,不需掌握數(shù)據(jù)庫等相關(guān)知識。</p><p><b>  2.2 需求分析</b></p><p>  需求分析是軟件設(shè)計的一個重要的環(huán)節(jié)。本階段對訂票系統(tǒng)的應(yīng)用情況作全面調(diào)

31、查,以確定系統(tǒng)目標(biāo),并對系統(tǒng)所需要的基礎(chǔ)數(shù)據(jù)以及數(shù)據(jù)處理要求進行分析,從而確定用戶的需求。用戶對系統(tǒng)的需求我們從以下幾方面進行分析。</p><p>  2.2.1 功能需求</p><p>  系統(tǒng)的輸入顯示信息都在jsp頁面中[7] [8] [9] [10],網(wǎng)上訂票系統(tǒng)中應(yīng)該具備如下功能:</p><p><b>  后臺模塊:</b>

32、</p><p>  登錄:管理員通過輸入自己正確的用戶名、密碼以及驗證碼登入到后臺管理系統(tǒng),若登錄失敗,將會給出錯誤提示并在3秒鐘內(nèi)跳轉(zhuǎn)到登陸界面。</p><p><b>  2.管理員信息管理</b></p><p>  管理員成功登錄到后臺管理頁面之后可以通關(guān)管理員信息管理模塊修改自己的用戶名和密碼信息,并將修改后的信息保存到數(shù)據(jù)庫中。

33、</p><p><b>  3.車次信息管理</b></p><p> ?、偬砑榆嚧涡畔ⅲ汗芾韱T成功登錄到后臺管理頁面之后可以批量的添加車次信息車次信息包括:車次編號、始發(fā)站、終點站、出發(fā)時間、到達時間、 到達時間、硬座剩余票、硬座價格、臥鋪剩余票、臥鋪價格。這些信息是必須填寫的。</p><p> ?、谲嚧涡畔⒉樵儯汗芾韱T可以通過動態(tài)條件查

34、詢相應(yīng)的車次信息,查詢結(jié)果以分頁形式展現(xiàn)給用戶。</p><p> ?、圮嚧涡畔⑿薷模汗芾韱T可以通過動態(tài)條件查詢相應(yīng)的車次信息,在查詢結(jié)果中選中要進行修改的車次信息進行修改。</p><p> ?、苘嚧涡畔h除:管理員可以通過動態(tài)條件查詢相應(yīng)的車次信息,在查詢結(jié)果中選中要進行修改的車次信息進行刪除。</p><p><b>  4.訂單管理</b&g

35、t;</p><p> ?、儆唵涡畔⒉樵儯汗芾韱T可以通過動態(tài)條件查詢相應(yīng)的車次信息,查詢結(jié)果以分頁形式展現(xiàn)給用戶。</p><p> ?、谟唵涡畔⑿薷模汗芾韱T可以通過動態(tài)條件查詢相應(yīng)的訂單信息,在查詢結(jié)果中選中要進行修改的訂單信息進行修改。</p><p><b>  5.會員管理</b></p><p> ?、贂T信息

36、查詢:管理員可以通過動態(tài)條件查詢相應(yīng)的會員信息,查詢結(jié)果以分頁形式展現(xiàn)給用戶。</p><p> ?、跁T信息修改:管理員可以通過動態(tài)條件查詢相應(yīng)的會員信息,在查詢結(jié)果中選中要進行修改的會員信息進行修改。</p><p><b>  前臺模塊:</b></p><p><b>  1.會員注冊</b></p>

37、<p>  會員在進入火車票預(yù)訂網(wǎng)站之后可通過會員注冊模塊進行注冊。</p><p><b>  2.會員登錄</b></p><p>  會員通過自己注冊的用戶名和密碼進行登錄火車票預(yù)訂網(wǎng)站,若會員沒有注冊或者登錄失敗將只能查詢火車票的相關(guān)信息,但是不能進行預(yù)訂的活動。</p><p><b>  3.車票信息查詢<

38、;/b></p><p>  分為對車次信息的查詢和客戶對已訂車票信息的查詢,要求:</p><p>  ①對車次的查詢,可以按照車次編號、始發(fā)站、終點站、出發(fā)時間進行查詢,結(jié)果以分頁形式展現(xiàn)給用戶。</p><p>  ②車次信息包括:車次編號、始發(fā)站、終點站、發(fā)車時間、到達時間、剩余票數(shù),票價。</p><p> ?、圮嚧涡畔⒅辉试S

39、用戶查詢,不能修改。</p><p> ?、苡唵涡畔⒉樵儯嚎梢园凑兆值纳矸葑C號、訂票的起始時間等動態(tài)條件進行查詢結(jié)果以分頁形式展現(xiàn)給用戶。</p><p><b>  4.訂票</b></p><p>  通過查詢系統(tǒng),客戶根據(jù)自己的需求找到滿意的車次,再輸入個人信息后直接通過網(wǎng)上訂票確定已預(yù)訂選中的車票,要求:</p><

40、p>  訂票記錄應(yīng)包括:姓名、手機號、身份證號、車次編號、出發(fā)時間、票類型、總價、座位類型、訂購日期。</p><p><b>  5.退票</b></p><p>  可退票,通過查詢系統(tǒng),客戶可以根據(jù)自己的身份證,或者訂票起始時間找到自己的訂單信息,通過點擊退票退去已購車票。</p><p>  2.2.2 數(shù)據(jù)需求</p&g

41、t;<p>  信息需求,即在系統(tǒng)中需要處理哪些數(shù)據(jù)。本系統(tǒng)的信息需求如表2.1所示。</p><p>  表2.1 信息輸入輸出</p><p>  2.2.3 性能需求</p><p>  為了保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效的運行,本系統(tǒng)應(yīng)該滿足以下的性能需求。</p><p><b>  1.準(zhǔn)確性和

42、及時性</b></p><p>  系統(tǒng)處理的準(zhǔn)確性和及時性是系統(tǒng)的必要性能。系統(tǒng)應(yīng)能及時而且準(zhǔn)確的根據(jù)用戶權(quán)限及所輸入的信息做出響應(yīng)。由于本系統(tǒng)的查詢功能對于整個系統(tǒng)的功能和性能完成舉足輕重。作為系統(tǒng)的很多數(shù)據(jù)來源,而車票的數(shù)量和時間又影響用戶的決策活動,其準(zhǔn)確性和及時性很大程度上決定了系統(tǒng)的成敗。在系統(tǒng)開發(fā)過程中,必須采用一定的方法保證系統(tǒng)的準(zhǔn)確性和及時性。</p><p>

43、;<b>  2.易用性</b></p><p>  本系統(tǒng)是直接面對用戶的,而用戶往往對計算機并不是非常熟悉。這就要求系統(tǒng)能夠提供良好的用戶接口,易用的人機交互界面。要實現(xiàn)這一點,就要求系統(tǒng)應(yīng)該盡量使用用戶熟悉的術(shù)語和中文信息的界面,從而保證系統(tǒng)的易用性。</p><p><b>  3.安全性</b></p><p>

44、  網(wǎng)上訂票系統(tǒng)中涉及到的數(shù)據(jù)是客運公司相當(dāng)重要的信息,系統(tǒng)要保證用戶的權(quán)限,對于車次等信息用戶只享有查詢服務(wù),不得更改。系統(tǒng)還要提供方便的手段供系統(tǒng)維護人員進行數(shù)據(jù)備份、日常安全管理、以及系統(tǒng)意外崩潰時數(shù)據(jù)的恢復(fù)等工作。同時系統(tǒng)還要保證對數(shù)據(jù)庫進行及時更新,保證數(shù)據(jù)一致性。</p><p>  2.2.4 數(shù)據(jù)流圖</p><p>  1)火車票咋先預(yù)訂管理系統(tǒng)后臺數(shù)據(jù)流圖:</

45、p><p>  圖2.1 后臺數(shù)據(jù)流圖</p><p>  2)火車票在線預(yù)訂管理系統(tǒng)前臺數(shù)據(jù)流圖:</p><p>  圖2.2 前臺數(shù)據(jù)流圖</p><p>  2.2.5 數(shù)據(jù)字典</p><p>  表2.2管理員信息數(shù)據(jù)字典</p><p>  表2.3會員信息數(shù)據(jù)字典</p>

46、;<p>  表2.4 車次信息數(shù)據(jù)字典</p><p>  表2.5 訂票信息數(shù)據(jù)字典</p><p>  表2.6 車票信息數(shù)據(jù)字典</p><p>  2.2.6 實體-聯(lián)系圖</p><p>  用戶的需求具體體現(xiàn)在各種信息的提供、保存、更新和查詢,這就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸出和輸入。</p>

47、<p>  針對火車站網(wǎng)上訂票系統(tǒng),通過對網(wǎng)上訂票工作的過程、內(nèi)容以及數(shù)據(jù)流程分析,設(shè)計如下所示的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu):</p><p>  1.車次信息:車號、出發(fā)地、目的地、發(fā)車時間、到達時間、座位類型剩余票、票價。</p><p>  2.訂票記錄:訂單號、用戶名、身份證號、電話、車號、出發(fā)時間、車票類型、訂購日期、座位類型、總價。</p><p>

48、  3.車票信息:座位號、車號、用戶名、身份證號、座位類型、車票類型、價格、出發(fā)時間。</p><p>  4.管理員信息:編號、姓名、性別、電話、密碼。</p><p>  5.會員信息:身份證號、姓名、性別、電話、密碼、注冊時間。</p><p>  E-R圖如圖2.2所示:</p><p>  圖 2.3 實體-聯(lián)系圖(ER圖)<

49、/p><p>  2.2.7 數(shù)據(jù)庫邏輯結(jié)構(gòu)</p><p>  火車站網(wǎng)上訂票系統(tǒng)數(shù)據(jù)庫中各個表格的設(shè)計結(jié)果如表2.7至表2.11所示。每個表格表示在數(shù)據(jù)庫中的一個表[11],其中在會員信息表以及管理員信息表中為了信息不被泄露分別對密碼字段進行了加密處理。在處理過程中為了處理用戶訂票的并發(fā)問題是用了行級鎖來解決這一問題。</p><p>  表2.7 車次信息表tb

50、_train</p><p>  表2.8 訂單表tb_order</p><p>  表2.9 火車票信息表tb_ticket</p><p>  表2.10 管理員表tb_admin</p><p>  表2.11 會員表tb_user</p><p>  3 系統(tǒng)的總體設(shè)計</p><p&g

51、t;  3.1 系統(tǒng)軟件結(jié)構(gòu)設(shè)計</p><p>  3.1.1 軟件結(jié)構(gòu)</p><p>  1)后臺分為管理員信息管理、車次信息管理、訂單信息管理、會員信息管理四個模塊。其層次圖[13]如圖3.1所示:</p><p>  圖3.1 火車票預(yù)訂后臺管理系統(tǒng)的層次圖</p><p>  2)前臺可劃分為查詢、訂票、退票三個部分。其中信息

52、查詢又可分為車次查詢和訂單查詢兩個部分。其層次圖如圖3.2所示:</p><p>  圖3.2 火車站預(yù)訂前臺系統(tǒng)的層次圖</p><p>  3.2 系統(tǒng)流程圖</p><p>  1)后臺頂層數(shù)據(jù)流程圖[14]如下圖3.3所示:</p><p>  圖3.3 后臺頂層數(shù)據(jù)流程圖</p><p>  車次,訂單,會

53、員的查詢系統(tǒng)流程圖大致一致,所以歸納如下:</p><p>  圖3.4 后臺數(shù)據(jù)查詢流程圖</p><p>  車次,訂單,會員的更新系統(tǒng)流程圖大致一致,所以歸納如下:</p><p>  圖3.4 后臺數(shù)據(jù)更新流程圖</p><p>  2)前臺頂層流程圖如下圖3.5所示。圖3.5至圖3.9為各模塊詳細系統(tǒng)流程圖。</p>

54、<p>  圖3.5頂層系統(tǒng)流程</p><p>  圖3.6 查詢車次信息流程圖</p><p>  圖3.6車次,訂單信息查詢系統(tǒng)流程圖大致一致,用戶通過輸入查詢條件進行查詢車次信息和自己的訂單信息所以歸納如下:</p><p>  圖3.7 車次,訂單信息查詢系統(tǒng)流程圖</p><p>  用戶成功登陸之后根據(jù)動態(tài)查詢條件查找

55、到自己需求的車票后通過輸入正確的信息進行訂票,系統(tǒng)會將訂票成功與否的信息反饋給用戶。</p><p>  圖3.8 用戶訂票流程圖</p><p>  用戶成功登陸之后根據(jù)動態(tài)查詢條件查詢條件查詢到自己的訂單之后可以進行退票操作,系統(tǒng)會將用戶退票成功或失敗的信息反饋給用戶。</p><p>  圖3.9 退票系統(tǒng)流程圖</p><p>  4

56、 系統(tǒng)的詳細設(shè)計</p><p><b>  4.1 接口設(shè)計</b></p><p>  4.1.1 用戶接口</p><p>  用戶通過界面接口實現(xiàn)參數(shù)的輸入,進入相應(yīng)的界面后輸入提示的信息即可產(chǎn)生相應(yīng)的任務(wù)。</p><p>  4.1.2 外部接口</p><p>  接口通過一

57、個數(shù)據(jù)轉(zhuǎn)換器,將網(wǎng)絡(luò)二進制數(shù)據(jù)流轉(zhuǎn)換為一個合適的數(shù)據(jù)結(jié)構(gòu)單位并添加到緩沖區(qū)中。</p><p>  4.1.3 內(nèi)部接口</p><p>  表4.1 內(nèi)部接口說明表</p><p>  4.1.4 軟件接口</p><p>  本系統(tǒng)程序所使用的數(shù)據(jù)庫來源于主機數(shù)據(jù)庫,所以系統(tǒng)數(shù)據(jù)與主機數(shù)據(jù)庫數(shù)據(jù)向一致。</p><

58、p>  4.1.5 模塊內(nèi)部</p><p>  模塊以接受參數(shù)方式獨立登陸主機數(shù)據(jù)庫并且獨立運行,返回數(shù)據(jù)顯示在界面上。</p><p><b>  4.2 過程設(shè)計</b></p><p>  4.2.1 程序流程圖</p><p>  1)管理員只有成功通過身份驗證才能進入后臺管理系統(tǒng)來管理各項信息,系

59、統(tǒng)會將操作的結(jié)果返回給管理員,圖4.1為火車票預(yù)訂后臺管理系統(tǒng)程序流程圖:</p><p>  圖4.1 火車票預(yù)訂后臺管理系統(tǒng)程序流程圖</p><p>  2)沒有注冊的用戶只能查詢火車余票,注冊后的會員登陸之后可以預(yù)定滿足自己要求的火車票,同時還能根據(jù)條件查詢自己的訂單和退票操作。圖4.1為火車票預(yù)訂前臺網(wǎng)站程序流程圖:</p><p>  圖4.2 火車票

60、預(yù)訂前臺網(wǎng)站程序流程圖</p><p>  5 系統(tǒng)的實現(xiàn)與調(diào)試</p><p>  5.1 應(yīng)用系統(tǒng)的開發(fā)及測試</p><p>  為了保證測試的質(zhì)量,將測試過程分成幾個階段,即代碼審查、單元測試、集成測試、確認測試和系統(tǒng)測試。 </p><p><b> ?。?)單元測試 </b></p><

61、;p>  單元測試[15]集中在檢查軟件設(shè)計的最小單位—模塊上,通過測試發(fā)現(xiàn)實現(xiàn)該模塊的實際功能與定義該模塊的功能說明不符合的情況,以及編碼的錯誤。 </p><p><b> ?。?)集成測試 </b></p><p>  集成測試是將模塊按照設(shè)計要求組裝起來同時進行測試,主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。例如一個模塊對另一個模塊可能由于疏忽的問題而造成有害影響

62、;把子功能組合起來可能不產(chǎn)生預(yù)期的主功能;個別看起來是可以接受的誤差可能積累到不能接受的程度;全程數(shù)據(jù)結(jié)構(gòu)可能有錯誤等。 </p><p><b> ?。?)確認測試 </b></p><p>  確認測試的目的是向未來的用戶表明系統(tǒng)能夠像預(yù)定要求那樣工作。經(jīng)集成測試后,已經(jīng)按照設(shè)計把所有的模塊組裝成一個完整的軟件系統(tǒng),接口錯誤也已經(jīng)基本排除了,接著就應(yīng)該進一步驗證軟

63、件的有效性,這就是確認測試的任務(wù),即軟件的功能和性能是否如同用戶所合理期待的那樣。 </p><p><b> ?。?)系統(tǒng)測試 </b></p><p>  軟件開發(fā)完成以后,最終還要與系統(tǒng)中其他部分配套運行,進行系統(tǒng)測試。包括恢復(fù)測試[16]、安全測試、強度測試和性能測試等。 </p><p>  單獨對系統(tǒng)的測試主要從以下幾方面入手:&l

64、t;/p><p>  ① 功能測試:測試是否滿足開發(fā)要求,是否提供設(shè)計所描述的功能,是否用戶的需求都得到滿足。功能測試是系統(tǒng)測試最常用和必須的測試,通常還會以正式的軟件說明書為測試標(biāo)準(zhǔn)。</p><p> ?、?強度測試及性能測試[3]:測試系統(tǒng)能力最高實際限度,即軟件在一些超負荷情況下功能實現(xiàn)的情況。</p><p>  ③ 安全測試:驗證安裝在系統(tǒng)內(nèi)的保護機構(gòu)確實能

65、夠?qū)ο到y(tǒng)進行保護,使之不受各種非常的干擾。針對本系統(tǒng)主要是對權(quán)限系統(tǒng)的測試和對無效數(shù)據(jù)、錯數(shù)據(jù)、和非法數(shù)據(jù)干擾的能力的測試。</p><p>  經(jīng)過上述的測試過程對軟件進行測試后,軟件基本滿足開發(fā)的要求,測試宣告結(jié)束。 </p><p>  5.1.1 后臺管理系統(tǒng)運行結(jié)果截圖</p><p>  1)后臺管理系統(tǒng)登陸界面,管理員必須輸入一次輸入正確的用戶名,密

66、碼和驗證碼,驗證通過之后才能進入后臺管理系統(tǒng),否則給出出錯提示跳轉(zhuǎn)到登陸界面由前臺的jsp頁面信息傳遞到struts[17]中的Action中進行判斷處理,登錄頁面如圖5.1所示</p><p>  圖5.1 后臺登陸頁面</p><p>  管理員登錄的主要代碼如下:</p><p><b>  /**</b></p><

67、p><b>  * 管理員登陸</b></p><p><b>  * </b></p><p>  * @return success,error</p><p><b>  */</b></p><p>  public String adminLogin() {&l

68、t;/p><p>  if (adminInfoDao.adminLogin(userName, passWord)) {</p><p>  HttpServletRequest request = ServletActionContext.getRequest();</p><p>  request.getSession().setAttribute("

69、userName", userName);</p><p>  request.getSession().setAttribute("passWord", passWord);</p><p>  if (request.getSession().getAttribute("rand").equals(verifycode))// 驗證驗證

70、碼正確與否</p><p>  return SUCCESS;</p><p><b>  else {</b></p><p>  message = "登錄失敗,請檢查驗證碼!";</p><p>  return ERROR;</p><p><b>  }&l

71、t;/b></p><p><b>  } else {</b></p><p>  message = "登錄失敗,請檢查用戶名和密碼!";</p><p>  return ERROR;</p><p><b>  }</b></p><p>&

72、lt;b>  }</b></p><p>  public boolean adminLogin(String adminName, String adminPassWord) {</p><p>  jdbcTemplate = new JdbcTemplate(dataSource);</p><p>  String sql = "

73、select adminPassWord from tb_admin where adminName='"</p><p>  + adminName + "'";</p><p>  List<AdminInfo> list = jdbcTemplate.query(sql, new AdminMapper());</p&g

74、t;<p>  if (list != null) {</p><p>  for (AdminInfo adminInfo : list) {</p><p>  if (adminInfo.getAdminPassWord().equals(adminPassWord))</p><p>  return true;</p><

75、p><b>  }</b></p><p><b>  }</b></p><p>  return false;</p><p><b>  }</b></p><p>  2)后臺管理系統(tǒng)登錄失敗界面,如圖5.2所示:</p><p>  圖5

76、.2 后臺登陸失敗頁面</p><p>  3)系統(tǒng)后臺主要有管理車次信息、訂單信息、注冊會員信息,以及管理員修改自己的個人信息等功能。管理員只有經(jīng)過身份驗證成功之后才能進入后臺管理頁面,否則系統(tǒng)會提示你重新登錄。圖5.3為后臺管理系統(tǒng)的主界面。 </p><p>  圖5.3 系統(tǒng)主界面</p><p>  4)點擊增加車次信息按鈕進行添加車次信息,可以批量添加車

77、次信息,在頁面中對輸入的信息進行了驗證[1],不能提交為空的數(shù)據(jù),可以添加多個車次信息,同時也可以減少車次信息提交的數(shù)量如圖5.4所示:</p><p>  圖5.4 添加車次信息頁面</p><p>  添加車次信息的主要代碼如下:</p><p><b>  /**</b></p><p><b>  *

78、添加車次信息</b></p><p><b>  */</b></p><p>  public boolean AddTrain(List<TrainInfo> trainInfo) {</p><p>  jdbcTemplate = new JdbcTemplate(dataSource);</p>

79、<p>  for (TrainInfo trainInfo2 : trainInfo) {</p><p>  String sql="insert into tb_train( trainId,trainStartPlace,trainEndPlace,trainStartTime,"</p><p>  + "trainEndTime,hard

80、SeatLeft, hardSeatPrice,softSeatLeft, </p><p>  softSeatPrice)values(?,?,?,?,?,?,?,?,?)";</p><p>  Object args[] = { trainInfo2.getTrainId(),</p><p>  trainInfo2.getTrainStartP

81、lace(),</p><p>  trainInfo2.getTrainEndPlace(),</p><p>  trainInfo2.getTrainStartTime(),</p><p>  trainInfo2.getTrainEndTime(), trainInfo2.getHardSeatLeft(),</p><p>  t

82、rainInfo2.getHardSeatPrice(),</p><p>  trainInfo2.getSoftSeatLeft(), trainInfo2.getSoftSeatPrice() };</p><p><b>  try {</b></p><p>  jdbcTemplate.update(sql, args);</

83、p><p>  } catch (DataAccessException e) {</p><p>  e.printStackTrace();</p><p>  return false;</p><p><b>  }</b></p><p><b>  }</b><

84、/p><p>  return true;</p><p><b>  }</b></p><p>  5)查詢車次信息,可以進行多條件進行動態(tài)條件查詢,以分頁形式展示給用戶,結(jié)果如圖5.5所示:</p><p>  圖5.5 查詢車次信息頁面</p><p>  查詢車次信息的主要代碼如下:<

85、/p><p><b>  /**</b></p><p>  * 動態(tài)查找車次信息</p><p><b>  */</b></p><p>  @SuppressWarnings("unchecked")</p><p>  public List<T

86、rainInfo> findTrain(String trainId, Date trainStartTime,</p><p>  String trainStartPlace, int beginIndex, int pageSize) {</p><p>  SimpleDateFormat format = new SimpleDateFormat("yyyy-MM

87、-dd ");</p><p>  String date;</p><p>  if (trainStartTime != null) {</p><p>  date = format.format(trainStartTime);</p><p><b>  } else</b></p>&

88、lt;p>  date = "";</p><p>  System.out.println(date);</p><p>  boolean flags1 = false, flags2 = false;</p><p>  jdbcTemplate = new JdbcTemplate(dataSource);</p>&

89、lt;p>  String sql = "select * from tb_train ";</p><p>  if (trainId != null && !"".equals(trainId.trim())) {</p><p>  flags1 = true;</p><p>  sql = sq

90、l + " where trainId='" + trainId + "'";</p><p><b>  }</b></p><p>  if (date != null && !"".equals(date.trim())) {</p><p>  

91、flags2 = true;</p><p>  if (flags1)</p><p>  sql = sql + " and '" + date</p><p>  + "'=DATE_FORMAT(trainStartTime,'%Y-%m-%d') ";</p><p

92、><b>  else</b></p><p>  sql = sql + " where '" + date</p><p>  + "' =DATE_FORMAT(trainStartTime,'%Y-%m-%d') ";</p><p><b>  }

93、</b></p><p>  if (trainStartPlace != null && !"".equals(trainStartPlace.trim())) {</p><p>  if (flags1 || flags2) {</p><p>  sql = sql + " and trainStar

94、tPlace like '%" + trainStartPlace + "%'";</p><p><b>  } else {</b></p><p>  sql = sql + " where trainStartPlace like'%" + trainStartPlace + "

95、;%'";</p><p><b>  }</b></p><p><b>  }</b></p><p>  sql += " limit " + beginIndex + "," + pageSize;</p><p>  List<

96、;TrainInfo> list = jdbcTemplate.query(sql, new TrainMapper());</p><p>  return list;</p><p><b>  }</b></p><p>  查詢結(jié)果如圖5.6所示:</p><p>  圖5.6 查詢車次信息結(jié)果</p

97、><p>  點擊修改按鈕進行修改車次信息,界面如圖5.7所示:</p><p>  圖5.7 修改車次信息頁面</p><p>  7)點擊訂單管理按鈕進行查詢會員已經(jīng)預(yù)定的車票信息,界面如圖5.8所示:</p><p>  圖5.8 查詢訂單信息頁面</p><p>  查詢訂單的主要代碼如下:</p>

98、<p><b>  /**</b></p><p>  * 動態(tài)查找訂單信息</p><p><b>  */</b></p><p>  @SuppressWarnings("unchecked")</p><p>  public List<OrderInfo

99、> findOrder(String trainId, String ticketType,</p><p>  Date bookTime, String seatType, String userId, int beginIndex,</p><p>  int pageSize) {</p><p>  SimpleDateFormat format =

100、 new SimpleDateFormat("yyyy-MM-dd");</p><p>  String bookDate;</p><p>  String sql = "select * from tb_order where 1=1 ";</p><p>  jdbcTemplate = new JdbcTemplat

101、e(dataSource);</p><p>  if (bookTime != null) {</p><p>  bookDate = format.format(bookTime);</p><p><b>  } else {</b></p><p>  bookDate = "";</

102、p><p><b>  }</b></p><p>  if (trainId != null && !"".equals(trainId.trim())) {</p><p>  sql = sql + "and trainId like'%" + trainId + "%

103、' ";</p><p><b>  }</b></p><p>  if (seatType != null && !"".equals(seatType.trim())) {</p><p>  sql = sql + "and seatType='" + s

104、eatType + "' ";</p><p><b>  }</b></p><p>  if (bookDate != null && !"".equals(bookDate)) {</p><p>  sql = sql + " and '" +

105、bookDate</p><p>  + "'=DATE_FORMAT(bookTime,'%Y-%m-%d') ";</p><p><b>  }</b></p><p>  if (ticketType != null && !"".equals(ticket

106、Type)) {</p><p>  sql = sql + "and ticketType='" + ticketType + "' ";</p><p><b>  }</b></p><p>  if (userId != null && !"".

107、equals(userId)) {</p><p>  sql = sql + "and userId='" + userId + "' ";</p><p><b>  }</b></p><p>  sql += " limit " + beginIndex + &

108、quot;," + pageSize;</p><p>  System.out.println(sql);</p><p>  List<OrderInfo> list = jdbcTemplate.query(sql, new OrderMapper());</p><p>  System.out.println(list);</p

109、><p>  return list;</p><p><b>  }</b></p><p>  查詢結(jié)果界面如圖5.9所示:</p><p>  圖5.9 訂單查詢結(jié)果</p><p>  點擊修改按鈕來修改訂單信息,界面如圖5.10所示:</p><p>  圖5.10

110、修改訂單信息頁面</p><p>  8)點擊會員管理按鈕進行會員信息的查詢,界面如圖5.11所示:</p><p>  圖5.11 查詢會員信息頁面</p><p>  查詢注冊會員信息主要代碼如下:</p><p><b>  /**</b></p><p>  * 根據(jù)動態(tài)條件查詢會員信息&

111、lt;/p><p><b>  * </b></p><p>  * @param vipInfo</p><p>  * @return List<VipInfo> findVip</p><p><b>  */</b></p><p>  @SuppressWa

112、rnings("unchecked")</p><p>  public List<VipInfo> findVip(VipInfo vipInfo) {</p><p>  jdbcTemplate = new JdbcTemplate(dataSource);</p><p>  SimpleDateFormat format =

113、 new SimpleDateFormat("yyyy-MM-dd");</p><p>  String registerDate;</p><p>  if (vipInfo.getRegisterTime() != null) {</p><p>  registerDate = format.format(vipInfo.getRegis

114、terTime());</p><p><b>  } else {</b></p><p>  registerDate = "";</p><p><b>  }</b></p><p>  String sql = "select * from tb_vip wh

115、ere 1=1 ";</p><p>  if (vipInfo.getUserName() != null</p><p>  && !"".equals(vipInfo.getUserName().trim()))</p><p>  sql = sql + " and userName like '

116、;%" + vipInfo.getUserName() + "%' ";</p><p>  if (vipInfo.getUserSex() != null</p><p>  && !"".equals(vipInfo.getUserSex().trim()))</p><p>  sql

117、 = sql + " and userSex='" + vipInfo.getUserSex() + "' ";</p><p>  if (vipInfo.getRegisterTime() != null</p><p>  && !"".equals(vipInfo.getRegisterTi

118、me().toString().trim()))</p><p>  sql = sql + " and '" + registerDate</p><p>  + "'=DATE_FORMAT(registerTime,'%Y-%m-%d') ";</p><p>  if (vipInfo.

119、getUserId() != null</p><p>  && !"".equals(vipInfo.getUserId().trim()))</p><p>  sql = sql + " and userId='" + vipInfo.getUserId() + "'";</p>

120、<p>  System.out.println(sql);</p><p>  list = jdbcTemplate.queryForList(sql);</p><p>  return list;</p><p><b>  }</b></p><p>  點擊查詢查看結(jié)果,界面如圖5.12所示:&l

121、t;/p><p>  圖5.12 會員信息顯示頁面</p><p>  點擊修改按鈕來修改會員的信息,界面如圖5.13所示:</p><p>  圖5.13 修改會員信息頁面</p><p>  5.1.2 前臺訂票網(wǎng)站運行截圖</p><p>  1)本系統(tǒng)設(shè)計要求用戶通過登錄框選擇訪問權(quán)限,登錄系統(tǒng)。其中,用戶須輸入

122、用戶名和密碼,以進入系統(tǒng)。未使用過本系統(tǒng)的用戶選擇注冊會員,系統(tǒng)自動跳轉(zhuǎn)至主界面。系統(tǒng)用戶權(quán)限登錄訪問時,車次信息查詢、訂票信息查詢、訂票、退票等功能均可用。系統(tǒng)用戶輸入正確的用戶名和密碼,訪問系統(tǒng),得到其相應(yīng)的權(quán)限。沒有注冊的用戶可以查詢但不可以預(yù)訂和查詢訂單操作,訂票如圖5.14。</p><p>  圖5.14 登陸界面 </p><p>  2)當(dāng)用戶的用戶名或者密碼錯誤時將

123、跳轉(zhuǎn)到錯誤提示頁面,并且三秒鐘之后會跳轉(zhuǎn)到主頁面中,登錄失敗界面如圖5.15所示:</p><p>  圖5.15 登錄失敗界面</p><p>  3)會員必須填寫姓名,身份證號,性別,密碼以及手機號碼進行注冊,如果不填寫相關(guān)內(nèi)容或者填寫的格式不正確提交的話將會有提示框來提示用戶重新注冊。注冊頁面如圖5.16所示:</p><p>  圖5.16 注冊頁面<

124、/p><p>  會員注冊主要代碼如下:</p><p>  4)前臺預(yù)訂網(wǎng)站主界面,用戶可以進行查詢火車余票信息,可以登錄之后進行訂票,查詢訂單,退票等操作,也可以注冊會員。用戶如果沒有注冊會員,那么該用戶就只能進行查詢相應(yīng)的火車票余票信息而不能進行預(yù)訂車票、查詢訂單、退票操作。注冊成功后的會員不僅可以查詢火車余票,而且可以預(yù)訂滿足自己要求的火車票,還能查詢自己的訂單以及選擇退票操作。在用戶

125、注冊的過程中都進行了前后臺驗證處理。如果用戶輸入的個人信息有誤,則系統(tǒng)會提示用戶的輸入信息有誤,然后跳轉(zhuǎn)到首頁中。用戶注冊成功之后會跳轉(zhuǎn)到首頁中,其用戶名會顯示在頁面中,圖5.17為前臺用戶注冊、登錄、查詢余票、預(yù)訂車票,以及退票操作的主界面。</p><p>  圖5.17 預(yù)訂網(wǎng)站主界面</p><p>  5)對車次信息的查詢,系統(tǒng)提供了車次信息,進行精確的查詢,系統(tǒng)經(jī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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論