C語言課程設(shè)計(jì)-民航訂票系統(tǒng).doc_第1頁
C語言課程設(shè)計(jì)-民航訂票系統(tǒng).doc_第2頁
C語言課程設(shè)計(jì)-民航訂票系統(tǒng).doc_第3頁
C語言課程設(shè)計(jì)-民航訂票系統(tǒng).doc_第4頁
C語言課程設(shè)計(jì)-民航訂票系統(tǒng).doc_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

212013.12 中國(guó)地質(zhì)大學(xué)C語言課程設(shè)計(jì) 第一章 實(shí)習(xí)報(bào)告1.1題目描述【要求】假定某民航機(jī)場(chǎng)共有n個(gè)航班。每個(gè)航班有一航班號(hào)、確定的航線(起始站、終點(diǎn)站)、確定的飛行時(shí)間(星期幾)和一定的成員訂額。試設(shè)計(jì)一民航訂票系統(tǒng),能提供下列服務(wù)。(1) 航班信息錄入功能(航班信息用文件保存)。(2) 航班信息瀏覽功能。(3) 查詢航線:(至少一種查詢方式)。按航班號(hào)查詢。按起點(diǎn)站查詢。按終點(diǎn)站查詢。按飛行時(shí)間查詢?!咎崾尽浚?) 需求分析航班信息用文件保存,因而要提供文件的輸入/輸出功能;要瀏覽航班信息,需要提供顯示功能;要查詢航線,需要提供查找功能;另外,還要提供鍵盤式選擇菜單以實(shí)現(xiàn)功能選擇。(2) 總體設(shè)計(jì)整個(gè)系統(tǒng)可以設(shè)計(jì)為航班信息輸入模塊、航班信息瀏覽模塊和航線查詢模塊。(3) 數(shù)據(jù)結(jié)構(gòu)建立航班結(jié)構(gòu)體,結(jié)構(gòu)體成員包括航班號(hào)、起始站、終點(diǎn)站、飛行時(shí)間(星期幾)、預(yù)售票總數(shù)、已售票數(shù)。1.2算法設(shè)計(jì)根據(jù)需求分析,可以將這個(gè)系統(tǒng)的設(shè)計(jì)分為如下五大模塊:輸入航班信息,保存航班信息, 瀏覽航班信息,查找航班信息,退出。飛機(jī)訂票系統(tǒng)輸入航班信息保存航班信息瀏覽航班信息查找航班信息退出1.3程序設(shè)計(jì)及代碼分析1.結(jié)構(gòu)體設(shè)計(jì) 建立航班結(jié)構(gòu)體,結(jié)構(gòu)體成員包括航班號(hào),起點(diǎn)站,終點(diǎn)站,飛行時(shí)間(星期幾),預(yù)售票總數(shù)。 struct air int fir_num;char start20;char terminus20;char fir_time10;int count;sN; /*sN中每個(gè)數(shù)組元素依次對(duì)應(yīng)一個(gè)航班信息*/注意 sN中的N為學(xué)生個(gè)數(shù), 程序中采用宏定義的方式, 可以隨時(shí)在源程序宏定義中改,本程序宏定義# define N 10000。2. 主函數(shù)流程圖顯示一系列功能選項(xiàng)輸入j 并判斷j 是否為0根據(jù)j 的值調(diào)用個(gè)功能模塊函數(shù)NY程序void main() int j ;printf(“-welcome to our scheduled flight manage system!-*n”);printf(“*n”);do printf(“1. Please input the scheduled flight informationnm” “2. Look through the scheduled flight informationnn ” “3. Search for the scheduled flight informationnn” “0. EXITnn”);printf(“*n”);printf(“NOTE: This system just support the fly information in the nearest week!nn”);printf(“Please choose one number during 0-3 then push enter: nn”);scanf(“%d”, &j );switch (j) case 1: input(); /*調(diào)用輸入模塊*/break; case 2: print(); /*調(diào)用打印模塊*/break;case 3: search(); /*調(diào)用查找模塊*/break; case 0: break; /*退出*/while(j!=0);printf(“Thank you for using our system!Goodbye!n”);3.各功能模塊設(shè)計(jì)3.1 輸入航班信息流程圖顯示提示信息并設(shè)置密碼讀取密碼驗(yàn)證密碼是否正確N重新輸入密碼Yi =0i+依次讀取第si 班飛機(jī)的航班號(hào), 起點(diǎn)站, 終點(diǎn)站,飛行時(shí)間, 機(jī)票數(shù)保存信息i NY退出N程序void input() char f=“20121000748”; /*設(shè)置密碼*/ int y; printf (“Please input the password then push Enter:nn”); scanf(“%s”,f); /*讀取密碼*/ if(strcmp(f,“20121000748”)= =0) printf(“Please input the flight information one by one(the number of the ticket should be ended by 0):nn”);printf(“*n”);for(i=0;iN;i+) printf(“Please input the flight number:n”); scanf(“%d”,&si.fir_num); /*讀取航班號(hào)*/ printf(“Please input the start place:n”); scanf(“%s”,si.start); /*讀取起點(diǎn)站*/ printf(“Please input the terminus:n”); scanf(“%s”,si.terminus); /*讀取終點(diǎn)站*/ printf(“Please input the time:n”); scanf(“%s”,si.fir_time); /*讀取時(shí)間*/ printf(“Please input the number of the ticket(the number of the ticket should be ended by 0:)n”,m); scanf(“%d”,&si.count); /*讀取機(jī)票數(shù)*/ m+; printf(“The %d group information have been inputted! Please push any key to continue, push 0 to the end”,m); scanf(“%d”,&y);if(y= =0) save(); /*將結(jié)構(gòu)體存盤*/print(); /*輸入輸出航班信息*/break; else printf(“password error! Please check your password! Thank you! Goodbye!nn”);3.2 保存信息模塊流程圖打開文件判斷是否出錯(cuò)定義文件指針返回YN向文件寫入數(shù)據(jù)關(guān)閉文件程序void save() FILE *fp, *fp1; /*定義文件指針*/ if(fp=fopen(“chen.dat”,”wb”)= =NULL) /*打開文件并判斷是否出錯(cuò)*/ printf(“Fail to creat the file!nn”);getchar();return; if(fp1=fopen(“hao.dat”,”wb”)= =NULL) printf(“Fail to creat the file!nn”);getchar();return;for(i=0;im;i+) if(fwrite(&si,sizeof(struct air),1,fp)= =0) /*向文件寫入數(shù)據(jù)并判斷是否出錯(cuò)*/ printf(“Fail to input data to the file!nn”); fprintf(fp1,”%d”,m); fclose(fp); /*關(guān)閉文件*/ fclose(fp1);3.3瀏覽信息模塊流程圖定義文件指針打開文件判斷是否出錯(cuò)退出YN從文件中讀取信息關(guān)閉文件打印信息程序void read() FILE *fp, *fp1; /*定義文件指針*/if(fp=fopen(“chen.dat”,”rb”)= =NULL) /*打開文件判斷是否出錯(cuò)*/ printf(“ Error please make sure the file is exist! Push any key back to the menu”); getchar();if(fp1=fopen(“hao.dat”,”rb”)= =NULL) /*打開文件判斷是否出錯(cuò)*/ printf(“Fail to creat the file!nn”);getchar(); return; fscanf(fp1,”%d”,&m); fclose(fp1); for(i=0;im;i+) fread(&si,sizeof(s),1,fp); /*從文件中讀取信息*/ fclose(fp); /*關(guān)閉文件*/ void print() /*打印模塊*/ char w10; read(); /*調(diào)用讀文件函數(shù)*/ printf(“FlightNumber StartPlace Terminus Time TicketNumbern”); for(i=0;im;i+) printf(PRINT); /*打印信息*/ printf(“Please push any key back to the up menu:n”); scanf(“%s”,w);3.4 查詢信息模塊流程圖顯示查詢方式菜單選擇查找方式輸入要求信息顯示查詢結(jié)果是否繼續(xù)查找退出NY程序void search() char name120; char name220; char ii10; char time10; int n,no;do printf(Please choose one way you want to search:nn); /*打印查詢方式菜單*/ printf(1.According to the flight numbernn 2.According to the Terminusnn 3.According to the start placenn 4.According to the flying timenn 0.BACKnn); printf(Please choose one number during 0-3:nn Push any other key back to the top menu:nn); scanf(%d,&n); /*讀取查找方式*/ if(n= =0) break; switch(n) case 1: printf(Please input the flight number:n); scanf(%d,&no); /*航班號(hào)*/ break; case 2: printf(Please input the terminus :n); scanf(%s,name2); /*讀取終點(diǎn)站*/ break; case 3: printf(Please input the start place:n); scanf(%s,name1); /*讀取起點(diǎn)站*/ break; case 4: printf(Please input the flying time:n); scanf(%s,time); break; read(); /*調(diào)用讀取函數(shù)*/ for(i=0;im;i+) if(strcmp(si.start,name1)=0|strcmp(si.terminus,name2)=0)/*按終點(diǎn)站起始站判斷輸出條件*/ printf(nSucceed in searching for the flight information!n); printf(FlightNumber StartPlace Terminus Time TicketNumbern); printf(PRINT); /*打印信息*/ if(si.fir_num= =no) /*按航班號(hào)判斷輸出條件*/ printf(nSucceed in searching for the flight information!n); printf(FlightNumber StartPlace Terminus Time TicketNumbern); printf(PRINT); if(strcmp(si.fir_time,time)= =0) printf(nSucceed in searching for the flight information!n); printf(FlightNumber StartPlace Terminus Time TicketNumbern); printf(PRINT); /*打印信息*/ printf(Can not find the informtiong you wanted or you have done it:nn Do you want to continue?Please input YES or NO and push enter n);scanf(%s,ii);while(strcmp(ii,yes)=0); 1.4實(shí)驗(yàn)數(shù)據(jù)及運(yùn)行效果截圖1.輸入數(shù)據(jù)管理員輸入航班信息:航班號(hào) 起點(diǎn)站 終點(diǎn)站 飛行時(shí)間 總票數(shù)100 quzhou wuhan 9.1 100101 quzhou wuhan 9.2 150102 wuhan quzhou 9.1 130103 beijing wuhan 9.2 100 2.編譯,連接和運(yùn)行3.結(jié)果3.1 主菜單函數(shù)3.2 輸入信息模塊3.3瀏覽信息模塊3.4查詢信息模塊3.4.1 按照航班號(hào)查詢3.4.2 按照終點(diǎn)站查詢3.4.3 按照起點(diǎn)站查詢3.4.4 按照時(shí)間查詢3.4.5 結(jié)束1.5設(shè)計(jì)中出現(xiàn)的錯(cuò)誤及解決方法我在程序的設(shè)計(jì)中遇到了諸如中英輸入法錯(cuò)誤、標(biāo)點(diǎn)符號(hào)錯(cuò)誤等錯(cuò)誤,同時(shí)在函數(shù)調(diào)用處多次出錯(cuò),很感謝馬釗老師、殷商珉珉同學(xué)和李洋同學(xué)的指導(dǎo),讓我學(xué)會(huì)用模塊化的方式處理相關(guān)問題。當(dāng)然,那些錯(cuò)誤在編譯過程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論