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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

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

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

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

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

14、rintf("請(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(&quo

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

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

17、;%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)鍵入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("請(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

19、("%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(" %c",&ch); /%前有一個(gè)空格while(ch='y'|ch='Y');/判斷是否繼續(xù)添加3.2 輸出模塊設(shè)計(jì)輸出模塊1:輸

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

21、canf("%d",&n);/輸入查詢的航班號(hào)for(i=0;i<m;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ì)不起,沒(méi)有您需要的信息!n ");printf("是否重新查找?請(qǐng)鍵

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

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

24、intf("n請(qǐng)輸入起點(diǎn)站: ");scanf("%s",c);/輸入查詢的起點(diǎn)站for(i=0;i<m;i+) if(strcmp(si.start,c)=0)/按終點(diǎn)站判定輸出條件 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(" 對(duì)不起,沒(méi)有您需要

25、的信息!n ");printf("是否重新查找?請(qǐng)鍵入y或n以回車鍵結(jié)束 ");scanf("%s",ii);while(!strcmp(ii,"y");/判定是否重新查找3.4 排序模塊設(shè)計(jì)排序模塊:void paixu()/定義排序函數(shù)int n;printf("n*n "); printf("1.按航班號(hào)從小到大排序n" " 2.按航班號(hào)從大到小排序n");printf("*n "); printf("請(qǐng)?jiān)?-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請(qǐng)按回車鍵返回上層菜單"); 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è)計(jì)讀取文件函數(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+;/計(jì)算存在航班數(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);第四章 測(cè)試分析4.1 測(cè)試程序執(zhí)行情況測(cè)試數(shù)據(jù):航班號(hào)起始站終點(diǎn)站時(shí)間機(jī)票數(shù)370北京上海星期二500747天津廣州星期一600757包頭南京星期

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

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

32、數(shù)據(jù)能夠?qū)崟r(shí)反映到終端,以確保信息查詢的準(zhǔn)確性,方便乘客訂票,減少系統(tǒng)錯(cuò)誤。 課程設(shè)計(jì)是一門專業(yè)課,給我很多專業(yè)知識(shí)以及專業(yè)技能上了提升,同時(shí)又是一門思辨課,讓我感觸很深,是我對(duì)抽象的理論有了具體的認(rèn)識(shí),在這次課程設(shè)計(jì)中知道了以前沒(méi)有接觸過(guò)的很多函數(shù),C語(yǔ)言中的文件部分因?yàn)榉N種原因都沒(méi)有得到及時(shí)的學(xué)習(xí),以前很多東西都沒(méi)有學(xué)好,就像老師以前說(shuō)的:“一天敲一個(gè)小時(shí)的鍵盤程序就能學(xué)好了?!爆F(xiàn)在開始相信了,在以后的學(xué)習(xí)中自己要加強(qiáng)程序的鍛煉,多參考好的程序和各種各樣的函數(shù),建立起自己的函數(shù)庫(kù),為以后學(xué)習(xí)打下良好的基礎(chǔ)。附錄:程序代碼#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();/查找航班信息(按航班號(hào))void search2(); /查找航班信息(按終點(diǎn)站)void search3(); /查找航班信息(按起點(diǎn)站)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 pa

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

36、按航班號(hào))n" "7.訂票業(yè)務(wù) n" "8.退票業(yè)務(wù) n" "0.退出 n"); printf("=n"); printf("請(qǐng)?jiān)?-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("您輸入不合法,請(qǐng)按回車鍵繼續(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)/打開文件并判定是否出錯(cuò) printf("創(chuàng)建文件失敗! ");getchar();return;printf("請(qǐng)依次輸入航班信息(以回車鍵結(jié)束):n"); printf("-n");for(i=0;i<N;i+)printf("請(qǐng)輸入航班號(hào): "); scanf("%d",&si.num);printf("請(qǐng)輸入起始站: &

39、quot;);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)鍵入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+;/計(jì)算存在航班數(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("請(qǐng)依次輸入您要增加的航班信息(以回車鍵

42、結(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("%s",sm.over);printf("請(qǐng)輸入時(shí)間: ");scanf("%s",sm.time);printf("請(qǐng)

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

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

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

46、請(qǐng)輸入終點(diǎn)站: ");scanf("%s",c);/輸入查詢的終點(diǎn)站for(i=0;i<m;i+) if(strcmp(si.over,c)=0)/按終點(diǎn)站判定輸出條件 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(" 對(duì)不起,沒(méi)有您需要的信息!n ")

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

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

49、0="y"dosearch();/調(diào)用查詢模塊if(!strcmp(ii,"n")printf("對(duì)不起!沒(méi)有找到您所需要的航班,所以不能訂票。n");printf("n請(qǐng)按回車鍵返回上層菜單");getchar();strcpy(ii,"n");break;doprintf("請(qǐng)輸入您要訂的機(jī)票數(shù)(以回車鍵結(jié)束): ");scanf("%d",&n);if(n<=0)/判定機(jī)票數(shù)是否出錯(cuò)printf("輸入錯(cuò)誤!至少需訂1張機(jī)票。n");else if(si.count=0)/判定機(jī)票是否售完printf("對(duì)不起,你所選擇的航班的機(jī)票已售完!n");break;else if(si.count!=0&&si.count>=n)/判定機(jī)票數(shù)是

溫馨提示

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