C課程設(shè)計(jì)報(bào)告飛機(jī)訂票系統(tǒng)_第1頁(yè)
C課程設(shè)計(jì)報(bào)告飛機(jī)訂票系統(tǒng)_第2頁(yè)
C課程設(shè)計(jì)報(bào)告飛機(jī)訂票系統(tǒng)_第3頁(yè)
C課程設(shè)計(jì)報(bào)告飛機(jī)訂票系統(tǒng)_第4頁(yè)
C課程設(shè)計(jì)報(bào)告飛機(jī)訂票系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 課程設(shè)計(jì)報(bào)告書專 業(yè):電子信息工程 課程設(shè)計(jì)名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題 目:飛機(jī)航班訂票系統(tǒng)班 級(jí):一班學(xué)號(hào):2012508142姓名:韓凱譯指 導(dǎo) 老 師:高攀老師完 成 時(shí) 間:2013-03-04 摘要隨著時(shí)代的進(jìn)步社會(huì)分工的不斷細(xì)化,各個(gè)行業(yè)聯(lián)系的不斷密切,人們出行越來越多,出行的方式也是百花齊放,作為空中重要的交通工具,飛機(jī)航空系統(tǒng)也在不斷地得到優(yōu)化,其中重要的一項(xiàng)就是飛機(jī)航空訂票系統(tǒng),因此好的訂票系統(tǒng)關(guān)系著人們的日常出行方便與否,設(shè)計(jì)并編制出符合人們需要的航空訂票系統(tǒng)是一項(xiàng)繁重而艱巨的任務(wù),需要我們認(rèn)真去完成。本文采用C作為前臺(tái)開發(fā)工具,VC6.0作為程序代碼的實(shí)現(xiàn),旨在實(shí)現(xiàn)對(duì)現(xiàn)有

2、飛機(jī)訂票系統(tǒng)中遇到的各種情況進(jìn)行良好的改進(jìn),是作為嵌入式系統(tǒng)應(yīng)用于機(jī)場(chǎng)的良好軟件。關(guān)鍵詞:C,VC 6.0,飛機(jī)訂票系統(tǒng)目錄目錄3第一章開發(fā)環(huán)境和開發(fā)工具41.1C語言簡(jiǎn)介41.2 開發(fā)背景41.3 開發(fā)環(huán)境4第二章 算法思想52.1 系統(tǒng)需求分析52.2 系統(tǒng)總體設(shè)計(jì)52.2.1 系統(tǒng)設(shè)計(jì)目標(biāo)52.2.2 開發(fā)設(shè)計(jì)思想52.2.3 系統(tǒng)功能模塊設(shè)計(jì)62.3 算法思想描述7第三章算法實(shí)現(xiàn).113.1 數(shù)據(jù)結(jié)構(gòu)113.2 程序模塊113.3 各模塊之間的調(diào)用關(guān)系123.4 源程序代碼12第四章測(cè)試與分析214.1 測(cè)試數(shù)據(jù)選擇21 4.2 測(cè)試結(jié)果分析22總 結(jié)22心得體會(huì)22參考文獻(xiàn)23第一章

3、 開發(fā)環(huán)境和開發(fā)工具1.1 C/C+語言介紹1.2 開發(fā)背景隨著科學(xué)技術(shù)的不斷發(fā)展,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大功能已為人們所深刻認(rèn)識(shí),它己進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。采用計(jì)算機(jī)進(jìn)行信息化管理已成為衡量各個(gè)國(guó)家科學(xué)化和現(xiàn)代化的重要標(biāo)志,而交通方式的全面自動(dòng)化、信息化則是其中重要的組成部分,在很大程度上影響著企業(yè)的經(jīng)濟(jì)效益和社會(huì)效益。因此,本文所研究的航空訂票系統(tǒng)具有一定的使用價(jià)值和現(xiàn)實(shí)意義。1.3 開發(fā)環(huán)境 本文所采用的開發(fā)環(huán)境主要是基于VC6.0和基于面向?qū)ο蟪绦蛟O(shè)計(jì)的c+。VC是個(gè)平臺(tái)開工具。該軟件使用TC2為內(nèi)核,提供WINDOWS平臺(tái)的開發(fā)界面,因此也就支持WINDO

