flash數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第1頁
flash數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第2頁
flash數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第3頁
flash數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第4頁
flash數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課 程 設(shè) 計(jì) 說 明 書課程名稱: 數(shù)據(jù)結(jié)構(gòu)與算法 設(shè)計(jì)題目: 模擬航班訂票系統(tǒng) 學(xué) 院: 計(jì)算機(jī)科學(xué)與信息工程學(xué)院 學(xué)生姓名: 學(xué)生學(xué)號(hào): 專業(yè)班級(jí): 12級(jí)網(wǎng)絡(luò)工程(1)班 指導(dǎo)教師: 年 月 日課 程 設(shè) 計(jì) 任 務(wù) 書設(shè)計(jì)題目模擬航班訂票系統(tǒng)學(xué)生姓名魏陳南所在院系計(jì)算機(jī)科學(xué)與信息工程學(xué)院專業(yè)、年級(jí)、班網(wǎng)絡(luò)工程121設(shè)計(jì)要求:要求:系統(tǒng)需要實(shí)現(xiàn)如下功能:(1)錄入:可以錄入航班情況(數(shù)據(jù)存儲(chǔ)在一個(gè)數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定)(2)查詢:可以查詢某個(gè)航線的情況(如,輸入航班號(hào),查詢起降時(shí)間,起飛抵達(dá)城市,航班票價(jià),票價(jià)折扣,確定航班是否滿倉),可以輸入起飛抵達(dá)城市,查詢飛機(jī)航班情

2、況;(3)訂票:(訂票情況可以存在一個(gè)數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定)可以訂票,記錄訂票信息。訂單要有編號(hào);客戶資料有姓名,證件號(hào)。如果該航班已經(jīng)無票,可以提供相關(guān)可選擇航班。(4)退票: 可退票,退票后修改相關(guān)數(shù)據(jù)文件; 根據(jù)訂單號(hào)和客戶信息,訂票數(shù)量及航班情況。(5)修改航班信息:當(dāng)航班信息改變可以修改航班數(shù)據(jù)文件學(xué)生應(yīng)完成的工作:(1) 根據(jù)課程設(shè)計(jì)要求,分析思路并構(gòu)建模型,劃分子模塊、完善其功能;(2) 根據(jù)各模塊的功能設(shè)計(jì)并編寫程序段、連接各程序段使之形成一個(gè)有機(jī)的整體;(3) 調(diào)試、運(yùn)行程序進(jìn)而得到正確的結(jié)果;(4) 根據(jù)實(shí)驗(yàn)設(shè)計(jì)運(yùn)行過程,寫出實(shí)驗(yàn)論文并總結(jié)實(shí)驗(yàn)教訓(xùn)。參考文獻(xiàn)閱讀:(1)

3、 Flash ActionScript3.0全站互動(dòng)設(shè)計(jì)(劉歡,人民郵電出版社);(2) 數(shù)據(jù)結(jié)構(gòu)(吳偉民等C語言版,清華大學(xué)出版社);(3) 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)教程(高曉兵等,清華大學(xué)出版社);(4) Flash ActionScript 3殿堂之路(孫穎電子工業(yè)出版社)。工作計(jì)劃:(1) 第一周的第一天:小組布置設(shè)計(jì)題目;說明進(jìn)度安排。(2) 第一周的第二天:小組審題,查閱資料,進(jìn)行設(shè)計(jì)前的必要資料準(zhǔn)備。(3) 第一周的第三天至第二周第三天:程序編寫、上機(jī)調(diào)試、結(jié)果分析。(4) 第二周的第四天: 撰寫設(shè)計(jì)報(bào)告。(5) 第二周的第五天: 設(shè)計(jì)答辯。任務(wù)下達(dá)日期: 2014年 6月 16日 任務(wù)完成

