第一篇:公路售票系統(tǒng)問(wèn)題及解決方案
問(wèn)題一:銀行向公路方發(fā)出售票交易,公路售票成功并給乘客發(fā)送購(gòu)票短信,但向銀行發(fā)出返回報(bào)文后,由于網(wǎng)絡(luò)延時(shí)等原因造成銀行未在規(guī)定時(shí)間內(nèi)收到返回報(bào)文,銀行認(rèn)為此筆售票未成功并進(jìn)行沖正,此種情形下乘客并未付款且歸集戶賬務(wù)已沖正,但由于購(gòu)票短信已發(fā)送給乘客,乘客可以憑借短信在汽車站自助設(shè)備上取票,容易造成短款。
建議解決方案:建議增加售票最終確認(rèn)交易,銀行在收到公路方購(gòu)票返回報(bào)文確認(rèn)購(gòu)票無(wú)誤后,向公路方發(fā)送售票最終確認(rèn)交易,公路方收到該交易后再向乘客發(fā)送購(gòu)票短信,此方法可以有效避免短款出現(xiàn)。
問(wèn)題二:在最初系統(tǒng)開(kāi)發(fā)時(shí),銀行嚴(yán)格按照接口文檔進(jìn)行開(kāi)發(fā),但在實(shí)際生產(chǎn)過(guò)程中出現(xiàn)系統(tǒng)報(bào)錯(cuò),導(dǎo)致交易無(wú)法進(jìn)行,經(jīng)問(wèn)題排查發(fā)現(xiàn)公路方在未通知我方的情況下增加字段導(dǎo)致銀行系統(tǒng)拆解包報(bào)錯(cuò),針對(duì)此問(wèn)題我方已在2017年聯(lián)系過(guò)公路方,并進(jìn)行過(guò)一次系統(tǒng)升級(jí),但在2018年又出現(xiàn)此情況,導(dǎo)致客戶經(jīng)常投訴柜員,給銀行造成不好的影響。
建議解決方案:公路方如果需要新增字段,需向我方市場(chǎng)部提需求,我方配合優(yōu)化并在測(cè)試環(huán)境進(jìn)行測(cè)試,測(cè)試無(wú)誤后再進(jìn)行變更。
問(wèn)題三:公路方提出的生產(chǎn)環(huán)境出現(xiàn)短款問(wèn)題,由于銀行系統(tǒng)首次上線前,公路方并未測(cè)試對(duì)賬交易,因此造成短款可能的原因有短信提前發(fā)出、對(duì)賬未成功、沖正未成功。
建議解決方案:在測(cè)試環(huán)境進(jìn)行全流程測(cè)試,覆蓋對(duì)賬和沖正交易,確認(rèn)所有交易無(wú)誤后,銀行系統(tǒng)重新上線。需要公路方配合的工作有:
1、提供測(cè)試環(huán)境與數(shù)據(jù),并配合銀行進(jìn)行全交易測(cè)試;
2、提供生產(chǎn)環(huán)境運(yùn)維人員聯(lián)系方式,以便銀行運(yùn)維人員在生產(chǎn)環(huán)境出現(xiàn)問(wèn)題后可以聯(lián)系公路方及時(shí)查找和解決問(wèn)題。
第二篇:鐵路售票系統(tǒng)
鐵路售票系統(tǒng)應(yīng)用軟件需求分析報(bào)告
前言:
(1)需求分析報(bào)告的編寫(xiě)目的
本需求分析報(bào)告的目的是規(guī)范化本軟件的編寫(xiě),旨在于提高軟件開(kāi)發(fā)過(guò)程中的能見(jiàn)度,便于對(duì)軟件開(kāi)發(fā)過(guò)程中的控制與管理,同時(shí)提出了本鐵路售票系統(tǒng)的軟件開(kāi)發(fā)過(guò)程,便于程序員與客戶之間的交流、協(xié)作,并作為工作成果的原始依據(jù),同時(shí)也表明了本軟件的共性,以期能夠獲得更大范圍的應(yīng)用。(2)產(chǎn)品背景明細(xì) 軟件名稱:鐵路售票系統(tǒng) 軟件開(kāi)發(fā)者:(3)縮寫(xiě)及縮略語(yǔ)
鐵路售票應(yīng)用系統(tǒng)軟件:基本元素為構(gòu)成鐵路售票及相關(guān)行為所必須的各種部分。
需求:用戶解決問(wèn)題或達(dá)到目標(biāo)所需的條件或功能;系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn),規(guī)范或其它正式規(guī)定文檔所需具有的條件或權(quán)能。
需求分析:包括提煉,分析和仔細(xì)審查已收集到的需求,以確保所有的風(fēng)險(xiǎn)承擔(dān)者都明其含義并找出其中的錯(cuò)誤,遺憾或其它不足的地方。
模塊的獨(dú)立性:是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他的模塊的接口是簡(jiǎn)單的。本工程描述:
(1)軟件開(kāi)發(fā)的目標(biāo):
完善目前鐵路售票系統(tǒng),使之能跟上時(shí)代的發(fā)展。同時(shí)通過(guò)實(shí)踐來(lái)提高自己的動(dòng)手能力。(2)應(yīng)用范圍:
理論上能夠?qū)崿F(xiàn)于鐵路部門(mén)的售票系統(tǒng),其目的在于在原有的系統(tǒng)基礎(chǔ)使得鐵路售票實(shí)名化,以期實(shí)現(xiàn)完善日常生活中鐵路售票的各種缺陷。(3)硬件配置要求:
硬件外部設(shè)備需奔騰133以上的pc機(jī),內(nèi)存需16兆以上。(4)子集說(shuō)明:
軟件分別有五個(gè)模塊組成,每個(gè)模塊各有不同的功能。但都能完成查詢和存儲(chǔ)功能,各模塊的數(shù)據(jù)都存放在數(shù)據(jù)庫(kù)中。數(shù)據(jù)的調(diào)用和連接都有程序來(lái)完成。(5)軟件功能描述:
外部功能:實(shí)現(xiàn)可視化窗口,查找及存儲(chǔ) 內(nèi)部功能:同步,過(guò)濾,定位,識(shí)別 軟件功能描述圖: 賠償信息 車次信息 列車明細(xì) 日志維護(hù) 個(gè)人信息 主界面 同步 過(guò)濾 數(shù)據(jù)庫(kù) 定位
(6)軟件操作人員的要求:
軟件要求操作人員具有初步的相關(guān)知識(shí)(7)在其他方面的要求:
由于本系統(tǒng)為即時(shí)軟件,對(duì)數(shù)據(jù)的同步要求較高,建議配置網(wǎng)絡(luò)時(shí)使用可靠性較高的相關(guān)網(wǎng)絡(luò)硬件設(shè)施。軟件結(jié)構(gòu)化描述(1)數(shù)據(jù)流圖: 乘客 數(shù)據(jù)庫(kù)更新 列車明細(xì) 個(gè)人信息 日志 售票員
(2)數(shù)據(jù)結(jié)構(gòu)的描述:
車票=日期+價(jià)格+出發(fā)站+目的站+售票站+座號(hào)+車次+性質(zhì)+編號(hào) 日期=年+月+日+時(shí)+分 價(jià)格=“1”..“9999” 出發(fā)站=1{漢字}6 目的站=1{漢字}6 售票站=1{漢字}6 座號(hào)=車廂號(hào)+座位號(hào) 車次=“1”..“9999”
編號(hào)=“000000001”..“999999999”
性質(zhì)=“1”..“6” 注:“1”表示空調(diào)硬座特快,“2”表示空調(diào)軟座普快等 設(shè)計(jì)要求:
(1)所調(diào)用的數(shù)據(jù)庫(kù)的顯示: 輸入內(nèi)容:指定的庫(kù)文件名。加工內(nèi)容:調(diào)用指定的數(shù)據(jù)庫(kù)。輸出內(nèi)容:所指定的數(shù)據(jù)庫(kù)的庫(kù)結(jié)構(gòu)。(2)關(guān)于編輯框的說(shuō)明: 輸入內(nèi)容:編輯框名稱。加工內(nèi)容:生成編輯框。輸出內(nèi)容:顯示所生成的編輯框(3)指定記錄說(shuō)明:
輸入內(nèi)容:指定的項(xiàng)名及庫(kù)文件名。加工內(nèi)容:將指定的數(shù)據(jù)庫(kù)里指定的記錄置為當(dāng)前記錄。(4)初始化說(shuō)明: 輸入內(nèi)容:所要求的尺寸
要求處理內(nèi)容:確定指定對(duì)象在窗體中的開(kāi)始尺寸的大小 輸出內(nèi)容:確定開(kāi)始尺寸的四個(gè)參數(shù)。(5)最大化說(shuō)明: 輸入內(nèi)容:指定的參數(shù)值。
加工內(nèi)容:確定指定對(duì)象在窗體中的最大尺寸。輸出內(nèi)容:確定指定對(duì)象最大尺寸的四個(gè)參數(shù)。(6)最小化說(shuō)明 原理同上
(7)查詞編輯框說(shuō)明(編輯框控制)
功能:主要是定義的一個(gè)編輯框,供用戶輸入一個(gè)詞名,為程序生成查找條件做準(zhǔn)備。輸入內(nèi)容:在查詞編輯框中輸入要查找的詞名。加工內(nèi)容:用輸入的詞名以供程序生成查找條。輸出內(nèi)容:地址、長(zhǎng)度。
(8)內(nèi)容編輯框說(shuō)明(編輯框控制)
功能:主要是定義的一個(gè)編輯框,將程序查找到的用戶所輸入詞的相關(guān)內(nèi)容顯示出來(lái),為用戶提供幫助信息。
輸入內(nèi)容:數(shù)據(jù)庫(kù)中查找到的記錄的項(xiàng)的內(nèi)容的地址、長(zhǎng)度。加工內(nèi)容:置控制標(biāo)題或值。
輸出內(nèi)容:顯示用戶所輸入詞的相關(guān)內(nèi)容(如該詞的格式、用法……)。(9)定義過(guò)濾說(shuō)明
作用:定義用戶輸入的詞名與內(nèi)容庫(kù)中的詞名字段中的詞名進(jìn)行串比較,即定義詞名字段為過(guò)濾字段。輸入內(nèi)容:用戶輸入的詞名。
加工內(nèi)容:把代碼寫(xiě)入過(guò)濾條件指針之中。輸出內(nèi)容:查找條件。(10)執(zhí)行過(guò)濾說(shuō)明
作用:將定義的過(guò)濾作為內(nèi)容庫(kù)的過(guò)濾條件。輸入內(nèi)容:查找條件。
加工內(nèi)容:與查找編輯框中的內(nèi)容比較。輸出內(nèi)容:庫(kù)過(guò)濾顯。(11)同步說(shuō)明: I:令牌持有標(biāo)記
P:與數(shù)據(jù)庫(kù)同步更新數(shù)據(jù) O:更新數(shù)據(jù)庫(kù) 環(huán)境要求:
(1)數(shù)據(jù)錄入精度需求
在進(jìn)行向數(shù)據(jù)庫(kù)文件提取數(shù)據(jù)時(shí),要求數(shù)據(jù)記錄定位準(zhǔn)確,在往數(shù)據(jù)庫(kù)文件數(shù)組中添加數(shù)時(shí),要求輸入數(shù)準(zhǔn)確。
(2)軟件自身時(shí)間特性需求
程序響應(yīng)時(shí)間:在人的感覺(jué)和視覺(jué)事件范圍內(nèi);
信息交換時(shí)間:要求在程序調(diào)用前調(diào)用后都與數(shù)據(jù)庫(kù)保持同步更新,網(wǎng)絡(luò)信息狡猾施加應(yīng)該小于程序調(diào)用的時(shí)間
(3)數(shù)據(jù)管理能力需求
要求數(shù)據(jù)庫(kù)具有很好的更新能力,由于本產(chǎn)品是實(shí)驗(yàn)性軟件,故對(duì)磁盤(pán)和內(nèi)存容量沒(méi)有很高的要求,但是數(shù)據(jù)庫(kù)應(yīng)該能夠?qū)Σl(fā)事件,臟數(shù)據(jù)具有較強(qiáng)的識(shí)別處理能力。接口要求:
(1)硬件接口:無(wú)特別要求
(2)網(wǎng)絡(luò)硬件接口要求:現(xiàn)實(shí)中要求具有高速以太網(wǎng)組網(wǎng)一實(shí)現(xiàn)聯(lián)網(wǎng)銷售,但是在理論實(shí)驗(yàn)驗(yàn)證軟件本身的目的來(lái)看,無(wú)需網(wǎng)絡(luò)通訊接口。(3)軟件接口要求:無(wú) 軟件屬性(1)可用性 本軟件也可以通過(guò)單步跟蹤的操作進(jìn)行檢查處理。
(2)安全性
由于軟件運(yùn)行數(shù)據(jù)放在數(shù)據(jù)庫(kù)中,所以參數(shù)不容易被錯(cuò)改、破壞,萬(wàn)一參數(shù)受到破壞也不會(huì)影響源程序。(3)可維護(hù)性
本軟件利用數(shù)據(jù)庫(kù)進(jìn)行編程,系統(tǒng)結(jié)構(gòu)由程序基本確定,大量的參數(shù)及文本內(nèi)容全部放于數(shù)據(jù)庫(kù)中。修改、更新數(shù)據(jù)只要在數(shù)據(jù)庫(kù)進(jìn)行修改添加,而不需要對(duì)系統(tǒng)結(jié)構(gòu)進(jìn)行修改,這樣系統(tǒng)維護(hù)性、升級(jí)都十分方便。(4)兼容性
由于尚未測(cè)試,故無(wú)法對(duì)兼容性進(jìn)行評(píng)析。支持信息(1)軟件支持:
本軟件開(kāi)發(fā)是使用Delphi編寫(xiě)。
(2)設(shè)備支持:
推薦配置:WindowsXP,256內(nèi)存,VGA顯示器
第三篇:售票系統(tǒng)應(yīng)急預(yù)案
安徽天柱山旅游發(fā)展有限公司
售票系統(tǒng)應(yīng)急預(yù)案
為建立健全景區(qū)售票系統(tǒng)應(yīng)急保障體系和運(yùn)行機(jī)制,快速、有效地處理售票系統(tǒng)的安全事故和突發(fā)事件,根據(jù)風(fēng)景區(qū)實(shí)際特制定本預(yù)案。
本預(yù)案適用于景區(qū)售票系統(tǒng)因網(wǎng)絡(luò)、設(shè)備、軟件、電力等故障或遭受大規(guī)?!安《尽备腥?、非法入侵及其它不可預(yù)測(cè)的因素導(dǎo)致售票系統(tǒng)中斷或售票異常的安全事故和突發(fā)事件。
一、組織機(jī)構(gòu)及職責(zé)
1、應(yīng)急組織機(jī)構(gòu)
公司成立售票系統(tǒng)安全事故和突發(fā)事件應(yīng)急處置領(lǐng)導(dǎo)小組(以下簡(jiǎn)稱“應(yīng)急處置領(lǐng)導(dǎo)小組”),由 任組長(zhǎng),公司辦公室、稽查辦、財(cái)務(wù)科、茶莊游客中心、大龍窩索道公司、天柱山客運(yùn)公司、執(zhí)法大隊(duì)、信息技術(shù)中心為組員單位。
2、應(yīng)急處置領(lǐng)導(dǎo)小組主要職責(zé)
(1)根據(jù)事件的影響范圍和嚴(yán)重性決定是否啟動(dòng)應(yīng)急預(yù)案,遇重大情況負(fù)責(zé)及時(shí)向上級(jí)領(lǐng)導(dǎo)報(bào)告。
(2)負(fù)責(zé)售票系統(tǒng)安全事故的應(yīng)急處置、治安保障、系統(tǒng)恢復(fù)、后勤保障、新聞發(fā)布等工作。
(4)保管備用紙質(zhì)門(mén)票、車票。
(3)負(fù)責(zé)向售票系統(tǒng)相關(guān)技術(shù)支持單位請(qǐng)求技術(shù)支持。
二、應(yīng)急響應(yīng)、處置
售票系統(tǒng)中斷運(yùn)行由信息技術(shù)中心檢查處理,在15分鐘內(nèi)不能恢復(fù)運(yùn)行的須立即報(bào)告應(yīng)急處置領(lǐng)導(dǎo)小組,啟動(dòng)應(yīng)急預(yù)案。
1、公司辦公室向領(lǐng)導(dǎo)報(bào)告啟動(dòng)預(yù)案。
2、游客中心通知售票員向大堂經(jīng)理領(lǐng)取應(yīng)急備用紙質(zhì)門(mén)票、車票準(zhǔn)備銷售,并通過(guò)電子顯示屏、展牌等媒介向游客進(jìn)行解釋宣傳。
3、稽查辦負(fù)責(zé)通知各檢票口做好紙質(zhì)門(mén)票、車票檢驗(yàn)準(zhǔn)備。
4、執(zhí)法大隊(duì)負(fù)責(zé)現(xiàn)場(chǎng)秩序維護(hù)。
5、財(cái)務(wù)科負(fù)責(zé)向管委會(huì)財(cái)務(wù)科報(bào)告,并做好紙質(zhì)門(mén)票、車票的領(lǐng)退與分發(fā)工作。
6、信息技術(shù)中心負(fù)責(zé)售票系統(tǒng)的維修與相關(guān)技術(shù)單位的協(xié)調(diào)。
三、后期處置
售票系統(tǒng)恢復(fù)運(yùn)行后,應(yīng)急處置結(jié)束,由應(yīng)急處置領(lǐng)導(dǎo)小組宣布應(yīng)急結(jié)束,稽查辦通知各檢票口進(jìn)行正常電子票檢驗(yàn)。應(yīng)急處置結(jié)束后2日內(nèi),由售票系統(tǒng)應(yīng)急處置領(lǐng)導(dǎo)小組組織力量對(duì)事故的起因、性質(zhì)、影響、責(zé)任、教訓(xùn)和處置進(jìn)行評(píng)估,提出整改和預(yù)防措施,完善應(yīng)急預(yù)案,并做好對(duì)上級(jí)部門(mén)的匯報(bào)。
附件:售票系統(tǒng)應(yīng)急處置領(lǐng)導(dǎo)小組人員及聯(lián)系方式
2015 公司辦公室
稽 查 辦 財(cái) 務(wù) 科 茶莊游客中心 大龍窩索道公司 天柱山客運(yùn)公司 信息技術(shù)中心 執(zhí)法大隊(duì)
安徽天柱山旅游發(fā)展有限公司
年9月18
第四篇:網(wǎng)上售票系統(tǒng)任務(wù)書(shū)
題目: 任務(wù)與要求:
網(wǎng)上售票系統(tǒng)
(1)能夠熟練應(yīng)用Mysql數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)進(jìn)行管理。(2)前臺(tái)部分主要用于為客戶服務(wù)、包括余票查詢、車票詳細(xì)信息展示、客戶信息修改、車票退定、關(guān)于網(wǎng)站的最新動(dòng)態(tài)、其他站車的風(fēng)采展示、網(wǎng)上購(gòu)票用戶注冊(cè)/登錄、票價(jià)查詢、列車時(shí)刻表查詢、起售時(shí)間查詢、客票代售點(diǎn)查詢、鐵路客服中心電話展示、網(wǎng)上購(gòu)票常見(jiàn)問(wèn)題、客戶信箱等。
(3)后臺(tái)部分主要用于修改車票信息、添加車票信息、車票分類、對(duì)客戶信息的管理、訂單管理、管理員密碼的修改等。
(4)采用JSP+Mysql、Servlet、JavaScript等技術(shù)實(shí)現(xiàn)。
時(shí)間: 2013 年 10 月 21 日 至 2013 年 12 月 13 日 共 8 周 所屬系部:
學(xué)生姓名: 學(xué) 號(hào): 專業(yè): 指導(dǎo)單位或教研室: 指導(dǎo)教師:
職 稱:
第五篇:航空售票管理系統(tǒng)
#include
typedef struct node//定義信息結(jié)構(gòu)體 {
char num[10];// 航班號(hào)
int hour;//起飛時(shí)間小時(shí)
int minitues;//起飛時(shí)間分鐘
char start[10];//起始
char end[10];//終點(diǎn)
float prize;//經(jīng)濟(jì)艙票價(jià)
int last;//剩余座位 }FLIGHT;
typedef struct Order//訂單信息 {
char name[10];//乘客姓名
char num[10];//航班號(hào)
int count;//訂票數(shù)量 }Order;
class flight//定義類 {
private: FLIGHT stu[N];//每個(gè)元素對(duì)應(yīng)一條信息
Order psg[N];//訂單
int len;//航班總數(shù)
int lenp;//訂票者總數(shù) public:
flight();
~flight();void input();//錄入信息
void show();//瀏覽
void sall();//售票
void back();//退票
void search();// 信息查詢
void search2();// 信息查詢(起點(diǎn)終點(diǎn))
char menu();//菜單
};
flight stud;
char filename[]=“flight.txt”;
flight::flight(){}//構(gòu)造函數(shù) flight::~flight(){}//析構(gòu)函數(shù)
bool CheckTime(int h1,int m1,int h2,int m2)//判斷兩個(gè)時(shí)間前后
{ if(h1
return true;else if(h1==h2){
if(m1 return true; else return false;} else return false;} void flight::show()//瀏覽 { system(“cls”);//清屏 cout<<“ 所有航班信息如下:”< 起飛時(shí)間 起點(diǎn) 終點(diǎn) 經(jīng)濟(jì)艙票價(jià) 剩余座位 備注”< for(int i=0;i printf(“%-10s%-2.2d:%-2.2d %-10s%-10s%-12.2f%-10d”,stu[i].num,stu[i].hour,stu[i].minitues,stu[i].start,stu[i].end,stu[i].prize,stu[i].last); time_t t; struct tm *tm; t=time(NULL);//獲取當(dāng)前系統(tǒng)時(shí)間 tm=localtime(&t); if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true)//如果起飛時(shí)間在當(dāng)前時(shí)間之前 輸出此次航班已發(fā)出 cout<<“此次航班已發(fā)出”< else cout< } cout<<“_______________________________________________________________________________”< void flight::back()//退票 { char name[20]; char s[20]; system(“cls”);//清屏 cout<<“請(qǐng)輸入退票的航班編號(hào):”;cin>>s; for(int i=0;i if(strcmp(stud.stu[i].num,s)==0) break;//存在 結(jié)束循環(huán) if(i==stud.len)//這二者相等說(shuō)明查找完所有信息也沒(méi)找到輸入信息,說(shuō)明輸入航班編號(hào)不存在{ cout<<“對(duì)不起!沒(méi)有你輸入航班編號(hào)的相關(guān)信息。n”; system(“pause”);//任意鍵繼續(xù) return;} time_t t; struct tm *tm; t=time(NULL);//獲取當(dāng)前系統(tǒng)時(shí)間 tm=localtime(&t);if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true) { cout<<“對(duì)不起!該航班已經(jīng)起飛。不能退票。n”; system(“pause”);//任意鍵繼續(xù) return;} int j=i; cout<<“請(qǐng)輸入您的姓名:”;cin>>name;for(i=0;i if(strcmp(stud.psg[i].name,name)==0 && strcmp(stud.psg[i].num,s)==0)//查詢這個(gè)名字是否相同 { stud.stu[j].last+=stud.psg[i].count;//退票 stud.psg[i]=stud.psg[stud.lenp-1];///刪除這個(gè)訂單 stud.lenp--;//訂單數(shù)減一 cout<<“退票成功!n”; system(“pause”);//任意鍵繼續(xù) return; } } cout<<“對(duì)不起!您沒(méi)有定該航班的票。n”; system(“pause”);//任意鍵繼續(xù) } void flight::sall()//售票 { char s[20]; system(“cls”);//清屏 cout<<“請(qǐng)輸入要購(gòu)買的航班編號(hào):”;cin>>s; for(int i=0;i if(strcmp(stud.stu[i].num,s)==0) break;//存在 結(jié)束循環(huán) if(i==stud.len)//這二者相等說(shuō)明查找完所有信息也沒(méi)找到輸入信息,說(shuō)明輸入航班編號(hào)不存在{ cout<<“對(duì)不起!沒(méi)有你輸入航班編號(hào)的相關(guān)信息。n”; system(“pause”);//任意鍵繼續(xù) return;} if(stud.stu[i].last<=0)//沒(méi)有票了 { cout<<“對(duì)不起!該航班票已售完。n”; system(“pause”);//任意鍵繼續(xù) return;} time_t t; struct tm *tm; t=time(NULL);//獲取當(dāng)前系統(tǒng)時(shí)間 tm=localtime(&t);if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true) { cout<<“對(duì)不起!該航班已經(jīng)起飛。n”; system(“pause”);//任意鍵繼續(xù) return;} int j=i;i=stud.lenp;strcpy(stud.psg[i].num,stud.stu[i].num);cout<<“請(qǐng)輸入購(gòu)票數(shù)量:”;cin>>stud.psg[i].count; while(stud.psg[i].count>stud.stu[i].last){ cout<<“余票不足,請(qǐng)重新輸入:”; cin>>stud.psg[i].count; } cout<<“請(qǐng)輸入您的姓名:”;cin>>stud.psg[i].name; stud.stu[j].last-=stud.psg[i].count;//剩余票數(shù) stud.lenp++;cout<<“購(gòu)票成功!n”;system(“pause”);//任意鍵繼續(xù) } void flight::input()//錄入信息 { system(“cls”);//清屏 for(int i=stud.len;i { cout<<“請(qǐng)輸入航班號(hào):”; cin>>stud.stu[i].num; cout<<“請(qǐng)輸入起飛時(shí)間(格式: 12:30):”; char ch; cin>>stud.stu[i].hour>>ch>>stud.stu[i].minitues; cout<<“請(qǐng)輸入起點(diǎn):”; cin>>stud.stu[i].start; cout<<“請(qǐng)輸入終點(diǎn):”; cin>>stud.stu[i].end; cout<<“請(qǐng)輸入經(jīng)濟(jì)艙票價(jià):”; cin>>stud.stu[i].prize; cout<<“請(qǐng)輸入剩余座位:”; cin>>stud.stu[i].last; stud.len++;//個(gè)數(shù)加1 cout<<“一條航班信息錄入完成,是否繼續(xù)錄入?(y/n):”; while(1) { cin>>ch; if(ch=='y' || ch=='Y' || ch=='n' || ch=='N') break; else cout<<“輸入錯(cuò)誤請(qǐng)重新輸入:”; } if(ch=='n' || ch=='N') break; } } void flight::search()// 信息查詢 { char s[20]; system(“cls”);//清屏 cout<<“請(qǐng)輸入要查詢的航班編號(hào):”;cin>>s; for(int i=0;i if(strcmp(stud.stu[i].num,s)==0) break;//存在 結(jié)束循環(huán) if(i==stud.len)//這二者相等說(shuō)明查找完所有信息也沒(méi)找到輸入信息,說(shuō)明輸入航班編號(hào)不存在{ cout<<“對(duì)不起!沒(méi)有你輸入航班編號(hào)的相關(guān)信息。n”; system(“pause”);//任意鍵繼續(xù) return;} cout<<“ 查詢結(jié)果如下:”< 起飛時(shí)間 起點(diǎn) 終點(diǎn) 經(jīng)濟(jì)艙票價(jià) 剩余座位 備注”< printf(“%-10s%-2.2d:%-2.2d %-10s%-10s%-12.2f%-10d”,stu[i].num,stu[i].hour,stu[i].minitues,stu[i].start,stu[i].end,stu[i].prize,stu[i].last); time_t t; struct tm *tm; t=time(NULL);//獲取當(dāng)前系統(tǒng)時(shí)間 tm=localtime(&t); if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true)//如果起飛時(shí)間在當(dāng)前時(shí)間之前 輸出此次航班已發(fā)出 cout<<“此次航班已發(fā)出”< else cout< cout<<“_______________________________________________________________________________”< void flight::search2()// 信息查詢(按線路){ char s1[20],s2[20]; system(“cls”);//清屏 cout<<“請(qǐng)輸入要查詢的線路起點(diǎn):”;cin>>s1; cout<<“請(qǐng)輸入要查詢的線路終點(diǎn):”;cin>>s2; for(int i=0;i if(strcmp(stud.stu[i].start,s1)==0 && strcmp(stud.stu[i].end,s2)==0) break;//存在 結(jié)束循環(huán) if(i==stud.len)//這二者相等說(shuō)明查找完所有信息也沒(méi)找到輸入信息,說(shuō)明輸入航班編號(hào)不存在{ cout<<“對(duì)不起!沒(méi)有你輸入線路的相關(guān)信息。n”; system(“pause”);//任意鍵繼續(xù) return;} cout<<“ 查詢結(jié)果如下:”< 起飛時(shí)間 起點(diǎn) 終點(diǎn) 經(jīng)濟(jì)艙票價(jià) 剩余座位 備注”< for(i=0;i if(strcmp(stud.stu[i].start,s1)==0 && strcmp(stud.stu[i].end,s2)==0) { printf(“%-10s%-2.2d:%-2.2d %-10s%-10s%-12.2f%-10d”,stu[i].num,stu[i].hour,stu[i].minitues,stu[i].start,stu[i].end,stu[i].prize,stu[i].last); time_t t; struct tm *tm; t=time(NULL);//獲取當(dāng)前系統(tǒng)時(shí)間 tm=localtime(&t); if(CheckTime(stud.stu[i].hour,stud.stu[i].minitues,tm->tm_hour,tm->tm_min)==true)//如果起飛時(shí)間在當(dāng)前時(shí)間之前 輸出此次航班已發(fā)出 cout<<“此次航班已發(fā)出”< else cout< } cout<<“_______________________________________________________________________________”< char flight::menu()//菜單 { char c; system(“cls”);//清屏 cout<<“nnnn ╔═══════════════════════════╗n”;cout<<“ ║ 1、錄入航班信息 ║n”; cout<<“ ╠═══════════════════════════╣n”;cout<<“ ║ 2、瀏覽航班信息 ║n”;cout<<“ ╠═══════════════════════════╣n”; cout<<“ ║ 3、查詢路線(按編號(hào)) ║n”; cout<<“ ╠═══════════════════════════╣n”;cout<<“ ║ 4、查詢路線(按線路) ║n”; cout<<“ ╠═══════════════════════════╣n”;cout<<“ ║ 5、售票 ║n”; cout<<“ ╠═══════════════════════════╣n”;cout<<“ ║ 6、退票 ║n”; cout<<“ ╠═══════════════════════════╣n”;cout<<“ ║ 0、退出系統(tǒng) ║n”; cout<<“ ╚═══════════════════════════╝n”;cout<<“ 請(qǐng)選擇:”; cin>>c; return c;} int main(){ while(1) { char ch; ch=stud.menu();//獲取選擇 switch(ch) { case '1': stud.input();break;//錄入航班信息 case '2': stud.show();break;//瀏覽航班信息 case '3': stud.search();break;// 查詢路線 case '4': stud.search2();break;// 查詢路線(按線路) case '5': stud.sall();break;// 售票 case '6': stud.back(); break;// 退票 case '0': exit(0);//退出 } } return 0;}