




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄TOC\o"1-5"\h\z設(shè)計(jì)目的1總體設(shè)計(jì)1詳細(xì)設(shè)計(jì)3調(diào)試與測(cè)試4源程序代碼4程序運(yùn)行截圖16仍存在的問(wèn)題18心得體會(huì)18設(shè)計(jì)進(jìn)度表19參考文獻(xiàn)20一、正文(一)設(shè)計(jì)目的:假定民航機(jī)場(chǎng)共有n個(gè)航班,每個(gè)航班有一航班號(hào)、確定的航線(xiàn)(起始站、終點(diǎn)站)、確定的飛行時(shí)間(星期幾)和一定的成員訂額。設(shè)計(jì)一飛機(jī)訂票系統(tǒng),使之能提供下列服務(wù):1、航班信息錄入功能(航班信息用文件保存)包扌舌航班號(hào)、起始站、終點(diǎn)站、機(jī)票總數(shù)、已售機(jī)票數(shù);2、航班信息瀏覽功能3、查詢(xún)航線(xiàn):按航班號(hào)查詢(xún)、按終點(diǎn)站查詢(xún)、按航線(xiàn)查詢(xún)4、承辦訂票和退票業(yè)務(wù)(可選項(xiàng))5、修改航班信息6、刪除航班信息(二)總體設(shè)計(jì):編寫(xiě)一個(gè)飛機(jī)訂票系統(tǒng)的程序,使該系統(tǒng)能夠?qū)崿F(xiàn)對(duì)航班信息的錄入、瀏覽、查詢(xún)、修改、刪除以及訂票、退票的功能。根據(jù)題目要求,首先要制作一個(gè)主菜單顯示出各個(gè)操作的提示可供用戶(hù)選擇,進(jìn)而一步步地深入操作。根據(jù)主菜單的內(nèi)容再進(jìn)一步編制具體操作的函數(shù),各個(gè)功能均用專(zhuān)門(mén)編制的函數(shù)來(lái)完成。這就是看到題目后的最初的思路。因?yàn)轱w機(jī)票管理系統(tǒng)含有各航班的各項(xiàng)信息,如航班號(hào)、航線(xiàn)、飛行時(shí)間、機(jī)票數(shù)目等必要信息,綜合考慮決定用結(jié)構(gòu)體數(shù)組比較合適,根據(jù)題目要求定義如卜結(jié)構(gòu)體類(lèi)型:頭文件包含、全局變量定義和結(jié)構(gòu)體定義源代碼:#include<stdio.h>//標(biāo)準(zhǔn)輸入、輸出頭文件#include<string.h>//包含字符串函數(shù)處理頭文件#include<stdlib.h>幷defineN1000〃定義最多的航班數(shù)#defiiiePRT"%-d%12s%12s%10s%12d%12d\n,,,s[i].num,s[i].start,s[i].over,s[i].tiine,s[i].count,s[i].selled〃定義輸出格式defineLB”航班號(hào)起始站終點(diǎn)站時(shí)間機(jī)票總數(shù)已曹票數(shù)5”〃定義打印列表格式stmctail-{mtnum;chaistart[20];chaiovei[20];chaitune[10];mtcount;〃機(jī)票總數(shù)mtselled;//已預(yù)定機(jī)票總數(shù)}s[N];mtliii=0;〃定義全局變量,記錄下航班信息的數(shù)量charii[10];〃用來(lái)選擇是否繼續(xù)的變量人概思路就是這樣!詳細(xì)設(shè)計(jì)(定義的每個(gè)函數(shù)均作介紹):1)初始化界面函數(shù)(face函數(shù))在程序開(kāi)始執(zhí)行時(shí)調(diào)用該函數(shù),在屏幕上打印出初始界面!并選擇要執(zhí)行的操作!2)信息輸入函數(shù)(input函數(shù))該函數(shù)里面調(diào)用for循環(huán)控制,該函數(shù)中用到一個(gè)全局變量k,用來(lái)控制該函數(shù)被再次調(diào)用時(shí)可以在已存放信息結(jié)構(gòu)體后面繼續(xù)輸入數(shù)據(jù),每當(dāng)一個(gè)完整的航班信息輸入完畢后,會(huì)提示是否輸入下一個(gè)信息!按”0”j結(jié)束輸入!然后調(diào)用卜?面要介紹的信息保存函數(shù)(save函數(shù))!保存完畢后退回到主菜單!3)信息保存函數(shù)(save函數(shù))由于本程序設(shè)計(jì)時(shí)當(dāng)輸入機(jī)票總數(shù)不是正數(shù)時(shí)就會(huì)結(jié)束保存航班信息,所以進(jìn)入save函數(shù)時(shí)首先判斷機(jī)票總數(shù)是否人于0,人于0時(shí)候開(kāi)始進(jìn)入主體部分執(zhí)行!主要過(guò)程是先打開(kāi)文件,文件打開(kāi)成功后調(diào)用文件格式輸出函數(shù)(?nnf函數(shù))將信息保存到文件中區(qū)!4)文件讀取函數(shù)(read函數(shù))該函數(shù)首先打開(kāi)保存飛機(jī)票信息的文件,然后將保存的信息寫(xiě)到飛機(jī)信息的結(jié)構(gòu)體數(shù)組里面去(調(diào)用格式輸入函數(shù)fscanf),并將航班信息輸出到屏幕上!輸入完畢后關(guān)閉文件!5)信息打印函數(shù)(pnnt函數(shù))該函數(shù)只是負(fù)責(zé)把調(diào)用read函數(shù),并打印出航班信息輸出事的一些輔助信息!6)航班信息查找函數(shù)本函數(shù)用do.....wlule循環(huán)控制結(jié)構(gòu),進(jìn)入函數(shù)后選擇查詢(xún)方式(可以按航班號(hào)、終點(diǎn)站、航線(xiàn)查詢(xún)),方式選擇后用switch語(yǔ)句飛機(jī)的航班號(hào)(或者起始站、終點(diǎn)站)!從switch語(yǔ)句出來(lái)后,首先調(diào)用文件讀取函數(shù)(read函數(shù)),輸出所有航班信息到屏幕上,然后在if語(yǔ)句中判斷剛才所輸入飛機(jī)的航班號(hào)(或者起始站、終點(diǎn)站)與數(shù)組中那個(gè)航班信息符合,找到后打印出來(lái)!循壞結(jié)束后,輸入“yes”(“no”),while判斷輸入的條件繼續(xù)(終止查找)!選擇終止查找后返回主菜單!7)航班信息刪除函數(shù)(Delete)航班刪除模塊與查找函數(shù)類(lèi)似,也是用的do.....while循環(huán)控制結(jié)構(gòu),不同時(shí)要先輸入密碼才能進(jìn)入函數(shù)!進(jìn)入函數(shù)后要選擇刪除方式(按航班號(hào)、航線(xiàn))刪除,輸入要?jiǎng)h除的航班號(hào)(航線(xiàn))后,比如說(shuō)選擇按航班號(hào)刪除,找到要?jiǎng)h除的航班數(shù)組下標(biāo)1后,用for(intj=ij<m;j++){s[j]=s|j+l];}方式實(shí)現(xiàn)刪除,刪除完畢后打印出刪除過(guò)的航班信息列表,然后選擇“no”結(jié)束該函數(shù),返回到主菜單!8)訂票函數(shù)(Eook函數(shù))首先調(diào)用查詢(xún)函數(shù)(search函數(shù)),找到要預(yù)訂機(jī)票的航班,然后輸入要頂?shù)臋C(jī)票數(shù)目,根據(jù)輸入的機(jī)票書(shū)修改已售機(jī)票書(shū)數(shù)值!然后保存信息!9)退票函數(shù)(Refimd(j函數(shù)與訂票函數(shù)類(lèi)似,首先調(diào)用查詢(xún)函數(shù)(search函數(shù)),找到要預(yù)訂機(jī)票的航班,然后輸入要退的機(jī)票數(shù)目,根據(jù)輸入的機(jī)票書(shū)修改已售機(jī)票書(shū)數(shù)值!然后保存信息!10)修改函數(shù)(Modify函數(shù))該函數(shù)與輸入函數(shù)類(lèi)似,把數(shù)組里面的信息重新輸入一遍達(dá)到修改航班信息的功能!11)main函數(shù)輸入密碼后進(jìn)入main函數(shù),然后main函數(shù)負(fù)貫調(diào)用以上程序就行了!
源程序代碼:#include<stdio.h>#include<strmg.h>#include<stdlib.h>井defineN200stmctair{mtnum;chaistart[20];chaiovei[20];chaidm亡[10];mtcount;//機(jī)票總數(shù)mtselled;//已預(yù)定機(jī)票總數(shù)}s[N];#defiiiePRTH%-d%12s%12s%10s%12d%12d\nH,s[i].num5s[i].start,s[i].over5s[i].time,s[i].count,s[i].selled//定義輸出格式defineLB-航班號(hào)起始站終點(diǎn)站時(shí)間機(jī)票總數(shù)己售票數(shù)\n”〃定義打印列表格式voidface();voidmput();voidprintQ;voidsearch();voidDeleteQ;voidBookrngQ;voidModify();voidRefiind();voidsave();voidread();mti、m=0,k=0;^l\^l\^l\^l\^l\^l\^l\p\^l\^l\^l\p\ssssssssssssssstttttttttttttttuuuuuuuuuuuuuuuppppppppppppppp★********************************************************★“)?★*你可以選擇下面的操作:★*^l\^l\^l\^l\^l\^l\^l\p\^l\^l\^l\p\ssssssssssssssstttttttttttttttuuuuuuuuuuuuuuuppppppppppppppp★********************************************************★“)?★*你可以選擇下面的操作:★*1?輸入航班信息**n);★*2?瀏覽航班信息**n);★*3?查詢(xún)航班信息**n);★*4?刪除航班信息**n);★*5?訂票信息**n);★*6?修改信息*★「;★*7?退票信息**n);★*0?退出*★「;★********************************************************★")?★*制作人:#####學(xué)號(hào):111111111111T);★*飛機(jī)票管理系統(tǒng)歡迎您★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★”);voidinam(){//delay(lOOO);system(McoloraOH);//設(shè)置背景和字體顏色//system(Hcolor100M);//yaiisemtj;chaifI]=HllllllllllH;〃設(shè)置密碼uity;pnntf(-飛機(jī)票管理系統(tǒng)WE);while(l){請(qǐng)輸入密碼進(jìn)入系統(tǒng)An”);pnntf(請(qǐng)輸入密碼進(jìn)入系統(tǒng)An”);scaiifV%s”,f);〃讀取密碼if(sticnip(f,HllllllllUn)==O){while(l){svstem(nclsM);face。;printf(-請(qǐng)?jiān)?-7中選擇以回車(chē)鍵結(jié)束:”);scaiifC%cT;&j);system(Mclsn);switch(j){case1:mput();//調(diào)用輸入模塊break;case2:prmtQ;//調(diào)用打印模塊break;case3:search();//調(diào)用查詢(xún)模塊break;case4:Delete();//調(diào)用刪除模塊break;case5:Booking();//調(diào)用訂票模塊break;case6:Modifv();//調(diào)用修改模塊break;case7:Refund();//調(diào)用退票模塊break;case0:gotoend;}prmtfC*\ii按任意鍵繼續(xù)……”);}}else{mtyy;pnmf(”輸入密碼錯(cuò)誤!請(qǐng)檢查您的密碼是否正確!W);pnntf(”是否繼續(xù)輸密碼?按任意鍵繼續(xù),0結(jié)束!scanf(?%cT&y);//在此需輸入任意一個(gè)整數(shù)值數(shù)值,程序才能繼續(xù)執(zhí)行if(y==0)break;}}end:prmtf(n(=八歡迎再次回來(lái)A=)\nM);pnntff任意鍵退出系統(tǒng)!\n”);mthp2;scanf(H%d,\&hp2);}voidmput(){system(Mcolor8f*);‘pnntfC請(qǐng)依次輸入航班信息(機(jī)票總數(shù)為0結(jié)束輸入):-”完成輸入信息請(qǐng)鍵入w以回車(chē)鍵結(jié)束\1T);//打印提示信息pnntff\nM);intv;foi(i=k;i<N;i++)pnmf(”請(qǐng)輸入航班號(hào)?。?;scaiif(M%dH,&s[i].num);〃讀取航班號(hào)pnmf("請(qǐng)輸入起始站:”);scanf(H%s,\s[1].start);//i^取起始站prirnff請(qǐng)輸入終點(diǎn)站?。?scanf(”%s”,s[i]?o\?);〃讀取終點(diǎn)站prirnff請(qǐng)輸入時(shí)間(星期)「);scanf(”%s”,s[i]?time);〃讀取時(shí)河pnmf(“請(qǐng)輸入總機(jī)票數(shù)(0結(jié)束):”);scanf(H%d,\&s[i].count);//i^取機(jī)票數(shù)primfC請(qǐng)輸入己售機(jī)票數(shù):”);scanf(”%cT;&s[i]?selled);〃讀取機(jī)票數(shù)m++;//飛機(jī)信息錄入計(jì)數(shù)k++;pnmf("第%€1個(gè)信息已經(jīng)輸完是否繼續(xù)?按任意鍵繼續(xù)(0結(jié)束scanfC%cT&y);//在此需輸入任意一個(gè)整數(shù)值數(shù)值,程序才能繼續(xù)執(zhí)行if(y==0){saveQ;//保持輸入數(shù)據(jù)break;}}}voidsave()〃保存模塊程序{if(s[0].count>0){system(Mcolor78”);FILE*fp;//定義文件指針if((fp=fopen("D:\\飛機(jī)票系統(tǒng)數(shù)據(jù)保存?txtTw+O==NULL)〃打開(kāi)文件并判斷是否出錯(cuò){一pnntf(”文件打開(kāi)失敗「);//打印出錯(cuò)提示}else{fprintfi(fp,LB);fpnntf(fp/=====—==============—===—=========aiM);for(i=0;i<m&&s[i].count>0;i++){fprintf(fp.PRT);}}fclose(fp);//關(guān)閉文件inthp;pnntf(-信息保存到文件成功!任意鍵返回主菜單!31T);scanf(”%d”,&hp);}else{intk;pnntff飛機(jī)票總數(shù)為零!輸入結(jié)束!\n”);prmtf(n任意鍵返回主菜單!5\iT);scanf(”%d役&k);voidread()//從文件讀取信息模塊system(McolorEO”);FILE%;〃定義文件指針if((fp=fopen(^D://飛機(jī)票系統(tǒng)數(shù)據(jù)保存?tx匚T))=NULL)〃打開(kāi)文件,并判斷是否出錯(cuò)pnntf(”創(chuàng)建文件失??!”);//打印出錯(cuò)提示elsefdr(i=0;i<m;i++){fscanf(fp,M%-d%12s%12s%1Os%12d%12d\iis[i].num,s[i].starLs[i].ovei;s[i].tiine.&s[i].count&s[i].selled);pnntf(PRT);}fclose(fp);//關(guān)閉文件}voidpiiiit()//打印模塊{system(Mcolor97”);charw[10];pnntf(^\n所有航班信息如下\iT);printf(LB);i-eadQ;//調(diào)用讀取文件函數(shù)pnntf("\n\ii按任意鍵回車(chē)鍵結(jié)束返回上層菜單:\n\ii");scanff%s”,w);}voidsearch()//查詢(xún)模塊{system(Mcolor5En);charname1[20];charname2[20];charii[10];intn,no,flag=0;do{pmitff請(qǐng)選擇查找方式:\11”);〃打印查詢(xún)方式菜單pmitffl?按航班號(hào)查找\n””2?按終點(diǎn)站查找血”?3按航線(xiàn)查找\n””0?返回\iT);pnntf(H請(qǐng)?jiān)??3審選擇:\iiHAn\n按其他鍵以回車(chē)鍵結(jié)束返回主菜單An”);scanfC%d”,&n);〃讀取查找方式if(n=0)break;switch(n){case1:pnmf(”請(qǐng)輸入航班號(hào):n);scanf(”%cf;&no);〃航班號(hào)break;case2:pnmf(”請(qǐng)輸入終點(diǎn)站名稱(chēng):”);scanff%sFame2);//讀取終點(diǎn)站break;case3:pnntf(”請(qǐng)輸入起始站名稱(chēng):");scaiif(M%sH4iame1);//讀取起始站pirntfC1請(qǐng)輸入終點(diǎn)站名稱(chēng):”);scaiif(M%sn4iame2);//終點(diǎn)站break;default:break;}pnntf(^\n已經(jīng)存在的航班如.KW);printf^LB);read();//i^用讀取函數(shù){if(strcmp(s[i].1)=0&&sticmp(s[i].ovei\name2)=0)//按終點(diǎn)站起始站判斷輸出條件{//pnntfC'n查找航班信息成功!\n\iT);pnmf(”\n下面是你要查找的航班信息\n\ii“);flag=l;printf(LB);printf(PRT)^/打印信息break:}if(strcmp(s[i].ovei;name2)=0){pnmf(”\n下面是你要查找的航班信息\n\ii“);flag=l;printf(LB);printf(PRT)^/打印信息break:}if(s[i].num==no)//按航班號(hào)判斷輸出條件{printf(-\n卞面是你要查找的航班信息\n\n”);flag=l;printf(LB);printf(PRT)^/打印信息break;}}no=0;〃將航班號(hào)賦值為0if(flag){pnntfCS您需要的信息查找完畢:5n是否繼續(xù)查找?請(qǐng)鍵入yes或no以回車(chē)鍵結(jié)束\n}else{prmtf(n\ii沒(méi)有您需要的信息:\iiH是否繼續(xù)查找?請(qǐng)鍵入yes或no以回車(chē)鍵結(jié)束\n}}while(strcmp(ii/,yesH)==O);//判斷結(jié)束while(strcmp(ii/,non)=0)break;}voidDeleteQ//刪除模塊{system(McolorIE”);charname1[20];
charname2[20];charii[10];charf[]=M2010146104H;//設(shè)置密碼intno,n,flag=0;pmitff請(qǐng)輸入密碼并以回車(chē)鍵結(jié)束:\nj;scaiifV%s”,f);〃讀取密碼if(strcnip(f/2010146104H)==0)〃判斷密碼是否正確do\n”);〃打印刪除方式菜單請(qǐng)?jiān)?-2中選擇以回車(chē)鍵結(jié)束:\『);pnntff\n”);〃打印刪除方式菜單請(qǐng)?jiān)?-2中選擇以回車(chē)鍵結(jié)束:\『);H*2?按航線(xiàn)刪除\n””*0?返回\n”);scanfT%cT:&n);//讀取刪除方式if(n==0)break;〃跳出循環(huán)switch(n)case1:pnntfC請(qǐng)輸入航班號(hào):”);case1:pnntfC請(qǐng)輸入航班號(hào):”);scanfC%cT,&iio);//讀取航班號(hào)pnntf(M\nreadQ;//調(diào)用讀取函數(shù)beak;//跳出循環(huán)case2:pnntf(”請(qǐng)輸入起始站名稱(chēng):Jscaiif(H%sH,name1);〃讀取起始站printf("請(qǐng)輸入終點(diǎn)站名稱(chēng):”);scaiif(H%sr\name2);//讀取終點(diǎn)站printf(n\Qread();//調(diào)用讀取函數(shù)break;//跳出循環(huán)}pnntf(M\nfbr(i=0:i<m;i++)已經(jīng)存在的航班如l、An\n”);已經(jīng)存在的航班如l、An\n”);刪除后的航班如卜?\n\ir);//if(s[i].num==no)//按航班號(hào)刪除pruitf^LB);flag=l;s[j]=s[j+l];}fbr(iiiti=0;i<m;i++)pnntf(PRT);}
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)生作文我的夢(mèng)想征文
- 云南省怒江傈僳族自治州福貢縣聯(lián)考2024-2025學(xué)年高一上學(xué)期1月期末生物學(xué)試題(含答案)
- 國(guó)際貿(mào)易實(shí)務(wù)中的結(jié)算方式知識(shí)考點(diǎn)
- 個(gè)人自助圖書(shū)館借閱服務(wù)合同
- 現(xiàn)代服務(wù)業(yè)服務(wù)質(zhì)量評(píng)價(jià)標(biāo)準(zhǔn)知識(shí)考點(diǎn)
- 互聯(lián)網(wǎng)產(chǎn)品策劃題
- 辦公空間能源消耗表格:能耗統(tǒng)計(jì)、節(jié)能減排
- 金融投資行業(yè)市場(chǎng)波動(dòng)風(fēng)險(xiǎn)免責(zé)聲明
- 醫(yī)學(xué)知識(shí)視頻培訓(xùn)課件
- 工作計(jì)劃完成情況統(tǒng)計(jì)表格
- 《字體設(shè)計(jì)》課程標(biāo)準(zhǔn)
- 中醫(yī)婦科病治療
- 中小學(xué)語(yǔ)文教師教學(xué)培訓(xùn)核心素養(yǎng)下的整本書(shū)閱讀教學(xué)培訓(xùn)課件如何教好孩子閱讀
- 預(yù)拌混凝土培訓(xùn)課件教案
- 認(rèn)知癥培訓(xùn)課件
- HGT4134-2022 工業(yè)聚乙二醇PEG
- 組織內(nèi)外部環(huán)境識(shí)別表
- 河邊基礎(chǔ)施工方案
- 國(guó)民經(jīng)濟(jì)行業(yè)分類(lèi)大類(lèi)一覽表
- 廣州光伏發(fā)電安裝限高屋頂搭建不得超過(guò)2.8米四周不得圍蔽
- 重修課程免聽(tīng)申請(qǐng)表
評(píng)論
0/150
提交評(píng)論