4、WS平臺(tái)下的功能,例如剪切、復(fù)制、粘貼和查找替換等。而且在功能上也有它的獨(dú)特特色例如語法加亮、C內(nèi)嵌匯編、自定義擴(kuò)展庫(kù)的支持等。第二章 算法思想2.1 系統(tǒng)需求分析隨著經(jīng)濟(jì)全球化的推進(jìn)以及企業(yè)激烈的競(jìng)爭(zhēng),各大機(jī)場(chǎng)訂票系統(tǒng)已經(jīng)越來越不能適應(yīng)人們?nèi)粘3鲂械木置?,所以我們現(xiàn)在需要一個(gè)檢索迅速、查找方便、易修改功能齊全方便的系統(tǒng)來適應(yīng)我們的需求。問題的提出:為了減少人工工作量,提高工作效率,使機(jī)場(chǎng)管理員的工作更加有效的進(jìn)行。2.2系統(tǒng)總體設(shè)計(jì)2.21 系統(tǒng)設(shè)計(jì)目標(biāo)本文研究開發(fā)的航空訂票系統(tǒng)用于完成航空訂票工作,有以下三個(gè)方面的目標(biāo):【1】 支持航空管理公司更加便捷的管理【2】 支持航空公司高效率的滿足

5、人們空行需求,包括與班機(jī)有關(guān)的訂票,退票,查詢等功能?!?】支持航空公司隨時(shí)增加或者是刪除航班信息 2.22 開發(fā)設(shè)計(jì)思想基于以上系統(tǒng)設(shè)計(jì)目標(biāo),本文在開發(fā)人事管理信息系統(tǒng)時(shí)遵循了以下開發(fā)設(shè)計(jì)思想:采用現(xiàn)有的軟硬件環(huán)境及先進(jìn)的管理系統(tǒng)開發(fā)方案,從而達(dá)到充分利用現(xiàn)有資源,提高系統(tǒng)開發(fā)水平和應(yīng)用效果的目的。盡量達(dá)到操作過程中的直觀、方便、實(shí)用、安全等要求。系統(tǒng)采用模塊化程序設(shè)計(jì)方法,既便于系統(tǒng)功能的各種組合和修改,又便于未參與開發(fā)的技術(shù)維護(hù)人員補(bǔ)充、維護(hù)。系統(tǒng)應(yīng)具備數(shù)據(jù)庫(kù)維護(hù)功能,及時(shí)根據(jù)用戶需求進(jìn)行數(shù)據(jù)的添加、刪除、修改、等操作。2.23 系統(tǒng)功能模塊設(shè)計(jì)本系統(tǒng)分為六個(gè)模塊:增加航班模塊、瀏覽航班

6、模塊、查找航班模塊、航班排序模塊、訂票模塊、退票模塊。得到如圖所示系統(tǒng)功能模塊圖。飛機(jī)航班訂票系統(tǒng)增加航班信息瀏覽航班信息航班排序模塊退票系統(tǒng)增加機(jī)票保存查找函數(shù)排序函數(shù)查找函數(shù)減少機(jī)票數(shù)目查找函數(shù)增加機(jī)票數(shù)目查找航班信息訂票系統(tǒng)輸出函數(shù)圖2-1 系統(tǒng)功能模塊圖2.3 算法思想描述【1】系統(tǒng)啟動(dòng)時(shí)通過輸入航班信息來增加乘客的選擇范圍【2】當(dāng)選擇功能1時(shí),進(jìn)入增加航班模塊【3】當(dāng)選擇功能2時(shí),進(jìn)入瀏覽航班信息模塊【4】當(dāng)選擇功能3時(shí),進(jìn)入查找航班信息模塊【5】當(dāng)選擇功能4時(shí),進(jìn)入航班排序模塊,有兩種選擇一是從航班號(hào)從大到小,二是從航班號(hào)從小到大【6】當(dāng)需要訂票時(shí),可以選擇功能5進(jìn)入訂票模塊,【7

7、】當(dāng)有的乘客需要退票時(shí)也可以進(jìn)入退票模塊第三章 算法實(shí)現(xiàn)3.1 數(shù)據(jù)結(jié)構(gòu)航空管理系統(tǒng)是一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),航班的所有信息都保存在數(shù)據(jù)庫(kù)中。3.2 程序模塊 為實(shí)現(xiàn)函數(shù)功能特定義一下函數(shù)模型,具體程序參考程序源代碼模塊void add();/函數(shù)聲明增加航班信息函數(shù)void print(); /顯示航班信息void search();/查找航班信息void dingpiao();/訂票業(yè)務(wù)void tuipiao();/退票void read();/讀取文件void save();/保存文件void output();/輸出格式void paixu();/航班排序void chushihua()

