C語言機票管理系統(tǒng)課程設計_第1頁
C語言機票管理系統(tǒng)課程設計_第2頁
C語言機票管理系統(tǒng)課程設計_第3頁
C語言機票管理系統(tǒng)課程設計_第4頁
C語言機票管理系統(tǒng)課程設計_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

課程設計說明書NoPAGE4PAGE沈陽大學1.設計的目的在一年的C語言的學習中,使得我掌握了許多的C語言的專業(yè)知識,為了能夠提高自己的調(diào)試運行程序的能力,鞏固自己知識,我設計了一個小型的程序,來給他人帶來更多的方便。從而也增強了我的綜合運用理論知識來分析和解決實際問題的能力,使我受到很大的幫助。我的選題是飛機訂票系統(tǒng)的設置,在如今快速發(fā)展的時代,我們的交通工具也越來越趨向高速化,方便化,而飛機奔走兩地又是十分的快捷的,隨著更多的人的乘坐,我們就應該更方便的為客戶服務,下面設置一個簡單的飛機訂票系統(tǒng)的C語言程序,可運用于小的管理軟件。軟件運用菜單實現(xiàn)交互式管理,用戶輕松的按鍵既可實現(xiàn)對軟件的操作,操作簡單易懂,功能豐富,可以很好的滿足用戶的需要。

2.設計方案論證2.1設計思路通過建立一個函數(shù)[1],確定航班號、確定的航線(起始站、終點站)、確定的飛行時間(星期幾)和一定的成員訂額,完成飛機訂票系統(tǒng)。主函數(shù)可以調(diào)用子函數(shù)[2],分別完成輸入信息,保存信息,讀取信息,輸出信息,排序,查找信息,訂票命令。在主函數(shù)中可以設置調(diào)用子函數(shù)[3],分別按相應的數(shù)字鍵,則分別可以執(zhí)行某個功能模。主要功能模塊即如圖1所示:飛機訂飛機訂票系統(tǒng)輸出信息讀取信息保存信息輸入信息排序查找信息訂票命令圖1飛機訂票系統(tǒng)主要功能模塊2.2設計方法根據(jù)所構想的功能及模塊設計出與之相對算法并建立函數(shù)來實現(xiàn)功能[4]。①數(shù)據(jù)結構體的定義:將一個貨物的信息作為一個結構體,由于利用鏈表所以在結構體中別忘記指向后繼結點的指針。如下intcount;}p[1];read();for(j=0;j<(m-1);j++)for(i=0;i<(m-(1+j));i++)②通過主函數(shù)進行程序調(diào)用及連接以下函數(shù)[5]:read():讀取航班信息功能函數(shù),運用if,for,scanf,printf,scanf等進行課程名稱信息查詢;paixu():按航班信息輸出功能函數(shù),運用if,for,scanf,printf,scanf,printf等進行航班名稱信息查詢;search():按航班號查詢信息功能函數(shù),運用if,for,scanf,printf,scanf,printf等進行航班名稱信息查詢;dingpiao()訂票功能函數(shù),運用if,for,scanf,printf,scanf,printf等進行航班名稱信息查詢。(1)讀取航班信息開始開始定義文件文件出錯打印出錯提示創(chuàng)建文件失敗打印出錯關閉文件關閉圖2讀取航班信息流程圖(2)輸出航班信息輸出輸出模塊定義字符串變量航班號起始點終結點時間機票數(shù)打印信息開始結束圖3輸出航班信息流程圖(3)查詢航班信息定義文件定義文件輸入航班號查找航班信息輸出航班信息開始結束圖4查找航班信息流程圖(4)訂票定義預訂票數(shù)量定義預訂票數(shù)量定義字符串變量輸入所訂機票數(shù)讀取所訂機票數(shù)輸入有效機票不符合訂票成功符合開始結束圖4訂票流程圖

