資源描述:
《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-航空客運(yùn)訂票系統(tǒng).doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)》報(bào)告設(shè)計(jì)題目航空客運(yùn)訂票系統(tǒng)專(zhuān)業(yè)班級(jí)學(xué)號(hào)姓名電話(huà)完成日期2017.04.13第22頁(yè)目錄1.問(wèn)題描述………………………………………………22.系統(tǒng)設(shè)計(jì)………………………………………………23.數(shù)據(jù)結(jié)構(gòu)與算法描述…………………………………44.測(cè)試結(jié)果與分析………………………………………65.總結(jié)…………………………………………………106.參考文獻(xiàn)………………………………………………10附錄程序源代碼…………………………………………10第22頁(yè)課程設(shè)計(jì)題目1.問(wèn)題描述基于人們對(duì)航空客運(yùn)使用需求的日益提高,為方便乘客提前買(mǎi)票及優(yōu)化飛機(jī)航空訂票服務(wù),需要開(kāi)發(fā)一
2、個(gè)飛機(jī)訂票系統(tǒng),此程序是為實(shí)現(xiàn)航班情況的查詢(xún),訂票,退票以及客戶(hù)信息瀏覽與票務(wù)信息瀏覽等基本功能。2.系統(tǒng)設(shè)計(jì)2.1設(shè)計(jì)目標(biāo)(1)可以瀏覽航線信息;包括終點(diǎn)站名、航班號(hào)、飛機(jī)號(hào)、飛行日期、乘員定額和余票量;?(2)可以瀏覽已訂票客戶(hù)信息;包括客戶(hù)姓名、訂票數(shù)額和艙位等級(jí);(3)可以查詢(xún)航線;包括終點(diǎn)站名、航班號(hào)、飛機(jī)號(hào)、飛行日期、乘員定額和余票量;?(4)可以辦理訂票業(yè)務(wù);需提供航班號(hào)、所需票數(shù)、客戶(hù)姓名和艙位等級(jí),生成客戶(hù)座位號(hào);?(5)可以辦理退票業(yè)務(wù);提供航班號(hào)和客戶(hù)姓名,即可退票;?(6)可以查看剩余票數(shù);(7)要求:根據(jù)以上功能說(shuō)明,設(shè)計(jì)航班信息,訂票信息的存儲(chǔ)結(jié)構(gòu)
3、,設(shè)計(jì)程序完成功能。2.2設(shè)計(jì)思想(1)運(yùn)行環(huán)境(軟硬件環(huán)境):DEV-C++;(2)輸入的形式和輸入值的范圍:由航空公司輸入航線情況并以單鏈表的形式存儲(chǔ)在內(nèi)存里面;(3)輸出的形式描述:通過(guò)客戶(hù)的輸入,輸出相應(yīng)內(nèi)容;(4)功能描述:用戶(hù)可通過(guò)本系統(tǒng)實(shí)現(xiàn)對(duì)航班的查詢(xún)、訂票和退票功能。第22頁(yè)2.3系統(tǒng)模塊劃分2.3.1主函數(shù)輸出菜單界面。輸入指令,顯示,敲擊回車(chē)開(kāi)始工作。2.3.2瀏覽航線信息編寫(xiě)voidlist()函數(shù)實(shí)現(xiàn)打印全部航線信息的功能,調(diào)用voiddisplay()函數(shù)實(shí)現(xiàn)打印structairline鏈表中存儲(chǔ)的航線的基本信息的功能。2.3.2瀏覽已訂票客戶(hù)信息
4、編寫(xiě)voidprtlink()函數(shù)實(shí)現(xiàn)打印訂票乘員名單域的客戶(hù)名單信息的功能,調(diào)用find()函數(shù)查詢(xún)并以指針形式返回。2.3.3查詢(xún)航線編寫(xiě)voidsearch()函數(shù)實(shí)現(xiàn)根據(jù)客戶(hù)提出的終點(diǎn)站名輸出航線信息的功能。用戶(hù)輸入終點(diǎn)站名,該函數(shù)會(huì)在航線信息鏈表中進(jìn)行查詢(xún),并輸出該航線信息或提示未找到該航線。2.3.4辦理訂票業(yè)務(wù)編寫(xiě)voidorder()函數(shù)實(shí)現(xiàn)辦理訂票業(yè)務(wù)的功能。根據(jù)客戶(hù)提供的航班號(hào),調(diào)用find()函數(shù)第22頁(yè)進(jìn)行查詢(xún),如為空,退出該模塊;輸入客戶(hù)訂票額,若客戶(hù)訂票額末超過(guò)余票量,訂票成功,調(diào)用linklist*insertlink()在訂票乘員名單域中添加客
5、戶(hù)信息,并在該航線的余票量中減掉該客戶(hù)的訂票量,然后依次輸出該訂票客戶(hù)的座位號(hào);客戶(hù)訂票額超過(guò)余票量總額或滿(mǎn)員,詢(xún)問(wèn)客戶(hù)是否需要進(jìn)行排隊(duì)等候;若等候,調(diào)用linkqueueappendqueue()在排隊(duì)等候乘員名單域中添加客戶(hù)信息;否則退出。2.3.5辦理退票業(yè)務(wù)編寫(xiě)voidreturn_tkt()函數(shù)實(shí)現(xiàn)辦理退票業(yè)務(wù)的功能。根據(jù)客戶(hù)提供的航班號(hào),調(diào)用find()函數(shù)進(jìn)行查詢(xún),根據(jù)客戶(hù)提供的姓名到訂票客戶(hù)名單域進(jìn)行查詢(xún),若未找到,退出本模塊;若信息查詢(xún)成功,在訂票乘員名單域中刪除客戶(hù)信息,并在該航線的余票量中增加該客戶(hù)的訂票量。檢查排隊(duì)等候乘員名單域,找出滿(mǎn)足當(dāng)前條件的排隊(duì)
6、候補(bǔ)名單域,插入到訂票客戶(hù)名單鏈表中。循環(huán)該步驟直到無(wú)滿(mǎn)足當(dāng)前條件的排隊(duì)候補(bǔ)名單域,退出。2.3.6查看剩余票數(shù)編寫(xiě)voidlist()函數(shù)實(shí)現(xiàn)打印全部航線信息的功能,調(diào)用voiddisplay()函數(shù)實(shí)現(xiàn)打印每條航線的基本信息的功能。3.數(shù)據(jù)結(jié)構(gòu)與算法描述(1)下述單鏈表用來(lái)存儲(chǔ)乘員信息,包括客戶(hù)姓名、訂票量、艙位等級(jí)。typedefstructord_ros{charname[10];/*客戶(hù)姓名*/intord_amt;/*訂票量*/intgrade;/*艙位等級(jí)*/structord_ros*next;}linklist;第22頁(yè)(2)下述單鏈隊(duì)列用來(lái)存儲(chǔ)等候替補(bǔ)客戶(hù)
7、信息,通過(guò)隊(duì)列先進(jìn)先出的特點(diǎn),使先排隊(duì)的客戶(hù)先訂票成功。typedefstructwat_ros/*單鏈隊(duì)列存儲(chǔ)等候替補(bǔ)客戶(hù)信息*/{charname[10];/*姓名*/intreq_amt;/*訂票量*/structwat_ros*next;}qnode,*qptr;typedefstructpqueue{qptrfront;/*等候替補(bǔ)客戶(hù)名單域的頭指針*/qptrrear;/*等候替補(bǔ)客戶(hù)名單域的屬指針*/}linkqueue;(3)下述結(jié)構(gòu)體存儲(chǔ)了航班信息,終點(diǎn)站名、航班號(hào)、飛機(jī)號(hào)、飛行日期、