4、日期: 2014年 6月 27日指導(dǎo)教師(簽名): 學(xué)生(簽名): 模擬航班訂票系統(tǒng)摘 要:隨著計(jì)算機(jī)技術(shù)與英特網(wǎng)的發(fā)展,人們生活方式的轉(zhuǎn)變,許多便捷的應(yīng)用應(yīng)運(yùn)而生,我們可以足不出戶便可以享受到它們帶給我們的便捷服務(wù),較為典型的一類為訂票系統(tǒng),我們可以坐在電腦就可先預(yù)定下自習(xí)想要的票。航班訂票系統(tǒng)就是這一類的系統(tǒng);其可以向用戶提供機(jī)場(chǎng)航班的詳情,可供查詢,提供定退票的服務(wù),與實(shí)際生活中的訂票方式并無差別,反而更加便利。利用相應(yīng)的數(shù)據(jù)結(jié)構(gòu)來存儲(chǔ)航班,與用戶的信息,且存入相應(yīng)的數(shù)據(jù)元件中,當(dāng)用戶或航班的數(shù)據(jù)改變時(shí)對(duì)應(yīng)更新數(shù)據(jù)元件中的數(shù)據(jù),應(yīng)用數(shù)據(jù)結(jié)構(gòu)的表結(jié)構(gòu),完成航班與用戶信息插入刪除等操作。本次

5、的設(shè)計(jì)即用數(shù)據(jù)結(jié)構(gòu)的知識(shí)真實(shí)模擬現(xiàn)實(shí)的航班訂票系統(tǒng),完成對(duì)用戶與航班信息的數(shù)據(jù)操作,與為用戶提供完整的航班訂票服務(wù)。關(guān)鍵詞:航班訂票、數(shù)據(jù)操作、表結(jié)構(gòu)、數(shù)據(jù)存儲(chǔ)目 錄1. 設(shè)計(jì)背景51.1表結(jié)構(gòu)的應(yīng)用51.2航班訂票系統(tǒng)的需求分析52.設(shè)計(jì)方案52.1總體設(shè)計(jì)流程52.2航班訂票系統(tǒng)功能模塊劃分63. 方案實(shí)施63.1抽象數(shù)據(jù)元素的確定與數(shù)據(jù)文件的確定63.2系統(tǒng)概述74. 結(jié)果與結(jié)論74.1抽象數(shù)據(jù)對(duì)象與數(shù)據(jù)存儲(chǔ)文件結(jié)構(gòu)74.2高頻語句模塊概括說明94.3核心模塊說明114.4程序運(yùn)行結(jié)果184.5課程設(shè)計(jì)總結(jié)325. 收獲與致謝336. 參考文獻(xiàn)337. 附件331. 設(shè)計(jì)背景1.1表結(jié)構(gòu)

6、的應(yīng)用表結(jié)構(gòu)是實(shí)際常用的存儲(chǔ)結(jié)構(gòu)以有序表、鏈表、最為常見,表結(jié)構(gòu)由于其結(jié)構(gòu)的不同其實(shí)際的應(yīng)用也不盡相同,很多時(shí)候?qū)τ趩蝹€(gè)個(gè)體要進(jìn)行頻繁操作時(shí)所用的數(shù)據(jù)存儲(chǔ)用的的就是鏈?zhǔn)酱鎯?chǔ),而按一定規(guī)律相聯(lián)系的個(gè)體的數(shù)據(jù)則用的就是順序表,例如應(yīng)用得十分廣泛的數(shù)據(jù)文件XML文件,當(dāng)其作為數(shù)據(jù)文件時(shí),其內(nèi)部的數(shù)據(jù)存儲(chǔ)方式大多就是有序表。而在我們的設(shè)計(jì)中存儲(chǔ)數(shù)據(jù)的文件即為XML文件。1.2航班訂票系統(tǒng)的需求分析航班訂票系統(tǒng)所可以提供的服務(wù)與實(shí)際的機(jī)場(chǎng)服務(wù)并無差別,其大可分為兩大部分,用戶模塊與管理模塊,用戶模塊提供給用戶相應(yīng)的服務(wù),即用戶可以通過系統(tǒng)所提供的方式查詢?yōu)g覽航班,且可以完成機(jī)票的訂購(gòu)與退訂,在必要時(shí)用戶