8、;/系統(tǒng)初始化void build();/建立數(shù)據(jù)文件void paixu1();/按航班號(hào)從小到大排序void paixu2();/從大到小3.3 各模塊之間的調(diào)用關(guān)系程序從主函數(shù)開始,首先調(diào)用chushihua函數(shù)用來判斷系統(tǒng)本身是否已經(jīng)有原始數(shù)據(jù)文件,如果已經(jīng)有原始數(shù)據(jù)則調(diào)用read函數(shù)否則調(diào)用build函數(shù)用來創(chuàng)建數(shù)據(jù)文件。進(jìn)入系統(tǒng)開始頁(yè)面,當(dāng)進(jìn)入增加航班信息模塊時(shí)調(diào)用add函數(shù)和save函數(shù),進(jìn)入瀏覽信息模塊后調(diào)用print函數(shù)來顯示已有數(shù)據(jù)文件,進(jìn)入查詢信息模塊調(diào)用search函數(shù),dingpiao和tuipiao函數(shù)中首先調(diào)用search函數(shù),然后在相應(yīng)的增加或者是減少飛機(jī)航票。

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 /定義結(jié)構(gòu)體數(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è)務(wù)void tuipiao();/退票void read();/讀取文件void save();/保存文件void output();/輸出格式void paixu();/航班排序void chushihua();/系統(tǒng)初始化void build();/建立數(shù)據(jù)文件void paixu1();/按航班號(hào)從小到大排序void paixu2();/從大到小void main()/主函數(shù)int j; chushihua();/系統(tǒng)初始化判斷是否存在原始數(shù)據(jù)文件printf( 歡迎使用飛機(jī)訂票系統(tǒng)n);do printf(= ); pri

11、ntf(1.增加航班信息n t2.瀏覽航班信息n tt3.查找航班信息(按航班號(hào))tt(_)n ttt4.航班排序(按航班號(hào))n tttt5.訂票業(yè)務(wù)n to()ottt6.退票業(yè)務(wù)n tttttt0.退出n);printf(= ); printf(請(qǐng)?jiān)?-6中選擇以回車鍵結(jié)束: );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(您輸入不合法,請(qǐng)按回車鍵繼續(xù));getchar(); while(j!=0);/判斷是否調(diào)用其他函數(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)/打開文件并判定是否出錯(cuò) printf(創(chuàng)建文件失敗! );getchar();retu