2.3源程序#include<stdio.h>//標準輸入、:輸出頭文件#include<string.h>//包含字符串函數(shù)處理頭文件#include<stdlib.h>//包含動態(tài)存儲與釋放函數(shù)頭文件#defineN1000structair//定義結構體數(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();//對所有航班按航班號排序voidsearch();//查找航班信息voiddingpiao();//訂票信息voidmain(){intj;printf(“★您好,歡迎進入自動化飛機訂票系統(tǒng)!★\n”);printf(“================================================================================\n”);do{printf(“**☆1.輸入航班信息☆**\n\n”“**☆2.瀏覽航班信息☆**\n\n”“**☆3.查找航班信息-☆**\n\n”“**☆4.對航班按航班號排序☆**\n\n”“**☆5.訂票信息—☆**\n\n”“**☆0.退出-☆**\n\n”“**☆☆**\n\n”“**☆**\n\n”“**☆☆**\n\n”);printf(“================================================================================\n”);printf(“請在0-5中選擇以回車鍵結束:\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);//判斷結束printf(“謝謝使用,再見!\n”);}//主函數(shù)結束voidinput()//打印模塊程序{printf(“請依次輸入航班信息(航班號,起始站,終點站,起飛時間,機票數(shù)):\n\n”);//打印提示信息printf(“\n”);for(i=0;i<N;i++){inty;printf(“請輸入航班號:\n”);scanf(“%d”,&s[i].num);//讀取航班號printf(“請輸入起始站:\n”);scanf(“%s”,s[i].start);//讀取起始站printf(“請輸入終點站:\n”);scanf(“%s”,s[i].over);//讀取終點站printf(“請輸入時間:\n”);scanf(“%s”,s[i].time);//讀取時間printf(“請輸入機票數(shù)(機票數(shù)為0結束輸入):\n”,m);scanf(“%d”,&s[i].count);//讀取機票數(shù)m++;printf(“第%d個信息已經(jīng)輸完是否繼續(xù)?按1-9任意數(shù)字繼續(xù),按0結束”,m);scanf(“%d”,&y);if(y==0){save();//將結構體信息存盤print();//輸出輸入的航班信息break;}}}voidsave()//保存模塊程序{FILE*fp,*fp1;//定義文件指針if((fp=fopen(“chen.dat”,”wb”))==NULL)//打開文件并判斷是否出錯{printf(“創(chuàng)建文件失敗!\n\n”);//打印出錯提示getchar();return;}if((fp1=fopen(“hao.dat”,”wb”))==NULL)//打開文件并判斷是否出錯{printf(“創(chuàng)建文件失敗!\n\n”);//打印出錯提示getchar();return;}for(i=0;i<m;i++)if(fwrite(&s[i],sizeof(structair),1,fp)==0)//向文件寫入數(shù)據(jù),并判斷是否出錯printf(“向文件輸入數(shù)據(jù)失敗!\n\n”);fprintf(fp1,”%d”,m);fclose(fp);//關閉文件fclose(fp1);//關閉文件}voidread()//從文件讀取信息模塊{FILE*fp,*fp1;//定義文件指針if((fp=fopen(“chen.dat”,”rb”))==NULL)//打開文件,并判斷是否出錯{printf(“出錯,請檢查文件是否存在,按任意鍵返回住菜單”);//打印出錯提示getchar();}if((fp1=fopen(“hao.dat”,”rb”))==NULL)//打開文件并判斷是否出錯{printf(“創(chuàng)建文件失敗!\n\n”);//打印出錯提示getchar();return;}fscanf(fp1,”%d”,&m);fclose(fp1);//關閉文件for(i=0;i<m;i++){fread(&s[i],sizeof(structair),1,fp);//從文件中讀取信息}fclose(fp);//關閉文件}voidprint()//打印模塊{charw[10];read();//調(diào)用讀取文件函數(shù)printf(“航班號起始站終點站時間機票數(shù)\n”);for(i=0;i<m;i++){printf(PRINT);//打印信息}printf(“請按任意鍵回車鍵結束返回上層菜單:\n”);scanf(“%s”,w);}voidpaixu()//對所有航班按航班號排序{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;//替換航班號strcpy(p[0].name1,s[i].start);//替換其始站strcpy(p[0].name2,s[i].over);//替換終點站strcpy(p[0].time,s[i].time);//替換時間p[0].count=s[i].count;//替換機票數(shù)s[i]=s[i+1];s[i+1].num=p[0].no;//替換航班號strcpy(s[i+1].start,p[0].name1);//替換其始站strcpy(s[i+1].over,p[0].name2);//替換終點站strcpy(s[i+1].time,p[0].time);//替換時間s[i+1].count=p[0].count;//替換機票數(shù)}}save();print();}voidsearch()//查詢模塊{charii[10];intno;do{printf(“請輸入你要找的航班號:\n\n”);//打印查詢方式菜單scanf(“%d”,&no);//航班號read();//調(diào)用讀取函數(shù)for(i=0;i<m;i++){if(s[i].num==no)//按航班號判斷輸出條件{printf(“\n查找航班信息成功!\n”);printf(“航班號起始站終點站時間機票數(shù)\n”);printf(PRINT);//打印信息break;}}no=0;//將航班號賦值為0printf(“沒有您需要的信息或查找完畢:\n\n”“是否繼續(xù)查找?請鍵入yes或no以回車鍵結束\n”);scanf(“%s”,ii);}while(strcmp(ii,”yes”)==0);//判斷結束}voiddingpiao()//訂票模塊{intn;chara[10];do{search();//調(diào)用查詢模塊printf(“請輸入您要訂的機票數(shù)以回車鍵結束:\n”);scanf(“%d”,&n);//讀取所訂機票數(shù)if(n<0){printf(“請輸入有效的機票數(shù)!\n”);//判斷機票數(shù)是否出錯break;}if(s[i].count!=0&&s[i].count>=n)//判斷是否出錯{s[i].count=s[i].count-n;save();//調(diào)用保存函數(shù)printf(“訂票成功!\n\n”);break;}if(s[i].count<n)//判斷是否出錯{printf(“請輸入有效的機票數(shù):\n”);break;}printf(“是否繼續(xù)?請輸入yes或no以回車鍵結束:\n”);//判斷是否繼續(xù)訂票scanf(“%s”,a);}while(!strcmp(a,”yes”));//判斷結束}