7、還可以更改自己的特定信息;在進(jìn)入系統(tǒng)前有用戶的登入操作,且提供用戶的信息注冊(cè),用戶不具有權(quán)限更改航班的信息。再者就是管理模塊,管理具有權(quán)限對(duì)航班的信息進(jìn)行操作,即其除了可瀏覽查詢航班信息還可對(duì)航班信息進(jìn)行修改、刪除、錄入等操作;且管理員權(quán)限去查詢用戶信息,但不能修改;管理員可對(duì)自己的信息進(jìn)行修改,即修改賬號(hào)與密碼。航班系統(tǒng)應(yīng)提供以上較為基本的操作。2.設(shè)計(jì)方案2.1總體設(shè)計(jì)流程1. 航班訂票系統(tǒng)的需求分析(1)草擬大綱(2)分析系統(tǒng)需求(3)劃分總體模塊2. 具體模塊設(shè)計(jì)(1) 劃分具體模塊(2) 設(shè)計(jì)具體模塊的功能3. 設(shè)計(jì)編碼實(shí)現(xiàn)(1) 設(shè)計(jì)素材準(zhǔn)備(2) 具體編碼實(shí)現(xiàn)4. 設(shè)計(jì)的調(diào)試、錯(cuò)

8、誤排除與功能完善2.2航班訂票系統(tǒng)功能模塊劃分1. 數(shù)據(jù)模塊:抽象數(shù)據(jù)類型定義,定義具體數(shù)據(jù)文件格式2. 數(shù)據(jù)操作模塊:對(duì)存儲(chǔ)數(shù)據(jù)信息進(jìn)行對(duì)應(yīng)的操作3. 數(shù)據(jù)交互模塊:對(duì)用戶/管理的操作做出相應(yīng),通過數(shù)據(jù)操作模塊修改數(shù)據(jù)文件4. 可視化模塊:提供可視化界面與界面交互的效果,提供人機(jī)交互界面3. 方案實(shí)施3.1抽象數(shù)據(jù)元素的確定與數(shù)據(jù)文件的確定對(duì)于航班訂票系統(tǒng),處于中心位置的是對(duì)數(shù)據(jù)元素的操作與其存儲(chǔ)文件的操作,其他所有操作的結(jié)果都可直接反應(yīng)在數(shù)據(jù)文件上的,所以抽象數(shù)據(jù)類型定義與其存儲(chǔ)文件的設(shè)計(jì)尤為重要。由于此設(shè)計(jì)的編碼實(shí)驗(yàn)是由面向?qū)ο蟮恼Z言ActionScript3.0實(shí)現(xiàn)的,所以給出以下的抽

9、象數(shù)據(jù)定義,與數(shù)據(jù)元件定義。抽象數(shù)據(jù)類型:(1)航班對(duì)象(AirplaneInformation):id(航班號(hào))、be(起始站)、ed(終點(diǎn)站)、date(日期)、amount(機(jī)票數(shù)量)、price(價(jià)格)、rebate(折扣)。(2)機(jī)票對(duì)象(UserTicketInformation):id(航班號(hào))、be(起始站)、ed(終點(diǎn)站)、date(日期)、amount(座位號(hào))、price(價(jià)格)。(3)用戶對(duì)象(UserInformation):id(賬號(hào))、key(密碼)、name(姓名)、sex(性別)、pId(身份證號(hào))、tell(手機(jī)號(hào))、Email(郵箱)、UserTicket

10、Information(機(jī)票信息)。存儲(chǔ)的數(shù)據(jù)文件:數(shù)據(jù)存儲(chǔ)文件用到常見的xml文件。(1) 航班信息數(shù)據(jù)文件:airplaneData.xml(詳細(xì)結(jié)構(gòu)見下文)。(2)用戶信息數(shù)據(jù)文件:userData.xml(詳細(xì)結(jié)構(gòu)見下文)。3.2系統(tǒng)概述(1)航班信息數(shù)據(jù)元件生成:默認(rèn)航班首次打開時(shí)讀入的是默認(rèn)的航班信息數(shù)據(jù),即在com.airplane.data文件夾中的airplaneData.xml文件,而后管理員如對(duì)航班信息進(jìn)行修改后會(huì)生成新的SharedObject數(shù)據(jù)對(duì)象存入本地空間。而用戶信息是運(yùn)行由用戶操作生成的,其生成對(duì)應(yīng)userData.xml文件,然后存入本地。(2)各模塊工作流

