




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C 語言課程設(shè)計(jì)題目:飛機(jī)訂票系統(tǒng)專業(yè):。學(xué)號(hào):。姓名:。任課教師:。C 語言課程設(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ù):通過此系統(tǒng)可以實(shí)現(xiàn)如下功能:錄入:可以錄入航班情況(數(shù)據(jù)可以存儲(chǔ)在一個(gè)數(shù)據(jù)文件中)瀏覽:航班信息瀏覽功能需要提供顯示操作;查詢:可提供按照航班號(hào)、起點(diǎn)站、終點(diǎn)站、飛行時(shí)間、查詢,可以查詢某個(gè)航線的情況(如,輸入航班號(hào),起飛抵達(dá)城市,確定航班是否滿倉(cāng));另外要提供鍵盤式選擇菜單以實(shí)現(xiàn)功能選擇
2、。要求: 根據(jù)以上功能說明,設(shè)計(jì)航班信息, 訂票信息的存儲(chǔ)結(jié)構(gòu),設(shè)計(jì)程序完成功能??梢越⒑桨嘟Y(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ù):開始文件打開否輸入信息輸出錯(cuò)誤信息將信息輸出到磁盤是否繼續(xù)調(diào)用 printf_back() 函數(shù)結(jié)束航班信息瀏覽函數(shù):流程圖顯示信息開始文件打開輸出錯(cuò)誤信息查找航班信息是
3、否查找到刪除操作輸入信息是否繼續(xù)結(jié)束查詢模塊:分析:基本信息的查詢按查詢可供選擇的方式比較豐富,可按航班號(hào)查詢。在查詢小模塊中采用了直接查找的方法。本模塊可以通過多種查詢方式進(jìn)行完善。這是本程序沒有做的地方。流程圖開始文件打開輸出錯(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(" 謝謝使用,再見!( _ )/ 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)/打開文件并判定是否出錯(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ì)不起,沒有您需要的信息!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 退出程序,顯示“謝謝使用,再見?!眻D表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)過十天的程序設(shè)計(jì),基本掌握程序設(shè)計(jì)的基本方法和步驟。在這十天中悟出:程序設(shè)計(jì)要求有一定的基礎(chǔ)是必須的,在設(shè)計(jì)過程中要大膽的發(fā)揮自己的想象力,要敢于不斷的創(chuàng)新,要敢于嘗試,我認(rèn)為這也是一種進(jìn)步的好方法?;仡櫰鸫舜握n程設(shè)計(jì),至今我仍感慨頗多,從理論到實(shí)踐,在十天的日子里,我學(xué)到很多很多的東西,不僅鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的內(nèi)容。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才是真正的知識(shí),才能提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年國(guó)家基礎(chǔ)地理信息中心招聘畢業(yè)生筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 2025年內(nèi)蒙古自治區(qū)事業(yè)單位招聘工作人員11980人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 互動(dòng)韻律教學(xué)課件
- 數(shù)字鄉(xiāng)村項(xiàng)目規(guī)劃建設(shè)方案投標(biāo)文件(技術(shù)方案)
- 扇形教學(xué)設(shè)計(jì)課件
- 鶴鄉(xiāng)教學(xué)課件
- 文言文掩耳盜鈴教學(xué)課件
- 鋼筋圖紙教學(xué)課件
- 2025年三季度重慶云陽縣事業(yè)單位招聘工作人員304人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 無煙教育活動(dòng)方案
- 滁州瑞芬生物科技有限公司年產(chǎn)1.5萬噸赤蘚糖醇項(xiàng)目環(huán)境影響報(bào)告書
- THMDSXH 003-2023 電商產(chǎn)業(yè)園區(qū)數(shù)字化建設(shè)與管理指南
- 新建ICU鎮(zhèn)痛、鎮(zhèn)靜藥物應(yīng)用幻燈片
- 2020年上海市中考語數(shù)英物化五科試卷及答案
- 橡膠和基材的粘接
- GB/T 10610-2009產(chǎn)品幾何技術(shù)規(guī)范(GPS)表面結(jié)構(gòu)輪廓法評(píng)定表面結(jié)構(gòu)的規(guī)則和方法
- GA/T 935-2011法庭科學(xué)槍彈痕跡檢驗(yàn)鑒定文書編寫規(guī)范
- 湖北省黃石市基層診所醫(yī)療機(jī)構(gòu)衛(wèi)生院社區(qū)衛(wèi)生服務(wù)中心村衛(wèi)生室信息
- DB44-T 2163-2019山地自行車賽場(chǎng)服務(wù) 基本要求-(高清現(xiàn)行)
- 工傷責(zé)任保險(xiǎn)單
- 圍堰施工監(jiān)理實(shí)施細(xì)則
評(píng)論
0/150
提交評(píng)論