飛機訂票系統(tǒng)課程設計報告_第1頁
飛機訂票系統(tǒng)課程設計報告_第2頁
飛機訂票系統(tǒng)課程設計報告_第3頁
飛機訂票系統(tǒng)課程設計報告_第4頁
飛機訂票系統(tǒng)課程設計報告_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、內(nèi)蒙古科技大學課程設計說明書內(nèi)蒙古科技大學本科生課程設計說明書題 目:C語言課程設計 飛機訂票系統(tǒng)學生姓名:XXX學 號:XXXX專 業(yè):計算機科學與技術(shù)班 級:計2014-2指導教師:XXXX日 期: 2015 年 1 月 9日35內(nèi)蒙古科技大學課程設計任務書課程名稱C語言課程設計設計題目飛機訂票系統(tǒng)指導教師XXX時間2015.1.52015.1.9一、教學要求1. 鞏固和加深學生對C語言課程的基本知識的理解和掌握2. 掌握C語言編程和程序調(diào)試的基本技能3. 利用C語言進行基本的軟件設計4. 掌握書寫程序設計說明文檔的能力5. 提高運用C語言解決實際問題的能力二、設計資料及參數(shù)每個學生在教師

2、提供的課程設計題目中任意選擇一題,獨立完成,題目選定后不可更換。飛機訂票系統(tǒng)設計假定民航機場共有n個航班,每個航班有一航班號、確定的航線(起始站、終點站)、確定的飛行時間(星期幾)和一定的成員訂額。試設計一民航訂票系統(tǒng),使之能提供下列服務:v 航班信息錄入功能(航班信息用文件保存)輸入v 航班信息瀏覽功能輸出v 查詢航線:(至少兩種查詢方式)算法按航班號查詢 按終點站查詢v 承辦訂票和退票業(yè)務三、設計要求及成果1. 分析課程設計題目的功能需求(可選用數(shù)組或鏈表實現(xiàn),可多人(最多3人)協(xié)作完成一個題目)2. 寫出詳細設計說明(至少包括功能實現(xiàn)分析和模塊流程圖)3. 編寫程序代碼,調(diào)試程序使其能正

3、確運行(代碼書寫要規(guī)范,標示符要見名知意,要有必要的注釋,每人至少500行代碼,不包括注釋和花括號)4. 設計完成的軟件要便于操作和使用5. 設計完成后提交課程設計報告四、進度安排第一天  選擇課程設計題目,分析課題的要求第二天  編程第三天  編程及調(diào)試第四天  寫課程設計報告第五天  提交課程設計報告(打印稿及電子稿)五、評分標準1. 根據(jù)平時上機考勤、表現(xiàn)和進度,教師將每天點名和檢查2. 根據(jù)課程設計完成情況,必須有可運行的軟件。3. 根據(jù)課程設計報告的質(zhì)量,如有雷同,則所有雷同的所有人均判為不及格六、建議參考資料1C語言程序設計,譚浩強

4、,清華大學出版社目 錄內(nèi)蒙古科技大學課程設計任務書I目 錄II第一章 需求分析31.1引言31.2任務概述41.3數(shù)據(jù)描述41.4功能需求41.5性能需求41.6運行需求41.7任務計劃5第二章概要設計62.1總體設計62.2數(shù)據(jù)類型設計(或數(shù)據(jù)結(jié)構(gòu)設計)62.3接口設計72.4運行界面設計7第三章詳細設計103.1輸入模塊設計103.2輸出模塊設計113.3查找模塊設計123.4排序模塊設計143.5保存及讀取模塊設計15第四章測試分析174.1測試程序執(zhí)行情況174.2測試結(jié)果及出現(xiàn)的問題和解決的方法17第五章課程設計總結(jié)22附錄:程序代碼23參考文獻35鳴謝錯誤!未定義書簽。第一章 需求