11、程:主模塊(用戶入口、管理員入口),點(diǎn)擊不同入口進(jìn)入登入界面,(用戶登入界面:登入、注冊(cè)、返回),(管理員登入界面:登入、返回);在用戶與管理員登入界面都可以進(jìn)行輸入正確的賬號(hào)與密碼進(jìn)行登入,不同的是用戶界面還有注冊(cè)的功能,用戶可以注冊(cè)自己的賬號(hào)進(jìn)行登入;用戶/管理員登入成功后進(jìn)入航班訂票界面/航班管理界面,(航班訂票界面:航班信息瀏覽、航班信息查詢、訂票、機(jī)票詳 情/退票、用戶信息修改),(航班管理界面:航班信息瀏覽、航班信息查詢、航班信息修改、用戶信息查詢、管理員信息修改),用戶/管理員選擇不同功能進(jìn)行具體的操作。(3)流程模塊框架圖:ChangeUserInformation(用戶詳情/

12、修改)ReturnTicket(機(jī)票詳情/退票)User(用戶)BookTicket(訂票)BrowseAirplane(航班信息瀏覽)Login(注冊(cè))Main(登入界面)FindAirpalne(航班信息查詢)Admin(管理員)ChangeAdminInformation(管理員信息修改)ModificationAirplane(航班信息修改)FindUser(用戶信息查詢)4. 結(jié)果與結(jié)論4.1抽象數(shù)據(jù)對(duì)象與數(shù)據(jù)存儲(chǔ)文件結(jié)構(gòu)1. 數(shù)據(jù)對(duì)象:(1) 航班對(duì)象package com.airplane.uiimport flash.display.MovieClip;public class

13、 AirplaneInformation extends MovieClipprivate var _id:String;/航班號(hào)private var _be:String;/起始站private var _ed:String;/終點(diǎn)站private var _date:String;/時(shí)間private var _amount:uint;/票數(shù)private var _price:Number;/價(jià)格private var _rebate:Number;/折扣public function AirplaneInformation(id:String="NUll",be:

14、String="NULL",ed:String="Null",date:String="NULL",amount:uint=0,price:Number=0,rebate:Number=0)/構(gòu)造函數(shù)構(gòu)造航班對(duì)象的內(nèi)部屬性_id=id;_be=be; _ed=ed;_date=date;_amount=amount;_price=price;_rebate=rebate;init();private function init():void/可視化界面顯示idtxt.text=_id;betxt.text=_be;edtxt.text

15、=_ed;datetxt.text=_date;amounttxt.text=String(_amount);/強(qiáng)制類型轉(zhuǎn)換pricetxt.text=String(_price); /強(qiáng)制類型轉(zhuǎn)換rebatetxt.text=String(_rebate); /強(qiáng)制類型轉(zhuǎn)換(2) 機(jī)票對(duì)象:(略)與航班對(duì)象相比少了_rebate(折扣)屬性,其他一致。(3) 用戶對(duì)象:不有具體類生成,其涉及的操作最多,由存儲(chǔ)的文件動(dòng)態(tài)生成。2. 數(shù)據(jù)存儲(chǔ)文件:(1) airplane.xml:<data>./前還有多條記錄<airplane><id>01</id&g

16、t;<be>北京</be><ed>南京</ed><date>星期一</date><price>1000</price><rebate>0.8</rebate><amount>5</amount></airplane>./后還有多條記錄</data>(2) userData.xml:<data>./前還有多條記錄<user><Id>admin</Id><key>12345

17、6</key><name>null</name><sex>null</sex><pId>null</pId><tell>null</tell><Email>null</Email><airplane>null</airplane></user> ./后還有多條記錄</data>4.2高頻語句模塊概括說明package ./包路徑import ./導(dǎo)入相應(yīng)的類;public class (類名) extends Spr

18、iteprivate var _something:Something;/屬性定義(事例);./略以下是高頻的語句:private var _windowsWidth:Number = stage.stageWidth;/獲取舞臺(tái)的寬;private var _windowsHeight:Number = stage.stageHeight;/獲取舞臺(tái)的高private var _myTween:Tween;/緩動(dòng)類,用于設(shè)置可視化原件的緩動(dòng)效果;private var _adminData:SharedObject;/管理員信息對(duì)象。private var _loader:Loader;/用