13、rn;printf(請(qǐng)依次輸入航班信息(以回車鍵結(jié)束):n); printf(- n);for(i=0;iN;i+)printf(請(qǐng)輸入航班號(hào): ); scanf(%d,&si.num);printf(請(qǐng)輸入起始站: );scanf(%s,si.start);printf(請(qǐng)輸入終點(diǎn)站: );scanf(%s,si.over);printf(請(qǐng)輸入時(shí)間(星期幾): );scanf(%s,si.time);printf(請(qǐng)輸入機(jī)票數(shù): );scanf(%d,&si.count);fwrite(&si,sizeof(struct air),1,fp);m+;printf(添加完畢,是否繼續(xù)添加?請(qǐng)

14、鍵入y或n以回車鍵結(jié)束:);scanf(%s,ii);if(strcmp(ii,y)!=0)/判斷是否繼續(xù)添加航班信息fclose(fp);/關(guān)閉文件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+;/計(jì)算存在航班數(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(請(qǐng)依次輸入您要增加的航班信息(以回車鍵結(jié)束): n); /打印提示信息printf(- n);printf(請(qǐng)輸入航班號(hào): ); scanf(%d,&sm.num);printf(請(qǐng)輸入起始站: );scanf(%s,sm.start);printf(請(qǐng)輸入終點(diǎn)站: );scanf

16、(%s,sm.over);printf(請(qǐng)輸入時(shí)間: );scanf(%s,sm.time);printf(請(qǐng)輸入機(jī)票數(shù): );scanf(%d,&sm.count);m+;printf(添加完畢,是否繼續(xù)添加?請(qǐng)鍵入y或n以回車鍵結(jié)束:);scanf(%s,ii);while(!strcmp(ii,y);/判斷是否繼續(xù)添加void output()/定義輸出格式函數(shù)printf(航班號(hào)tt起始站tt終點(diǎn)站tt時(shí)間tt機(jī)票數(shù)n); for(i=0;im;i+)printf(PRINT);/打印出信息void print()/定義顯示航班信息函數(shù)printf(n目前我們有如下航班:n);outp

17、ut();/調(diào)用輸出格式函數(shù)printf(n請(qǐng)按回車鍵返回上層菜單 );getchar();getchar(); void search()/定義查詢函數(shù)int n;doprintf(n請(qǐng)輸入航班號(hào): );scanf(%d,&n);/輸入查詢的航班號(hào)for(i=0;im;i+) if(si.num=n)/按航班號(hào)判定輸出條件 printf(n您所查找的航班信息為:n );printf(航班號(hào)tt起始站tt終點(diǎn)站tt時(shí)間tt機(jī)票數(shù) nn);printf(PRINT);/顯示信息 printf(n查詢完畢,按回車鍵繼續(xù));getchar();getchar();return;printf(n對(duì)不起

18、,沒有您需要的信息!n );printf(是否重新查找?請(qǐng)鍵入y或n以回車鍵結(jié)束 );scanf(%s,ii);while(!strcmp(ii,y);/判定是否重新查找 void dingpiao()/定義訂票業(yè)務(wù)函數(shù)int n;char a10=y;dosearch();/調(diào)用查詢模塊if(!strcmp(ii,n)printf(對(duì)不起!沒有找到您所需要的航班,所以不能訂票。n);printf(n請(qǐng)按回車鍵返回上層菜單 );getchar();getchar();strcpy(ii,n);break;doprintf(請(qǐng)輸入您要訂的機(jī)票數(shù)(以回車鍵結(jié)束): );scanf(%d,&n);i

19、f(n=n)/判定機(jī)票數(shù)是否大于等于訂票數(shù)si.count=si.count-n;printf(訂票成功! );break;else if(si.countn)/判定機(jī)票數(shù)是否小于訂票數(shù) printf(對(duì)不起,你所選擇的航班只剩 %d張機(jī)票n, si.count);printf(是否需要重新輸入機(jī)票數(shù)?請(qǐng)輸入y或n以回車鍵結(jié)束: );/判定是否重新輸入訂票數(shù)scanf(%s,a);while(!strcmp(a,y);printf(是否需要訂其他航班的機(jī)票?請(qǐng)輸入y或n以回車鍵結(jié)束: );scanf(%s,a);while(!strcmp(a,y);/判定是否繼續(xù)訂票void tuipiao(

20、)/定義退票函數(shù)int n;char a10;dosearch();/調(diào)用查詢函數(shù)if(!strcmp(ii,n)printf(對(duì)不起!沒有找到您所需要的航班,所以不能退票。n);printf(n請(qǐng)按回車鍵返回上層菜單 );getchar();getchar();strcpy(ii,n);break;printf(請(qǐng)輸入您要退的機(jī)票數(shù)目: );scanf(%d,&n);if(n=0)/判定票數(shù)是否有效printf(輸入錯(cuò)誤!至少需退1張機(jī)票。 );else si.count=si.count+n;printf(退票成功! );printf(是否繼續(xù)? 請(qǐng)鍵入y或n以回車鍵結(jié)束: );/判定是否

21、繼續(xù)退票scanf(%s,a);while(!strcmp(a,y);/判定并跳出循環(huán) void paixu()/定義排序函數(shù)int n;printf(n* ); printf(1.按航班號(hào)從小到大排序n t2.按航班號(hào)從大到小排序n);printf(* ); printf(請(qǐng)?jiān)?-2中選擇以回車鍵結(jié)束: );scanf(%d,&n);switch(n)case 1:paixu1();/調(diào)用從小到大排序函數(shù)break;case 2:paixu2();/調(diào)用從大到小排序函數(shù)break;printf(排序后的航班信息為:n);output();/顯示排序后航班信息printf(n請(qǐng)按回車鍵返回上層

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;第四章 測(cè)試與分析4.1測(cè)試數(shù)據(jù)選擇 表4-14.2測(cè)試結(jié)果分析在輸入測(cè)試數(shù)據(jù)后選擇訂票業(yè)務(wù)并再次輸入相應(yīng)的數(shù)據(jù)會(huì)完成訂票業(yè)務(wù)。在訂票業(yè)務(wù)中調(diào)用dingpiao函數(shù),所有函數(shù)的時(shí)間復(fù)雜度為O(n),系統(tǒng)本身采用線性結(jié)構(gòu)模型???結(jié)在今后的工作、學(xué)習(xí)中我將認(rèn)真總結(jié)經(jīng)驗(yàn)教訓(xùn),努力使自己成為一名技術(shù)過硬、工作嚴(yán)謹(jǐn)、思維活躍的工程人員,為提高人們的生活質(zhì)量做出更大的貢獻(xiàn)該系統(tǒng)主要完成以下功能功能:此系統(tǒng)功能分為管

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論