5、分析1.1 引言隨著時代的進步社會分工的不斷細化,各個行業(yè)聯(lián)系的不斷密切,人們出行越來越多,出行的方式也是百花齊放,作為空中重要的交通工具,飛機航空系統(tǒng)也在不斷地得到優(yōu)化,其中重要的一項就是飛機航空訂票系統(tǒng),因此好的訂票系統(tǒng)關(guān)系著人們的日常出行方便與否,設計并編制出符合人們需要的航空訂票系統(tǒng)是一項繁重而艱巨的任務。訂票系統(tǒng)在現(xiàn)實生活中應用很廣泛,通過這個系統(tǒng)可以使訂票、退票等變得簡便。與傳統(tǒng)的人工用紙、筆來記錄辦理訂票、退票等相比,使用這個系統(tǒng)也會增加工作效率隨著科學技術(shù)的不斷發(fā)展,計算機科學日漸成熟,其強大功能已為人們所深刻認識,它己進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。采用計算機

6、進行信息化管理已成為衡量各個國家科學化和現(xiàn)代化的重要標志,而交通方式的全面自動化、信息化則是其中重要的組成部分,在很大程度上影響著企業(yè)的經(jīng)濟效益和社會效益。因此,本文所研究的航空訂票系統(tǒng)具有一定的使用價值和現(xiàn)實意義。隨著科技與經(jīng)濟的發(fā)展,越來越多的人選擇乘飛機,這跟我國的經(jīng)濟增長有很大關(guān)系,人們在追求快節(jié)奏的生活方式,所以做飛機無疑成了首選。而且隨著網(wǎng)絡的盛行,航空訂票系統(tǒng)就顯得尤為重要,這個系統(tǒng)主要是為了方便大家,讓大家能夠快速、清晰、準確地了解航班信息,而不至于像以前那樣排隊等候,從而避免耽擱乘客大量的等待時間。完成此系統(tǒng),需要綜合運用數(shù)據(jù)結(jié)構(gòu)課程中學到的幾種典型數(shù)據(jù)結(jié)構(gòu),以及程序設計語言

7、(C語言),自行實現(xiàn)一個較為完整的應用系統(tǒng)的設計與開發(fā)。通過課程設計,自己通過系統(tǒng)分析、系統(tǒng)設計、編程調(diào)試,寫實驗報告等環(huán)節(jié),進一步掌握應用系統(tǒng)設計的方法和步驟,靈活運用并深刻理解典型數(shù)據(jù)結(jié)構(gòu)在軟件開發(fā)中的應用。學會將知識應用于實際的方法,提高分析和解決問題的能力,增加綜合能力。1.2 任務概述假定民航機場共有n個航班,每個航班有一航班號、確定的航線(起始站、終點站)、確定的飛行時間(星期幾)和一定的成員訂額。試設計一民航訂票系統(tǒng),使之能提供下列服務:v 航班信息錄入功能(航班信息用文件保存)輸入v 航班信息瀏覽功能輸出v 查詢航線:(至少兩種查詢方式)算法按航班號查 按終點站查詢v 承辦訂票

