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

2021-08-13 15:18:19 字數 3403 閱讀 7617

學院軟體工程課程設計

學生姓名

專業班級

學號2023年6月18日

目錄一、 課程設計目的3

二、 課程設計內容3

三、 需求分析3

四、 概要設計3

五、 詳細設計及執行結果4

六、 除錯情況,設計技巧及體會9

七、 參考文獻9

八、 附錄(原始檔10

1. 資料結構課程設計是綜合運用資料結構課程中學到的幾種典型資料結構,以及程式語言(c語言),自行實現乙個較為完整的應用系統的設計與開發

2. 通過課程設計,自己通過系統分析、系統設計、程式設計除錯,寫實驗報告等環節,進一步掌握應用系統設計的方法和步驟,靈活運用並深刻理解典型資料結構在軟體開發中的應用 。

3. 學會將知識應用於實際的方法,提高分析和解決問題的能力,增加綜合能力。

航空空訂票系統:

(1)熟練掌握鍊錶儲存結構及其建立過程和常用操作;

(2)熟練掌握佇列的建立過程和常用操作;

(3)學會自己除錯程式的方法並掌握一定的技巧。

航空客運訂票的業務活動包括:查詢航線、客票預訂和辦理退票等。設計乙個航空客運訂票系統,以使上述業務可以借助計算機來完成。

1. 每條航線所涉及的資訊有:終點站名、航班號、飛機號、飛行日(星期幾)、乘員定額、餘票量、已訂票的客戶名單(包括姓名、訂票量、艙位等級1,2或3)以及等候替補的客戶名單(包括姓名、所需票量);

2. 全部資料可以只放在記憶體中;

3. 系統能實現的操作和功能如下:

a) 查詢航線:

根據旅客提出的終點站名輸出下列資訊:航班號、飛機號、星期幾飛行,最近一天航班的日期和餘票額;

b) 承辦訂票業務:

根據客戶提出的要求(航班號、訂票數額)查詢該航班票額情況,若尚有餘票,則為客戶辦理訂票手續,

輸出座位號;若已滿員或余票額少於定票額,則需重新詢問客戶要求。若需要,可登記排隊候補;

c) 退票業務:

根據客戶提供的情況(日期、航班),為客戶辦理退票手續,然後查詢該航班是否有人排隊候補,首先詢

問排在第一的客戶,若所退票額能滿足他的要求,則為他辦理訂票手續,否則依次詢問其他排隊候補的客戶。

1.系統結構圖(功能模組圖)

圖1 功能模組圖

2.功能模組說明

(1)顯示已初始化的全部航線資訊

(2)瀏覽已訂票客戶資訊

(3)根據客戶提出的終點站名,呼叫find()函式尋找航線資訊,呼叫list()函式輸出航線資訊

(4)辦理訂票業務:根據客戶提供的航班號進行查詢航線資訊,若客戶訂票額超過乘員定票總額,退出,若客戶訂票額末超過餘票量,訂票成功並登記資訊,在訂票乘員名單域中新增客戶資訊;如果暫時沒有票,詢問客戶是否要排隊等侯,如果是,則在等候佇列增加該客戶的訂票資訊。

(5)辦理退票業務:呼叫查詢函式,根據客戶提供的航線進行搜尋根據客戶提供的姓名到訂票客戶名單域進行查詢。退票成功後,重新將航線名單域指向訂票單鏈表的頭指標。

根據佇列中從出的客戶資訊判斷是否滿足要求,如果滿足,則將該客戶的資訊插入到乘客資訊鍊錶中。

(6)退出本系統

(1)顯示已初始化的全部航線資訊

圖2顯示全部航線資訊圖

(2)瀏覽已訂票客戶資訊

圖3 瀏覽已定票客戶圖

(3)查詢航線

圖4 查詢航線圖

(4)辦理訂票業務

圖5 辦理訂票業務圖

(5)辦理退票業務

圖6 辦理退票業務圖

(6)排序:sort_tkt()

1.總體過程

編譯和除錯工具:選擇visual c++6.0,該工具穩定,其中有乙個強大的除錯工具,但我不是熟悉。還需要進一步的練習。

2. 在一周半的時間裡,不斷地對程式及各模組進行修改、編譯、除錯、執行,其間遇到很多問題:

(1)因本人能力有限,在編寫的時候只使用了相對較為簡單的基礎語言 ,代替了相對較為複雜的語言,降低了執行效率。

(2)程式在起初設計的時候,經常出現溢位錯誤,而且不只一處。為了修正這些溢位錯誤,耗費了大量的時間,修正解釋之後再看源程式,才發現原來只是因為開始的函式定義的資料型別出現了問題,對函式的定義不清楚,字元的不正確定義造成了後期大量的糾錯工作,

(3)由於忘記了一些c語言的規範使得在除錯過程中一些錯誤沒有發現。例如,呼叫函式時,陣列只需要傳遞陣列名即可;字元『0』和整形的0是不同的文明不可以直接對其畫等號。

(4)測試用例具有一定的廣泛性。執行程式時輸入了多種不同字元資訊,經過多次修改結果達到了預期效果。說明程式具有一定的可靠性和穩定性。

3.通過除錯我自己認為,在哈夫曼編碼解碼系統中用出棧入棧進行哈夫曼解碼編碼解碼要簡單於使用陣列,而使用結構體陣列來儲存待編譯的字元,編碼解碼時通過結構體陣列來實現要優於使用鍊錶。

4.除錯體會

經過這次實習,我對除錯掌握的更加熟練了,改變了過去只除錯不知道如何對照程式語言修改程式的壞習慣,對除錯也有了新的認識,意識到了程式語言的規範性以及我們在程式設計時要有嚴謹的態度,同時在寫程式時如果加一定量的注釋,既增加了程式的可讀性,也可以使自己在讀程式時更容易。

嚴蔚敏、吳偉民 《資料結構》

嚴蔚敏 《資料結構題集》

耿國華《資料結構——c語言描述》

王曙燕 《c語言程式設計》

/*航空票務管理系統源***/

#include

#include

#include

#define maxsize 3 /*定義航線量的最大值*/

typedef struct wat_ros

qnode,*qptr;

typedef struct pqueue

linkqueue;

typedef struct ord_ros

linklist;

struct airline

lineinfo;

struct airline *start;

void display(struct airline *info)

/*列印每條航線的基本資訊*/

void list()/*列印全部航線資訊*/

printf("\n\n");

}void search()

/*根據客戶提出的終點站名輸出航線資訊*/

if(i>=maxsize)

printf("對不起,該航線未找到!\n");

else

}struct airline *find()

/*根據系統提出的航班號查詢並以指標形式返回*/

{ struct airline *info;

char number[10];

int i=0;

info=start;

printf("請輸入航班號:");

scanf("%s",number);

while(i if(!strcmp(number,info->air_num)) return info;

info++;

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

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

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

石家莊經濟學院 本科生課程設計報告書 學號 410109070219 學院資訊工程學院 專業計算機 指導教師 完成日期 2012 xx xx 試設計乙個航空客運訂票系統,方便乘客通過購票系統購買自己的所需要的飛機票,而航空客運訂票的業務活動包括 1 查詢航線 2 客票預訂 3 辦理退票。系統能實現的...

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

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