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

下載本文檔

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

文檔簡介

1、河南城建學(xué)院課程設(shè)計(jì)報(bào)告書專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 課程設(shè)計(jì)名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題 目:飛機(jī)航班訂票系統(tǒng)班 級:xxx學(xué)號:x姓名:xx同 組 人 員:x指 導(dǎo) 老 師:x完 成 時(shí) 間:2012-2-17 摘要隨著時(shí)代的進(jìn)步社會分工的不斷細(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作為前臺開發(fā)工具,VC6.0作為程序代碼的實(shí)現(xiàn),旨在實(shí)現(xiàn)

2、對現(xiàn)有飛機(jī)訂票系統(tǒng)中遇到的各種情況進(jìn)行良好的改進(jìn),是作為嵌入式系統(tǒng)應(yīng)用于機(jī)場的良好軟件。關(guān)鍵詞:C,VC 6.0,飛機(jī)訂票系統(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)總體設(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第四章測試與分析214.1 測試數(shù)據(jù)選擇21 4.2 測試結(jié)果分析22總 結(jié)22心得體會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)識,它己進(jìn)入人類社會的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。采用計(jì)算機(jī)進(jìn)行信息化管理已成為衡量各個(gè)國家科學(xué)化和現(xiàn)代化的重要標(biāo)志,而交通方式的全面自動(dòng)化、信息化則是其中重要的組成部分,在很大程度上影響著企業(yè)的經(jīng)濟(jì)效益和社會效益。因此,本文所研究的航空訂票系統(tǒng)具有一定的使用價(jià)值和現(xiàn)實(shí)意義。1.3 開發(fā)環(huán)境 本文所采用的開發(fā)環(huán)境主要是基于VC6.0和基于面向?qū)ο蟪绦蛟O(shè)計(jì)的c+。VC是個(gè)平臺開工具。該軟件使用TC2為內(nèi)核,提供WINDOWS平臺的開發(fā)界面,因此也就支持WI

4、NDOWS平臺下的功能,例如剪切、復(fù)制、粘貼和查找替換等。而且在功能上也有它的獨(dú)特特色例如語法加亮、C內(nèi)嵌匯編、自定義擴(kuò)展庫的支持等。第二章 算法思想2.1 系統(tǒng)需求分析隨著經(jīng)濟(jì)全球化的推進(jìn)以及企業(yè)激烈的競爭,各大機(jī)場訂票系統(tǒng)已經(jīng)越來越不能適應(yīng)人們?nèi)粘3鲂械木置?,所以我們現(xiàn)在需要一個(gè)檢索迅速、查找方便、易修改功能齊全方便的系統(tǒng)來適應(yīng)我們的需求。問題的提出:為了減少人工工作量,提高工作效率,使機(jī)場管理員的工作更加有效的進(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ù)庫維護(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)入航班排序模塊,有兩種選擇一是從航班號從大到小,二是從航班號從小到大【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ù)庫應(yīng)用系統(tǒng),航班的所有信息都保存在數(shù)據(jù)庫中。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 chushihu

