




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C 語(yǔ)言課程設(shè)計(jì)題目:飛機(jī)訂票系統(tǒng)專業(yè):。學(xué)號(hào):。姓名:。任課教師:。C 語(yǔ)言課程設(shè)計(jì)報(bào)告一、課程設(shè)計(jì)報(bào)告正文( 1)課程設(shè)計(jì)題目的原文;假定民航機(jī)場(chǎng)共有n 個(gè)航班:航班號(hào)、起始站、終點(diǎn)站、飛機(jī)號(hào)、飛機(jī)時(shí)間、乘員定額、余票量。試設(shè)計(jì)一民航訂票系統(tǒng),使之能提供下列服務(wù):。( 2)題目的分析(需求分析) ;任務(wù):通過(guò)此系統(tǒng)可以實(shí)現(xiàn)如下功能:錄入:可以錄入航班情況(數(shù)據(jù)可以存儲(chǔ)在一個(gè)數(shù)據(jù)文件中)瀏覽:航班信息瀏覽功能需要提供顯示操作;查詢:可提供按照航班號(hào)、起點(diǎn)站、終點(diǎn)站、飛行時(shí)間、查詢,可以查詢某個(gè)航線的情況(如,輸入航班號(hào),起飛抵達(dá)城市,確定航班是否滿倉(cāng));另外要提供鍵盤(pán)式選擇菜單以實(shí)現(xiàn)功能選擇
2、。要求: 根據(jù)以上功能說(shuō)明,設(shè)計(jì)航班信息, 訂票信息的存儲(chǔ)結(jié)構(gòu),設(shè)計(jì)程序完成功能。可以建立航班結(jié)構(gòu)體,結(jié)構(gòu)體成員包括航班號(hào)、起點(diǎn)站、終點(diǎn)站、飛行時(shí)間、預(yù)售票總數(shù)、已售票數(shù)。( 3)整體設(shè)計(jì)與模塊劃分;根據(jù)需求分析,該程序可分為以下四大模塊:飛機(jī)訂票系統(tǒng)輸入模塊顯示模塊查詢模塊退出模塊( 4)代碼設(shè)計(jì) ;包括各功能模塊的流程圖;重要模塊中關(guān)鍵部分的代碼分析;關(guān)鍵函數(shù)的算法設(shè)計(jì)和分析等等;二、航班基本信息輸入模塊航班信息錄入函數(shù):開(kāi)始文件打開(kāi)否輸入信息輸出錯(cuò)誤信息將信息輸出到磁盤(pán)是否繼續(xù)調(diào)用 printf_back() 函數(shù)結(jié)束航班信息瀏覽函數(shù):流程圖顯示信息開(kāi)始文件打開(kāi)輸出錯(cuò)誤信息查找航班信息是
3、否查找到刪除操作輸入信息是否繼續(xù)結(jié)束查詢模塊:分析:基本信息的查詢按查詢可供選擇的方式比較豐富,可按航班號(hào)查詢。在查詢小模塊中采用了直接查找的方法。本模塊可以通過(guò)多種查詢方式進(jìn)行完善。這是本程序沒(méi)有做的地方。流程圖開(kāi)始文件打開(kāi)輸出錯(cuò)誤信息查詢方式此處可以航班號(hào)完善其它查詢方式是否繼續(xù)結(jié)束( 一 ) 核心源程序清單和執(zhí)行結(jié)果:a) 源程序清單:#include<stdio.h>#include<stdlib.h>#include<io.h>#include<math.h>/標(biāo)準(zhǔn)輸入、輸出頭文件#include<string.h>/包含字
4、符串函數(shù)處理頭文件#include<process.h>/包含 access函數(shù)的頭文件#define N 1000/定義最多的航班數(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;/定義航班號(hào)char start20;/航班起始站char over20;/終點(diǎn)站char time10;/飛行時(shí)間int count;/機(jī)票數(shù)量sN;int i,m=0;/定義全局變量char ii1
5、0;void add();/函數(shù)聲明增加航班信息函數(shù)void print();/顯示航班信息void search();/查找航班信息void read();/讀取文件void save();/保存文件void output();/輸出格式void chushihua();/系統(tǒng)初始化void build();/建立數(shù)據(jù)文件void main()/主函數(shù)int j;chushihua();/系統(tǒng)初始化判斷是否存在原始數(shù)據(jù)文件printf("O(_)O 歡迎使用飛機(jī)訂票系統(tǒng)O(_)O n");/打印出系統(tǒng)主界面doprintf("= ");printf(&
6、quot;1.增加航班信息 n""2.瀏覽航班信息 n""3.查找航班信息 ( 按航班號(hào) )ttn""0.退出 n");printf("= ");printf(" 請(qǐng)?jiān)?0-3 中選擇以回車鍵結(jié)束:scanf("%d",&j);switch(j)case 1: add();/調(diào)用增加航班函數(shù)break;case 2:print();/調(diào)用顯示模塊break;case 3:search();/調(diào)用查找模塊break;case 0:/ 退出系統(tǒng)save();")
7、;printf(" 謝謝使用,再見(jiàn)!( _ )/ n ");break;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)/打開(kāi)文件并判定是否出錯(cuò)printf("創(chuàng)建文件失敗! ");/ 打印出錯(cuò)提示getch
8、ar();return;printf(" 請(qǐng)依次輸入航班信息(以回車鍵結(jié)束 ):n");/打印提示信息printf("- n");for(i=0;i<N;i+)printf(" 請(qǐng)輸入航班號(hào): ");scanf("%d",&si.num);/輸入航班號(hào)printf(" 請(qǐng)輸入起始站: ");scanf("%s",si.start);/輸入起始站printf(" 請(qǐng)輸入終點(diǎn)站: ");scanf("%s",si.over);
9、/輸入終點(diǎn)站printf(" 請(qǐng)輸入時(shí)間 (星期幾 ): ");scanf("%s",si.time);/輸入時(shí)間printf(" 請(qǐng)輸入機(jī)票數(shù): ");scanf("%d",&si.count);/輸入機(jī)票數(shù)fwrite(&si,sizeof(struct air),1,fp);m+;printf(" 添加完畢 ,是否繼續(xù)添加 ?請(qǐng)鍵入 y 或 n 以回車鍵結(jié)束 :"); scanf("%s",ii);if(strcmp(ii,"y")!
10、=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);i+;m+;/計(jì)算存在航班數(shù)/逐塊讀取數(shù)據(jù)m-;fclose(fp);void save()/定義保存函數(shù)FILE *fp;if(fp=fo
11、pen("hangban.dat","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ù)doprintf("請(qǐng)依次輸入您要增加的航班信息(以回車鍵結(jié)束):n");/打印提示信息printf("- n");printf(" 請(qǐng)輸入航班號(hào): "
12、);scanf("%d",&sm.num);/ 讀取航班號(hào)printf(" 請(qǐng)輸入起始站: ");scanf("%s",sm.start);/讀取起始站printf(" 請(qǐng)輸入終點(diǎn)站: ");scanf("%s",sm.over);/讀取終點(diǎn)站printf(" 請(qǐng)輸入時(shí)間 : ");scanf("%s",sm.time);/讀取時(shí)間printf(" 請(qǐng)輸入機(jī)票數(shù): ");scanf("%d",&sm.
13、count);/讀取機(jī)票數(shù)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");/信息標(biāo)題for(i=0;i<m;i+)printf(PRINT);/ 打印出信息void print()/定義顯示航班信息函數(shù)printf("n目前我們有如下航班:n"
14、;);output();/調(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;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");prin
15、tf(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");/判定是否重新查找1) 第一次運(yùn)行程序(輸入初始數(shù)據(jù))界面提示輸入原始數(shù)據(jù):請(qǐng)輸入航班號(hào)請(qǐng)輸入起始站請(qǐng)輸入終點(diǎn)站請(qǐng)輸入飛行時(shí)間請(qǐng)輸入機(jī)票數(shù)。我按照提示一次輸入了4 個(gè)航班
16、信息后按提示輸入“n”則不再繼續(xù)輸入,系統(tǒng)顯示出了主菜單界面。接著按0 退出程序,顯示“謝謝使用,再見(jiàn)。”圖表1 主菜單界面1)第二次運(yùn)行程序(進(jìn)行航班信息的瀏覽)運(yùn)行程序就不再顯示輸入航班信息了,而是直接顯示出了主菜單界面(如圖表1)。在提示中輸入“ 2” 顯示航班信息。輸出如下航班信息(如圖表2),確實(shí)顯示出輸入的4個(gè)航班信息。圖表2 顯示航班信息1) 查詢航班信息在主菜單界面輸入3請(qǐng)輸入航班號(hào)輸入“1010” 顯示出所查找的信息(如圖表3)圖表3 查詢航班信息2) 航班排序在主菜單界面輸入 4按照提示輸入“ 2”(按航班號(hào)從大到小排序)顯示出排序后的航班信息(如圖表 4)圖表4 航班排序三、總結(jié)經(jīng)過(guò)十天的程序設(shè)計(jì),基本掌握程序設(shè)計(jì)的基本方法和步驟。在這十天中悟出:程序設(shè)計(jì)要求有一定的基礎(chǔ)是必須的,在設(shè)計(jì)過(guò)程中要大膽的發(fā)揮自己的想象力,要敢于不斷的創(chuàng)新,要敢于嘗試,我認(rèn)為這也是一種進(jìn)步的好方法?;仡櫰鸫舜握n程設(shè)計(jì),至今我仍感慨頗多,從理論到實(shí)踐,在十天的日子里,我學(xué)到很多很多的東西,不僅鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的內(nèi)容。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才是真正的知識(shí),才能提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)面源污染治理2025年技術(shù)路徑與政策實(shí)施效果評(píng)估報(bào)告
- 安全規(guī)范試題及答案
- 瑜伽課件培訓(xùn)方案范文
- 工業(yè)互聯(lián)網(wǎng)平臺(tái)射頻識(shí)別(RFID)技術(shù)在智能工廠生產(chǎn)設(shè)備性能提升策略報(bào)告
- 法院執(zhí)行普法培訓(xùn)課件
- 中國(guó)南水北調(diào)工程
- 《X射線診斷設(shè)備(第二類)注冊(cè)技術(shù)審查》
- 中國(guó)剪紙英語(yǔ)教學(xué)課件
- 廣西北海市銀海區(qū)2025屆八年級(jí)英語(yǔ)第二學(xué)期期中達(dá)標(biāo)檢測(cè)試題含答案
- 感恩教育班會(huì)
- 婦女兒童之家管理制度
- JG 121-2000施工升降機(jī)齒輪錐鼓形漸進(jìn)式防墜安全器
- 2025山西大地環(huán)境投資控股有限公司校園招聘13人筆試參考題庫(kù)附帶答案詳解
- 江蘇省揚(yáng)州市江都區(qū)城區(qū)2025屆八年級(jí)物理第二學(xué)期期末聯(lián)考試題含解析
- 《防爆安全管理》課件
- 【課件】2024年全國(guó)I、II卷新高考讀后續(xù)寫(xiě)+課件-2025屆高三英語(yǔ)一輪復(fù)習(xí)
- 醫(yī)保村醫(yī)政策培訓(xùn)
- 郵政社招筆試考試歷年真題及答案
- 《結(jié)締組織病本》課件
- 2025屆四川省綿陽(yáng)高三下學(xué)期英語(yǔ)模擬檢測(cè)試卷(一模)含答案
- 濟(jì)南市天橋區(qū)2025年小學(xué)六年級(jí)第二學(xué)期小升初數(shù)學(xué)試卷含解析
評(píng)論
0/150
提交評(píng)論