8、和退票業(yè)務1.3 數(shù)據(jù)描述航班管理系統(tǒng)有如下數(shù)據(jù):(1班號(2.機票數(shù)(3.時間(4.起點站(5.終點站(6.航線1.4 功能需求1. 新建文件,讀取文件,保存到文件2. 添加3. 修改4. 查找5. 刪除1.5 性能需求開發(fā)環(huán)境:PC機,windows系統(tǒng)使用軟件:制 作 程 序:Microsoft Visual C+ 6.0硬件要求:1M以上擴充內(nèi)存,10M以上的顯示內(nèi)存1.6 運行需求本文所采用的開發(fā)環(huán)境主要是基于VC6.0和基于面向?qū)ο蟪绦蛟O計的c+。VC是個平臺開工具。該軟件使用TC2為內(nèi)核,提供WINDOWS平臺的開發(fā)界面,因此也就支持WINDOWS平臺下的功能,軟件環(huán)境:內(nèi)置MS

9、-DOS5.或者windows98及以上系統(tǒng)。且有中文平臺,如:UCDOS等。1.7 任務計劃(1) 每條航線所涉及帶的信息有:終點站名、航班號、飛行日期、余票量。(2)輸出形式為:= 1.航班信息錄入 2.航班信息瀏覽 3.查詢航線(按航班號)4.查詢航線(按終點站)5.查詢航線(按起點站)6.航班排序(按航班號)7.訂票業(yè)務 8.退票業(yè)務 0.退出 =(3)系統(tǒng)能實現(xiàn)的操作功能如下: 查詢航線:根據(jù)旅客提出的終點站名輸出下列信息:航班號、起點站、終點站、星期幾飛行、余票額; 承辦訂票業(yè)務:根據(jù)客戶提出的要求(航班號、訂票數(shù)額)查詢該航班的票額情況,若尚有余票,則為客戶辦理訂票手續(xù);若已滿員

10、或余票額少于訂票額,則需重新詢問客戶要求。若需要,可登記排隊候補; 承辦退票業(yè)務:根據(jù)客戶提供的情況為客戶辦理退票手續(xù),然后查詢該航班是否有人排隊候補,首先詢問排在第一的客戶,若所退票額能滿足他的需求,則為他辦理訂票手續(xù),否則,依次詢問其他排隊候補客戶。測試實例:例子某客戶輸入訂票信息:北京到上海 ,星期一,所需票數(shù)3張;系統(tǒng)輸出:航班號 余票該客戶選擇航班號為1000的航班;則該航班余票變?yōu)?7張。第二章 概要設計2.1 總體設計飛機航班訂票系統(tǒng)增加航班信息瀏覽航班信息航班排序模塊退票系統(tǒng)增加機票保存查找函數(shù)排序函數(shù)查找函數(shù)減少機票數(shù)目查找函數(shù)增加機票數(shù)目查找航班信息訂票系統(tǒng)輸出函數(shù)2.2

11、數(shù)據(jù)類型設計(或數(shù)據(jù)結(jié)構(gòu)設計)struct air /定義結(jié)構(gòu)體數(shù)組 int num;char start20;char over20;char time10;int count;sN;2.3 接口設計 表2.1:函數(shù)列表函數(shù)名函數(shù)格式 /即函數(shù)首部函數(shù)功能main()void主函數(shù)add()void聲明增加航班信息print()void顯示航班信息search()void查找航班信息(按航班號)search2()void查找航班信息(按終點站)search3()void查找航班信息(按起點站)dingpiao()void訂票業(yè)務tuipiao()void退票read()void讀取文件sav

12、e()void保存文件output()void輸出格式paixu()void航班排序chushihua()void系統(tǒng)初始化build()void建立數(shù)據(jù)文件paixu1();void按航班號從小到大排序paixu2();void從大到小2.4 運行界面設計1運行主菜單: printf("=n"); printf("1.航班信息錄入 n" "2.航班信息瀏覽 n" "3.查詢航線(按航班號)n" "4.查詢航線(按終點站)n" "5.查詢航線(按起點站)n" "6.

13、航班排序(按航班號)n" "7.訂票業(yè)務 n" "8.退票業(yè)務 n" "0.退出 n"); printf("=n"); printf("請在0-8中選擇以回車鍵結(jié)束: ");界面如下:1子主菜單:printf("請依次輸入航班信息(以回車鍵結(jié)束):n"); printf("-n");for(i=0;i<N;i+)printf("請輸入航班號: "); scanf("%d",&si.num);p

14、rintf("請輸入起始站: ");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(&quo

15、t;添加完畢,是否繼續(xù)添加?請鍵入y或n以回車鍵結(jié)束:");scanf("%s",ii); 2.航班顯示菜單:void output()/定義輸出格式函數(shù)printf("航班號tt起始站tt終點站tt時間tt機票數(shù)n"); for(i=0;i<m;i+)printf(PRINT);/打印出信息第三章 詳細設計3.1 輸入模塊設計輸入模塊1:void build()/定義建立數(shù)據(jù)文件函數(shù)FILE *fp;/定義文件指針if(fp=fopen("hangban.txt","wb")=NULL)/打開文件

16、并判定是否出錯 printf("創(chuàng)建文件失敗! ");getchar();return;printf("請依次輸入航班信息(以回車鍵結(jié)束):n"); printf("-n");for(i=0;i<N;i+)printf("請輸入航班號: "); scanf("%d",&si.num);printf("請輸入起始站: ");scanf("%s",si.start);printf("請輸入終點站: ");scanf("

17、;%s",si.over);printf("請輸入時間(星期幾): ");scanf("%s",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ù)添

18、加航班信息fclose(fp);/關(guān)閉文件return;輸入模塊2:void add()/定義增加航班信息函數(shù)char ch;doprintf("請依次輸入您要增加的航班信息(以回車鍵結(jié)束): n"); /打印提示信息printf("-n");printf("請輸入航班號: "); scanf("%d",&sm.num);printf("請輸入起始站: ");scanf("%s",sm.start);printf("請輸入終點站: ");scanf

19、("%s",sm.over);printf("請輸入時間: ");scanf("%s",sm.time);printf("請輸入機票數(shù): ");scanf("%d",&sm.count);m+;printf("添加完畢,是否繼續(xù)添加?請鍵入y或n以回車鍵結(jié)束:");scanf(" %c",&ch); /%前有一個空格while(ch='y'|ch='Y');/判斷是否繼續(xù)添加3.2 輸出模塊設計輸出模塊1:輸

20、出格式函數(shù)void output()printf("航班號tt起始站tt終點站tt時間tt機票數(shù)n"); for(i=0;i<m;i+)printf(PRINT);/打印出信息輸出模塊2:顯示航班信息函數(shù)void print()printf("n目前我們有如下航班:n");output();/調(diào)用輸出格式函數(shù)printf("n請按回車鍵返回上層菜單");getchar();3.3 查找模塊設計查找模塊(按航班號查詢):查詢函數(shù)void search()int n;doprintf("n請輸入航班號: ");s

21、canf("%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("是否重新查找?請鍵

22、入y或n以回車鍵結(jié)束 ");scanf("%s",ii);while(!strcmp(ii,"y");/判定是否重新查找 查找模塊(按終點站查詢):void search2()/定義查詢函數(shù)char c20;doprintf("n請輸入終點站: ");scanf("%s",c);/輸入查詢的終點站for(i=0;i<m;i+) if(strcmp(si.over,c)=0)/按終點站判定輸出條件 printf("n您所查找的航班信息為:n ");printf("航班號t

23、t起始站tt終點站tt時間tt機票數(shù) nn");printf(PRINT);/顯示信息 printf("n查詢完畢,按回車鍵繼續(xù)");getchar();getchar();return;printf(" 對不起,沒有您需要的信息!n ");printf("是否重新查找?請鍵入y或n以回車鍵結(jié)束 ");scanf("%s",ii);while(!strcmp(ii,"y");/判定是否重新查找查找模塊(按起點站查詢):void search3()/定義查詢函數(shù)char c20;dopr

24、intf("n請輸入起點站: ");scanf("%s",c);/輸入查詢的起點站for(i=0;i<m;i+) if(strcmp(si.start,c)=0)/按終點站判定輸出條件 printf("n您所查找的航班信息為:n ");printf("航班號tt起始站tt終點站tt時間tt機票數(shù) nn");printf(PRINT);/顯示信息 printf("n查詢完畢,按回車鍵繼續(xù)");getchar();getchar();return;printf(" 對不起,沒有您需要

25、的信息!n ");printf("是否重新查找?請鍵入y或n以回車鍵結(jié)束 ");scanf("%s",ii);while(!strcmp(ii,"y");/判定是否重新查找3.4 排序模塊設計排序模塊:void paixu()/定義排序函數(shù)int n;printf("n*n "); printf("1.按航班號從小到大排序n" " 2.按航班號從大到小排序n");printf("*n "); printf("請在1-2中選擇以回車鍵結(jié)束

26、: ");scanf("%d",&n);switch(n)case 1:paixu1();/調(diào)用從小到大排序函數(shù)break;case 2:paixu2();/調(diào)用從大到小排序函數(shù)break;printf("排序后的航班信息為:n");output();/顯示排序后航班信息printf("n請按回車鍵返回上層菜單"); getchar();從小到大排序函數(shù)void paixu1()int k,j;struct air t;for(i=0;i<m;i+)/選擇法排序k=i;for(j=i+1;j<m;j+)i

27、f(sk.num>sj.num)k=j;if(i!=k)t=sk;sk=si;si=t;從大到小排序函數(shù):void paixu2()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;3.5 保存及讀取模塊設計讀取文件函數(shù):void read()FILE *fp;if(fp=fopen("hangban.txt","r")=NULL)printf("創(chuàng)建文件失敗! &qu

28、ot;);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.txt","wb")=NULL) printf("創(chuàng)建文件失敗! ");getchar();return;for(i=0;i<m;i+)/逐塊保存數(shù)據(jù)fwrite(&si,sizeof(struct

29、air),1,fp);fclose(fp);保存函數(shù)void save()FILE *fp;if(fp=fopen("hangban.txt","wb")=NULL) printf("創(chuàng)建文件失敗! ");getchar();return;for(i=0;i<m;i+)/逐塊保存數(shù)據(jù)fwrite(&si,sizeof(struct air),1,fp);fclose(fp);第四章 測試分析4.1 測試程序執(zhí)行情況測試數(shù)據(jù):航班號起始站終點站時間機票數(shù)370北京上海星期二500747天津廣州星期一600757包頭南京星期

30、五4004.2 測試結(jié)果及出現(xiàn)的問題和解決的方法1:軟件運行界面在08中可選取需要的功能2:航班信息錄入3:航班信息的瀏覽4:查詢航線(按航班號)5:查詢航線(按終點站)6:查詢航線(按起點站)7:訂票業(yè)務8:退票業(yè)務當輸入不合法數(shù)據(jù)時會有下列情況:軟件存在的問題:在數(shù)據(jù)初始化的時候未對數(shù)據(jù)按照一定的順序存放,如果航線信息較多時將影響系統(tǒng)功能解決辦法:輸入多個航班是使用功能六對航班進行排序即可。第五章 課程設計總結(jié)這次序編制的過程中出現(xiàn)了很多問題,主要原因是自己以前接觸的關(guān)于編制程序的知識的缺乏,通過飛機航班訂票系統(tǒng)的開發(fā)讓我知道了自己的不足和缺點,寫出一個好的程序需要合作精神,一個人的力量畢

31、竟是有限的團隊力量才是無窮的。一個好的程序員一定是從程序堆里走出來的,只有通過參與具體程序的開發(fā)才知道自己知識的有限,才會學會具體的分析問題,是自己的邏輯性和層次性得到良好的鍛煉,在今后的工作、學習中我將認真總結(jié)經(jīng)驗教訓,努力使自己成為一名技術(shù)過硬、工作嚴謹、思維活躍的工程人員,為提高人們的生活質(zhì)量做出更大的貢獻該統(tǒng)主要完成以下功能: 功能:此系統(tǒng)功能分為管理員模塊和前臺票務員模塊;管理員模塊主要負責航班信息管理,包括增加新航班、修改原有航班、刪除航班的功能;前臺票務員模塊包括乘客信息管理、訂票管理、航班查詢的工能。 性能:能夠高效而且快速的管理航班信息及訂票功能,航班查詢可在較短時間內(nèi)完成,

32、數(shù)據(jù)能夠?qū)崟r反映到終端,以確保信息查詢的準確性,方便乘客訂票,減少系統(tǒng)錯誤。 課程設計是一門專業(yè)課,給我很多專業(yè)知識以及專業(yè)技能上了提升,同時又是一門思辨課,讓我感觸很深,是我對抽象的理論有了具體的認識,在這次課程設計中知道了以前沒有接觸過的很多函數(shù),C語言中的文件部分因為種種原因都沒有得到及時的學習,以前很多東西都沒有學好,就像老師以前說的:“一天敲一個小時的鍵盤程序就能學好了。”現(xiàn)在開始相信了,在以后的學習中自己要加強程序的鍛煉,多參考好的程序和各種各樣的函數(shù),建立起自己的函數(shù)庫,為以后學習打下良好的基礎。附錄:程序代碼#include<stdio.h>#include<

33、string.h>#include<io.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; /定義全局變量char ii10;void add(); /函數(shù)聲

34、明增加航班信息函數(shù)void print(); /顯示航班信息void search();/查找航班信息(按航班號)void search2(); /查找航班信息(按終點站)void search3(); /查找航班信息(按起點站)void dingpiao();/訂票業(yè)務void tuipiao();/退票void read();/讀取文件void save();/保存文件void output();/輸出格式void paixu();/航班排序void chushihua();/系統(tǒng)初始化void build();/建立數(shù)據(jù)文件void paixu1();/按航班號從小到大排序void pa

35、ixu2();/從大到小void main() /主函數(shù)int j; chushihua();/系統(tǒng)初始化判斷是否存在原始數(shù)據(jù)文件printf(" 歡迎使用飛機訂票系統(tǒng)n");printf(" 該系統(tǒng)有以下功能n");do printf("=n"); printf("1.航班信息錄入 n" "2.航班信息瀏覽 n" "3.查詢航線(按航班號)n" "4.查詢航線(按終點站)n" "5.查詢航線(按起點站)n" "6.航班排序(

36、按航班號)n" "7.訂票業(yè)務 n" "8.退票業(yè)務 n" "0.退出 n"); printf("=n"); printf("請在0-8中選擇以回車鍵結(jié)束: ");scanf("%d",&j);fflush(stdin);switch(j)case 1: add();break;case 2:print();break;case 3:search();break; case 4:search2();break;case 5:search3();break;c

37、ase 6:paixu();break;case 7:dingpiao();break;case 8:tuipiao();break; case 0:save();printf("謝謝使用,再見!");break;default:printf("您輸入不合法,請按回車鍵繼續(xù)"); getchar(); while(j!=0);/判斷是否調(diào)用其他函數(shù) void chushihua()/定義系統(tǒng)初始化函數(shù)if(access("hangban.txt",0)build();elseread();void build()/定義建立數(shù)據(jù)文件函數(shù)

38、FILE *fp;/定義文件指針if(fp=fopen("hangban.txt","wb")=NULL)/打開文件并判定是否出錯 printf("創(chuàng)建文件失敗! ");getchar();return;printf("請依次輸入航班信息(以回車鍵結(jié)束):n"); printf("-n");for(i=0;i<N;i+)printf("請輸入航班號: "); scanf("%d",&si.num);printf("請輸入起始站: &

39、quot;);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ù)添加?請鍵入y或n以

40、回車鍵結(jié)束:");scanf("%s",ii);if(strcmp(ii,"y")!=0)/判斷是否繼續(xù)添加航班信息fclose(fp);/關(guān)閉文件return;void read()/定義讀取文件函數(shù)FILE *fp;if(fp=fopen("hangban.txt","r")=NULL)printf("創(chuàng)建文件失敗! ");getchar();return;i=0;while(!feof(fp)fread(&si,sizeof(struct air),1,fp);/逐塊讀取

41、數(shù)據(jù)i+;m+;/計算存在航班數(shù)m-;fclose(fp);void save()/定義保存函數(shù)FILE *fp;if(fp=fopen("hangban.txt","wb")=NULL) printf("創(chuàng)建文件失敗! ");getchar();return;for(i=0;i<m;i+)/逐塊保存數(shù)據(jù)fwrite(&si,sizeof(struct air),1,fp);fclose(fp);void add()/定義增加航班信息函數(shù)char ch;doprintf("請依次輸入您要增加的航班信息(以回車鍵

42、結(jié)束): n"); /打印提示信息printf("-n");printf("請輸入航班號: "); scanf("%d",&sm.num);printf("請輸入起始站: ");scanf("%s",sm.start);printf("請輸入終點站: ");scanf("%s",sm.over);printf("請輸入時間: ");scanf("%s",sm.time);printf("請

43、輸入機票數(shù): ");scanf("%d",&sm.count);m+;printf("添加完畢,是否繼續(xù)添加?請鍵入y或n以回車鍵結(jié)束:");scanf(" %c",&ch); /%前有一個空格while(ch='y'|ch='Y');/判斷是否繼續(xù)添加void output()/定義輸出格式函數(shù)printf("航班號tt起始站tt終點站tt時間tt機票數(shù)n"); for(i=0;i<m;i+)printf(PRINT);/打印出信息void prin

44、t()/定義顯示航班信息函數(shù)printf("n目前我們有如下航班:n");output();/調(diào)用輸出格式函數(shù)printf("n請按回車鍵返回上層菜單");getchar(); void search()/定義查詢函數(shù)int n;doprintf("n請輸入航班號: ");scanf("%d",&n);/輸入查詢的航班號for(i=0;i<m;i+) if(si.num=n)/按航班號判定輸出條件 printf("n您所查找的航班信息為:n ");printf("航班號t

45、t起始站tt終點站tt時間tt機票數(shù) nn");printf(PRINT);/顯示信息 printf("n查詢完畢,按回車鍵繼續(xù)");getchar();getchar();return;printf("n對不起,沒有您需要的信息!n ");printf("是否重新查找?請鍵入y或n以回車鍵結(jié)束 ");scanf("%s",ii);while(!strcmp(ii,"y");/判定是否重新查找 void search2()/定義查詢函數(shù)char c20;doprintf("n

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

47、;printf("是否重新查找?請鍵入y或n以回車鍵結(jié)束 ");scanf("%s",ii);while(!strcmp(ii,"y");/判定是否重新查找void search3()/定義查詢函數(shù)char c20;doprintf("n請輸入起點站: ");scanf("%s",c);/輸入查詢的起點站for(i=0;i<m;i+) if(strcmp(si.start,c)=0)/按終點站判定輸出條件 printf("n您所查找的航班信息為:n ");printf(

48、"航班號tt起始站tt終點站tt時間tt機票數(shù) nn");printf(PRINT);/顯示信息 printf("n查詢完畢,按回車鍵繼續(xù)");getchar();getchar();return;printf(" 對不起,沒有您需要的信息!n ");printf("是否重新查找?請鍵入y或n以回車鍵結(jié)束 ");scanf("%s",ii);while(!strcmp(ii,"y");/判定是否重新查找void dingpiao()/定義訂票業(yè)務函數(shù)int n;char a1

49、0="y"dosearch();/調(diào)用查詢模塊if(!strcmp(ii,"n")printf("對不起!沒有找到您所需要的航班,所以不能訂票。n");printf("n請按回車鍵返回上層菜單");getchar();strcpy(ii,"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ù)是

溫馨提示

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

評論

0/150

提交評論