19、于加載其他swf文件(模塊);private var _xml:XML;/用于加載用戶數(shù)據(jù)。private var _xmlLoader:URLLoader;/用于加載用戶數(shù)據(jù)。./略public function (類名)()/構(gòu)造函數(shù)init();private function init():void.initAirplaneData();/初始化航班信息,加載用戶信息與管理員信息類似。initTest();/常見屬性說明. private function initTest()::oid._something.x=(值)/設(shè)置原件在舞臺(tái)的位置_something.y=(值)/設(shè)置原件在

20、舞臺(tái)的位置_something.alpha=0.5/設(shè)置原件的透明度0至1;_something.text="輸出文本顯示"/_something為動(dòng)態(tài)文本框時(shí)設(shè)置輸出文字;var str:String=_something.text;/_something.text為輸入文本框,傳入字符;_myTwenn=new Tween(_something,"設(shè)置緩動(dòng)的屬性(x/y/alpha.)",(效果),(起始狀態(tài)),(結(jié)束狀態(tài)),(持續(xù)時(shí)間),true);/Tween用于可視化原件緩動(dòng)效果的設(shè)置;.private function initAirplan

21、eData():void /打開本地儲(chǔ)存空間_airplaneData = SharedObject.getLocal("Airplane","/");if (_airplaneData.data.airplaneXmlData != null)/如果儲(chǔ)存的數(shù)據(jù)元件不為空,則加載存儲(chǔ)的數(shù)據(jù)。trace("不是空的!");_xml = XML(_airplaneData.data.airplaneXmlData);/對(duì)xml文件進(jìn)行初始化賦值;else/否則加載默認(rèn)的數(shù)據(jù)元件。_xmlLoader=newURLLoader(newURL

22、Request("com/airplane/data/airplaneData.xml");/加載默認(rèn)航班的信息文件xmlLoader.addEventListener(Event.COMPLETE,xmlLoader);/為_xmlLoader添加事件監(jiān)聽,當(dāng)期完全加載private function xmlLoader(event:Event):void_xml = XML(_xmlLoader.data);_airplaneData.data.airplaneXmlData = _xml;4.3核心模塊說明數(shù)據(jù)結(jié)構(gòu)有序表的應(yīng)用本設(shè)計(jì)的核心是對(duì)數(shù)據(jù)文件的操作,而數(shù)據(jù)在相

23、應(yīng)的xml文件中的存儲(chǔ)形式及為順序表,其涉及的操作都為順序表的基本操作:遍歷、查找、刪除、增添、插入等。(1) 航班信息瀏覽(順序表的遍歷):private function initAirplaneList():voidfor each (var _airplaneXml:XML in _xml.airplane)/在xml文件中遍歷每個(gè)airplane節(jié)點(diǎn),生成每個(gè)節(jié)點(diǎn)航班對(duì)應(yīng)的xml文件。var _airplane:AirplaneInformation = new AirplaneInformation(_airplaneXml.id,_airplaneXml.be,_airplane

24、Xml.ed,_airplaneXml.date,_airplaneXml.amount,_airplaneXml.price,_airplaneXml.rebate);/*利用每個(gè)航班的xml文件中航班的屬性生成一個(gè)航班實(shí)例。*/var i:uint = _airplaneXml.childIndex();/*i表示的就是每個(gè)航班信息在xml文件中順序表的索引*/_ = "p" + i;airplaneSprite.addChild(_airplane);/*在舞臺(tái)的空元件airplaneSprite中添加航班實(shí)例*/_airplane.y =

25、80 * (i + 0.5);/*設(shè)置航班實(shí)例在airplaneSprite中位置*/(2) 航班信息查詢(順序表的查詢):private function findWithSet(event:MouseEvent):void/*從輸入文本獲取相應(yīng)的屬性賦值*/_idString = MovieClip(chooseSprite.getChildAt(0).idtxt.text;/航班號(hào)_beString = MovieClip(chooseSprite.getChildAt(0).betxt.text;/起始站_edString = MovieClip(chooseSprite.getChi

26、ldAt(0).edtxt.text;/終點(diǎn)站_dateString = MovieClip(chooseSprite.getChildAt(0).datetxt.text;/日期var n:uint = 0;/*遍歷xml文件,生成每個(gè)航班信息對(duì)應(yīng)xml信息文件,在順序表中查找相應(yīng)的項(xiàng)*/for each (var _airplaneXml:XML in _xml.airplane)/*設(shè)置匹配三種鍵值查找*/*第一種匹配的鍵值為id(航班號(hào))*/if (_idString=String(_airplaneXml.id)/*如果輸入的航班號(hào)與順序表中的航班號(hào)相匹配則為查找成功*/var _a

27、irplane0:AirplaneInformation = new AirplaneInformation(_airplaneXml.id,_airplaneXml.be,_airplaneXml.ed,_airplaneXml.date,_airplaneXml.amount,_airplaneXml.price,_airplaneXml.rebate);_ = "p" + n;airplaneSprite.addChild(_airplane0);_airplane0.y = 80 * n;n+;_bool = true;/*第二種匹配鍵值

28、為:be(起始站)與ed(終點(diǎn)站)*/else if (_beString=String(_airplaneXml.be)&&_edString=String(_airplaneXml.ed)/*如果順序表中某節(jié)點(diǎn)與be、ed想匹配則為查找成功*/var _airplane1:AirplaneInformation = new AirplaneInformation(_airplaneXml.id,_airplaneXml.be,_airplaneXml.ed,_airplaneXml.date,_airplaneXml.amount,_airplaneXml.price,_a

29、irplaneXml.rebate);_ = "p" + n;airplaneSprite.addChild(_airplane1);_airplane1.y = 80 * n;n+;_bool = true;/*第三種匹配鍵值為:be(起始站)與ed(終點(diǎn)站)、date(日期)*/else if (_beString=String(_airplaneXml.be)&&(_edString=String(_airplaneXml.ed)&&(_dateString=String(_airplaneXml.date)

30、/*同上三項(xiàng)相匹配則查找成功*/var _airplane2:AirplaneInformation = new AirplaneInformation(_airplaneXml.id,_airplaneXml.be,_airplaneXml.ed,_airplaneXml.date,_airplaneXml.amount,_airplaneXml.price,_airplaneXml.rebate);_ = "p" + n;airplaneSprite.addChild(_airplane2);_airplane2.y = 80 * n;n+;

31、_bool = true;resultOrBack();(3) 航班信息修改(順序表的修改、刪除、增添):private function findSite(str:String):intvar i:int = 0;/*遍歷整個(gè)xml文件順序表,獲取符合條件航班信息在順序表中的索引,若不滿足則返回-1*/for each (var _airplaneXml:XML in _xml.airplane)/*i表順序表中每條航班的順序索引*/i = _airplaneXml.childIndex();if (str=String(_airplaneXml.id)/*滿足條件之則返回索引值*/retu

32、rn i;break;i=-1;return i;/否則返回-1;簡(jiǎn)潔描述航班那信息修改:private function change():voidvar n:uint=_xml.airplane.length();/獲取航班文件中航班信息的條數(shù),即順序表的長(zhǎng)度。if(var num:int=findSite(id)!=-1)/id是由動(dòng)態(tài)文本框輸入修改航班號(hào)delete _xml.airplanenum;/刪除目標(biāo)航班;_xml.airplanenum=newAirplaneXml;/修改目標(biāo)航班;_xml.airplanen=newAirplaneXml;/增添航班;.elsetrace

33、("未找到匹配項(xiàng)")(4) 用戶注冊(cè)(順序表操作):private function affirm(event:MouseEvent):voidPromit.alpha=1;/*從輸入文本框獲取相應(yīng)的屬性賦值*/var xmlLength:uint=_xml.user.length();var _id:String=String(loginSprite.Idtxt.text);var _key:String=String(loginSprite.keytxt.text);var _mkey:String=String(loginSprite.mkeytxt.text);va

34、r _name:String=String(loginStxt.text);var _sex:String=String(loginSprite.sextxt.text);var _pId:String=String(loginSprite.pIdtxt.text);var _tell:String=String(loginSprite.telltxt.text);var _Email:String=String(loginSprite.Emailtxt.text);/*生成新的用戶信息的xml文件*/var tempXml:XML=<data><user

35、><Id>_id</Id><key>_key</key><name>_name</name><sex>_sex</sex><pId>_pId</pId><tell>_tell</tell><Email>_Email</Email><airplane>null</airplane></user></data>var arrUser:Array=_id,_key,_mkey,_n

36、ame,_sex,_pId,_tell,_Email;/*如果新注冊(cè)的用戶滿足1.新注冊(cè)的賬號(hào)與密碼不與已有的賬號(hào)密碼相同、2.填寫項(xiàng)目完整、3.兩次密碼相同、才能注冊(cè)*/if(!(testID_key(_id,_key)|testNull(arrUser)|testKeys(_key,_mkey)_xml.userxmlLength=tempXml.user;_userData = SharedObject.getLocal("UserData","/");/打開存儲(chǔ)空間_userData.data.userXmlData=null;_userData

37、.data.userXmlData=_xml;/添加新注冊(cè)的用戶信息Promit.txt.text="注冊(cè)成功!"/*按鍵效果設(shè)置,與事件監(jiān)聽的移除*/affirmBtn.alpha=0.3;affirmBtn.buttonMode=false;affirmBtn.removeEventListener(MouseEvent.CLICK,affirm);_myTween=new Tween(Promit,"y",Strong.easeInOut,Promit.y,_windowsHeight/2,1,true);private function test

38、Null(arr:Array):Boolean/驗(yàn)證是否所有的信息都有填寫完整;var bool:Boolean=false;var n:uint=arr.length;for(var i:uint;i<n;i+)if(arri="")bool=true;Promit.txt.text="賬號(hào)信息填寫不完整,請(qǐng)從新確認(rèn)修改!"break;return bool;private function testID_key(id:String,key:String):Boolean/驗(yàn)證賬號(hào)是否已經(jīng)存在var bool:Boolean=false;/*遍歷

39、順序表,找出滿足與否*/for each(var _user:XML in _xml.user)if(id=String(_user.Id)&&key=String(_user.key)bool=true;Promit.txt.text="賬號(hào)已存在,請(qǐng)從新確認(rèn)修改!"break;return bool;private function testKeys(key:String,mkey:String):Boolean/驗(yàn)證兩次輸入的密碼是否一致;var bool:Boolean=false;if(key!=mkey)Promit.txt.text="

40、;兩次密碼不相同,請(qǐng)從新確認(rèn)修改!"bool=true;return bool;(5) 定票(推薦航班功能的實(shí)現(xiàn)):由輸入文本框出入預(yù)定的航班號(hào),如果在航班信息文件中遍歷找到相應(yīng)的航班且航班票數(shù)不為空,則將當(dāng)前的航班信息airplane賦值給當(dāng)前user.airplane,且airplane.amount-1,訂票成功!若預(yù)定的航班無票,則有相應(yīng)的航班推薦:. if (findNewAirplane != -1 && testAmount)trace("找到推薦航班");elsetrace("未找到推薦航班"); /當(dāng)前航班無票

41、時(shí)推薦航班,傳入原查找航班的起始站、終點(diǎn)站、還有航班號(hào)private function findNewAirplane(id:String,be:String,ed:String):intvar i:int = 0;/遍歷文件順序表,生成每個(gè)航班的信息for each (var _tempXml:XML in _airplaneXml.airplane)i = _tempXml.childIndex();/當(dāng)查找的航班滿足起始與終點(diǎn)站與原查找航班相同且航班號(hào)不同查找成功!if (be=String(_tempXml.be)&&(ed=String(_tempXml.ed)&am

42、p;&(id!=String(_tempXml.id)&&(uint(_tempXml.amount)!=0)return i;break;i=-1;return i;/判斷查找的航班的票數(shù)是否為零private function testAmount(num:int):Booleanvar bool:Boolean=true;if(int(_airplaneXml.airplanenum.amount)<=0)bool=false;return bool;訂票(6) 退票:與訂票類似,先判斷user.airplane是否為空,若不為空,取user.airplane.id為查找的鍵值,遍歷航班的信息文件若匹配其id,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論