3.設計結果與分析①在MicrosoftVisualC++6.0環(huán)境中輸入源程序,在沒有提示錯誤的情況下編譯,生執(zhí)行文件.在輸入1鍵回車后提示輸入飛機的航班號、起始點、終止點、時間、票數(shù),用戶可以把要輸入的信息按要求進行輸入。圖5運行程序進入主菜單界面運行主函數(shù)時,進行airfile()文件的讀取,該函數(shù)是一個菜單函數(shù),用Switch語句來讀取飛機的航班的個信息。根據(jù)用戶的選擇數(shù)據(jù),分別調(diào)用其他自定義函數(shù),實現(xiàn)了函數(shù)的調(diào)用。②在輸入2回車后提示輸入飛機的航班號、起始點、終止點、時間、票數(shù),用戶可以把要輸入的信息按要求進行輸入。圖6輸入飛機航班界面是調(diào)用函數(shù)add()的結果,再add()函數(shù)中,首先用scanf函數(shù)接收用戶輸入并用prinf輸出輸入的航班信息.,用fopen函數(shù)進行打來文件判斷是否出錯,用fclose關閉文件,用fread進行讀取文件。③在輸入3按回車鍵,輸入航班的航班號,起始站,終點站,時間,票數(shù),再按0鍵結束程序,此時程序會顯示出輸入的所有的航班信息。圖7結束輸入指定的航班信息界面是調(diào)用函數(shù)add()的結果,再add()函數(shù)中,首先用scanf函數(shù)接收用戶輸入的航班信息,當輸入的信息完成時,就輸入0按回車鍵,就不再輸入飛機的訂票情況,,此時會顯示所有輸入進去的信息④按任意鍵返回上層菜單,并且輸入3查找航班信息,輸入你要查找的飛機的航班號,就會顯示你要找的飛機的信息。圖8查找航班信息先用intno定義輸入的航班號,然后用printf輸入你要找的航班號,再用read()讀取函數(shù)來查找航班用search()查找航班信息,用for循環(huán)來進行飛機航班的查詢,當查找信息完畢后,繼續(xù)進行下一項。⑤當系統(tǒng)完成上一個功能,顯示是否要繼續(xù)查找時,輸入no,就要再次返回上層菜單,這時你輸入5按回車鍵,輸入你要訂的飛機航班號,就會查找并顯示訂票成功。圖9進行訂票用dingpiao()函數(shù)完成訂票功能,用先調(diào)用search輸入航班的票數(shù),用scanf讀取所訂票數(shù),再輸入有效票數(shù),用save()調(diào)用保存函數(shù),看是否訂票成功,再繼續(xù)進行。4.設計體會我這次在C語言程序設

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論