資料結構課程設計航空訂票系統

2021-08-10 14:21:05 字數 2889 閱讀 5855

石家莊經濟學院

本科生課程設計報告書

學號   410109070219

學院資訊工程學院

專業計算機

指導教師   ******

完成日期: 2012-xx-xx

試設計乙個航空客運訂票系統,方便乘客通過購票系統購買自己的所需要的飛機票,而航空客運訂票的業務活動包括:1.查詢航線;2.客票預訂;3.辦理退票。

【系統能實現的功能】

①錄入:由設計者錄入航班情況,資料儲存在檔案中;

②查詢航線:由使用者輸入終點站名,出發時間,輸出下列資訊:

所有可能的航班號,當天航班的餘票數目;

③承辦訂票業務:根據使用者提出的要求(航班號、出發時間、訂票數額)查詢

該航班票額情況,若尚有餘票,則為客戶辦理訂票手續,輸出座位號;已滿員或余票額少於訂票額,則需重新詢問客戶是否需要進入預約人數中。

④承辦退票業務:根據使用者提供的情況(日期、航班、票數等),為客戶辦理

退票手續。然後查詢該航班是否有人排隊候補,首先詢問排在第一的客戶,若所退票數目能滿足他的要求,則為他辦理訂票手續,否則依次詢問其他排隊候補的客戶。

【測試例項】

例子某客戶輸入訂票資訊:北京到上海 ,2023年5月3日,所需票數3張;系統輸出:所有可能航班號1000,1001,1002 餘票分別為40張,50張,55張;該客戶選擇航班號為1000的航班;則該航班餘票變為37張;

航線的情況和已訂票客戶登入在一張線性表上,分別用順序表和單鏈表實現;

adt list

資料關係 :r1 =

基本操作 :

initlist70219(&l)

操作結果:構造乙個空的線性表l;

listinsert70219(&l,i,e)

初始條件:線性表l已經存在;

操作結果:在l中第i個位置之前插入新的元素e,l的長度加1;

listdelete70219(&l,i,&e)

初始條件:線性表l已經存在且非空,

操作結果:刪除l的第i個位置的元素,並用e返回其值,l的長度減1;

}預約客戶資訊的儲存使用佇列。

adt queue

資料關係 :r1 =

約定其中a1端為隊頭,an端為佇列尾。

基本操作 :

initqueue70219( &q);

操作結果:構造乙個空佇列;

queueempty70219 (&q);

初始條件:佇列q已存在;

操作結果:若q為空佇列,則返回1,否則返回 0;

enqueue70219( &q, &e);

初始條件:佇列q已存在;

操作結果:插入元素e為q的新隊尾元素;

dequeue70219(&q,&e);

初始條件:佇列q已存在,且非空;

操作結果:刪除q的隊頭元素,並用e返回其值。

gedhead70219(&q,&e);

初始條件:佇列q已存在,且非空;

操作結果:取佇列的隊頭元素,用e返回;

}航空系統用到的其他的函式:

void entry70219();

操作結果:初始化錄入功能

void search70219();

初始條件:初始化錄入成功

操作結果:通過始發地和終點站查詢

void book70219();

初始條件:初始化錄入成功

操作結果:實現訂票

void returnticket70219();

初始條件:已經成功預訂機票;

操作結果:實現退票;

int main()

} while(n==1||n==2||n==3||n==4);

return 0;

}已訂票客戶的單鏈表儲存結構

typedef struct bookedbooked,*linklist;

預約客戶的佇列儲存結構

typedef struct yuyueyuyue,*qnode;

typedef struct linkqueue;

每條航線是這張表上的乙個記錄,包含8個域、其中乘員名單域為指向乘員名單鍊錶的頭指標,等候替補的客戶名單域為分別指向隊頭和隊尾的指標。

航班的相關資訊使用順序表儲存結構

typedef struct hangxian hangxian;

1鍊錶的操作:

1.1初始化單鏈表來儲存訂票客戶的資訊:

申請帶有頭結點的單鏈表;

如果申請失敗則退出程式;

頭結點的下乙個指標為空

返回值為初始化的頭結點指標;

linklist initlist70219(linklist &la)

1.2插入訂票客戶的資訊:、

該節點指標域儲存la的指標域的指標;

la的指標域儲存新申請的節點的指標;

void lianbiaoinsert70219(linklist &la,linklist &s)

1.3刪除退票客戶資訊:

傳入的刪除節點的前乙個節點的位址;

刪除傳入的指標的後乙個節點;

釋放該節點;

void lianbiaodelete70219(linklist &s)

2佇列的操作:

2.1初始化佇列

為頭尾指標申請乙個頭節點;

申請失敗則退出;

此時頭結點指標域為空;

返回q值;

linkque initqueue70219(linkque &q)

2.2 插入預約客戶的資訊:

插入節點的指標域為空;

隊尾指標中的指標域儲存傳入的節點位址;

隊尾指標儲存傳入節點的位址;

void enqueue70219(linkque &q,qnode p)

2.3刪除佇列的首元素,即第乙個預約的客戶:

判斷是否為空佇列;

資料結構 航空訂票系統課程設計

資料結構課程設計 系 部 學生姓名 專業班級 學號成單績 2010年6月18日 目錄一 課程設計目的3 二 課程設計內容3 三 需求分析3 四 概要設計3 五 詳細設計及執行結果4 六 除錯情況,設計技巧及體會9 七 參考文獻9 八 附錄 原始檔10 一 課程設計目的 1 資料結構課程設計是綜合運用...

資料結構 航空訂票系統課程設計

學院軟體工程課程設計 學生姓名 專業班級 學號2015年6月18日 目錄一 課程設計目的3 二 課程設計內容3 三 需求分析3 四 概要設計3 五 詳細設計及執行結果4 六 除錯情況,設計技巧及體會9 七 參考文獻9 八 附錄 原始檔10 1 資料結構課程設計是綜合運用資料結構課程中學到的幾種典型資...

資料結構課程設計航空訂票系統

總體設計 通過此系統可以實現如下功能 1 錄入 可以錄入航班情況 資料儲存在乙個資料檔案中 2 查詢 可以查詢某個航線的情況 如,輸入航班號,查詢起降時間,起飛抵達城市,航班票價,票價折扣,確定航班是否滿倉 可以輸入起飛抵達城市,查詢飛機航班情況 3 訂票 訂票情況存在乙個資料檔案中 可以訂票,如果...