全文預覽已結束
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
課程設計題目飛機訂票系統(tǒng)院系專業(yè)姓名學號指導教師2012年7月11需求分析11問題描述基于目前人們外出遠行頻繁,為方便乘客提前買票及優(yōu)化飛機航空訂票服務,需要開發(fā)一個飛機訂票系統(tǒng),此程序就是要實現(xiàn)航班情況的錄入,查詢,訂票,退票以及航班的查詢和修改等基本功能。本課程設計的題目為飛機訂票系統(tǒng)。12基本要求121輸入的形式和輸入值的范圍錄入航班信息時,需要輸入航班號,起降時間,起飛抵達城市,值為字符串;還需要輸入航班票價,票價折扣,值為浮點型(FLOAT);還需要輸入航班是否滿倉,值為整型(INT)(“1”表示已滿倉,“0”表示沒有滿倉);如需要繼續(xù)錄入航班信息,要輸入判別信息,值為整型(“1”表示繼續(xù)錄入航班信息,“0”表示停止錄入航班信息)??蛻粲喥睍r,需要輸入起飛抵達城市,然后選擇航班進行查詢,選擇航班時需要輸入航班號,值為字符串??蛻敉似睍r,需要輸入姓名,證件號進行退票操作,值為字符串。查詢某個航班的情況時,需要輸入航班號,值為字符串;在查詢某個航線的情況時,還可以通過輸入起飛抵達城市來查詢,值為字符串。查詢某個訂單時,需要輸入訂單號,值為整型(INT);或者需要輸入客戶姓名和證件號,值為字符串。修改航班時,需要輸入字符型數(shù)據(jù)選擇進行何種修改操作;增加航班時,需要輸入航班號,起降時間,起飛抵達城市,值為字符串;還需要輸入航班票價,票價折扣,值為浮點型(FLOAT)(;還需要輸入航班是否滿倉,值為整型(INT)“1”表示已滿倉,“0”表示沒有滿倉);如需要繼續(xù)錄入航班信息,要輸入判別信息,值為整型(“1”表示繼續(xù)錄入航班信息,“0”表示停止錄入航班信息);刪除航班時,需要輸入要刪除的航班的航班號;修改航班時間時,需要輸入要修改的航班的航班號,修改后的航班起飛時間和抵達時間。122輸出形式在所有操作后的輸出中都顯示操作是否正確以及操作后單鏈表的內(nèi)容。其中刪除操作后顯示刪除的元素的值,查找操作后顯示要查找元素的位置。錄入航班情況時,輸出顯示添加航班信息是否成功??蛻粲喥睍r,當客戶輸入起飛抵達城市后,輸出可供客戶選擇的航班信息;客戶選擇了航班后,輸入提示信息告知用戶訂票是否成功。客戶退票時,輸出客戶退票成功或者無此客戶,無法退票。查詢航班時,輸出顯示對應的航班信息,或者輸出提示信息告知沒有相應的航班信息。查詢訂單時,輸出顯示對應的訂單信息,或者輸出提示信息告知沒有相應的訂單信息。修改航班時,輸出對應的提示的信息,提示操作是否成功。2123功能要求(1)可以錄入航班情況,數(shù)據(jù)存儲在一個數(shù)據(jù)文件中;(2)可以查詢某個航線的情況輸入航班號,查詢起降時間,起飛抵達城市,航班票價,票價折扣,確定航班是否滿倉;輸入起飛抵達城市,查詢飛機航班情況;(3)可以訂票,訂票情況存在一個數(shù)據(jù)文件中(如果該航班已經(jīng)無票,提供相關可選航班);(4)可退票并且退票后修改相關數(shù)據(jù)文件;(5)客戶資料姓名,證件號,訂票數(shù)量及航班情況,訂單要有編號;(6)修改航班信息,當航班信息改變可修改航班數(shù)據(jù)文件;(7)要求根據(jù)以上功能說明,設計航班信息,訂票信息的存儲結構,設計程序完成功能。2概要設計21數(shù)據(jù)結構(1)航班的信息航班的情況存儲結構采用單鏈表,每個元素表示一個航班的情況,包括航班號、起飛時間、降落時間、起飛城市、抵達城市、航班票價、票價折扣、確定航班是否滿倉和空座數(shù)九個數(shù)據(jù)項航班號起飛降落起飛抵達航班空座數(shù)票價票價時間時間城市城市是否滿倉折扣字符串字符串字符串字符串字符串整數(shù)整數(shù)浮點數(shù)浮點數(shù)(INT)(INT)(FLOAT)(FLOAT)單鏈表如下HD1D2D3每個結點包括數(shù)據(jù)域和指針域數(shù)據(jù)域指針域C語言描述如下TYPEDEFSTRUCTFLIGHTNODECHARAIR_NUM10/航班號CHARSTART_TIME15/起飛時間CHAREND_TIME15/抵達時間CHARSTART_PLACE20/起飛城市CHAREND_PLACE20/降落城市INTLEFT/空座數(shù)FLOATPRICE/票價FLOATPRICE_DISCOUNT/票價折扣SINTIFULL/航班是否滿倉STRUCTFLIGHTNODENEXT/指向下一個結點3FLIGHTNODE/航班結點(2)客戶的資料為了便于插入、刪除和修改,其采用單鏈表存儲結構,每個數(shù)據(jù)元素包括姓名、證件號、航班號、訂票數(shù)量和訂單號五個數(shù)據(jù)項姓名證件號航班號訂票數(shù)量訂單號字符串字符串字符串整數(shù)(INT)整數(shù)(INT)每個結點包括數(shù)據(jù)域和指針域數(shù)據(jù)域指針域C語言描述如下TYPEDEFSTRUCTPASSENGERNODE/定義客戶資料結點CHARNAME20/姓名CHARID_NUM20/證件號CHARFLIGHT_NUM10/航班號INTORDER_NUM/訂單號INTTICKET_NUM/訂票數(shù)量STRUCTPASSENGERNODENEXT/指向下一個結點PASSENGERNODE(3)客戶鏈表每個數(shù)據(jù)元素包括頭指針和尾指針兩個數(shù)據(jù)項每個結點包括兩個指針域頭指針域尾指針域C語言描述如下TYPEDEFSTRUCTPASSENGERLISTPASSENGERNODEHEADPASSENGERNODEREARPASSENGERLIST22程序模塊221錄入航班信息模塊VOIDADD_FLIGHTFLIGHTNODEAMPH調(diào)用VOIDINSERT_FLIGHTFLIGHTNODEAMPHCHARFLIGHT_NUMCHARSTART_PLACECHAREND_PLACECHARSTART_TIMECHAREND_TIMEINTLEFTFLOATPRICEFLOATPRICE_DISCOUNTINTISFULL函數(shù),將新航班結點插入航班鏈表中。222客戶訂票模塊INTBOOKFLIGHTNODEAMPHPASSENGERLISTAMPPLIST函數(shù)調(diào)用INTINSERT_PASSENGERPASSENGERNODEAMPHCHARNAMECHARID_NUMCHARFLIGHT_NUMINTTICKET_NUMINTORDER_NUM函數(shù),將新客戶結點插入客戶鏈表中。4223客戶退票模塊VOIDCANCELPASSENGERLISTAMPPLISTFLIGHTNODEAMPH函數(shù)調(diào)用INTDELETE_PASSENGERPASSENGERLISTAMPPLISTFLIGHTNODEAMPHCHARNAMECHARID_NUM函數(shù),將相應的顧客結點刪除,并修改相應的航班信息。224查詢航班模塊VOIDFLIGHT_CHECKFLIGHTNODEH調(diào)用VOIDCHECK_ALL_FLIGHTFLIGHTNODEH函數(shù)進行所有航班信息瀏覽,調(diào)用INTPLACE_CHECKFLIGHTNODEHCHARSTART_PLACECHAREND_PLACE函數(shù)按起飛抵達城市對航班進行查詢,調(diào)用INTFLIGHT_NUM_CHECKFLIGHTNODEHCHARFLIGHT_NUM按航班號對航班進行查詢。225查詢訂單模塊VOIDPASSENGER_CHECKPASSENGERLISTPLIST調(diào)用VOIDCHECK_ALL_PASSENGERPASSENGERLISTPLIST函數(shù)進行所有訂單信息瀏覽,調(diào)用INTORDER_NUM_CHECKPASSENGERLISTPLISTINTORDER_NUM函數(shù)按訂單號對訂單進行查詢,調(diào)用INTID_NAME_CHECKPASSENGERLISTPLISTCHARNAMECHARID_NUM按客戶姓名和證件號對訂單進行查詢。226修改航班模塊增加航班時,VOIDMODIFY_FLIGHTFLIGHTNODEAMPHPASSENGERLISTAMPPLIST函數(shù)調(diào)用VOIDADD_FLIGHTFLIGHTNODEAMPH函數(shù),將新航班信息結點插入航班鏈表中。刪除航班時,VOIDMODIFY_FLIGHTFLIGHTNODEAMPHPASSENGERLISTAMPPLIST函數(shù)調(diào)用VOIDDELETE_FLIGHTFLIGHTNODEAMPHPASSENGERLISTAMPPLIST函數(shù)將相應的航班信息刪除并刪除相應的訂單信息。修改航班時間時,VOIDMODIFY_FLIGHTFLIGHTNODEAMPHPASSENGERLISTAMPPLIST函數(shù)修改指定航班的起飛抵達時間。23各模塊之間的調(diào)用關系以及算法設計231各模塊之間的調(diào)用關系5主函數(shù)錄入退票查詢航班查詢訂單修改航班信息訂票退出航班信息瀏覽按航按起瀏覽按訂按客增加刪除修改全部班號飛抵全部單號戶姓航班航班航班航班查詢達城訂單查詢名和信息信息起飛信息航班市查信息訂單證件抵達信息詢航信息號查時間班信詢訂息單信息232算法設計VOIDINIT_FLIGHTFLIGHTNODEAMPH要建立一個以H為頭結點的空鏈表錄入航班信息和增加航班后將航班結點插入該鏈表。VOIDINIT_PASSENGERLISTPASSENGERLISTAMPPLIST建立一個帶有頭指針和尾指針的空鏈表存儲帶有顧客信息的結點。VOIDSAVE_FLIGHTFLIGHTNODEH保存航班信息到指定數(shù)據(jù)文件中。VOIDLOAD_FLIGHTFLIGHTNODEAMPH從存儲航班信息的文件導入航班信息到航班鏈表中。VOIDSAVE_PASSENGERPASSENGERLISTPLIST保存客戶信息到指定數(shù)據(jù)文件中。VOIDLOAD_PASSENGERPASSENGERLISTAMPPLIST從存儲客戶信息的文件導入客戶信息到客戶鏈表中。VOIDADD_FLIGHTFLIGHTNODEAMPH錄入航班信息后調(diào)用INSERT_FLIGHT函數(shù)增加航班。VOIDINSERT_FLIGHTFLIGHTNODEAMPHCHARFLIGHT_NUMCHARSTART_PLACECHAREND_PLACECHARSTART_TIMECHAREND_TIMEINTLEFTFLOATPRICEFLOATPRICE_DISCOUNTINTISFULL在錄入航班情況或增加新的航班后將新的航班結點插入到航線鏈表中。INTBOOKFLIGHTNODEAMPLPASSENGERLISTAMPPLIST要完成客戶訂票將客戶結點插入客戶鏈表中,并修改相應的航班信息。VOIDINSERT_PASSENGERLISTFLIGHTNODEAMPHPASSENGERLISTAMPPLISTCHARNAMECHARID_NUMCHARFLIGHT_NUMINTTICKET_NUM在顧客訂票后將該顧客結點插入到顧客鏈表中,并修改相應的航班信息。VOIDFIND_SAME_FLIGHTFLIGHTNODELCHARFLIGHT_NUM在客戶訂票時,當客戶輸入的航班號對應的航班已滿倉時,提供其他可選航班并輸出顯示。VOIDCANCELPASSENGERLISTAMPPLISTFLIGHTNODEAMPH完成客戶退票,將客戶的訂單從客戶鏈表中刪除,并修改相應的航班信息。INTDELETE_PASSENGERPASSENGERLISTAMPPLISTFLIGHTNODEAMPHCHARNAMECHARID_NUM按6照要退票的顧客的姓名和證件號查找該顧客結點進行刪除操作。VOIDFLIGHT_CHECKFLIGHTNODEH選擇使用何種方式對航班信息進行查詢。VOIDCHECK_ALL_FLIGHTFLIGHTNODEL瀏覽所有航班信息。INTPLACE_CHECKFLIGHTNODELCHARSTART_PLACECHAREND_PLACE按照起飛抵達城市查詢航班信息。INTFLIGHT_NUM_CHECKFLIGHTNODELCHARFLIGHT_NUM按照航班號查詢航班信息。VOIDPASSENGER_CHECKPASSENGERLISTPLIST選擇使用何種方式對訂單信息進行查詢。VOIDCHECK_ALL_PASSENGERPASSENGERLISTPLIST瀏覽所有訂單信息。INTORDER_NUM_CHECKPASSENGERLISTPLISTINTORDER_NUM按訂單號查詢訂單信息。INTID_NAME_CHECKPASSENGERLISTPLISTCHARNAMECHARID_NUM按客戶姓名和證件號查詢訂單信息。VOIDMODIFY_FLIGHTFLIGHTNODEAMPHPASSENGERLISTAMPPLIST修改航班信息,包括添加航班信息,刪除航班信息,修改航班起飛抵達時間。VOIDDELETE_FLIGHTFLIGHTNODEAMPHPASSENGERLISTAMPPLIST按照某個航班號刪除航班結點。3詳細設計31錄入航班信息模塊在主函數(shù)中輸入“1”,調(diào)用VOIDADD_FLIGHTFLIGHTNODEAMPH函數(shù),此函數(shù)將航班指針P指向已存在航班鏈表H的頭結點,利用FORPGTNEXTNULLPPGTNEXT使P指向航線鏈表的最后一個結點,然后讓用戶輸入航班信息,然后調(diào)用VOIDINSERT_FLIGHTFLIGHTNODEAMPHCHARFLIGHT_NUMCHARSTART_PLACECHAREND_PLACECHARSTART_TIMECHAREND_TIMEINT7LEFTFLOATPRICEFLOATPRICE_DISCOUNTINTISFULL函數(shù),用MALLOC函數(shù)申請一個航班結點,并用指針Q指向?qū)⒑桨嘈畔①x到新申請的結點中,PGTNEXTQPPGTNEXT該操作將該結點插入航班鏈表中。流程圖如下開始FLIGHTNODEPHNPGTNEXTNULLYPPGTNEXTNMARK1Y輸入航班信息調(diào)用INSERT_FLIGHT函數(shù)完成航班信息的錄入是否繼續(xù)錄入航班信息“是”輸入“1”MARK1“否”輸入“0”MARK0結束32顧客訂票模塊在主函數(shù)中輸入“2”,調(diào)用INTBOOKFLIGHTNODEAMPHPASSENGERLISTAMPPLIST函數(shù)完成客戶的訂票。用航班指針P指向已存在航班鏈表H的頭結點的下一個結點,請客戶輸入起飛抵達城市,分別存于START_PLACE和END_PLACE中。調(diào)用INTPLACE_CHECKFLIGHTNODELCHARSTART_PLACECHAREND_PLACE函數(shù),如果函數(shù)返回“1”則請客戶輸入要訂的航班號,如果輸入的航班號不存在,輸出提示信息,如果航班存在則提示客戶輸入訂的票數(shù)、客戶的姓名和證件號,調(diào)用VOIDINSERT_PASSENGERLISTFLIGHTNODEAMPHPASSENGERLISTAMPPLISTCHARNAMECHARID_NUMCHARFLIGHT_NUMINTTICKET_NUM函數(shù),定義航班指針PHGTNEXT,使用FOR循環(huán)匹配FLIGHT_NUM和PGTFLIGHT_NUM,找到后,執(zhí)行PGTLEFTPGTLEFTTICKET_NUM,修改相應航班的空座數(shù)。用8MALLOC函數(shù)申請一個客戶結點,并用指針Q指向?qū)⒖蛻粜畔⒑秃桨嗵栙x到新申請的結點中,PLISTGTREARGTNEXTQPLISTGTREARQ該操作將該結點插入客戶鏈表中。如果該航班已滿倉或該航班的空座數(shù)不夠,輸出可供選擇的航班,讓客戶選擇,之后調(diào)用VOIDINSERT_PASSENGERLISTFLIGHTNODEAMPHPASSENGERLISTAMPPLISTCHARNAMECHARID_NUMCHARFLIGHT_NUMINTTICKET_NUM函數(shù)將客戶結點插入客戶鏈表中開始FLIGHTNODEPHGTNEXT輸入起飛抵達城市,分別存于START_PLACE和END_PLACEPLACE_CHECKHSTART_NPLACEEND_PLACE1Y輸入航班號,存入FLIGHT_NUMFLIGHT_NUMNNULLY航班號不為空輸入航班號,存入FLIGHT_NUMNPNULLYSTRCMPPGTFLIGHT_NUMNFLIGHT_NUM0Y輸入姓名、證件號、訂票數(shù),分別
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年東勝區(qū)訶額倫社區(qū)衛(wèi)生服務中心招聘西醫(yī)醫(yī)師1名、彩超醫(yī)師1名備考題庫及一套完整答案詳解
- 2026年東莞市望牛墩鎮(zhèn)國庫支付中心公開招聘專業(yè)技術人才聘員備考題庫有答案詳解
- 2026年后白鎮(zhèn)農(nóng)業(yè)普查工作人員招聘備考題庫及完整答案詳解一套
- 2026年同濟大學繼續(xù)教育學院招生專員崗位招聘備考題庫及答案詳解參考
- 2026年廈門市湖里區(qū)東渡幼兒園新港分園產(chǎn)假頂崗教師招聘備考題庫及參考答案詳解1套
- 2026年一愛物業(yè)發(fā)展有限公司招聘備考題庫完整參考答案詳解
- 2026年北京市海淀區(qū)國有資本運營有限公司招聘備考題庫及1套參考答案詳解
- 2026年宜春市生態(tài)環(huán)境系統(tǒng)事業(yè)單位急需崗位公開招聘工作人員備考題庫有答案詳解
- 2026年徐州市泉山數(shù)據(jù)有限公司招聘備考題庫含答案詳解
- 2026年工業(yè)和備考題庫化部國際經(jīng)濟技術合作中心招聘備考題庫及參考答案詳解一套
- 傳統(tǒng)音樂與現(xiàn)代音樂的融合與發(fā)展
- 紹興三杰紡織印染有限公司年產(chǎn)4500萬米(9200噸針織布、2700萬米梭織布)高檔印染面料升級技改項目環(huán)境影響報告
- 高二綜合實踐第四單元 家庭錄影記趣事-第4課時 家庭短視頻的剪輯-課件
- 水電站壓力管道課件
- 2023年黑龍江省大慶市工人文化宮招聘2人高頻考點歷年難、易點深度預測(共500題含答案解析)模擬試卷
- 勞務派遣費用結算單表格模板
- 衛(wèi)生院消防安全演練方案篇
- 道德與法治八上情境題匯總附答案
- 電焊機操作JSA分析表
- LY/T 1000-2013容器育苗技術
- 新競爭環(huán)境下的企業(yè)發(fā)展戰(zhàn)略(培訓講座課件PPT)
評論
0/150
提交評論