




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課程設(shè)計(jì)說(shuō)明書NoPAGE4PAGE沈陽(yáng)大學(xué)1.設(shè)計(jì)的目的在一年的C語(yǔ)言的學(xué)習(xí)中,使得我掌握了許多的C語(yǔ)言的專業(yè)知識(shí),為了能夠提高自己的調(diào)試運(yùn)行程序的能力,鞏固自己知識(shí),我設(shè)計(jì)了一個(gè)小型的程序,來(lái)給他人帶來(lái)更多的方便。從而也增強(qiáng)了我的綜合運(yùn)用理論知識(shí)來(lái)分析和解決實(shí)際問(wèn)題的能力,使我受到很大的幫助。我的選題是飛機(jī)訂票系統(tǒng)的設(shè)置,在如今快速發(fā)展的時(shí)代,我們的交通工具也越來(lái)越趨向高速化,方便化,而飛機(jī)奔走兩地又是十分的快捷的,隨著更多的人的乘坐,我們就應(yīng)該更方便的為客戶服務(wù),下面設(shè)置一個(gè)簡(jiǎn)單的飛機(jī)訂票系統(tǒng)的C語(yǔ)言程序,可運(yùn)用于小的管理軟件。軟件運(yùn)用菜單實(shí)現(xiàn)交互式管理,用戶輕松的按鍵既可實(shí)現(xiàn)對(duì)軟件的操作,操作簡(jiǎn)單易懂,功能豐富,可以很好的滿足用戶的需要。
2.設(shè)計(jì)方案論證2.1設(shè)計(jì)思路通過(guò)建立一個(gè)函數(shù)[1],確定航班號(hào)、確定的航線(起始站、終點(diǎn)站)、確定的飛行時(shí)間(星期幾)和一定的成員訂額,完成飛機(jī)訂票系統(tǒng)。主函數(shù)可以調(diào)用子函數(shù)[2],分別完成輸入信息,保存信息,讀取信息,輸出信息,排序,查找信息,訂票命令。在主函數(shù)中可以設(shè)置調(diào)用子函數(shù)[3],分別按相應(yīng)的數(shù)字鍵,則分別可以執(zhí)行某個(gè)功能模。主要功能模塊即如圖1所示:飛機(jī)訂飛機(jī)訂票系統(tǒng)輸出信息讀取信息保存信息輸入信息排序查找信息訂票命令圖1飛機(jī)訂票系統(tǒng)主要功能模塊2.2設(shè)計(jì)方法根據(jù)所構(gòu)想的功能及模塊設(shè)計(jì)出與之相對(duì)算法并建立函數(shù)來(lái)實(shí)現(xiàn)功能[4]。①數(shù)據(jù)結(jié)構(gòu)體的定義:將一個(gè)貨物的信息作為一個(gè)結(jié)構(gòu)體,由于利用鏈表所以在結(jié)構(gòu)體中別忘記指向后繼結(jié)點(diǎn)的指針。如下intcount;}p[1];read();for(j=0;j<(m-1);j++)for(i=0;i<(m-(1+j));i++)②通過(guò)主函數(shù)進(jìn)行程序調(diào)用及連接以下函數(shù)[5]:read():讀取航班信息功能函數(shù),運(yùn)用if,for,scanf,printf,scanf等進(jìn)行課程名稱信息查詢;paixu():按航班信息輸出功能函數(shù),運(yùn)用if,for,scanf,printf,scanf,printf等進(jìn)行航班名稱信息查詢;search():按航班號(hào)查詢信息功能函數(shù),運(yùn)用if,for,scanf,printf,scanf,printf等進(jìn)行航班名稱信息查詢;dingpiao()訂票功能函數(shù),運(yùn)用if,for,scanf,printf,scanf,printf等進(jìn)行航班名稱信息查詢。(1)讀取航班信息開始開始定義文件文件出錯(cuò)打印出錯(cuò)提示創(chuàng)建文件失敗打印出錯(cuò)關(guān)閉文件關(guān)閉圖2讀取航班信息流程圖(2)輸出航班信息輸出輸出模塊定義字符串變量航班號(hào)起始點(diǎn)終結(jié)點(diǎn)時(shí)間機(jī)票數(shù)打印信息開始結(jié)束圖3輸出航班信息流程圖(3)查詢航班信息定義文件定義文件輸入航班號(hào)查找航班信息輸出航班信息開始結(jié)束圖4查找航班信息流程圖(4)訂票定義預(yù)訂票數(shù)量定義預(yù)訂票數(shù)量定義字符串變量輸入所訂機(jī)票數(shù)讀取所訂機(jī)票數(shù)輸入有效機(jī)票不符合訂票成功符合開始結(jié)束圖4訂票流程圖
2.3源程序#include<stdio.h>//標(biāo)準(zhǔn)輸入、:輸出頭文件#include<string.h>//包含字符串函數(shù)處理頭文件#include<stdlib.h>//包含動(dòng)態(tài)存儲(chǔ)與釋放函數(shù)頭文件#defineN1000structair//定義結(jié)構(gòu)體數(shù)組{intnum;charstart[20];charover[20];chartime[10];intcount;}s[N];inti;intm=0;#definePRINT“%-d%12s%12s%10s%12d\n”,s[i].num,s[i].start,s[i].over,s[i].time,s[i].count//定義輸出格式voidinput();//輸入航班信息voidprint();//輸出航班信息voidsave();//保存航班信息voidread();//讀取航班信息voidpaixu();//對(duì)所有航班按航班號(hào)排序voidsearch();//查找航班信息voiddingpiao();//訂票信息voidmain(){intj;printf(“★您好,歡迎進(jìn)入自動(dòng)化飛機(jī)訂票系統(tǒng)!★\n”);printf(“================================================================================\n”);do{printf(“**☆1.輸入航班信息☆**\n\n”“**☆2.瀏覽航班信息☆**\n\n”“**☆3.查找航班信息-☆**\n\n”“**☆4.對(duì)航班按航班號(hào)排序☆**\n\n”“**☆5.訂票信息—☆**\n\n”“**☆0.退出-☆**\n\n”“**☆☆**\n\n”“**☆**\n\n”“**☆☆**\n\n”);printf(“================================================================================\n”);printf(“請(qǐng)?jiān)?-5中選擇以回車鍵結(jié)束:\n\n”);scanf(“%d”,&j);switch(j){case1:input();//調(diào)用輸入模塊break;case2:print();//調(diào)用打印模塊break;case3:search();//調(diào)用查找模塊break;case4:paixu();//調(diào)用排序模塊break;case5:dingpiao();//調(diào)用訂票模塊break;case0:;break;}}while(j!=0);//判斷結(jié)束printf(“謝謝使用,再見(jiàn)!\n”);}//主函數(shù)結(jié)束voidinput()//打印模塊程序{printf(“請(qǐng)依次輸入航班信息(航班號(hào),起始站,終點(diǎn)站,起飛時(shí)間,機(jī)票數(shù)):\n\n”);//打印提示信息printf(“\n”);for(i=0;i<N;i++){inty;printf(“請(qǐng)輸入航班號(hào):\n”);scanf(“%d”,&s[i].num);//讀取航班號(hào)printf(“請(qǐng)輸入起始站:\n”);scanf(“%s”,s[i].start);//讀取起始站printf(“請(qǐng)輸入終點(diǎn)站:\n”);scanf(“%s”,s[i].over);//讀取終點(diǎn)站printf(“請(qǐng)輸入時(shí)間:\n”);scanf(“%s”,s[i].time);//讀取時(shí)間printf(“請(qǐng)輸入機(jī)票數(shù)(機(jī)票數(shù)為0結(jié)束輸入):\n”,m);scanf(“%d”,&s[i].count);//讀取機(jī)票數(shù)m++;printf(“第%d個(gè)信息已經(jīng)輸完是否繼續(xù)?按1-9任意數(shù)字繼續(xù),按0結(jié)束”,m);scanf(“%d”,&y);if(y==0){save();//將結(jié)構(gòu)體信息存盤print();//輸出輸入的航班信息break;}}}voidsave()//保存模塊程序{FILE*fp,*fp1;//定義文件指針if((fp=fopen(“chen.dat”,”wb”))==NULL)//打開文件并判斷是否出錯(cuò){printf(“創(chuàng)建文件失敗!\n\n”);//打印出錯(cuò)提示getchar();return;}if((fp1=fopen(“hao.dat”,”wb”))==NULL)//打開文件并判斷是否出錯(cuò){printf(“創(chuàng)建文件失敗!\n\n”);//打印出錯(cuò)提示getchar();return;}for(i=0;i<m;i++)if(fwrite(&s[i],sizeof(structair),1,fp)==0)//向文件寫入數(shù)據(jù),并判斷是否出錯(cuò)printf(“向文件輸入數(shù)據(jù)失敗!\n\n”);fprintf(fp1,”%d”,m);fclose(fp);//關(guān)閉文件fclose(fp1);//關(guān)閉文件}voidread()//從文件讀取信息模塊{FILE*fp,*fp1;//定義文件指針if((fp=fopen(“chen.dat”,”rb”))==NULL)//打開文件,并判斷是否出錯(cuò){printf(“出錯(cuò),請(qǐng)檢查文件是否存在,按任意鍵返回住菜單”);//打印出錯(cuò)提示getchar();}if((fp1=fopen(“hao.dat”,”rb”))==NULL)//打開文件并判斷是否出錯(cuò){printf(“創(chuàng)建文件失敗!\n\n”);//打印出錯(cuò)提示getchar();return;}fscanf(fp1,”%d”,&m);fclose(fp1);//關(guān)閉文件for(i=0;i<m;i++){fread(&s[i],sizeof(structair),1,fp);//從文件中讀取信息}fclose(fp);//關(guān)閉文件}voidprint()//打印模塊{charw[10];read();//調(diào)用讀取文件函數(shù)printf(“航班號(hào)起始站終點(diǎn)站時(shí)間機(jī)票數(shù)\n”);for(i=0;i<m;i++){printf(PRINT);//打印信息}printf(“請(qǐng)按任意鍵回車鍵結(jié)束返回上層菜單:\n”);scanf(“%s”,w);}voidpaixu()//對(duì)所有航班按航班號(hào)排序{intj;structpai{intno;charname1[20];charname2[20];chartime[20];intcount;}p[1];read();for(j=0;j<(m-1);j++)for(i=0;i<(m-(1+j));i++){if(s[i].num>s[i+1].num){p[0].no=s[i].num;//替換航班號(hào)strcpy(p[0].name1,s[i].start);//替換其始站strcpy(p[0].name2,s[i].over);//替換終點(diǎn)站strcpy(p[0].time,s[i].time);//替換時(shí)間p[0].count=s[i].count;//替換機(jī)票數(shù)s[i]=s[i+1];s[i+1].num=p[0].no;//替換航班號(hào)strcpy(s[i+1].start,p[0].name1);//替換其始站strcpy(s[i+1].over,p[0].name2);//替換終點(diǎn)站strcpy(s[i+1].time,p[0].time);//替換時(shí)間s[i+1].count=p[0].count;//替換機(jī)票數(shù)}}save();print();}voidsearch()//查詢模塊{charii[10];intno;do{printf(“請(qǐng)輸入你要找的航班號(hào):\n\n”);//打印查詢方式菜單scanf(“%d”,&no);//航班號(hào)read();//調(diào)用讀取函數(shù)for(i=0;i<m;i++){if(s[i].num==no)//按航班號(hào)判斷輸出條件{printf(“\n查找航班信息成功!\n”);printf(“航班號(hào)起始站終點(diǎn)站時(shí)間機(jī)票數(shù)\n”);printf(PRINT);//打印信息break;}}no=0;//將航班號(hào)賦值為0printf(“沒(méi)有您需要的信息或查找完畢:\n\n”“是否繼續(xù)查找?請(qǐng)鍵入yes或no以回車鍵結(jié)束\n”);scanf(“%s”,ii);}while(strcmp(ii,”yes”)==0);//判斷結(jié)束}voiddingpiao()//訂票模塊{intn;chara[10];do{search();//調(diào)用查詢模塊printf(“請(qǐng)輸入您要訂的機(jī)票數(shù)以回車鍵結(jié)束:\n”);scanf(“%d”,&n);//讀取所訂機(jī)票數(shù)if(n<0){printf(“請(qǐng)輸入有效的機(jī)票數(shù)!\n”);//判斷機(jī)票數(shù)是否出錯(cuò)break;}if(s[i].count!=0&&s[i].count>=n)//判斷是否出錯(cuò){s[i].count=s[i].count-n;save();//調(diào)用保存函數(shù)printf(“訂票成功!\n\n”);break;}if(s[i].count<n)//判斷是否出錯(cuò){printf(“請(qǐng)輸入有效的機(jī)票數(shù):\n”);break;}printf(“是否繼續(xù)?請(qǐng)輸入yes或no以回車鍵結(jié)束:\n”);//判斷是否繼續(xù)訂票scanf(“%s”,a);}while(!strcmp(a,”yes”));//判斷結(jié)束}
3.設(shè)計(jì)結(jié)果與分析①在MicrosoftVisualC++6.0環(huán)境中輸入源程序,在沒(méi)有提示錯(cuò)誤的情況下編譯,生執(zhí)行文件.在輸入1鍵回車后提示輸入飛機(jī)的航班號(hào)、起始點(diǎn)、終止點(diǎn)、時(shí)間、票數(shù),用戶可以把要輸入的信息按要求進(jìn)行輸入。圖5運(yùn)行程序進(jìn)入主菜單界面運(yùn)行主函數(shù)時(shí),進(jìn)行airfile()文件的讀取,該函數(shù)是一個(gè)菜單函數(shù),用Switch語(yǔ)句來(lái)讀取飛機(jī)的航班的個(gè)信息。根據(jù)用戶的選擇數(shù)據(jù),分別調(diào)用其他自定義函數(shù),實(shí)現(xiàn)了函數(shù)的調(diào)用。②在輸入2回車后提示輸入飛機(jī)的航班號(hào)、起始點(diǎn)、終止點(diǎn)、時(shí)間、票數(shù),用戶可以把要輸入的信息按要求進(jìn)行輸入。圖6輸入飛機(jī)航班界面是調(diào)用函數(shù)add()的結(jié)果,再add()函數(shù)中,首先用scanf函數(shù)接收用戶輸入并用prinf輸出輸入的航班信息.,用fopen函數(shù)進(jìn)行打來(lái)文件判斷是否出錯(cuò),用fclose關(guān)閉文件,用fread進(jìn)行讀取文件。③在輸入3按回車鍵,輸入航班的航班號(hào),起始站,終點(diǎn)站,時(shí)間,票數(shù),再按0鍵結(jié)束程序,此時(shí)程序會(huì)顯示出輸入的所有的航班信息。圖7結(jié)束輸入指定的航班信息界面是調(diào)用函數(shù)add()的結(jié)果,再add()函數(shù)中,首先用scanf函數(shù)接收用戶輸入的航班信息,當(dāng)輸入的信息完成時(shí),就輸入0按回車鍵,就不再輸入飛機(jī)的訂票情況,,此時(shí)會(huì)顯示所有輸入進(jìn)去的信息④按任意鍵返回上層菜單,并且輸入3查找航班信息,輸入你要查找的飛機(jī)的航班號(hào),就會(huì)顯示你要找的飛機(jī)的信息。圖8查找航班信息先用intno定義輸入的航班號(hào),然后用printf輸入你要找的航班號(hào),再用read()讀取函數(shù)來(lái)查找航班用search()查找航班信息,用for循環(huán)來(lái)進(jìn)行飛機(jī)航班的查詢,當(dāng)查找信息完畢后,繼續(xù)進(jìn)行下一項(xiàng)。⑤當(dāng)系統(tǒng)完成上一個(gè)功能,顯示是否要繼續(xù)查找時(shí),輸入no,就要再次返回上層菜單,這時(shí)你輸入5按回車鍵,輸入你要訂的飛機(jī)航班號(hào),就會(huì)查找并顯示訂票成功。圖9進(jìn)行訂票用dingpiao()函數(shù)完成訂票功能,用先調(diào)用search輸入航班的票數(shù),用scanf讀取所訂票數(shù),再輸入有效票數(shù),用save()調(diào)用保存函數(shù),看是否訂票成功,再繼續(xù)進(jìn)行。4.設(shè)計(jì)體會(huì)我這次在C語(yǔ)言程序設(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第四五六章加強(qiáng)道德修養(yǎng)鍛煉道德品質(zhì)
- 磁鐵探傷培訓(xùn)課件
- 領(lǐng)域區(qū)帶評(píng)價(jià)體系
- 北京出生嬰兒辦理醫(yī)保流程
- 2025基礎(chǔ)設(shè)施建設(shè)版合同
- 2025【合同范本】簡(jiǎn)化版鋼材運(yùn)輸合同
- 中職中醫(yī)護(hù)理專業(yè)課程
- 環(huán)保行業(yè)智能化廢物分類與處理方案
- 銀行業(yè)務(wù)與風(fēng)險(xiǎn)管理練習(xí)題
- 歷史古代文明演變練習(xí)題
- GB/T 20424-2025重有色金屬精礦產(chǎn)品中有害元素的限量規(guī)范
- 2025年蘭考三農(nóng)職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年(2019-2024年)真題考點(diǎn)試卷含答案解析
- 2025電動(dòng)自行車集中充電設(shè)施第2部分:充換電服務(wù)信息交換
- 輸油管道安全培訓(xùn)
- 2025年海南重點(diǎn)項(xiàng)目-300萬(wàn)只蛋雞全產(chǎn)業(yè)鏈項(xiàng)目可行性研究報(bào)告
- 2025美國(guó)急性冠脈綜合征(ACS)患者管理指南解讀課件
- 血管導(dǎo)管相關(guān)感染預(yù)防與控制指南課件
- TSG 23-2021 氣瓶安全技術(shù)規(guī)程 含2024年第1號(hào)修改單
- 安徽省省級(jí)環(huán)境保護(hù)科研項(xiàng)目申報(bào)書.docx
- HSF無(wú)有害物質(zhì)管理程序-最全版
- 附件1.醫(yī)院會(huì)計(jì)科目設(shè)置表(1009)
評(píng)論
0/150
提交評(píng)論