




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、河南城建學(xué)院課程設(shè)計報告書專 業(yè):計算機科學(xué)與技術(shù) 課程設(shè)計名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計題 目:飛機航班訂票系統(tǒng)班 級:xxx學(xué)號:x姓名:xx同 組 人 員:x指 導(dǎo) 老 師:x完 成 時 間:2012-2-17 摘要隨著時代的進步社會分工的不斷細化,各個行業(yè)聯(lián)系的不斷密切,人們出行越來越多,出行的方式也是百花齊放,作為空中重要的交通工具,飛機航空系統(tǒng)也在不斷地得到優(yōu)化,其中重要的一項就是飛機航空訂票系統(tǒng),因此好的訂票系統(tǒng)關(guān)系著人們的日常出行方便與否,設(shè)計并編制出符合人們需要的航空訂票系統(tǒng)是一項繁重而艱巨的任務(wù),需要我們認真去完成。本文采用C作為前臺開發(fā)工具,VC6.0作為程序代碼的實現(xiàn),旨在實現(xiàn)
2、對現(xiàn)有飛機訂票系統(tǒng)中遇到的各種情況進行良好的改進,是作為嵌入式系統(tǒng)應(yīng)用于機場的良好軟件。關(guān)鍵詞: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)總體設(shè)計52.2.1 系統(tǒng)設(shè)計目標52.2.2 開發(fā)設(shè)計思想52.2.3 系統(tǒng)功能模塊設(shè)計62.3 算法思想描述7第三章算法實現(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參考文獻23
3、第一章 開發(fā)環(huán)境和開發(fā)工具1.1 C/C+語言介紹1.2 開發(fā)背景隨著科學(xué)技術(shù)的不斷發(fā)展,計算機科學(xué)日漸成熟,其強大功能已為人們所深刻認識,它己進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。采用計算機進行信息化管理已成為衡量各個國家科學(xué)化和現(xiàn)代化的重要標志,而交通方式的全面自動化、信息化則是其中重要的組成部分,在很大程度上影響著企業(yè)的經(jīng)濟效益和社會效益。因此,本文所研究的航空訂票系統(tǒng)具有一定的使用價值和現(xiàn)實意義。1.3 開發(fā)環(huán)境 本文所采用的開發(fā)環(huán)境主要是基于VC6.0和基于面向?qū)ο蟪绦蛟O(shè)計的c+。VC是個平臺開工具。該軟件使用TC2為內(nèi)核,提供WINDOWS平臺的開發(fā)界面,因此也就支持WI
4、NDOWS平臺下的功能,例如剪切、復(fù)制、粘貼和查找替換等。而且在功能上也有它的獨特特色例如語法加亮、C內(nèi)嵌匯編、自定義擴展庫的支持等。第二章 算法思想2.1 系統(tǒng)需求分析隨著經(jīng)濟全球化的推進以及企業(yè)激烈的競爭,各大機場訂票系統(tǒng)已經(jīng)越來越不能適應(yīng)人們?nèi)粘3鲂械木置?,所以我們現(xiàn)在需要一個檢索迅速、查找方便、易修改功能齊全方便的系統(tǒng)來適應(yīng)我們的需求。問題的提出:為了減少人工工作量,提高工作效率,使機場管理員的工作更加有效的進行。2.2系統(tǒng)總體設(shè)計2.21 系統(tǒng)設(shè)計目標本文研究開發(fā)的航空訂票系統(tǒng)用于完成航空訂票工作,有以下三個方面的目標:【1】 支持航空管理公司更加便捷的管理【2】 支持航空公司高效率
5、的滿足人們空行需求,包括與班機有關(guān)的訂票,退票,查詢等功能?!?】支持航空公司隨時增加或者是刪除航班信息 2.22 開發(fā)設(shè)計思想基于以上系統(tǒng)設(shè)計目標,本文在開發(fā)人事管理信息系統(tǒng)時遵循了以下開發(fā)設(shè)計思想:采用現(xiàn)有的軟硬件環(huán)境及先進的管理系統(tǒng)開發(fā)方案,從而達到充分利用現(xiàn)有資源,提高系統(tǒng)開發(fā)水平和應(yīng)用效果的目的。盡量達到操作過程中的直觀、方便、實用、安全等要求。系統(tǒng)采用模塊化程序設(shè)計方法,既便于系統(tǒng)功能的各種組合和修改,又便于未參與開發(fā)的技術(shù)維護人員補充、維護。系統(tǒng)應(yīng)具備數(shù)據(jù)庫維護功能,及時根據(jù)用戶需求進行數(shù)據(jù)的添加、刪除、修改、等操作。2.23 系統(tǒng)功能模塊設(shè)計本系統(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ù)結(jié)構(gòu)航空管理系統(tǒng)是一個數(shù)據(jù)庫應(yīng)用系統(tǒng),航班的所有信息都保存在數(shù)據(jù)庫中。3.2 程序模塊 為實現(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ù)文件。進入系統(tǒng)開始頁面,當進入增加航班信息模塊時調(diào)用add函數(shù)和save函數(shù),進入瀏覽信息模塊后調(diào)用print函數(shù)來顯示已有數(shù)據(jù)文件,進入查詢信息模塊調(diào)用search函數(shù),dingpiao和tuipiao函數(shù)中首先調(diào)用search函數(shù),然后在相應(yīng)的增加或者是減少飛機
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(" 歡迎使用飛機訂票系統(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("請在0-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)/打開文件并判定是否出錯 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("請輸入終點站: ");scanf("%s",si.over);printf("請輸入時間(星期幾): ");scanf("%s&
15、quot;,si.time);printf("請輸入機票數(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+;/計算存在航班數(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("請輸入終點站: ");scanf("%s",sm.over);printf("請輸入時間: ");scanf("%s",sm.time);printf("請輸入機票數(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終點站tt時間tt機票數(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終點站tt時間tt機票數(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("請輸入您要訂的機票數(shù)(以回車鍵結(jié)束): ");scanf("%d",&n);if(n<=0)/判定機票數(shù)是否出錯printf("輸入錯誤!至少需訂1張機票。n");else if(si.count=0)/判定機票是否售完printf("對不起,你所選擇的航班的機票已售完!n");break;else if(si.count!=0&&si.count>=n)/判定機票數(shù)是否大于等于訂票數(shù)si.count=si.count
23、-n;printf("訂票成功! ");break;else if(si.count<n)/判定機票數(shù)是否小于訂票數(shù) printf("對不起,你所選擇的航班只剩 %d張機票n", si.count);printf("是否需要重新輸入機票數(shù)?請輸入y或n以回車鍵結(jié)束: ");/判定是否重新輸入訂票數(shù)scanf("%s",a);while(!strcmp(a,"y");printf("是否需要訂其他航班的機票?請輸入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("請輸入您要退的機票數(shù)目: ");scanf
25、("%d",&n);if(n<=0)/判定票數(shù)是否有效printf("輸入錯誤!至少需退1張機票。 ");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("請在1-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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工作服定做合同協(xié)議
- 冷鏈物流體系建設(shè)與維護合同
- 承包韻達快遞業(yè)務(wù)合同書
- 路面硬化施工合同協(xié)議書
- 抵押房屋借款合同
- 新能源研發(fā)及生產(chǎn)供應(yīng)合同
- 南京藝術(shù)學(xué)院《生物化學(xué)上實驗》2023-2024學(xué)年第二學(xué)期期末試卷
- 華南師范大學(xué)《護理學(xué)基礎(chǔ)實驗(2)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西財貿(mào)職業(yè)技術(shù)學(xué)院《化學(xué)與創(chuàng)業(yè)》2023-2024學(xué)年第二學(xué)期期末試卷
- 煙臺工程職業(yè)技術(shù)學(xué)院《管理工程數(shù)學(xué)基礎(chǔ)一》2023-2024學(xué)年第二學(xué)期期末試卷
- 區(qū)域銷售規(guī)劃方案
- 中國服裝零售行業(yè)發(fā)展環(huán)境、市場運行格局及前景研究報告-智研咨詢(2025版)
- 2024年廣東公務(wù)員考試申論試題(公安卷)
- 期末 (試題) -2024-2025學(xué)年人教PEP版英語五年級上冊
- 專題17 物質(zhì)結(jié)構(gòu)與性質(zhì)綜合題-五年(2020-2024)高考化學(xué)真題分類匯編(解析版)
- 語文學(xué)習(xí)任務(wù)群的解讀及設(shè)計要領(lǐng)
- 2024年山東省高考生物試卷真題(含答案解析)
- 光伏發(fā)電站項目安全技術(shù)交底資料
- 富血小板血漿(PRP)臨床實踐與病例分享課件
- 光伏工程施工組織設(shè)計
- 《護理科研》課件
評論
0/150
提交評論