8、a();/系統(tǒng)初始化void build();/建立數(shù)據(jù)文件void paixu1();/按航班號從小到大排序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)開始頁面,當(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<stdio.h>#include<string.h>#include<process.h>#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;/定義全局變量c

10、har ii10;void add();/函數(shù)聲明增加航班信息函數(shù)void print(); /顯示航班信息void search();/查找航班信息void dingpiao();/訂票業(yè)務(wù)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; chushi

11、hua();/系統(tǒng)初始化判斷是否存在原始數(shù)據(jù)文件printf(" 歡迎使用飛機(jī)訂票系統(tǒng)n");do printf("= "); printf("1.增加航班信息n" "t2.瀏覽航班信息n" "tt3.查找航班信息(按航班號)tt(_)n" "ttt4.航班排序(按航班號)n" "tttt5.訂票業(yè)務(wù)n" "to()ottt6.退票業(yè)務(wù)n" "tttttt0.退出n");printf("= ");

12、 printf("請?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:tuipiao();break; case 0:save();printf("謝謝使用,再見! ");break;default:printf("您輸入不合法,

13、請按回車鍵繼續(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();return;printf("請

14、依次輸入航班信息(以回車鍵結(jié)束):n"); printf("- n");for(i=0;i<N;i+)printf("請輸入航班號: "); scanf("%d",&si.num);printf("請輸入起始站: ");scanf("%s",si.start);printf("請輸入終點(diǎn)站: ");scanf("%s",si.over);printf("請輸入時(shí)間(星期幾): ");scanf("%s&

15、quot;,si.time);printf("請輸入機(jī)票數(shù): ");scanf("%d",&si.count);fwrite(&si,sizeof(struct air),1,fp);m+;printf("添加完畢,是否繼續(xù)添加?請鍵入y或n以回車鍵結(jié)束:");scanf("%s",ii);if(strcmp(ii,"y")!=0)/判斷是否繼續(xù)添加航班信息fclose(fp);/關(guān)閉文件return;void read()/定義讀取文件函數(shù)FILE *fp;if(fp=fope

16、n("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=fopen("hangban.dat","wb")=NULL) printf("創(chuàng)建文件失敗! ");g

17、etchar();return;for(i=0;i<m;i+)/逐塊保存數(shù)據(jù)fwrite(&si,sizeof(struct air),1,fp);fclose(fp);void add()/定義增加航班信息函數(shù)doprintf("請依次輸入您要增加的航班信息(以回車鍵結(jié)束): n"); /打印提示信息printf("- n");printf("請輸入航班號: "); scanf("%d",&sm.num);printf("請輸入起始站: ");scanf("%s

18、",sm.start);printf("請輸入終點(diǎn)站: ");scanf("%s",sm.over);printf("請輸入時(shí)間: ");scanf("%s",sm.time);printf("請輸入機(jī)票數(shù): ");scanf("%d",&sm.count);m+;printf("添加完畢,是否繼續(xù)添加?請鍵入y或n以回車鍵結(jié)束:");scanf("%s",ii);while(!strcmp(ii,"y&qu

19、ot;);/判斷是否繼續(xù)添加void output()/定義輸出格式函數(shù)printf("航班號tt起始站tt終點(diǎn)站tt時(shí)間tt機(jī)票數(shù)n"); for(i=0;i<m;i+)printf(PRINT);/打印出信息void print()/定義顯示航班信息函數(shù)printf("n目前我們有如下航班:n");output();/調(diào)用輸出格式函數(shù)printf("n請按回車鍵返回上層菜單 ");getchar();getchar(); void search()/定義查詢函數(shù)int n;doprintf("n請輸入航班號: &q

20、uot;);scanf("%d",&n);/輸入查詢的航班號for(i=0;i<m;i+) if(si.num=n)/按航班號判定輸出條件 printf("n您所查找的航班信息為:n ");printf("航班號tt起始站tt終點(diǎn)站tt時(shí)間tt機(jī)票數(shù) nn");printf(PRINT);/顯示信息 printf("n查詢完畢,按回車鍵繼續(xù)");getchar();getchar();return;printf("n對不起,沒有您需要的信息!n ");printf("是否

21、重新查找?請鍵入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("對不起!沒有找到您所需要的航班,所以不能訂票。n");printf("n請按回車鍵返回上層菜單 ");getchar();getchar();strcpy(ii,

22、"n");break;doprintf("請輸入您要訂的機(jī)票數(shù)(以回車鍵結(jié)束): ");scanf("%d",&n);if(n<=0)/判定機(jī)票數(shù)是否出錯(cuò)printf("輸入錯(cuò)誤!至少需訂1張機(jī)票。n");else if(si.count=0)/判定機(jī)票是否售完printf("對不起,你所選擇的航班的機(jī)票已售完!n");break;else if(si.count!=0&&si.count>=n)/判定機(jī)票數(shù)是否大于等于訂票數(shù)si.count=si.count

23、-n;printf("訂票成功! ");break;else if(si.count<n)/判定機(jī)票數(shù)是否小于訂票數(shù) printf("對不起,你所選擇的航班只剩 %d張機(jī)票n", si.count);printf("是否需要重新輸入機(jī)票數(shù)?請輸入y或n以回車鍵結(jié)束: ");/判定是否重新輸入訂票數(shù)scanf("%s",a);while(!strcmp(a,"y");printf("是否需要訂其他航班的機(jī)票?請輸入y或n以回車鍵結(jié)束: ");scanf("%s&

24、quot;,a);while(!strcmp(a,"y");/判定是否繼續(xù)訂票void tuipiao()/定義退票函數(shù)int n;char a10;dosearch();/調(diào)用查詢函數(shù)if(!strcmp(ii,"n")printf("對不起!沒有找到您所需要的航班,所以不能退票。n");printf("n請按回車鍵返回上層菜單 ");getchar();getchar();strcpy(ii,"n");break;printf("請輸入您要退的機(jī)票數(shù)目: ");scanf

25、("%d",&n);if(n<=0)/判定票數(shù)是否有效printf("輸入錯(cuò)誤!至少需退1張機(jī)票。 ");else si.count=si.count+n;printf("退票成功! ");printf("是否繼續(xù)? 請鍵入y或n以回車鍵結(jié)束: ");/判定是否繼續(xù)退票scanf("%s",a);while(!strcmp(a,"y");/判定并跳出循環(huán) void paixu()/定義排序函數(shù)int n;printf("n* "); prin

26、tf("1.按航班號從小到大排序n" "t2.按航班號從大到小排序n");printf("* "); printf("請?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請按回車鍵返回上層菜單 &

27、quot;); getchar(); getchar();void paixu1()/定義從小到大排序函數(shù)int k,j;struct air t;for(i=0;i<m;i+)/選擇法排序k=i;for(j=i+1;j<m;j+)if(sk.num>sj.num)k=j;if(i!=k)t=sk;sk=si;si=t;void paixu2()/定義從大到小排序函數(shù)int k,j;struct air t;for(i=0;i<m;i+)k=i;for(j=i+1;j<m;j+)if(sk.num<sj.num)k=j;if(i!=k)t=sk;sk=si;si=t;第四章 測試與分析4.1測試數(shù)據(jù)選擇 表4-14.2測試結(jié)果分析在輸入測試數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論