飛機(jī)售票管理系統(tǒng)方案_第1頁
飛機(jī)售票管理系統(tǒng)方案_第2頁
飛機(jī)售票管理系統(tǒng)方案_第3頁
飛機(jī)售票管理系統(tǒng)方案_第4頁
飛機(jī)售票管理系統(tǒng)方案_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

飛機(jī)售票管理系統(tǒng)/飛機(jī)售票管理系統(tǒng)2016飛機(jī)售票管理系統(tǒng)2016第十小組XX大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2016/7/6小組成員陳小組成員陳斌E11314079陳柚霖E11314033劉昊霖E11314031程玉明E11314099雷穎E11314075目錄一、飛機(jī)售票管理系統(tǒng)的開發(fā)背景2二、飛機(jī)售票管理系統(tǒng)的可行性分析31.技術(shù)可行性分析32.操作可行性分析33.經(jīng)濟(jì)可行性分析34.法律可行性4三、飛機(jī)售票管理系統(tǒng)的需求分析41.任務(wù)概述42.設(shè)計(jì)及約束條件43.系統(tǒng)工作原理54.系統(tǒng)流程圖65.數(shù)據(jù)流圖76.數(shù)據(jù)字典與數(shù)據(jù)庫表107.性能要求158.運(yùn)行環(huán)境要求16四、飛機(jī)售票管理系統(tǒng)的系統(tǒng)設(shè)計(jì)171.系統(tǒng)總體設(shè)計(jì)172.系統(tǒng)的詳細(xì)設(shè)計(jì)18五、飛機(jī)售票管理系統(tǒng)的編碼311.程序設(shè)計(jì)語言和數(shù)據(jù)庫系統(tǒng)的選擇312.系統(tǒng)模塊的編碼實(shí)現(xiàn)32六、飛機(jī)售票管理系統(tǒng)的測(cè)試501.系統(tǒng)測(cè)試的概述502.系統(tǒng)的測(cè)試方法和步驟513.系統(tǒng)的測(cè)試過程53飛機(jī)售票管理系統(tǒng)的開發(fā)背景航空客運(yùn)業(yè)務(wù)誕生已有近一個(gè)世紀(jì)了,作為現(xiàn)有交通工具中最方便快捷的一種,它確確實(shí)實(shí)地給民眾的生活、出行帶來了極大的方便?;ヂ?lián)網(wǎng)、郵寄機(jī)票以及電子機(jī)票技術(shù)的發(fā)展正在改變航空公司的銷售業(yè)務(wù),使全世界的消費(fèi)者不出戶就可以買到機(jī)票。自九十年代以來,因特網(wǎng)技術(shù)的飛速發(fā)展正在迅速地改變著人們的生活方式,因特網(wǎng)正在由科學(xué)工作者的工具變?yōu)槠胀ò傩斋@取信息、進(jìn)行交流的場(chǎng)所,而因特網(wǎng)的商業(yè)應(yīng)用則尤為引人注目。航空公司在因特網(wǎng)上建立網(wǎng)上售票系統(tǒng)不僅方便了旅客,還節(jié)省了航空公司的代理費(fèi)用,加速了資金周轉(zhuǎn),這為售票成本居高不下的航空公司帶來了無限生機(jī)。隨著信息技術(shù)在管理上越來越深入而廣泛的應(yīng)用,管理信息系統(tǒng)的實(shí)施在技術(shù)上已逐步成熟。管理信息系統(tǒng)是一個(gè)不斷發(fā)展的新型科學(xué),任何一個(gè)單位要生存要發(fā)展,要高效率地把內(nèi)部活動(dòng)有機(jī)地組織起來,就必須建立起和自身特點(diǎn)相適應(yīng)的管理信息管理系統(tǒng)。航空售票系統(tǒng)將提供機(jī)票的艙位實(shí)時(shí)查詢、機(jī)票預(yù)定等功能,是拓展機(jī)票業(yè)務(wù)的最佳手段,能提高公司的工作效率、運(yùn)作成本。因而航空售票系統(tǒng)的開發(fā)應(yīng)用是勢(shì)在必行的了。計(jì)算機(jī)技術(shù)以突飛猛進(jìn)的速度滲透到各個(gè)領(lǐng)域,成為人們生活中不可缺少的一部分。迄今,我國(guó)的信息化建設(shè)已取得很大進(jìn)步,在這樣的環(huán)境下,航空信息化建設(shè)也向著嚴(yán)密、科學(xué)、完善的管理體系發(fā)展。機(jī)票預(yù)訂系統(tǒng)是一個(gè)很好的項(xiàng)目,不僅方便旅客,而且可以減輕工作人員的勞動(dòng)強(qiáng)度,提高工作效率和企業(yè)的知名度,提升企業(yè)的整體水平,增強(qiáng)企業(yè)核心競(jìng)爭(zhēng)力。隨著網(wǎng)絡(luò)的進(jìn)一步應(yīng)用,增加Internet訂票和人性化的服務(wù),為企業(yè)的決策提供強(qiáng)有的支持,讓旅客滿意,必將為社會(huì)的科技進(jìn)步帶來更大的社會(huì)性效益和經(jīng)濟(jì)效益。機(jī)票預(yù)訂系統(tǒng)主要有兩個(gè)特點(diǎn):一是品種豐富,選擇余地大。二是購(gòu)買方便,用戶不用親自去機(jī)場(chǎng)排隊(duì)買票,直接在軟件系統(tǒng)中就可以預(yù)訂購(gòu)買機(jī)票。本系統(tǒng)根據(jù)航空公司管理的實(shí)際要求,經(jīng)過實(shí)際的需求分析,采用C#作為編程語言,使用MicrosoftVisualStudio2015開發(fā)工具,以SqlServer2014做數(shù)據(jù)后臺(tái),對(duì)機(jī)票預(yù)定管理系統(tǒng)進(jìn)行開發(fā)。整個(gè)系統(tǒng)從符合操作簡(jiǎn)便,界面友好,靈活,實(shí)用,安全的要求出發(fā),完成了機(jī)票預(yù)定的全過程,包括機(jī)票信息管理,客戶信息管理,航線信息管理,系統(tǒng)管理等管理工作。飛機(jī)售票管理系統(tǒng)的可行性分析可行性是指開發(fā)一個(gè)新系統(tǒng)或者修改/升級(jí)一個(gè)舊系統(tǒng)將會(huì)對(duì)用戶帶來多少利益的一個(gè)度量,可行性分析是為了能夠用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否可解,可以為用戶方的決策者進(jìn)行下列決策提供依據(jù):按原計(jì)劃進(jìn)行,對(duì)項(xiàng)目進(jìn)行必要的調(diào)整或取消項(xiàng)目。技術(shù)可行性分析技術(shù)可行性就是從技術(shù)的角度出發(fā),分析研究所要開發(fā)項(xiàng)目的可行性。經(jīng)對(duì)現(xiàn)有網(wǎng)上機(jī)票的銷售和預(yù)訂的實(shí)際考察發(fā)現(xiàn),絕大多數(shù)的航空公司、網(wǎng)絡(luò)公司及酒店等機(jī)票銷售管理系統(tǒng)都已具備計(jì)算機(jī)軟硬件和網(wǎng)絡(luò)環(huán)境?,F(xiàn)有的網(wǎng)絡(luò)硬件及軟件的系統(tǒng)已經(jīng)完全可以滿足構(gòu)造這樣一個(gè)系統(tǒng)的實(shí)力。加上現(xiàn)在各種軟件開發(fā)IDE如MicrosoftVisualStudio以及數(shù)據(jù)庫軟件如MicrosoftSqlSever的幫助,使得系統(tǒng)開發(fā)更加便捷??傊?技術(shù)環(huán)境已滿足開發(fā)和使用的條件。操作可行性分析操作可行性,又稱社會(huì)可行性或運(yùn)行可行性,是對(duì)開發(fā)系統(tǒng)在一個(gè)給定的工作環(huán)境中能否運(yùn)行或運(yùn)行好壞程度的量度。本系統(tǒng)力求做到界面簡(jiǎn)潔美觀,方便用戶使用,用戶只需會(huì)簡(jiǎn)單的上機(jī)操作即可輕松快速地使用本系統(tǒng)。此外,本系統(tǒng)還將設(shè)計(jì)相關(guān)的幫助文檔與乘機(jī)指南,方便用戶查閱航班信息并進(jìn)行機(jī)票訂購(gòu)操作,如有特殊原因,也可進(jìn)行改簽退訂功能。經(jīng)濟(jì)可行性分析經(jīng)濟(jì)可行性是對(duì)將要開發(fā)的系統(tǒng)的成本效益進(jìn)行分析的一個(gè)度量。一個(gè)項(xiàng)目的開發(fā)成本、運(yùn)行費(fèi)用和收益這些經(jīng)濟(jì)因素決定了該系統(tǒng)是否值得的做,只有投資預(yù)計(jì)能帶來利潤(rùn)的系統(tǒng)才值得進(jìn)一步去考慮。該系統(tǒng)的開發(fā)使用的是已經(jīng)很成熟的技術(shù)和語言,系統(tǒng)的操作和維護(hù)都很簡(jiǎn)單和方便,這些都表明了該系統(tǒng)是一個(gè)低成本的系統(tǒng),該系統(tǒng)的運(yùn)行費(fèi)用很低,在運(yùn)營(yíng)中的成本波動(dòng)不大。在后期的運(yùn)營(yíng)中,經(jīng)濟(jì)效益主要的來源是網(wǎng)站廣告的投放??偟膩碚f,該系統(tǒng)具有經(jīng)濟(jì)上的可行性。飛機(jī)售票管理系統(tǒng)的開發(fā)是建立在計(jì)算機(jī)技術(shù)廣泛應(yīng)用和普及于社會(huì)各個(gè)行業(yè)的實(shí)際工作中,并能夠極大的減少航空公司、機(jī)票銷售點(diǎn)工作人員的工作壓力,降低售票開銷,簡(jiǎn)化售票流程,提高機(jī)票管理系統(tǒng)的效率和準(zhǔn)確性,規(guī)范旅客信息的管理。從長(zhǎng)遠(yuǎn)角度來看,此系統(tǒng)的投入會(huì)給航空公司帶來機(jī)票銷售信息統(tǒng)計(jì)完整化、數(shù)據(jù)處理智能化、經(jīng)濟(jì)預(yù)算科學(xué)化、業(yè)務(wù)處理高效化等一系列效益。另外本系統(tǒng)采用開發(fā)軟件均為開源免費(fèi),可大大降低開發(fā)成本,一旦項(xiàng)目完成投入使用,即可見效益。法律可行性所有開發(fā)軟件均采用開源免費(fèi)軟件,無版權(quán)糾紛。無違反國(guó)家法律相關(guān)規(guī)定。飛機(jī)售票管理系統(tǒng)的需求分析任務(wù)概述飛機(jī)訂票管理系統(tǒng),根據(jù)使用者來劃分可分為用戶、管理員兩類,用戶可以先以游客身份進(jìn)入系統(tǒng)進(jìn)行查詢機(jī)票操作,但欲購(gòu)票則需注冊(cè)登錄。用戶的基本功能有注冊(cè)、登陸、查詢〔航班查詢可以根據(jù)相應(yīng)的起始地與目的地信息進(jìn)行查詢,可以按最短時(shí)間以及最低價(jià)格排序、根據(jù)相應(yīng)的目的地信息查詢周邊推薦信息,使用戶旅途更為方便。管理員則是系統(tǒng)的大管家,主要是錄入基本的航空公司信息,飛機(jī)信息,座位信息,航班信息,價(jià)格信息,以及終點(diǎn)周邊推薦信息。從系統(tǒng)目的來說,系統(tǒng)的根本目標(biāo)是服務(wù)用戶,為用戶提供方便的購(gòu)票服務(wù),因此系統(tǒng)以用戶為核心,所有的工作以及人員都是圍繞用戶為用戶提供服務(wù)。設(shè)計(jì)及約束條件本系統(tǒng)面向的對(duì)象至少有兩個(gè):用戶和管理員。所以本系統(tǒng)有一個(gè)面向客戶的平臺(tái)和一個(gè)面向管理員的平臺(tái)——面向客戶,要有注冊(cè)、登錄、用戶信息管理、航班查詢、訂票、改簽、退票等服務(wù);面向管理員有登錄、錄入航班信息、更新航班信息、查詢用戶信息、查詢用戶訂單信息等服務(wù)。因此系統(tǒng)分為用戶和管理員兩個(gè)模塊。系統(tǒng)工作原理系統(tǒng)工作原理描述如下:注冊(cè)。新用戶注冊(cè)為會(huì)員,由用戶將填好的注冊(cè)信息表單提交到控制層,由控制層調(diào)用數(shù)據(jù)邏輯層操作數(shù)據(jù)庫,完成用戶的注冊(cè)。用戶登錄。此工作對(duì)用戶輸入的登錄信息進(jìn)行驗(yàn)證,判定用戶輸入的用戶名和密碼是否匹配,若不匹配則無權(quán)使用該系統(tǒng),反之則能合法使用系統(tǒng)。修改個(gè)人信息。此工作接受用戶對(duì)個(gè)人信息的查詢及修改。航班查詢。此工作主要是對(duì)數(shù)據(jù)庫中航班信息進(jìn)行查詢,顯示滿足用戶查詢條件的航班信息。訂票。用戶查詢到自己需要的航班信息后可進(jìn)行訂購(gòu)操作,在付款成功后,系統(tǒng)會(huì)將相關(guān)信息一并發(fā)送到機(jī)票訂購(gòu)模塊,經(jīng)過驗(yàn)證處理,將信息寫入訂單信息存儲(chǔ)。改簽。此工作接受用戶的改簽信息,根據(jù)用戶ID和預(yù)訂的航班號(hào),對(duì)滿足改簽條件的已預(yù)訂機(jī)票進(jìn)行改簽處理。退票。此工作接受用戶的退票信息,根據(jù)用戶ID和預(yù)訂的航班號(hào),對(duì)滿足退票條件的已預(yù)訂機(jī)票進(jìn)行退票處理。航班信息錄入。此工作接收由管理員錄入的航班信息,并將其導(dǎo)入數(shù)據(jù)庫進(jìn)行存儲(chǔ),供用戶查詢和預(yù)訂。航班信息更新。此工作接收管理員對(duì)某些需要更新的航班信息的更新操作,并修改存儲(chǔ)在數(shù)據(jù)庫中相關(guān)信息。特價(jià)機(jī)票設(shè)置。此工作接收管理員錄入的特價(jià)機(jī)票信息,并將其導(dǎo)入數(shù)據(jù)庫的特價(jià)機(jī)票存儲(chǔ)文件中進(jìn)行存儲(chǔ),顯示在用戶界面。訂單查詢。用戶可以查詢自己已完成的或未出行的訂單,管理員可以查看所有用戶的所有訂單。終點(diǎn)周邊推薦。此工作接收管理員錄入終點(diǎn)周邊美食、景點(diǎn)及酒店等相關(guān)信息,供用戶查詢,使用戶旅途更加便捷。系統(tǒng)流程圖飛機(jī)售票管理系統(tǒng),顧名思義,系統(tǒng)提供飛機(jī)票出售服務(wù)克方便用戶在系統(tǒng)上進(jìn)行飛機(jī)票的訂購(gòu)事務(wù),事務(wù)則泛指用戶的要求〔需求。訂票程序則是指針對(duì)用戶的需求所做出的相應(yīng)的處理包括查詢〔航班查詢、特價(jià)機(jī)票的設(shè)定、最短時(shí)間以及最低價(jià)格推薦、終點(diǎn)周邊推薦、登陸、注冊(cè)、選座、支付、退票與改簽。訂票信息文件則是數(shù)據(jù)庫,包括用戶個(gè)人中心信息、航班信息、飛機(jī)信息、價(jià)格信息、座位信息以及管理員錄入的終點(diǎn)的周邊推薦信息。訂票信息則是訂票程序的輸出數(shù)據(jù),再經(jīng)由訂票信息生成程序,形成用戶最終的訂票表〔即用戶訂票的信息。系統(tǒng)流程圖如圖1所示。圖SEQFigure\*ARABIC1系統(tǒng)流程圖數(shù)據(jù)流圖頂層數(shù)據(jù)流圖:第一層數(shù)據(jù)流圖:第二層數(shù)據(jù)流圖:用戶注冊(cè):航班信息查詢:數(shù)據(jù)字典與數(shù)據(jù)庫表數(shù)據(jù)字典用戶信息文件={用戶ID+用戶密碼+用戶姓名+用戶性別+用戶身份證+用戶電話+用戶賬戶}名字:用戶信息文件名字:用戶信息文件別名:無描述:記錄飛機(jī)售票管理系統(tǒng)中用戶的一些基本信息定義:用戶ID+用戶密碼+用戶姓名+用戶性別+用戶身份證+用戶電話+用戶賬戶位置:個(gè)人中心管理員信息文件={管理員ID+管理員密碼+管理員姓名+管理員性別}名字:名字:管理員信息文件別名:無描述:記錄飛機(jī)售票管理系統(tǒng)中管理員的一些基本信息定義:管理員信息表=管理員ID+管理員密碼+管理員姓名+管理員性別位置:顯示界面航空公司信息文件={公司ID+公司名+公司描述}名稱:航空公司信息文件名稱:航空公司信息文件別名:無描述:記錄航空公司基本信息定義:航空公司信息文件=公司ID+公司名+公司描述位置:顯示界面飛機(jī)信息文件={飛機(jī)ID+飛機(jī)型號(hào)+公司ID+座位等級(jí)+座位數(shù)量}名稱:飛機(jī)信息文件名稱:飛機(jī)信息文件別名:無描述:記錄飛機(jī)基本信息定義:飛機(jī)信息文件=飛機(jī)ID+飛機(jī)型號(hào)+公司ID+座位等級(jí)+座位數(shù)量位置:顯示界面機(jī)票信息文件={姓名+性別+管理員編號(hào)}名字:機(jī)票名字:機(jī)票信息文件別名:無描述:記錄機(jī)票的一些基本信息定義:機(jī)票信息表=機(jī)票號(hào)+用戶號(hào)+座位號(hào)位置:顯示界面座位信息文件={座位ID+座位等級(jí)+飛機(jī)ID+是否被選}名稱:座位信息文件名稱:座位信息文件別名:無描述:記錄飛機(jī)中座位的基本信息定義:座位信息文件=座位ID+座位等級(jí)+飛機(jī)ID+是否被選位置:顯示界面航班信息文件={航班ID+飛機(jī)ID+始發(fā)地+終點(diǎn)站+出發(fā)日期+起飛時(shí)間+飛行時(shí)間+是否特價(jià)}名字:航班名字:航班信息文件別名:無描述:記錄飛機(jī)售票管理系統(tǒng)中航班的一些基本信息定義:航班ID+飛機(jī)ID+始發(fā)地+終點(diǎn)站+出發(fā)日期+起飛時(shí)間+飛行時(shí)間+是否特價(jià)位置:顯示界面航班價(jià)格信息文件={航班ID+座位等級(jí)+價(jià)格}名稱:價(jià)格信息文件名稱:價(jià)格信息文件別名:無描述:記錄飛機(jī)中座位價(jià)格基本信息定義:價(jià)格信息文件=航班ID+座位等級(jí)+價(jià)格位置:顯示界面訂單信息文件={訂單ID+航班ID+飛機(jī)ID+座位ID+用戶ID}名字:改簽信息文件名字:改簽信息文件別名:無描述:記錄機(jī)票訂單的一些基本信息定義:訂單信息表=訂單ID+航班ID+飛機(jī)ID+座位ID+用戶ID位置:顯示界面數(shù)據(jù)庫表用戶信息表字段名描述數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵Userid用戶IDvarchar16否主鍵Userpwd用戶密碼varchar16否Username用戶姓名varchar8否Usersex用戶性別varchar2Useridnum用戶身份證varchar18否Usertel用戶電話varchar11否Usermoney用戶賬戶float否管理員信息表字段名描述數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵Adminid管理員IDvarchar8否主鍵Adminpwd管理員密碼varchar16否Adminname管理員姓名varchar8否Adminsex管理員性別varchar2航空公司信息表字段名描述數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵Aid公司IDvarchar8否主鍵Aname公司名varchar16否Ades公司描述varchar1000飛機(jī)信息表字段名描述數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵Aircraftid飛機(jī)IDvarchar8否主鍵Aircraftmodle飛機(jī)型號(hào)varchar8否Aid公司IDvarchar16否外鍵Sitlevel座位等級(jí)varchar8否Sitnum座位數(shù)量int否座位信息表字段名描述數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵Sitid座位IDvarchar8否主鍵Sitlevel座位等級(jí)varchar8否Aircraftid飛機(jī)IDvarchar8flag是否被選int航班信息表字段名描述數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵Fid航班IDvarchar16否主鍵Aircraftid飛機(jī)IDvarchar16否外鍵Fstart始發(fā)地varchar16否Fend終點(diǎn)站varchar16否Fstartdate出發(fā)日期date否Fstarttime起飛時(shí)間varchar16否Ftime飛行時(shí)間int否Fbudgetticket是否特價(jià)varchar2航班價(jià)格信息表字段名描述數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵Fid航班IDvarchar8否主鍵Sitlevel座位等級(jí)varchar8否主鍵price價(jià)格float2否訂單信息表字段名描述數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵Tid訂單IDint否主鍵Fid航班IDvarchar8否外鍵Aircraftid飛機(jī)IDvarchar8否外鍵Sitid座位IDvarchar8否外鍵Userid用戶IDvarchar8否外鍵性能要求精度系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能。在系統(tǒng)設(shè)計(jì)和開發(fā)過程中,要充分考慮系統(tǒng)當(dāng)前和將來可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時(shí)間能夠滿足企業(yè)對(duì)信息處理的需求。由于機(jī)票預(yù)定管理系統(tǒng)的查詢功能對(duì)于整個(gè)系統(tǒng)的功能和性能完成舉足輕重。作為系統(tǒng)的很多數(shù)據(jù)來源,而機(jī)票數(shù)量和時(shí)間又影響企業(yè)的決策活動(dòng),其準(zhǔn)確性很大程度上決定了機(jī)票預(yù)定系統(tǒng)的成敗。在系統(tǒng)開發(fā)過程中,必須采用一定的方法保證系統(tǒng)的準(zhǔn)確性。時(shí)間特性要求機(jī)票預(yù)定系統(tǒng)在日常處理中的響應(yīng)速度為秒級(jí),達(dá)到實(shí)時(shí)要求,以及時(shí)反饋信息。在進(jìn)行統(tǒng)計(jì)分析時(shí),根據(jù)所需數(shù)據(jù)量的不同而從秒級(jí)到分鐘級(jí),原則是保證操作人員不會(huì)因?yàn)樗俣葐栴}而影響工作效率。故障處理要求機(jī)票預(yù)定系統(tǒng)是直接面對(duì)使用人員的,而使用人員往往對(duì)計(jì)算機(jī)并不是非常熟悉。這就要求系統(tǒng)能夠提供良好的用戶接口,易用的人機(jī)交互界面。要實(shí)現(xiàn)這一點(diǎn),就要求系統(tǒng)應(yīng)該盡量使用用戶熟悉的術(shù)語和中文信息的界面;針對(duì)用戶可能出現(xiàn)的使用問題,要提供足夠的在線幫助,縮短用戶對(duì)系統(tǒng)熟悉的過程。機(jī)票預(yù)定系統(tǒng)中涉及到的數(shù)據(jù)是航空公司的相當(dāng)重要的信息,系統(tǒng)要提供方便的手段供系統(tǒng)維護(hù)人員進(jìn)行數(shù)據(jù)的備份,日常的安全管理,系統(tǒng)意外崩潰數(shù)據(jù)的恢復(fù)等工作。其他專門要求機(jī)票預(yù)定管理系統(tǒng)在開發(fā)過程中,應(yīng)該充分考慮以后的可擴(kuò)充性。例如訂票系統(tǒng)的方式的改變,用戶查詢的需求也會(huì)不斷的更新和完善。所有這些,都要求系統(tǒng)提供足夠的手段進(jìn)行功能的調(diào)整和擴(kuò)充。而要實(shí)現(xiàn)這一點(diǎn),應(yīng)通過系統(tǒng)的開放性來完成,既系統(tǒng)應(yīng)是一個(gè)開放系統(tǒng),只要符合一定的規(guī)范,可以加入和減少系統(tǒng)的模塊,配置系統(tǒng)的硬件。通過軟件的修補(bǔ)、替換完成系統(tǒng)的升級(jí)和更新?lián)Q代。運(yùn)行環(huán)境要求硬件需求PIII800或更高檔次微機(jī)或筆記本電腦內(nèi)存至少128MB或以上方能保證運(yùn)行正常硬盤1G或以上可用儲(chǔ)存空間軟件需求操作系統(tǒng):Windows10IDE:MicrosoftVisualStudio2015數(shù)據(jù)庫系統(tǒng):SQLServer2014飛機(jī)售票管理系統(tǒng)的系統(tǒng)設(shè)計(jì)系統(tǒng)總體設(shè)計(jì)機(jī)票預(yù)訂管理系統(tǒng)的軟件結(jié)構(gòu)圖機(jī)票預(yù)訂管理系統(tǒng)的系統(tǒng)結(jié)構(gòu)圖系統(tǒng)的詳細(xì)設(shè)計(jì)用戶注冊(cè)模塊1用戶注冊(cè)模塊功能與局限功能:用戶通過注冊(cè)獲得能夠使用系統(tǒng)功能的賬號(hào)局限:用戶輸入基本信息進(jìn)行注冊(cè)時(shí),身份證號(hào)必須滿足18位,手機(jī)號(hào)必須滿足11位,用戶密碼必須介于6—16位。"輸入":注冊(cè)時(shí)需要輸入用戶基本信息:用戶ID、用戶密碼、用戶性別、用戶身份證、用戶電話、用戶賬戶。"處理":注冊(cè)階段是將用戶輸入的用戶基本信息錄入到數(shù)據(jù)庫的用戶信息表中,使其輸入的用戶名有效。"輸出":注冊(cè)結(jié)束后輸出用戶的注冊(cè)結(jié)果〔成功、失敗2用戶注冊(cè)模塊PAD圖3用戶注冊(cè)模塊的交互界面查詢機(jī)票與機(jī)票訂購(gòu)模塊1查詢機(jī)票與機(jī)票訂購(gòu)模塊的功能與局限功能:用戶登錄注冊(cè)的用戶名后進(jìn)行查詢機(jī)票功能,用戶輸入相關(guān)信息后點(diǎn)擊查詢按鈕,則系統(tǒng)自行導(dǎo)出符合用戶要求的機(jī)票進(jìn)入機(jī)票訂購(gòu)模塊,用戶訂購(gòu)心儀的機(jī)票〔航班、座位,用戶通過虛擬充值功能進(jìn)行充值,然后進(jìn)行機(jī)票的支付操作。最后根據(jù)用戶的購(gòu)票信息生成用戶訂單并存儲(chǔ)到數(shù)據(jù)庫中。局限:用戶購(gòu)票只能在用戶已經(jīng)登陸后才能進(jìn)行,目前只能自己購(gòu)票,不能幫別人購(gòu)票"輸入":①機(jī)票查詢:用戶輸入要求〔出發(fā)城市、到達(dá)城市、出發(fā)時(shí)間②機(jī)票訂購(gòu):用戶選擇心儀的航班號(hào)和座位號(hào)③機(jī)票支付:用戶輸入需要充值的金額"處理":①機(jī)票查詢:系統(tǒng)查找數(shù)據(jù)庫中符合用戶輸入要求的信息②機(jī)票訂購(gòu):系統(tǒng)生成用戶訂單并存儲(chǔ)到數(shù)據(jù)庫中③機(jī)票支付:根據(jù)用戶輸入的充值金額更新數(shù)據(jù)庫的相關(guān)數(shù)據(jù)并進(jìn)行機(jī)票購(gòu)買操作"輸出":①機(jī)票查詢:輸出符合用戶要求的航班信息②機(jī)票訂購(gòu):輸出訂購(gòu)信息結(jié)果〔成功、失敗③機(jī)票支付:輸出支付信息結(jié)果〔成功、失敗查詢機(jī)票與機(jī)票訂購(gòu)模塊的PAD圖查詢機(jī)票與機(jī)票訂購(gòu)模塊的交互界面?zhèn)€人中心模塊1個(gè)人中心模塊的功能與局限功能:用戶登陸注冊(cè)的用戶名、用戶修改用戶密碼、用戶探索所選機(jī)票終點(diǎn)城市的美食、景點(diǎn)和酒店信息。局限:用戶探索所選機(jī)票終點(diǎn)城市的美食、景點(diǎn)和酒店信息僅有三條信息。"輸入":①用戶登陸:用戶輸入登錄信息〔用戶名與密碼②用戶修改密碼:用戶輸入修改密碼時(shí)的信息③用戶發(fā)現(xiàn):選擇已有終點(diǎn)城市、選擇美食、景點(diǎn)或者酒店按鈕"處理":①用戶登陸:查找數(shù)據(jù)庫與之匹配的用戶名②用戶修改密碼:根據(jù)用戶修改的密碼信息更新數(shù)據(jù)庫相關(guān)信息③用戶發(fā)現(xiàn):根據(jù)用戶輸入的終點(diǎn)信息及所選的服務(wù)查找數(shù)據(jù)庫中符合條件的相關(guān)信息"輸出":①用戶登錄:輸出用戶登錄信息結(jié)果〔成功、失?、谟脩粜薷拿艽a:輸出用戶修改密碼信息結(jié)果〔成功、失?、塾脩舭l(fā)現(xiàn):輸出發(fā)現(xiàn)信息結(jié)果〔成功、失敗2個(gè)人中心模塊的PAD圖個(gè)人中心模塊的交互界面管理員操作模塊1管理員操作模塊的功能與局限功能:進(jìn)行航空公司信息、飛機(jī)信息、座位信息、航班信息、航班價(jià)格信息、終點(diǎn)周邊推薦信息的錄入及查詢所有完成訂單的信息及更新航班的相關(guān)信息〔是否特價(jià)及價(jià)格變動(dòng)。局限:錄入信息存在冗余、錄入相關(guān)文檔必須滿足一定的格式"輸入":①信息導(dǎo)入:輸入要導(dǎo)入的信息〔在相關(guān)文檔中批量輸入及在系統(tǒng)中單條輸入②更新訂單:輸入要修改的操作③查詢訂單:選擇導(dǎo)入所有訂單信息的按鈕或者輸入用戶身份證進(jìn)行查詢操作"處理":①信息導(dǎo)入:根據(jù)管理員的輸入的需要導(dǎo)入的信息,更新數(shù)據(jù)庫的相關(guān)信息并進(jìn)行存儲(chǔ)②更新訂單:根據(jù)管理員的輸入的修改信息,更新數(shù)據(jù)庫的相關(guān)信息并進(jìn)行存儲(chǔ)③查詢訂單:查找數(shù)據(jù)庫中符合條件的訂單信息"輸出":①信息導(dǎo)入:輸出導(dǎo)入信息結(jié)果〔成功/失敗和是否清除表格②更新訂單:輸出更新信息結(jié)果〔成功/失?、鄄樵冇唵危狠敵霾樵冃畔⒔Y(jié)果管理員操作模塊的PAD圖管理員操作模塊的交互界面機(jī)票改簽與退訂模塊1機(jī)票改簽與退訂模塊的功能與局限功能:根據(jù)用戶需求進(jìn)行機(jī)票改簽與退訂功能,退訂和改簽會(huì)加收20%手續(xù)費(fèi), 由系統(tǒng)自行計(jì)算手續(xù)費(fèi),由用戶決定是否退票局限:改簽與退票功能界限不夠明確,改簽必須先退票后在進(jìn)行查詢功能"輸入":根據(jù)交互界面,進(jìn)行相應(yīng)的改簽或退票選擇"處理":退票改簽之后更新數(shù)據(jù)庫相應(yīng)的信息"輸出":進(jìn)入機(jī)票查詢模塊重新購(gòu)票2機(jī)票改簽與退訂模塊的PAD圖機(jī)票改簽與退訂模塊的交互界面飛機(jī)售票管理系統(tǒng)的編碼程序設(shè)計(jì)語言和數(shù)據(jù)庫系統(tǒng)的選擇程序設(shè)計(jì)語言本系統(tǒng)采用C#面向?qū)ο蟪绦蛟O(shè)計(jì)語言。C#是一種安全的、穩(wěn)定的、簡(jiǎn)單的、優(yōu)雅的,由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C++強(qiáng)大功能的同時(shí)去掉了一些它們的復(fù)雜特性〔例如沒有宏和模版,不允許多重繼承。C#綜合了VB簡(jiǎn)單的可視化操作和C++的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言。并且C#成為ECMA與ISO標(biāo)準(zhǔn)規(guī)范。C#看似基于C++寫成,但又融入其它語言如Pascal、Java、VB等。C#是一種最新的、面向?qū)ο蟮木幊陶Z言。它使得程序員可以快速地編寫各種基于Microsoft.NET平臺(tái)的應(yīng)用程序,Microsoft.NET提供了一系列的工具和服務(wù)來最大程度地開發(fā)利用計(jì)算與通訊領(lǐng)域。正是由于C#面向?qū)ο蟮淖吭皆O(shè)計(jì),使它成為構(gòu)建各類組件的理想之選——無論是高級(jí)的商業(yè)對(duì)象還是系統(tǒng)級(jí)的應(yīng)用程序。使用簡(jiǎn)單的C#語言結(jié)構(gòu),這些組件可以方便的轉(zhuǎn)化為XML網(wǎng)絡(luò)服務(wù),從而使它們可以由任何語言在任何操作系統(tǒng)上通過Internet進(jìn)行調(diào)用。最重要的是,C#使得C++程序員可以高效的開發(fā)程序,而絕不損失C/C++原有的強(qiáng)大的功能。因?yàn)檫@種繼承關(guān)系,C#與C/C++具有極大的相似性,熟悉類似語言的開發(fā)者可以很快的轉(zhuǎn)向C#。數(shù)據(jù)庫系統(tǒng)本系統(tǒng)使用SqlServer數(shù)據(jù)庫系統(tǒng)。SQLServer是Microsoft公司推出的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行MicrosoftWindows98的膝上型電腦到運(yùn)行MicrosoftWindows2012的大型多處理器的服務(wù)器等多種平臺(tái)使用。MicrosoftSQLServer是一個(gè)全面的數(shù)據(jù)庫平臺(tái),使用集成的商業(yè)智能<BI>工具提供了企業(yè)級(jí)的數(shù)據(jù)管理。MicrosoftSQLServer數(shù)據(jù)庫引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲(chǔ)功能,使您可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。系統(tǒng)模塊的編碼實(shí)現(xiàn)注冊(cè)模塊代碼解釋:注冊(cè)模塊,首先新建注冊(cè)界面,提示用戶輸入相關(guān)信息,將用戶輸入的信息讀入程序變量,檢查用戶輸入信息的合法性,包括檢查用戶密碼的位數(shù),必須大于等于6位,且不允許大于16位,用戶確認(rèn)密碼必須與之前輸入的密碼一致,身份證號(hào)碼必須是18位,手機(jī)號(hào)碼為11位,如果有一項(xiàng)不符合要求,提示用戶重新輸入相關(guān)信息,之后與數(shù)據(jù)庫建立連接,在將用戶輸入的注冊(cè)信息錄入到數(shù)據(jù)庫之前先檢查用戶名是否已被注冊(cè),如果已被注冊(cè)提示用戶重新選擇用戶名,否則將用戶輸入的注冊(cè)信息錄入到數(shù)據(jù)庫中。模塊代碼:privatevoidbtnRegisterNow_Click<objectsender,EventArgse>{stringusername=txtUserName.Text.Trim<>;//用戶名stringpassword=txtUserPassword.Text.Trim<>;//用戶密碼stringconfirmpwd=txtConfirmPassword.Text.Trim<>;//確認(rèn)密碼stringname=txtName.Text.Trim<>;//用戶姓名stringuserid=txtID.Text.Trim<>;//用戶身份證號(hào)stringusertel=txttel.Text.Trim<>;//用戶手機(jī)stringusersex=comboxsex.Text.Trim<>;//用戶性別if<password!=confirmpwd>{MessageBox.Show<"密碼不一致,請(qǐng)重新輸入","提示">;return;}if<username==""||password==""||confirmpwd==""||name==""||userid==""||usertel==""||usersex=="">{MessageBox.Show<"請(qǐng)輸入完整信息","提示">;return;}if<password.Length>16>{MessageBox.Show<"密碼長(zhǎng)度大于16,請(qǐng)重新輸入","提示">;return;}if<password.Length<6>{MessageBox.Show<"密碼長(zhǎng)度小于6,請(qǐng)重新輸入","提示">;return;}if<userid.Length!=18>{MessageBox.Show<"身份證號(hào)碼應(yīng)為18位,請(qǐng)重新輸入","提示">;return;}if<usertel.Length!=11>{MessageBox.Show<"手機(jī)號(hào)碼應(yīng)為11位,請(qǐng)重新輸入","提示">;return;}//通過客戶端應(yīng)用程序連接數(shù)據(jù)庫using<SqlConnectioncon=newSqlConnection<strCon>>{try{con.Open<>;//查找數(shù)據(jù)庫該用戶名是否已被注冊(cè)stringsql;sql="select*fromUserswhereUserid=@uname";using<SqlCommandcmd=newSqlCommand<sql,con>>{cmd.Parameters.AddWithValue<"@uname",username>;using<SqlDataReaderreader=cmd.ExecuteReader<>>{if<reader.HasRows>{MessageBox.Show<"該用戶名已被注冊(cè)">;return;}}}//向數(shù)據(jù)庫中插入相關(guān)信息sql="insertintoUsers<Userid,Userpwd,Username,Usersex,Useridnum,Usertel,Usermoney>values<@uname,@upwd,@name,@usersex,@userid,@usertel,0.0>";using<SqlCommandcmd=newSqlCommand<sql,con>>{SqlParameters1=newSqlParameter<"@uname",username>;SqlParameters2=newSqlParameter<"@upwd",password>;SqlParameters3=newSqlParameter<"@name",name>;SqlParameters4=newSqlParameter<"@usersex",usersex>;SqlParameters5=newSqlParameter<"@userid",userid>;SqlParameters6=newSqlParameter<"@usertel",usertel>;cmd.Parameters.Add<s1>;cmd.Parameters.Add<s2>;cmd.Parameters.Add<s3>;cmd.Parameters.Add<s4>;cmd.Parameters.Add<s5>;cmd.Parameters.Add<s6>;intcount=cmd.ExecuteNonQuery<>;if<count>0>{DialogResultdiares=MessageBox.Show<"注冊(cè)成功!一定要記住自己的密碼呦^_^","恭喜您",MessageBoxButtons.OK>;if<diares==DialogResult.OK>{this.Close<>;}}else{MessageBox.Show<"注冊(cè)失??!","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning>;return;}}}catch<Exceptionex>{MessageBox.Show<ex.Message>;}}}登錄模塊代碼解釋: 用戶點(diǎn)擊登錄按鈕,先檢查用戶是否輸入了用戶名和密碼,如果沒有輸入,提示用戶輸入相關(guān)信息,之后檢查用戶是否選擇登錄身份〔用戶或管理員,如果沒有則提示用戶先選擇登錄身份,再之后連接數(shù)據(jù)庫,檢查數(shù)據(jù)庫中是否存在該用戶或管理員賬號(hào),以及密碼是否正確,如果正確則進(jìn)入系統(tǒng),否則提示用戶用戶名或密碼錯(cuò)誤。用戶可以選擇是否記住密碼,如果選擇記住密碼,則將用戶的用戶名和密碼存儲(chǔ)到數(shù)據(jù)庫的另一張表中,下一次登錄前,加載登錄界面時(shí),輸入用戶名的下拉框中會(huì)顯示記住密碼的用戶賬號(hào),選擇該賬號(hào),密碼自動(dòng)填充〔類似QQ記住密碼功能。模塊代碼://用來檢查用戶是否在文本框中輸入數(shù)據(jù)privateboolCheckTxt<>{boolb=true;if<comboBox1.Text.Trim<>.Length==0>{b=false;}if<textBox2.Text.Length==0>{b=false;}returnb;}//判斷用戶名和密碼是否正確privateboolIsLogin<stringname,stringpwd,inttype>{boolb=false;using<SqlConnectioncon=newSqlConnection<strCon>>{stringsql;if<type==1>sql="selectcount<*>fromUserswhereUserid=@nameandUserpwd=@pwd";elsesql="selectcount<*>fromAdminswhereAdminid=@nameandAdminpwd=@pwd";using<SqlCommandcmd=newSqlCommand<sql,con>>{try{con.Open<>;//給sql中的參數(shù)賦值SqlParameters1=newSqlParameter<"@name",name>;SqlParameters2=newSqlParameter<"@pwd",pwd>;cmd.Parameters.Add<s1>;cmd.Parameters.Add<s2>;intn=Convert.ToInt32<cmd.ExecuteScalar<>>;if<n>0>b=true;}catch<Exceptionex>{MessageBox.Show<ex.Message>;connectDatabase=false;}}}returnb;}//加載記住密碼的用戶名〔從數(shù)據(jù)庫中查詢已記住密碼的用戶名并添加到用戶名下拉框中privatevoidLoad_name<>{using<SqlConnectioncon=newSqlConnection<strCon>>{stringsql="select*fromUsernameid";using<SqlCommandcom=newSqlCommand<sql,con>>{try{con.Open<>;using<SqlDataReaderreader=com.ExecuteReader<>>{while<reader.Read<>>{Usernameandpwdnameid=newUsernameandpwd<>;nameid.id=Convert.ToInt32<reader["userid"]>;=Convert.ToString<reader["username"]>;nameid.pwd=Convert.ToString<reader["userpwd"]>;comboBox1.Items.Add<nameid>;}}}catch<Exceptionex>{MessageBox.Show<ex.Message>;}}}}//記住用戶名及密碼privatevoidmemory<>{//如果選中記住密碼,并且用戶名及密碼正確,則將用戶信息寫入數(shù)據(jù)庫if<checkBox1.Checked>{intflag=0;//標(biāo)示此用戶名是否已經(jīng)保存密碼stringname=comboBox1.Text.ToString<>;stringpwd=textBox2.Text.ToString<>;using<SqlConnectioncon=newSqlConnection<strCon>>{stringsql="select*fromUsernameidwhereusername=@name";using<SqlCommandcom=newSqlCommand<sql,con>>{try{con.Open<>;com.Parameters.AddWithValue<"@name",name>;using<SqlDataReaderreader=com.ExecuteReader<>>{if<reader.HasRows>flag=1;}}catch<Exceptionex>{MessageBox.Show<ex.Message>;}}if<flag==0>//數(shù)據(jù)庫中沒有此用戶相關(guān)信息{sql="insertintoUsernameid<username,userpwd>values<@name,@pwd>";using<SqlCommandcom=newSqlCommand<sql,con>>{try{com.Parameters.AddWithValue<"@name",name>;com.Parameters.AddWithValue<"@pwd",pwd>;com.ExecuteNonQuery<>;}catch<Exceptionex>{MessageBox.Show<ex.Message>;}}}else//數(shù)據(jù)庫中已有其相關(guān)信息{sql="updateUsernameidsetuserpwd=@pwdwhereusername=@name";using<SqlCommandcom=newSqlCommand<sql,con>>{try{com.Parameters.AddWithValue<"@name",name>;com.Parameters.AddWithValue<"@pwd",pwd>;com.ExecuteNonQuery<>;}catch<Exceptionex>{MessageBox.Show<ex.Message>;}}}}}}查詢購(gòu)票模塊代碼解釋:首先檢查用戶是否選擇出發(fā)地和目的地及出發(fā)日期,再檢查出發(fā)地和目的地是否相同,如果沒有選擇出發(fā)地或目的地或出發(fā)日期,或者出發(fā)地和目的地一致則提示用戶重新選擇,然后連接數(shù)據(jù)庫,查詢相關(guān)航班,如果有相關(guān)航班信息則顯示給用戶,否則提示用戶不存在該航班信息。如果有該航班信息,用戶可點(diǎn)擊確認(rèn)購(gòu)票按鈕,之后將選擇座位界面顯示給用戶,用戶在選擇的座位號(hào)后點(diǎn)擊購(gòu)票按鈕后,將顯示支付界面,支付界面首先顯示該航班的基本信息,之后需要用戶進(jìn)行乘客信息確認(rèn),點(diǎn)擊確認(rèn)信息時(shí),會(huì)檢查用戶賬戶余額,并與所購(gòu)機(jī)票的價(jià)格進(jìn)行比較,如果余額不足,則提示用戶是否需要進(jìn)行充值,用戶點(diǎn)擊確定進(jìn)入充值界面對(duì)賬戶進(jìn)行充值,之后再次點(diǎn)擊確認(rèn)乘客信息,如果充值足夠即可購(gòu)票。模塊代碼://查詢航班信息voidselectFlight<stringsql>{if<comboBox1.Text==""||comboBox2.Text=="">{MessageBox.Show<"起始地與目的地不可為空?。?!">;return;}if<comboBox2.Text==comboBox1.Text>{MessageBox.Show<"起始地與目的地不可相同!??!">;return;}stringstart=comboBox1.Text.Trim<>;//出發(fā)地stringdes=comboBox2.Text.Trim<>;//目的地stringtime=datetime.Value.ToString<>;//出發(fā)日期//出發(fā)日期格式轉(zhuǎn)換string[]s=time.Split<''>;string[]s2=s[0].Split<'/'>;if<s2[1].Length==1>{s2[1]='0'+s2[1];}if<s2[2].Length==1>{s2[2]='0'+s2[2];}time=s2[0]+'-'+s2[1]+'-'+s2[2];//查詢相關(guān)航班信息using<SqlConnectioncon=newSqlConnection<strCon>>{try{con.Open<>;dgvflight.Rows.Clear<>;using<SqlCommandcmd=newSqlCommand<sql,con>>{cmd.Parameters.AddWithValue<"@start",start>;cmd.Parameters.AddWithValue<"@des",des>;cmd.Parameters.AddWithValue<"@time",time>;using<SqlDataReaderreader=cmd.ExecuteReader<>>{if<!reader.HasRows>{MessageBox.Show<"抱歉,沒有找到您查詢的航班~","提示">;return;}//有該航班則顯示相關(guān)航班信息while<reader.Read<>>{intindex=dgvflight.Rows.Add<>;dgvflight.Rows[index].Cells[0].Value=reader["Fid"].ToString<>;dgvflight.Rows[index].Cells[1].Value=reader["Aircraftid"].ToString<>;dgvflight.Rows[index].Cells[2].Value=reader["Fstart"].ToString<>;dgvflight.Rows[index].Cells[3].Value=reader["Fend"].ToString<>;dgvflight.Rows[index].Cells[4].Value=Convert.ToDateTime<reader["Fstartdate"]>.ToShortDateString<>;dgvflight.Rows[index].Cells[5].Value=reader["Fstarttime"].ToString<>;dgvflight.Rows[index].Cells[6].Value=reader["Ftime"].ToString<>;dgvflight.Rows[index].Cells[7].Value=reader["Sitlevel"].ToString<>;dgvflight.Rows[index].Cells[8].Value=reader["price"].ToString<>;}}}}catch<Exceptionex>{MessageBox.Show<ex.Message>;}}}//加載界面顯示所選航班的座位信息供用戶選擇privatevoid選擇座位_Load<objectsender,EventArgse>{using<SqlConnectioncon=newSqlConnection<strCon>>{try{con.Open<>;stringsql="select*fromselect_sitwhereFid=@FidandSitlevel=@Sitlevelandflag=0orderbySitid";using<SqlCommandcmd=newSqlCommand<sql,con>>{cmd.Parameters.AddWithValue<"@Fid",Fid>;cmd.Parameters.AddWithValue<"@Sitlevel",SitLevel>;//顯示座位信息以供用戶選擇using<SqlDataReaderreader=cmd.ExecuteReader<>>{if<!reader.HasRows>{MessageBox.Show<"抱歉,您選擇的航班已經(jīng)沒有座位了","提示">;return;}while<reader.Read<>>{intindex=dgvflight.Rows.Add<>;dgvflight.Rows[index].Cells[0].Value=reader["Fid"].ToString<>;dgvflight.Rows[index].Cells[1].Value=reader["Aircraftid"].ToString<>;dgvflight.Rows[index].Cells[2].Value=reader["Fstart"].ToString<>;dgvflight.Rows[index].Cells[3].Value=reader["Fend"].ToString<>;dgvflight.Rows[index].Cells[4].Value=Convert.ToDateTime<reader["Fstartdate"]>.ToShortDateString<>;dgvflight.Rows[index].Cells[5].Value=reader["Fstarttime"].ToString<>;dgvflight.Rows[index].Cells[6].Value=reader["Ftime"].ToString<>;dgvflight.Rows[index].Cells[7].Value=reader["Sitlevel"].ToString<>;dgvflight.Rows[index].Cells[8].Value=reader["Sitid"].ToString<>;dgvflight.Rows[index].Cells[9].Value=reader["price"].ToString<>;}}}}catch<Exceptionex>{MessageBox.Show<ex.Message>;}}}//加載支付界面時(shí)顯示航班基本信息privatevoid支付_Load<objectsender,EventArgse>{using<SqlConnectioncon=newSqlConnection<strCon>>{try{con.Open<>;stringsql=string.Format<"select*fromselect_sitwhereFid='{0}'andSitlevel='{1}'andSitid='{2}'",Fid,Sitlevel,Sitid>;using<SqlCommandcmd=newSqlCommand<sql,con>>{using<SqlDataReaderreader=cmd.ExecuteReader<>>{while<reader.Read<>>{label11.Text=reader["Fid"].ToString<>;label12.Text=reader["Aircraftid"].ToString<>;label13.Text=reader["Fstart"].ToString<>;label14.Text=reader["Fend"].ToString<>;label15.Text=Convert.ToDateTime<reader["Fstartdate"]>.ToShortDateString<>;label16.Text=reader["Fstarttime"].ToString<>;label17.Text=reader["Sitlevel"].ToString<>;label18.Text=reader["Sitid"].ToString<>;label19.Text=reader["Ftime"].ToString<>;label20.Text=reader["price"].ToString<>;}}}}catch<Exceptionex>{MessageBox.Show<ex.Message>;}}groupBox3.Visible=false;}//確認(rèn)本人信息后點(diǎn)擊確認(rèn)按鈕privatevoidbutton3_Click<objectsender,EventArgse>{stringm=label20.Text;floatmoney=float.Parse<m>;floatusermoney=0;using<SqlConnectioncon=newSqlConnection<strCon>>{try{con.Open<>;stringsql="selectUsermoneyfromUserswhereUserid=@userid";//查詢用戶余額using<SqlCommandcmd=newSqlCommand<sql,con>>{cmd.Parameters.AddWithValue<"@userid",userid>;using<SqlDataReaderreader=cmd.ExecuteReader<>>{while<reader.Read<>>{m=Convert.ToString<reader["Usermoney"]>;usermoney=float.Parse<m>;}}}}catch<Exceptionex>{MessageBox.Show<ex.Message>;}}//余額不足,轉(zhuǎn)去充值界面if<usermoney<money>{DialogResultdires=MessageBox.Show<"您的賬戶余額不足〔"+usermoney.ToString<>+"元,需要先充值,是否現(xiàn)在進(jìn)行充值?","提示",MessageBoxButtons.OKCancel>;if<dires==DialogResult.OK>{充值界面addmoney=new充值界面<>;addmoney.userid=userid;addmoney.ShowDialog<>;}}else//買票過程{DialogResultdia=MessageBox.Show<"您當(dāng)前賬戶可用余額為:"+usermoney.ToString<>+",是否確認(rèn)購(gòu)票?","提示",MessageBoxButtons.OKCancel>;if<dia==DialogResult.OK>{using<SqlConnectioncon=newSqlConnection<strCon>>{try{con.Open<>;//向數(shù)據(jù)庫中寫買票記錄,更新相關(guān)表信息stringsql="insertintoTicket<Fid,Aircraftid,Sitid,Userid,Pid>values<@Fid,@Aircraftid,@Sitid,@userid,@Pid>";using<SqlCommandcmd=newSqlCommand<sql,con>>{cmd.Parameters.AddWithValue<"@Fid",Fid>;cmd.Parameters.AddWithValue<"@Aircraftid",Aircraftid>;cmd.Parameters.AddWithValue<"@Sitid",Sitid>;cmd.Parameters.AddWithValue<"@userid",userid>;cmd.Parameters.AddWithValue<"@Pid",0>;cmd.ExecuteNonQuery<>;}sql="updateAircraftsetSitnum=Sitnum-1whereAircraftid=@AircraftidandSitlevel=@Sitlevel";using<SqlCommandcmd=newSqlCommand<sql,con>>{cmd.Parameters.AddWithValue<"@Aircraftid",Aircraftid>;cmd.Parameters.AddWithValue<"@Sitlevel",Sitlevel>;cmd.ExecuteNonQuery<>;}//標(biāo)記此票已經(jīng)被購(gòu)買了,不能重復(fù)購(gòu)買sql="updateSitsetflag=1whereSitid=@SitidandAircraftid=@AircraftidandSitlevel=@Sitlevel";using<SqlCommandcmd=newSqlCommand<sql,con>>{cmd.Parameters.AddWithValue<"@Sitid",Sitid>;cmd.Parameters.AddWithValue<"@Aircraftid",Aircraftid>;cmd.Parameters.AddWithValue<"@Sitlevel",Sitlevel>;cmd.ExecuteNonQuery<>;}//更新賬戶余額sql="updateUserssetUsermoney=Usermoney-@moneywhereUserid=@userid";using<SqlCommandcmd=newSqlCommand<sql,con>>{cmd.Parameters.AddWithValue<"@userid",userid>;cmd.Parameters.AddWithValue<"@money",money>;cmd.ExecuteNonQuery<>;}MessageBox.Show<"購(gòu)買成功!","提示">;}catch<Exceptionex>{MessageBox.Show<ex.Message>;}}}else//取消購(gòu)票{}}}管理員信息錄入模塊代碼解釋: 管理員可通過導(dǎo)入文件或手動(dòng)添加將相關(guān)信息存儲(chǔ)到數(shù)據(jù)庫中,導(dǎo)入文件將滿足格式要求的文件讀入到相關(guān)控件中顯示,管理員可繼續(xù)進(jìn)行手動(dòng)添加或刪除、修改,點(diǎn)擊提交按鈕,系統(tǒng)將相關(guān)控件中的信息逐行存儲(chǔ)到數(shù)據(jù)庫中供用戶查詢。模塊代碼://導(dǎo)入文件,參數(shù)是顯示讀入文件信息的控件publicvoidopenFile<DataGridViewdatagv>{OpenFileDialogofd=newOpenFileDialog<>;ofd.InitialDirectory=@"C:\Users\斌\Desktop";ofd.Filter="文本文件|*.txt";of

溫馨提示

  • 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)論