版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> C語言課程設(shè)計</b></p><p> 題目: 飛機訂票系統(tǒng) </p><p> 專業(yè): 。。。。。。。。。。。。。。。。。。。 </p><p> 學號: 。。。。。。。。。。。 </p&g
2、t;<p> 姓名: 。。。。。。。 </p><p> 任課教師: 。。。。。。。。 </p><p><b> C語言課程設(shè)計報告</b></p><p> 一、課程設(shè)計報告正文</p><p> (1
3、)課程設(shè)計題目的原文;</p><p> 假定民航機場共有n個航班:航班號、起始站、終點站、飛機號、飛機時間、乘員定額、余票量。試設(shè)計一民航訂票系統(tǒng),使之能提供下列服務(wù):</p><p> ? 航班信息錄入功能(文件保存) </p><p> ? 完成航班信息瀏覽功能; </p><p> ? 查詢航線(至少一種查詢方式)。</
4、p><p> ?。?)題目的分析(需求分析);</p><p> 任務(wù):通過此系統(tǒng)可以實現(xiàn)如下功能: </p><p> 錄入: 可以錄入航班情況(數(shù)據(jù)可以存儲在一個數(shù)據(jù)文件中)</p><p> 瀏覽:航班信息瀏覽功能需要提供顯示操作; </p><p> 查詢:可提供按照航班號、起點站、終點站、飛行時間、查詢,
5、可以查詢某個航線的情況(如,輸入航班號,起飛抵達城市,確定航班是否滿倉);另外要提供鍵盤式選擇菜單以實現(xiàn)功能選擇。 </p><p> 要求:根據(jù)以上功能說明,設(shè)計航班信息,訂票信息的存儲結(jié)構(gòu),設(shè)計程序完成功能。可以建立航班結(jié)構(gòu)體,結(jié)構(gòu)體成員包括航班號、起點站、終點站、飛行時間、預售票總數(shù)、已售票數(shù)。 </p><p> (3)整體設(shè)計與模塊劃分;</p><p&g
6、t; 根據(jù)需求分析,該程序可分為以下四大模塊:</p><p><b> ?。?)代碼設(shè)計;</b></p><p> 包括——各功能模塊的流程圖;重要模塊中關(guān)鍵部分的代碼分析;關(guān)鍵函數(shù)的算法設(shè)計和分析等等;</p><p> 二、航班基本信息輸入模塊</p><p><b> 航班信息錄入函數(shù):<
7、;/b></p><p><b> 航班信息瀏覽函數(shù):</b></p><p><b> ?。哿鞒虉D]顯示信息</b></p><p><b> 查詢模塊:</b></p><p> 分析:基本信息的查詢按查詢可供選擇的方式比較豐富,可按航班號查詢。在查詢小模塊中采
8、用了直接查找的方法。本模塊可以通過多種查詢方式進行完善。這是本程序沒有做的地方。</p><p><b> ?。哿鞒虉D]</b></p><p> 核心源程序清單和執(zhí)行結(jié)果:</p><p><b> 源程序清單:</b></p><p> #include<stdio.h>&l
9、t;/p><p> #include<stdlib.h></p><p> #include<io.h></p><p> #include<math.h>//標準輸入、輸出頭文件</p><p> #include<string.h>//包含字符串函數(shù)處理頭文件</p>
10、<p> #include<process.h>//包含access函數(shù)的頭文件</p><p> #define N 1000//定義最多的航班數(shù)</p><p> #define PRINT "%d\t\t%s\t\t%s\t\t星期%s\t\t%d\n ",s[i].num,s[i].start,s[i].over,s[i]
11、.time,s[i].count //宏定義輸出格式</p><p> struct air //定義結(jié)構(gòu)體數(shù)組</p><p><b> {</b></p><p> int num;//定義航班號</p><p> char start[20];//航班起始站</p&g
12、t;<p> char over[20];//終點站</p><p> char time[10];//飛行時間</p><p> int count;//機票數(shù)量</p><p><b> }s[N];</b></p><p> int i,m=0;//定義全局變量&
13、lt;/p><p> char ii[10];</p><p> void add();//函數(shù)聲明增加航班信息函數(shù)</p><p> void print(); //顯示航班信息</p><p> void search();//查找航班信息</p><p> void read();//讀取文
14、件</p><p> void save();//保存文件</p><p> void output();//輸出格式</p><p> void chushihua();//系統(tǒng)初始化</p><p> void build();//建立數(shù)據(jù)文件</p><p> void main()
15、//主函數(shù)</p><p><b> {</b></p><p><b> int j; </b></p><p> chushihua();//系統(tǒng)初始化判斷是否存在原始數(shù)據(jù)文件</p><p> printf(" O(^_^)O歡迎使用飛機訂票系統(tǒng)O(
16、^_^)O \n");//打印出系統(tǒng)主界面</p><p><b> do</b></p><p><b> {</b></p><p> printf("======================================================================
17、========== "); </p><p> printf(" 1.增加航班信息\n"</p><p> " 2.瀏覽航班信息\n"</p><p> " 3.查找航班信息
18、(按航班號)\t\t\n"</p><p> " 0.退出\n");</p><p> printf("================================================================================ "); </p>
19、<p> printf("請在0-3中選擇以回車鍵結(jié)束: ");</p><p> scanf("%d",&j);</p><p><b> switch(j)</b></p><p><b> {</b></p><p> ca
20、se 1: add();//調(diào)用增加航班函數(shù)</p><p><b> break;</b></p><p> case 2:print();//調(diào)用顯示模塊</p><p><b> break;</b></p><p> case 3:search();//調(diào)用查找模塊<
21、/p><p><b> break;</b></p><p> case 0://退出系統(tǒng)</p><p><b> save();</b></p><p> printf("謝謝使用,再見!( ^_^ )/~~ \n ");</p><p>
22、<b> break;</b></p><p><b> }</b></p><p> }while(j!=0);//判斷是否調(diào)用其他函數(shù)</p><p><b> }</b></p><p> void chushihua()//定義系統(tǒng)初始化函數(shù)</
23、p><p><b> {</b></p><p> if(access("hangban.dat",0))</p><p><b> {</b></p><p><b> build();</b></p><p><b&g
24、t; }</b></p><p><b> else</b></p><p><b> read();</b></p><p><b> }</b></p><p> void build()//定義建立數(shù)據(jù)文件函數(shù)</p><
25、p><b> {</b></p><p> FILE *fp;//定義文件指針</p><p> if((fp=fopen("hangban.dat","wb"))==NULL)//打開文件并判定是否出錯 </p><p><b> {</b></p&g
26、t;<p> printf("創(chuàng)建文件失敗! ");//打印出錯提示</p><p> getchar();</p><p><b> return;</b></p><p><b> }</b></p><p> printf("請依次輸入
27、航班信息(以回車鍵結(jié)束):\n"); //打印提示信息</p><p> printf("-------------------------------------------------------------------------- \n");</p><p> for(i=0;i<N;i++)</p><p>
28、;<b> {</b></p><p> printf("請輸入航班號: "); </p><p> scanf("%d",&s[i].num);//輸入航班號</p><p> printf("請輸入起始站: ");</p><p>
29、scanf("%s",s[i].start);//輸入起始站</p><p> printf("請輸入終點站: ");</p><p> scanf("%s",s[i].over);//輸入終點站</p><p> printf("請輸入時間(星期幾): ");</p
30、><p> scanf("%s",s[i].time);//輸入時間</p><p> printf("請輸入機票數(shù): ");</p><p> scanf("%d",&s[i].count);//輸入機票數(shù)</p><p> fwrite(&s[i],si
31、zeof(struct air),1,fp);</p><p><b> m++;</b></p><p> printf("添加完畢,是否繼續(xù)添加?請鍵入y或n以回車鍵結(jié)束:");</p><p> scanf("%s",ii);</p><p> if(strcmp(i
32、i,"y")!=0)//判斷是否繼續(xù)添加航班信息</p><p><b> {</b></p><p> fclose(fp);//關(guān)閉文件</p><p><b> return;</b></p><p><b> }</b></
33、p><p><b> }</b></p><p><b> }</b></p><p> void read()//定義讀取文件函數(shù)</p><p><b> {</b></p><p><b> FILE *fp;</b&g
34、t;</p><p> if((fp=fopen("hangban.dat","r"))==NULL)</p><p><b> {</b></p><p> printf("創(chuàng)建文件失敗! ");</p><p> getchar();</p&g
35、t;<p><b> return;</b></p><p><b> }</b></p><p><b> i=0;</b></p><p> while(!feof(fp))</p><p><b> {</b></p&g
36、t;<p> fread(&s[i],sizeof(struct air),1,fp);//逐塊讀取數(shù)據(jù)</p><p><b> i++;</b></p><p> m++;//計算存在航班數(shù)</p><p><b> }</b></p><p><b&
37、gt; m--;</b></p><p> fclose(fp);</p><p><b> }</b></p><p> void save()//定義保存函數(shù)</p><p><b> {</b></p><p><b> FILE
38、*fp;</b></p><p> if((fp=fopen("hangban.dat","wb"))==NULL) </p><p><b> {</b></p><p> printf("創(chuàng)建文件失敗! ");</p><p> get
39、char();</p><p><b> return;</b></p><p><b> }</b></p><p> for(i=0;i<m;i++)//逐塊保存數(shù)據(jù)</p><p> fwrite(&s[i],sizeof(struct air),1,fp);<
40、;/p><p> fclose(fp);</p><p><b> }</b></p><p> void add()//定義增加航班信息函數(shù)</p><p><b> {</b></p><p><b> do{</b></p>
41、<p> printf("請依次輸入您要增加的航班信息(以回車鍵結(jié)束): \n"); //打印提示信息</p><p> printf("-------------------------------------------------------------------------- \n");</p><p> pr
42、intf("請輸入航班號: "); </p><p> scanf("%d",&s[m].num);//讀取航班號</p><p> printf("請輸入起始站: ");</p><p> scanf("%s",s[m].start);//讀取起始站</p
43、><p> printf("請輸入終點站: ");</p><p> scanf("%s",s[m].over);//讀取終點站</p><p> printf("請輸入時間: ");</p><p> scanf("%s",s[m].time);//
44、讀取時間</p><p> printf("請輸入機票數(shù): ");</p><p> scanf("%d",&s[m].count);//讀取機票數(shù)</p><p><b> m++;</b></p><p> printf("添加完畢,是否繼續(xù)添加?
45、請鍵入y或n以回車鍵結(jié)束:");</p><p> scanf("%s",ii);</p><p><b> }</b></p><p> while(!strcmp(ii,"y"));//判斷是否繼續(xù)添加</p><p><b> }</b&
46、gt;</p><p> void output()//定義輸出格式函數(shù)</p><p><b> {</b></p><p> printf("航班號\t\t起始站\t\t終點站\t\t時間\t\t機票數(shù)\n");//信息標題</p><p> for(i=0;i<m;i++)
47、</p><p> printf(PRINT);//打印出信息</p><p><b> }</b></p><p> void print()//定義顯示航班信息函數(shù)</p><p><b> {</b></p><p> printf("\n目前
48、我們有如下航班:\n");</p><p> output();//調(diào)用輸出格式函數(shù)</p><p> printf("\n請按回車鍵返回上層菜單 ");</p><p> getchar();</p><p> getchar();</p><p><b> }
49、</b></p><p> void search()//定義查詢函數(shù)</p><p><b> {</b></p><p><b> int n;</b></p><p><b> do</b></p><p><b&g
50、t; {</b></p><p> printf("\n請輸入航班號: ");</p><p> scanf("%d",&n);//輸入查詢的航班號</p><p> for(i=0;i<m;i++)</p><p><b> { </b>&
51、lt;/p><p> if(s[i].num==n)//按航班號判定輸出條件</p><p><b> { </b></p><p> printf("\n您所查找的航班信息為:\n ");</p><p> printf("航班號\t\t起始站\t\t終點站\t\t時間\t\t機票
52、數(shù) \n\n");</p><p> printf(PRINT);//顯示信息 </p><p> printf("\n查詢完畢,按回車鍵繼續(xù)");</p><p> getchar();</p><p> getchar();</p><p><b> retur
53、n;</b></p><p><b> }</b></p><p><b> }</b></p><p> printf("\n對不起,沒有您需要的信息!\n ");</p><p> printf("是否重新查找?請鍵入y或n以回車鍵結(jié)束 &quo
54、t;);</p><p> scanf("%s",ii);</p><p><b> }</b></p><p> while(!strcmp(ii,"y"));//判定是否重新查找</p><p><b> } </b></p><
55、;p> 第一次運行程序(輸入初始數(shù)據(jù))</p><p> 界面提示輸入原始數(shù)據(jù):請輸入航班號→請輸入起始站→請輸入終點站→請輸入飛行時間→請輸入機票數(shù)。我按照提示一次輸入了4個航班信息后按提示輸入“n”則不再繼續(xù)輸入,系統(tǒng)顯示出了主菜單界面。接著按0退出程序,顯示“謝謝使用,再見?!?lt;/p><p> 圖表 1—主菜單界面</p><p> 第二次運行
56、程序(進行航班信息的瀏覽)</p><p> 運行程序就不再顯示輸入航班信息了,而是直接顯示出了主菜單界面(如圖表1)。在提示中輸入“2” →顯示航班信息。輸出如下航班信息(如圖表2),確實顯示出輸入的4個航班信息。</p><p> 圖表 2—顯示航班信息</p><p><b> 查詢航班信息</b></p><p
57、> 在主菜單界面輸入3→請輸入航班號→輸入“1010” →顯示出所查找的信息(如圖表3)</p><p> 圖表 3—查詢航班信息</p><p><b> 航班排序</b></p><p> 在主菜單界面輸入4→按照提示輸入“2”(按航班號從大到小排序)→顯示出排序后的航班信息(如圖表4)</p><p>
58、;<b> 圖表 4—航班排序</b></p><p><b> 三、總結(jié)</b></p><p> 經(jīng)過十天的程序設(shè)計,基本掌握程序設(shè)計的基本方法和步驟。</p><p> 在這十天中悟出:程序設(shè)計要求有一定的基礎(chǔ)是必須的,在設(shè)計過程中要大膽的發(fā)揮自己的想象力,要敢于不斷的創(chuàng)新,要敢于嘗試,我認為這也是一種進步的
59、好方法。</p><p> 回顧起此次課程設(shè)計,至今我仍感慨頗多,從理論到實踐,在十天的日子里,我學到很多很多的東西,不僅鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的內(nèi)容。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才是真正的知識,才能提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程遇到了各種各樣的問
60、題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,通過這次課程設(shè)計,把以前所學過的知識重新溫故,鞏固了所學的知識。</p><p><b> 仍存在的問題:</b></p><p> 系統(tǒng)只是按照題目的要求做的,雖然是很好地完成了題目要求的所有模塊,但是在整個編程過程中我們也曾嘗試增加我們感興趣的功能,但是失敗了。<
61、;/p><p><b> 四、參考文獻</b></p><p> 《C++程序設(shè)計》,譚浩強著,清華大學出版社,2004年</p><p> 《C++程序設(shè)計》,錢能著,清華大學出版社,2000年</p><p> 《C++ Prime》(第三版),stanley B lippman著,潘愛民譯,中國電力出版社<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計報告飛機訂票系統(tǒng)
- c語言課程設(shè)計——飛機訂票系統(tǒng)
- c語言課程設(shè)計---飛機訂票系統(tǒng)
- c語言課程設(shè)計--飛機訂票系統(tǒng)
- c語言課程設(shè)計——飛機訂票系統(tǒng)
- c語言飛機訂票系統(tǒng)課程設(shè)計
- 飛機訂票系統(tǒng)c語言課程設(shè)計
- c課程設(shè)計報告飛機訂票系統(tǒng)
- c++課程設(shè)計報告--飛機訂票系統(tǒng)
- c++課程設(shè)計報告---飛機訂票系統(tǒng)
- c語言課程設(shè)計報告---民航飛機票訂票系統(tǒng)設(shè)計
- c++課程設(shè)計報告---飛機訂票系統(tǒng)
- c語言課程設(shè)計(飛機訂票系統(tǒng)說明書)
- c語言課程設(shè)計——飛機訂票系統(tǒng)說明書
- c++課程設(shè)計報告飛機訂票管理系統(tǒng)
- c++課程設(shè)計——飛機訂票系統(tǒng)
- 飛機訂票系統(tǒng)課程設(shè)計報告
- c語言飛機訂票系統(tǒng)設(shè)計
- 軟件課程設(shè)計--c語言程序之飛機票訂票系統(tǒng)
- 飛機訂票系統(tǒng)課程設(shè)計
評論
0/150
提交評論