![C課程設計報告飛機訂票系統(tǒng)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/4/fb2170a1-de80-4f87-9d3f-b28d644eec04/fb2170a1-de80-4f87-9d3f-b28d644eec041.gif)
![C課程設計報告飛機訂票系統(tǒng)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/4/fb2170a1-de80-4f87-9d3f-b28d644eec04/fb2170a1-de80-4f87-9d3f-b28d644eec042.gif)
![C課程設計報告飛機訂票系統(tǒng)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/4/fb2170a1-de80-4f87-9d3f-b28d644eec04/fb2170a1-de80-4f87-9d3f-b28d644eec043.gif)
![C課程設計報告飛機訂票系統(tǒng)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/4/fb2170a1-de80-4f87-9d3f-b28d644eec04/fb2170a1-de80-4f87-9d3f-b28d644eec044.gif)
![C課程設計報告飛機訂票系統(tǒng)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/4/fb2170a1-de80-4f87-9d3f-b28d644eec04/fb2170a1-de80-4f87-9d3f-b28d644eec045.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 課程設計報告書專 業(yè):電子信息工程 課程設計名稱:數(shù)據(jù)結構課程設計題 目:飛機航班訂票系統(tǒng)班 級:一班學號:2012508142姓名:韓凱譯指 導 老 師:高攀老師完 成 時 間:2013-03-04 摘要隨著時代的進步社會分工的不斷細化,各個行業(yè)聯(lián)系的不斷密切,人們出行越來越多,出行的方式也是百花齊放,作為空中重要的交通工具,飛機航空系統(tǒng)也在不斷地得到優(yōu)化,其中重要的一項就是飛機航空訂票系統(tǒng),因此好的訂票系統(tǒng)關系著人們的日常出行方便與否,設計并編制出符合人們需要的航空訂票系統(tǒng)是一項繁重而艱巨的任務,需要我們認真去完成。本文采用C作為前臺開發(fā)工具,VC6.0作為程序代碼的實現(xiàn),旨在實現(xiàn)對現(xiàn)有
2、飛機訂票系統(tǒng)中遇到的各種情況進行良好的改進,是作為嵌入式系統(tǒng)應用于機場的良好軟件。關鍵詞:C,VC 6.0,飛機訂票系統(tǒng)目錄目錄3第一章開發(fā)環(huán)境和開發(fā)工具41.1C語言簡介41.2 開發(fā)背景41.3 開發(fā)環(huán)境4第二章 算法思想52.1 系統(tǒng)需求分析52.2 系統(tǒng)總體設計52.2.1 系統(tǒng)設計目標52.2.2 開發(fā)設計思想52.2.3 系統(tǒng)功能模塊設計62.3 算法思想描述7第三章算法實現(xiàn).113.1 數(shù)據(jù)結構113.2 程序模塊113.3 各模塊之間的調用關系123.4 源程序代碼12第四章測試與分析214.1 測試數(shù)據(jù)選擇21 4.2 測試結果分析22總 結22心得體會22參考文獻23第一章
3、 開發(fā)環(huán)境和開發(fā)工具1.1 C/C+語言介紹1.2 開發(fā)背景隨著科學技術的不斷發(fā)展,計算機科學日漸成熟,其強大功能已為人們所深刻認識,它己進入人類社會的各個領域并發(fā)揮著越來越重要的作用。采用計算機進行信息化管理已成為衡量各個國家科學化和現(xiàn)代化的重要標志,而交通方式的全面自動化、信息化則是其中重要的組成部分,在很大程度上影響著企業(yè)的經濟效益和社會效益。因此,本文所研究的航空訂票系統(tǒng)具有一定的使用價值和現(xiàn)實意義。1.3 開發(fā)環(huán)境 本文所采用的開發(fā)環(huán)境主要是基于VC6.0和基于面向對象程序設計的c+。VC是個平臺開工具。該軟件使用TC2為內核,提供WINDOWS平臺的開發(fā)界面,因此也就支持WINDO
4、WS平臺下的功能,例如剪切、復制、粘貼和查找替換等。而且在功能上也有它的獨特特色例如語法加亮、C內嵌匯編、自定義擴展庫的支持等。第二章 算法思想2.1 系統(tǒng)需求分析隨著經濟全球化的推進以及企業(yè)激烈的競爭,各大機場訂票系統(tǒng)已經越來越不能適應人們日常出行的局面,所以我們現(xiàn)在需要一個檢索迅速、查找方便、易修改功能齊全方便的系統(tǒng)來適應我們的需求。問題的提出:為了減少人工工作量,提高工作效率,使機場管理員的工作更加有效的進行。2.2系統(tǒng)總體設計2.21 系統(tǒng)設計目標本文研究開發(fā)的航空訂票系統(tǒng)用于完成航空訂票工作,有以下三個方面的目標:【1】 支持航空管理公司更加便捷的管理【2】 支持航空公司高效率的滿足
5、人們空行需求,包括與班機有關的訂票,退票,查詢等功能。【3】支持航空公司隨時增加或者是刪除航班信息 2.22 開發(fā)設計思想基于以上系統(tǒng)設計目標,本文在開發(fā)人事管理信息系統(tǒng)時遵循了以下開發(fā)設計思想:采用現(xiàn)有的軟硬件環(huán)境及先進的管理系統(tǒng)開發(fā)方案,從而達到充分利用現(xiàn)有資源,提高系統(tǒng)開發(fā)水平和應用效果的目的。盡量達到操作過程中的直觀、方便、實用、安全等要求。系統(tǒng)采用模塊化程序設計方法,既便于系統(tǒng)功能的各種組合和修改,又便于未參與開發(fā)的技術維護人員補充、維護。系統(tǒng)應具備數(shù)據(jù)庫維護功能,及時根據(jù)用戶需求進行數(shù)據(jù)的添加、刪除、修改、等操作。2.23 系統(tǒng)功能模塊設計本系統(tǒng)分為六個模塊:增加航班模塊、瀏覽航班
6、模塊、查找航班模塊、航班排序模塊、訂票模塊、退票模塊。得到如圖所示系統(tǒng)功能模塊圖。飛機航班訂票系統(tǒng)增加航班信息瀏覽航班信息航班排序模塊退票系統(tǒng)增加機票保存查找函數(shù)排序函數(shù)查找函數(shù)減少機票數(shù)目查找函數(shù)增加機票數(shù)目查找航班信息訂票系統(tǒng)輸出函數(shù)圖2-1 系統(tǒng)功能模塊圖2.3 算法思想描述【1】系統(tǒng)啟動時通過輸入航班信息來增加乘客的選擇范圍【2】當選擇功能1時,進入增加航班模塊【3】當選擇功能2時,進入瀏覽航班信息模塊【4】當選擇功能3時,進入查找航班信息模塊【5】當選擇功能4時,進入航班排序模塊,有兩種選擇一是從航班號從大到小,二是從航班號從小到大【6】當需要訂票時,可以選擇功能5進入訂票模塊,【7
7、】當有的乘客需要退票時也可以進入退票模塊第三章 算法實現(xiàn)3.1 數(shù)據(jù)結構航空管理系統(tǒng)是一個數(shù)據(jù)庫應用系統(tǒng),航班的所有信息都保存在數(shù)據(jù)庫中。3.2 程序模塊 為實現(xiàn)函數(shù)功能特定義一下函數(shù)模型,具體程序參考程序源代碼模塊void add();/函數(shù)聲明增加航班信息函數(shù)void print(); /顯示航班信息void search();/查找航班信息void dingpiao();/訂票業(yè)務void tuipiao();/退票void read();/讀取文件void save();/保存文件void output();/輸出格式void paixu();/航班排序void chushihua()
8、;/系統(tǒng)初始化void build();/建立數(shù)據(jù)文件void paixu1();/按航班號從小到大排序void paixu2();/從大到小3.3 各模塊之間的調用關系程序從主函數(shù)開始,首先調用chushihua函數(shù)用來判斷系統(tǒng)本身是否已經有原始數(shù)據(jù)文件,如果已經有原始數(shù)據(jù)則調用read函數(shù)否則調用build函數(shù)用來創(chuàng)建數(shù)據(jù)文件。進入系統(tǒng)開始頁面,當進入增加航班信息模塊時調用add函數(shù)和save函數(shù),進入瀏覽信息模塊后調用print函數(shù)來顯示已有數(shù)據(jù)文件,進入查詢信息模塊調用search函數(shù),dingpiao和tuipiao函數(shù)中首先調用search函數(shù),然后在相應的增加或者是減少飛機航票。
9、3.4 程序源代碼#include#include#include#define N 9999/定義最多的航班數(shù)#define PRINT %dtt%stt%stt星期%stt%dn ,si.num,si.start,si.over,si.time,si.count /宏定義輸出格式struct air /定義結構體數(shù)組int num;char start20;char over20;char time10;int count;sN;int i,m=0;/定義全局變量char ii10;void add();/函數(shù)聲明增加航班信息函數(shù)void print(); /顯示航班信息void sear
10、ch();/查找航班信息void dingpiao();/訂票業(yè)務void tuipiao();/退票void read();/讀取文件void save();/保存文件void output();/輸出格式void paixu();/航班排序void chushihua();/系統(tǒng)初始化void build();/建立數(shù)據(jù)文件void paixu1();/按航班號從小到大排序void paixu2();/從大到小void main()/主函數(shù)int j; chushihua();/系統(tǒng)初始化判斷是否存在原始數(shù)據(jù)文件printf( 歡迎使用飛機訂票系統(tǒng)n);do printf(= ); pri
11、ntf(1.增加航班信息n t2.瀏覽航班信息n tt3.查找航班信息(按航班號)tt(_)n ttt4.航班排序(按航班號)n tttt5.訂票業(yè)務n to()ottt6.退票業(yè)務n tttttt0.退出n);printf(= ); printf(請在0-6中選擇以回車鍵結束: );scanf(%d,&j);fflush(stdin);switch(j)case 1: add();break;case 2:print();break;case 3:search();break;case 4:paixu();break;case 5:dingpiao();break;case 6:tuipia
12、o();break; case 0:save();printf(謝謝使用,再見! );break;default:printf(您輸入不合法,請按回車鍵繼續(xù));getchar(); while(j!=0);/判斷是否調用其他函數(shù) void chushihua()/定義系統(tǒng)初始化函數(shù)if(access(hangban.dat,0)build();elseread();void build()/定義建立數(shù)據(jù)文件函數(shù)FILE *fp;/定義文件指針if(fp=fopen(hangban.dat,wb)=NULL)/打開文件并判定是否出錯 printf(創(chuàng)建文件失敗! );getchar();retu
13、rn;printf(請依次輸入航班信息(以回車鍵結束):n); printf(- n);for(i=0;iN;i+)printf(請輸入航班號: ); scanf(%d,&si.num);printf(請輸入起始站: );scanf(%s,si.start);printf(請輸入終點站: );scanf(%s,si.over);printf(請輸入時間(星期幾): );scanf(%s,si.time);printf(請輸入機票數(shù): );scanf(%d,&si.count);fwrite(&si,sizeof(struct air),1,fp);m+;printf(添加完畢,是否繼續(xù)添加?請
14、鍵入y或n以回車鍵結束:);scanf(%s,ii);if(strcmp(ii,y)!=0)/判斷是否繼續(xù)添加航班信息fclose(fp);/關閉文件return;void read()/定義讀取文件函數(shù)FILE *fp;if(fp=fopen(hangban.dat,r)=NULL)printf(創(chuàng)建文件失敗! );getchar();return;i=0;while(!feof(fp)fread(&si,sizeof(struct air),1,fp);/逐塊讀取數(shù)據(jù)i+;m+;/計算存在航班數(shù)m-;fclose(fp);void save()/定義保存函數(shù)FILE *fp;if(fp=f
15、open(hangban.dat,wb)=NULL) printf(創(chuàng)建文件失敗! );getchar();return;for(i=0;im;i+)/逐塊保存數(shù)據(jù)fwrite(&si,sizeof(struct air),1,fp);fclose(fp);void add()/定義增加航班信息函數(shù)doprintf(請依次輸入您要增加的航班信息(以回車鍵結束): n); /打印提示信息printf(- n);printf(請輸入航班號: ); scanf(%d,&sm.num);printf(請輸入起始站: );scanf(%s,sm.start);printf(請輸入終點站: );scanf
16、(%s,sm.over);printf(請輸入時間: );scanf(%s,sm.time);printf(請輸入機票數(shù): );scanf(%d,&sm.count);m+;printf(添加完畢,是否繼續(xù)添加?請鍵入y或n以回車鍵結束:);scanf(%s,ii);while(!strcmp(ii,y);/判斷是否繼續(xù)添加void output()/定義輸出格式函數(shù)printf(航班號tt起始站tt終點站tt時間tt機票數(shù)n); for(i=0;im;i+)printf(PRINT);/打印出信息void print()/定義顯示航班信息函數(shù)printf(n目前我們有如下航班:n);outp
17、ut();/調用輸出格式函數(shù)printf(n請按回車鍵返回上層菜單 );getchar();getchar(); void search()/定義查詢函數(shù)int n;doprintf(n請輸入航班號: );scanf(%d,&n);/輸入查詢的航班號for(i=0;im;i+) if(si.num=n)/按航班號判定輸出條件 printf(n您所查找的航班信息為:n );printf(航班號tt起始站tt終點站tt時間tt機票數(shù) nn);printf(PRINT);/顯示信息 printf(n查詢完畢,按回車鍵繼續(xù));getchar();getchar();return;printf(n對不起
18、,沒有您需要的信息!n );printf(是否重新查找?請鍵入y或n以回車鍵結束 );scanf(%s,ii);while(!strcmp(ii,y);/判定是否重新查找 void dingpiao()/定義訂票業(yè)務函數(shù)int n;char a10=y;dosearch();/調用查詢模塊if(!strcmp(ii,n)printf(對不起!沒有找到您所需要的航班,所以不能訂票。n);printf(n請按回車鍵返回上層菜單 );getchar();getchar();strcpy(ii,n);break;doprintf(請輸入您要訂的機票數(shù)(以回車鍵結束): );scanf(%d,&n);i
19、f(n=n)/判定機票數(shù)是否大于等于訂票數(shù)si.count=si.count-n;printf(訂票成功! );break;else if(si.countn)/判定機票數(shù)是否小于訂票數(shù) printf(對不起,你所選擇的航班只剩 %d張機票n, si.count);printf(是否需要重新輸入機票數(shù)?請輸入y或n以回車鍵結束: );/判定是否重新輸入訂票數(shù)scanf(%s,a);while(!strcmp(a,y);printf(是否需要訂其他航班的機票?請輸入y或n以回車鍵結束: );scanf(%s,a);while(!strcmp(a,y);/判定是否繼續(xù)訂票void tuipiao(
20、)/定義退票函數(shù)int n;char a10;dosearch();/調用查詢函數(shù)if(!strcmp(ii,n)printf(對不起!沒有找到您所需要的航班,所以不能退票。n);printf(n請按回車鍵返回上層菜單 );getchar();getchar();strcpy(ii,n);break;printf(請輸入您要退的機票數(shù)目: );scanf(%d,&n);if(n=0)/判定票數(shù)是否有效printf(輸入錯誤!至少需退1張機票。 );else si.count=si.count+n;printf(退票成功! );printf(是否繼續(xù)? 請鍵入y或n以回車鍵結束: );/判定是否
21、繼續(xù)退票scanf(%s,a);while(!strcmp(a,y);/判定并跳出循環(huán) void paixu()/定義排序函數(shù)int n;printf(n* ); printf(1.按航班號從小到大排序n t2.按航班號從大到小排序n);printf(* ); printf(請在1-2中選擇以回車鍵結束: );scanf(%d,&n);switch(n)case 1:paixu1();/調用從小到大排序函數(shù)break;case 2:paixu2();/調用從大到小排序函數(shù)break;printf(排序后的航班信息為:n);output();/顯示排序后航班信息printf(n請按回車鍵返回上層
22、菜單 ); getchar(); getchar();void paixu1()/定義從小到大排序函數(shù)int k,j;struct air t;for(i=0;im;i+)/選擇法排序k=i;for(j=i+1;jsj.num)k=j;if(i!=k)t=sk;sk=si;si=t;void paixu2()/定義從大到小排序函數(shù)int k,j;struct air t;for(i=0;im;i+)k=i;for(j=i+1;jm;j+)if(sk.numsj.num)k=j;if(i!=k)t=sk;sk=si;si=t;第四章 測試與分析4.1測試數(shù)據(jù)選擇 表4-14.2測試結果分析在輸入測試數(shù)據(jù)后選擇訂票業(yè)務并再次輸入相應的數(shù)據(jù)會完成訂票業(yè)務。在訂票業(yè)務中調用dingpiao函數(shù),所有函數(shù)的時間復雜度為O(n),系統(tǒng)本身采用線性結構模型???結在今后的工作、學習中我將認真總結經驗教訓,努力使自己成為一名技術過硬、工作嚴謹、思維活躍的工程人員,為提高人們的生活質量做出更大的貢獻該系統(tǒng)主要完成以下功能功能:此系統(tǒng)功能分為管
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京課改版歷史八年級下冊第2課《新中國的初步鞏固》聽課評課記錄
- 人民版道德與法治九年級上冊4.2《城鄉(xiāng)差距》聽課評課記錄
- 招投文件合同范本(2篇)
- 生物燃料鍋爐購買合同(2篇)
- 人教版數(shù)學七年級下冊《7-2-2用坐標表示平移》聽評課記錄
- 魯人版道德與法治九年級上冊9.1《公正律師法律援助》配套聽課評課記錄
- 湘師大版道德與法治七年級上冊2.3《快樂學習》聽課評課記錄
- 道德與法治部編版七年級上冊同步聽課評課記錄《第8課 生命可以永恒嗎》
- 【部編版】八年級歷史上冊《鴉片戰(zhàn)爭》公開課 聽課評課記錄及教學反思
- 蘇科版數(shù)學八年級上冊《課題學習 關于勾股定理的研究》聽評課記錄
- 財務管控的間接成本
- 藏族唐卡藝術特色分析
- 操作系統(tǒng)課程設計報告
- 護士團隊的協(xié)作和領導力培養(yǎng)培訓課件
- QFD模板含計算公式計分標準說明模板
- 醫(yī)院護理培訓課件:《早產兒姿勢管理與擺位》
- 人工智能在生物醫(yī)學倫理與法律中的基因編輯與生命倫理問題研究
- 《論文的寫作技巧》課件
- 國有資產管理辦法-國有資產管理辦法條例
- 公務車輛定點維修車輛保養(yǎng)(附彩圖) 投標方案
- 00015-英語二自學教程-unit3
評論
0/150
提交評論