數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)飛機(jī)訂票系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(里面附有源代碼!)_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)飛機(jī)訂票系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(里面附有源代碼!)_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)飛機(jī)訂票系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(里面附有源代碼!)_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)飛機(jī)訂票系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(里面附有源代碼!)_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)飛機(jī)訂票系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(里面附有源代碼!)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

課程設(shè)計(jì)題目飛機(jī)訂票系統(tǒng)院系專業(yè)姓名學(xué)號(hào)指導(dǎo)教師2012年7月11需求分析11問(wèn)題描述基于目前人們外出遠(yuǎn)行頻繁,為方便乘客提前買票及優(yōu)化飛機(jī)航空訂票服務(wù),需要開(kāi)發(fā)一個(gè)飛機(jī)訂票系統(tǒng),此程序就是要實(shí)現(xiàn)航班情況的錄入,查詢,訂票,退票以及航班的查詢和修改等基本功能。本課程設(shè)計(jì)的題目為飛機(jī)訂票系統(tǒng)。12基本要求121輸入的形式和輸入值的范圍錄入航班信息時(shí),需要輸入航班號(hào),起降時(shí)間,起飛抵達(dá)城市,值為字符串;還需要輸入航班票價(jià),票價(jià)折扣,值為浮點(diǎn)型(FLOAT);還需要輸入航班是否滿倉(cāng),值為整型(INT)(“1”表示已滿倉(cāng),“0”表示沒(méi)有滿倉(cāng));如需要繼續(xù)錄入航班信息,要輸入判別信息,值為整型(“1”表示繼續(xù)錄入航班信息,“0”表示停止錄入航班信息)??蛻粲喥睍r(shí),需要輸入起飛抵達(dá)城市,然后選擇航班進(jìn)行查詢,選擇航班時(shí)需要輸入航班號(hào),值為字符串??蛻敉似睍r(shí),需要輸入姓名,證件號(hào)進(jìn)行退票操作,值為字符串。查詢某個(gè)航班的情況時(shí),需要輸入航班號(hào),值為字符串;在查詢某個(gè)航線的情況時(shí),還可以通過(guò)輸入起飛抵達(dá)城市來(lái)查詢,值為字符串。查詢某個(gè)訂單時(shí),需要輸入訂單號(hào),值為整型(INT);或者需要輸入客戶姓名和證件號(hào),值為字符串。修改航班時(shí),需要輸入字符型數(shù)據(jù)選擇進(jìn)行何種修改操作;增加航班時(shí),需要輸入航班號(hào),起降時(shí)間,起飛抵達(dá)城市,值為字符串;還需要輸入航班票價(jià),票價(jià)折扣,值為浮點(diǎn)型(FLOAT)(;還需要輸入航班是否滿倉(cāng),值為整型(INT)“1”表示已滿倉(cāng),“0”表示沒(méi)有滿倉(cāng));如需要繼續(xù)錄入航班信息,要輸入判別信息,值為整型(“1”表示繼續(xù)錄入航班信息,“0”表示停止錄入航班信息);刪除航班時(shí),需要輸入要?jiǎng)h除的航班的航班號(hào);修改航班時(shí)間時(shí),需要輸入要修改的航班的航班號(hào),修改后的航班起飛時(shí)間和抵達(dá)時(shí)間。122輸出形式在所有操作后的輸出中都顯示操作是否正確以及操作后單鏈表的內(nèi)容。其中刪除操作后顯示刪除的元素的值,查找操作后顯示要查找元素的位置。錄入航班情況時(shí),輸出顯示添加航班信息是否成功??蛻粲喥睍r(shí),當(dāng)客戶輸入起飛抵達(dá)城市后,輸出可供客戶選擇的航班信息;客戶選擇了航班后,輸入提示信息告知用戶訂票是否成功??蛻敉似睍r(shí),輸出客戶退票成功或者無(wú)此客戶,無(wú)法退票。查詢航班時(shí),輸出顯示對(duì)應(yīng)的航班信息,或者輸出提示信息告知沒(méi)有相應(yīng)的航班信息。查詢訂單時(shí),輸出顯示對(duì)應(yīng)的訂單信息,或者輸出提示信息告知沒(méi)有相應(yīng)的訂單信息。修改航班時(shí),輸出對(duì)應(yīng)的提示的信息,提示操作是否成功。2123功能要求(1)可以錄入航班情況,數(shù)據(jù)存儲(chǔ)在一個(gè)數(shù)據(jù)文件中;(2)可以查詢某個(gè)航線的情況輸入航班號(hào),查詢起降時(shí)間,起飛抵達(dá)城市,航班票價(jià),票價(jià)折扣,確定航班是否滿倉(cāng);輸入起飛抵達(dá)城市,查詢飛機(jī)航班情況;(3)可以訂票,訂票情況存在一個(gè)數(shù)據(jù)文件中(如果該航班已經(jīng)無(wú)票,提供相關(guān)可選航班);(4)可退票并且退票后修改相關(guān)數(shù)據(jù)文件;(5)客戶資料姓名,證件號(hào),訂票數(shù)量及航班情況,訂單要有編號(hào);(6)修改航班信息,當(dāng)航班信息改變可修改航班數(shù)據(jù)文件;(7)要求根據(jù)以上功能說(shuō)明,設(shè)計(jì)航班信息,訂票信息的存儲(chǔ)結(jié)構(gòu),設(shè)計(jì)程序完成功能。2概要設(shè)計(jì)21數(shù)據(jù)結(jié)構(gòu)(1)航班的信息航班的情況存儲(chǔ)結(jié)構(gòu)采用單鏈表,每個(gè)元素表示一個(gè)航班的情況,包括航班號(hào)、起飛時(shí)間、降落時(shí)間、起飛城市、抵達(dá)城市、航班票價(jià)、票價(jià)折扣、確定航班是否滿倉(cāng)和空座數(shù)九個(gè)數(shù)據(jù)項(xiàng)航班號(hào)起飛降落起飛抵達(dá)航班空座數(shù)票價(jià)票價(jià)時(shí)間時(shí)間城市城市是否滿倉(cāng)折扣字符串字符串字符串字符串字符串整數(shù)整數(shù)浮點(diǎn)數(shù)浮點(diǎn)數(shù)(INT)(INT)(FLOAT)(FLOAT)單鏈表如下HD1D2D3每個(gè)結(jié)點(diǎn)包括數(shù)據(jù)域和指針域數(shù)據(jù)域指針域C語(yǔ)言描述如下TYPEDEFSTRUCTFLIGHTNODECHARAIR_NUM10/航班號(hào)CHARSTART_TIME15/起飛時(shí)間CHAREND_TIME15/抵達(dá)時(shí)間CHARSTART_PLACE20/起飛城市CHAREND_PLACE20/降落城市INTLEFT/空座數(shù)FLOATPRICE/票價(jià)FLOATPRICE_DISCOUNT/票價(jià)折扣SINTIFULL/航班是否滿倉(cāng)STRUCTFLIGHTNODENEXT/指向下一個(gè)結(jié)點(diǎn)3FLIGHTNODE/航班結(jié)點(diǎn)(2)客戶的資料為了便于插入、刪除和修改,其采用單鏈表存儲(chǔ)結(jié)構(gòu),每個(gè)數(shù)據(jù)元素包括姓名、證件號(hào)、航班號(hào)、訂票數(shù)量和訂單號(hào)五個(gè)數(shù)據(jù)項(xiàng)姓名證件號(hào)航班號(hào)訂票數(shù)量訂單號(hào)字符串字符串字符串整數(shù)(INT)整數(shù)(INT)每個(gè)結(jié)點(diǎn)包括數(shù)據(jù)域和指針域數(shù)據(jù)域指針域C語(yǔ)言描述如下TYPEDEFSTRUCTPASSENGERNODE/定義客戶資料結(jié)點(diǎn)CHARNAME20/姓名CHARID_NUM20/證件號(hào)CHARFLIGHT_NUM10/航班號(hào)INTORDER_NUM/訂單號(hào)INTTICKET_NUM/訂票數(shù)量STRUCTPASSENGERNODENEXT/指向下一個(gè)結(jié)點(diǎn)PASSENGERNODE(3)客戶鏈表每個(gè)數(shù)據(jù)元素包括頭指針和尾指針兩個(gè)數(shù)據(jù)項(xiàng)每個(gè)結(jié)點(diǎn)包括兩個(gè)指針域頭指針域尾指針域C語(yǔ)言描述如下TYPEDEFSTRUCTPASSENGERLISTPASSENGERNODEHEADPASSENGERNODEREARPASSENGERLIST22程序模塊221錄入航班信息模塊VOIDADD_FLIGHTFLIGHTNODEAMPH調(diào)用VOIDINSERT_FLIGHTFLIGHTNODEAMPHCHARFLIGHT_NUMCHARSTART_PLACECHAREND_PLACECHARSTART_TIMECHAREND_TIMEINTLEFTFLOATPRICEFLOATPRICE_DISCOUNTINTISFULL函數(shù),將新航班結(jié)點(diǎn)插入航班鏈表中。222客戶訂票模塊INTBOOKFLIGHTNODEAMPHPASSENGERLISTAMPPLIST函數(shù)調(diào)用INTINSERT_PASSENGERPASSENGERNODEAMPHCHARNAMECHARID_NUMCHARFLIGHT_NUMINTTICKET_NUMINTORDER_NUM函數(shù),將新客戶結(jié)點(diǎn)插入客戶鏈表中。4223客戶退票模塊VOIDCANCELPASSENGERLISTAMPPLISTFLIGHTNODEAMPH函數(shù)調(diào)用INTDELETE_PASSENGERPASSENGERLISTAMPPLISTFLIGHTNODEAMPHCHARNAMECHARID_NUM函數(shù),將相應(yīng)的顧客結(jié)點(diǎn)刪除,并修改相應(yīng)的航班信息。224查詢航班模塊VOIDFLIGHT_CHECKFLIGHTNODEH調(diào)用VOIDCHECK_ALL_FLIGHTFLIGHTNODEH函數(shù)進(jìn)行所有航班信息瀏覽,調(diào)用INTPLACE_CHECKFLIGHTNODEHCHARSTART_PLACECHAREND_PLACE函數(shù)按起飛抵達(dá)城市對(duì)航班進(jìn)行查詢,調(diào)用INTFLIGHT_NUM_CHECKFLIGHTNODEHCHARFLIGHT_NUM按航班號(hào)對(duì)航班進(jìn)行查詢。225查詢訂單模塊VOIDPASSENGER_CHECKPASSENGERLISTPLIST調(diào)用VOIDCHECK_ALL_PASSENGERPASSENGERLISTPLIST函數(shù)進(jìn)行所有訂單信息瀏覽,調(diào)用INTORDER_NUM_CHECKPASSENGERLISTPLISTINTORDER_NUM函數(shù)按訂單號(hào)對(duì)訂單進(jìn)行查詢,調(diào)用INTID_NAME_CHECKPASSENGERLISTPLISTCHARNAMECHARID_NUM按客戶姓名和證件號(hào)對(duì)訂單進(jìn)行查詢。226修改航班模塊增加航班時(shí),VOIDMODIFY_FLIGHTFLIGHTNODEAMPHPASSENGERLISTAMPPLIST函數(shù)調(diào)用VOIDADD_FLIGHTFLIGHTNODEAMPH函數(shù),將新航班信息結(jié)點(diǎn)插入航班鏈表中。刪除航班時(shí),VOIDMODIFY_FLIGHTFLIGHTNODEAMPHPASSENGERLISTAMPPLIST函數(shù)調(diào)用VOIDDELETE_FLIGHTFLIGHTNODEAMPHPASSENGERLISTAMPPLIST函數(shù)將相應(yīng)的航班信息刪除并刪除相應(yīng)的訂單信息。修改航班時(shí)間時(shí),VOIDMODIFY_FLIGHTFLIGHTNODEAMPHPASSENGERLISTAMPPLIST函數(shù)修改指定航班的起飛抵達(dá)時(shí)間。23各模塊之間的調(diào)用關(guān)系以及算法設(shè)計(jì)231各模塊之間的調(diào)用關(guān)系5主函數(shù)錄入退票查詢航班查詢訂單修改航班信息訂票退出航班信息瀏覽按航按起瀏覽按訂按客增加刪除修改全部班號(hào)飛抵全部單號(hào)戶姓航班航班航班航班查詢達(dá)城訂單查詢名和信息信息起飛信息航班市查信息訂單證件抵達(dá)信息詢航信息號(hào)查時(shí)間班信詢訂息單信息232算法設(shè)計(jì)VOIDINIT_FLIGHTFLIGHTNODEAMPH要建立一個(gè)以H為頭結(jié)點(diǎn)的空鏈表錄入航班信息和增加航班后將航班結(jié)點(diǎn)插入該鏈表。VOIDINIT_PASSENGERLISTPASSENGERLISTAMPPLIST建立一個(gè)帶有頭指針和尾指針的空鏈表存儲(chǔ)帶有顧客信息的結(jié)點(diǎn)。VOIDSAVE_FLIGHTFLIGHTNODEH保存航班信息到指定數(shù)據(jù)文件中。VOIDLOAD_FLIGHTFLIGHTNODEAMPH從存儲(chǔ)航班信息的文件導(dǎo)入航班信息到航班鏈表中。VOIDSAVE_PASSENGERPASSENGERLISTPLIST保存客戶信息到指定數(shù)據(jù)文件中。VOIDLOAD_PASSENGERPASSENGERLISTAMPPLIST從存儲(chǔ)客戶信息的文件導(dǎo)入客戶信息到客戶鏈表中。VOIDADD_FLIGHTFLIGHTNODEAMPH錄入航班信息后調(diào)用INSERT_FLIGHT函數(shù)增加航班。VOIDINSERT_FLIGHTFLIGHTNODEAMPHCHARFLIGHT_NUMCHARSTART_PLACECHAREND_PLACECHARSTART_TIMECHAREND_TIMEINTLEFTFLOATPRICEFLOATPRICE_DISCOUNTINTISFULL在錄入航班情況或增加新的航班后將新的航班結(jié)點(diǎn)插入到航線鏈表中。INTBOOKFLIGHTNODEAMPLPASSENGERLISTAMPPLIST要完成客戶訂票將客戶結(jié)點(diǎn)插入客戶鏈表中,并修改相應(yīng)的航班信息。VOIDINSERT_PASSENGERLISTFLIGHTNODEAMPHPASSENGERLISTAMPPLISTCHARNAMECHARID_NUMCHARFLIGHT_NUMINTTICKET_NUM在顧客訂票后將該顧客結(jié)點(diǎn)插入到顧客鏈表中,并修改相應(yīng)的航班信息。VOIDFIND_SAME_FLIGHTFLIGHTNODELCHARFLIGHT_NUM在客戶訂票時(shí),當(dāng)客戶輸入的航班號(hào)對(duì)應(yīng)的航班已滿倉(cāng)時(shí),提供其他可選航班并輸出顯示。VOIDCANCELPASSENGERLISTAMPPLISTFLIGHTNODEAMPH完成客戶退票,將客戶的訂單從客戶鏈表中刪除,并修改相應(yīng)的航班信息。INTDELETE_PASSENGERPASSENGERLISTAMPPLISTFLIGHTNODEAMPHCHARNAMECHARID_NUM按6照要退票的顧客的姓名和證件號(hào)查找該顧客結(jié)點(diǎn)進(jìn)行刪除操作。VOIDFLIGHT_CHECKFLIGHTNODEH選擇使用何種方式對(duì)航班信息進(jìn)行查詢。VOIDCHECK_ALL_FLIGHTFLIGHTNODEL瀏覽所有航班信息。INTPLACE_CHECKFLIGHTNODELCHARSTART_PLACECHAREND_PLACE按照起飛抵達(dá)城市查詢航班信息。INTFLIGHT_NUM_CHECKFLIGHTNODELCHARFLIGHT_NUM按照航班號(hào)查詢航班信息。VOIDPASSENGER_CHECKPASSENGERLISTPLIST選擇使用何種方式對(duì)訂單信息進(jìn)行查詢。VOIDCHECK_ALL_PASSENGERPASSENGERLISTPLIST瀏覽所有訂單信息。INTORDER_NUM_CHECKPASSENGERLISTPLISTINTORDER_NUM按訂單號(hào)查詢訂單信息。INTID_NAME_CHECKPASSENGERLISTPLISTCHARNAMECHARID_NUM按客戶姓名和證件號(hào)查詢訂單信息。VOIDMODIFY_FLIGHTFLIGHTNODEAMPHPASSENGERLISTAMPPLIST修改航班信息,包括添加航班信息,刪除航班信息,修改航班起飛抵達(dá)時(shí)間。VOIDDELETE_FLIGHTFLIGHTNODEAMPHPASSENGERLISTAMPPLIST按照某個(gè)航班號(hào)刪除航班結(jié)點(diǎn)。3詳細(xì)設(shè)計(jì)31錄入航班信息模塊在主函數(shù)中輸入“1”,調(diào)用VOIDADD_FLIGHTFLIGHTNODEAMPH函數(shù),此函數(shù)將航班指針P指向已存在航班鏈表H的頭結(jié)點(diǎn),利用FORPGTNEXTNULLPPGTNEXT使P指向航線鏈表的最后一個(gè)結(jié)點(diǎn),然后讓用戶輸入航班信息,然后調(diào)用VOIDINSERT_FLIGHTFLIGHTNODEAMPHCHARFLIGHT_NUMCHARSTART_PLACECHAREND_PLACECHARSTART_TIMECHAREND_TIMEINT7LEFTFLOATPRICEFLOATPRICE_DISCOUNTINTISFULL函數(shù),用MALLOC函數(shù)申請(qǐng)一個(gè)航班結(jié)點(diǎn),并用指針Q指向?qū)⒑桨嘈畔①x到新申請(qǐng)的結(jié)點(diǎn)中,PGTNEXTQPPGTNEXT該操作將該結(jié)點(diǎn)插入航班鏈表中。流程圖如下開(kāi)始FLIGHTNODEPHNPGTNEXTNULLYPPGTNEXTNMARK1Y輸入航班信息調(diào)用INSERT_FLIGHT函數(shù)完成航班信息的錄入是否繼續(xù)錄入航班信息“是”輸入“1”MARK1“否”輸入“0”MARK0結(jié)束32顧客訂票模塊在主函數(shù)中輸入“2”,調(diào)用INTBOOKFLIGHTNODEAMPHPASSENGERLISTAMPPLIST函數(shù)完成客戶的訂票。用航班指針P指向已存在航班鏈表H的頭結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn),請(qǐng)客戶輸入起飛抵達(dá)城市,分別存于START_PLACE和END_PLACE中。調(diào)用INTPLACE_CHECKFLIGHTNODELCHARSTART_PLACECHAREND_PLACE函數(shù),如果函數(shù)返回“1”則請(qǐng)客戶輸入要訂的航班號(hào),如果輸入的航班號(hào)不存在,輸出提示信息,如果航班存在則提示客戶輸入訂的票數(shù)、客戶的姓名和證件號(hào),調(diào)用VOIDINSERT_PASSENGERLISTFLIGHTNODEAMPHPASSENGERLISTAMPPLISTCHARNAMECHARID_NUMCHARFLIGHT_NUMINTTICKET_NUM函數(shù),定義航班指針PHGTNEXT,使用FOR循環(huán)匹配FLIGHT_NUM和PGTFLIGHT_NUM,找到后,執(zhí)行PGTLEFTPGTLEFTTICKET_NUM,修改相應(yīng)航班的空座數(shù)。用8MALLOC函數(shù)申請(qǐng)一個(gè)客戶結(jié)點(diǎn),并用指針Q指向?qū)⒖蛻粜畔⒑秃桨嗵?hào)賦到新申請(qǐng)的結(jié)點(diǎn)中,PLISTGTREARGTNEXTQPLISTGTREARQ該操作將該結(jié)點(diǎn)插入客戶鏈表中。如果該航班已滿倉(cāng)或該航班的空座數(shù)不夠,輸出可供選擇的航班,讓客戶選擇,之后調(diào)用VOIDINSERT_PASSENGERLISTFLIGHTNODEAMPHPASSENGERLISTAMPPLISTCHARNAMECHARID_NUMCHARFLIGHT_NUMINTTICKET_NUM函數(shù)將客戶結(jié)點(diǎn)插入客戶鏈表中開(kāi)始FLIGHTNODEPHGTNEXT輸入起飛抵達(dá)城市,分別存于START_PLACE和END_PLACEPLACE_CHECKHSTART_NPLACEEND_PLACE1Y輸入航班號(hào),存入FLIGHT_NUMFLIGHT_NUMNNULLY航班號(hào)不為空輸入航班號(hào),存入FLIGHT_NUMNPNULLYSTRCMPPGTFLIGHT_NUMNFLIGHT_NUM0Y輸入姓名、證件號(hào)、訂票數(shù),分別

溫馨提示

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