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

下載本文檔

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

文檔簡介

1、. 第一章 緒論1.1:工程背景描述1、課程設計性質(zhì)與目的:C語言程序設計是一門實踐性很強的課程。C程序課程設計是學習C語言程序設計的非常重要的實踐環(huán)節(jié),通過本課程設計使學生進一步穩(wěn)固課堂所學,全面熟悉,掌握C語言程序設計的根本方法和技巧,進一步提高編寫程序、分析程序及上機操作、調(diào)試程序的能力,讓學生加深理解,提高動手操作能力及分析問題和解決問題的能力。2、課程設計包含的知識點:1掌握并熟練利用C語言的根本數(shù)據(jù)類型與各種表達式,程序的流程控制語句。2掌握數(shù)組的根本概念。掌握一維數(shù)組與二維數(shù)組的使用,掌握字符數(shù)組與字符串的關系。3熟練掌握指針、地址、指針類型的概念及其使用。掌握指針變量的定義與初

2、始化、指針的間接和表達式,掌握指針與數(shù)組、函數(shù)、字符串的聯(lián)系4掌握函數(shù)的定義,函數(shù)的返回值,函數(shù)的調(diào)用,函數(shù)的聲明,函數(shù)的形式參數(shù)和實際參數(shù)之間的關系,了解函數(shù)的作用區(qū)間。5掌握構造體的概念,構造體類型的定義,構造體變量的定義和初始化,構造體成員的表示。構造體與指針、函數(shù)的關系。第二章 可行性分析一、問題描述:假設*航空公司只有N架*個座位的飛機,每架飛機每天飛行一趟。通過該系統(tǒng)來實現(xiàn)機票的訂購問題。二、功能要求:1、本系統(tǒng)采用一個包含N個數(shù)據(jù)的構造體數(shù)組,每個數(shù)據(jù)的構造應當包括:起飛地、目的地 航班號、航班定額。2、本系統(tǒng)顯示這樣的菜單:1.)錄入: 可以錄入航班情況數(shù)據(jù)可以存儲在一個數(shù)據(jù)文

3、件中2.)瀏覽:航班信息瀏覽功能需要提供顯示操作; 查詢:可提供按照航班號、起點站、終點站、飛行時間、查詢,可以查詢*個航線的情況如,輸入航班號,起飛抵達城市,確定航班是否滿倉;另外要提供鍵盤式選擇菜單以實現(xiàn)功能選擇。輸入航班信息輸出航班信息查找航班信息(4)訂票預約(5)刪除定票預約(6)退出系統(tǒng)本系統(tǒng)成功執(zhí)行菜單的每個信息,選項4和5將要求額外的輸入,并且它們都允許用戶收回其輸入。查找航班信息既可按線路查,也可按目的地查。4、在兩次運行之間,數(shù)據(jù)被保存于一個文件里,當本程序重新開始的時候,它首先從該文件讀入數(shù)據(jù)三、算法提示:1、數(shù)據(jù)構造:構造體類型數(shù)組2、數(shù)據(jù)庫構造:下表構成該系統(tǒng)的根本數(shù)

4、據(jù)庫。航班號起點終點起飛時間intcharcharchar四、測試數(shù)據(jù):錄入到的星期一起飛的航班,假設其定額為30,到的航班起飛時間為星期二。五、其它:在實現(xiàn)系統(tǒng)根本功能后,完善系統(tǒng)的其它功能。在測試數(shù)據(jù)是發(fā)現(xiàn)退票系統(tǒng)出現(xiàn)問題,退票數(shù)會超過定額,在加上一個限定條件后成功?;诒鞠到y(tǒng)可以嘗試輸出所定票的的顧客的完整信息,包括,號等個人信息,由于時間有限,尚未添加。第三章 總體設計3.1 課程設計題目:航班訂票系統(tǒng)3.2. 容摘要:假設*航空公司只有M架N個座位的飛機,每架飛機每天飛行一趟。通過該系統(tǒng)來實現(xiàn)機票的訂購問題。3.3. 關鍵字:函數(shù) 數(shù)組 構造體 文件 循環(huán)語句 多分支構造3.4總體設

5、計方案的選定:程序的功能要求:1、本系統(tǒng)采用一個包含N個數(shù)據(jù)的構造體數(shù)組,每個數(shù)據(jù)的構造應當包括:起飛地、目的地 航班號、座次、座次訂出與否標記、訂座者的和訂座者的。2、本系統(tǒng)顯示這樣的菜單:輸入航班信息輸出航班信息查找航班信息a.顯示空座的數(shù)量b.顯示空座的信息c.顯示已訂座的信息d.起飛時間(4)訂票預約(5)刪除定票預約(6)退出系統(tǒng)本系統(tǒng)成功執(zhí)行菜單的每個信息,選項4和5將要求額外的輸入,并且它們都允許用戶收回其輸入。查找航班信息既可按航班號來實現(xiàn)。4、在兩次運行之間,數(shù)據(jù)被保存于一個文件里,當本程序重新開場的時候,它首先從該文件讀入數(shù)據(jù)第四章 詳細設計4.1采用自定向下,逐步細化的思

6、想,將該系統(tǒng)分解成各個相對獨立且可以運行的模塊。在文件的開場定義出本系統(tǒng)中將會用到的所有的變量以及對各個模塊的調(diào)用,將作為頭文件使各個組員能夠使用。如下所示:hangban.h#include/標準輸入、輸出頭文件#include/包含字符串函數(shù)處理頭文件#define N 9999/定義最多的航班數(shù)#define PRINT %dtt%stt%stt星期%stt%dn ,si.num,si.qidian,si.zhongdian,si.time,si.count /宏定義輸出格式struct air /定義構造體數(shù)組int num;/定義航班號char qidian20;/航班起始站char

7、 zhongdian20;/終點站char time10;/飛行時間int count;/機票數(shù)量sN;int i,m=0;/定義全局變量char hangbanhao10;void add();/函數(shù)聲明增加航班信息函數(shù)void print(); /顯示航班信息void search();/查找航班信息void dingpiao();/訂票業(yè)務void tuipiao();/退票void read();/讀取文件void save();/保存文件void output();/輸出格式void pai*u();/航班排序void build();/建立數(shù)據(jù)文件void pai*u1();/按航

8、班號從小到大排序void pai*u2();/從大到小4.2系統(tǒng)總體構造4.3航班信息錄入流程圖4.4訂票系統(tǒng)流程圖在有航班信息的情況下可以進展訂票操作。開場查詢所有 是否輸入航班號顯示航班信息確定訂票否保存4.5查詢構造代碼void search()/定義查詢函數(shù)int n;doprintf(n請輸入航班號: );scanf(%d,&n);/輸入查詢的航班號for(i=0;im;i+) if(si.num=n)/按航班號判定輸出條件 printf(n您所查找的航班信息為:n );printf(航班號tt起始站tt終點站tt時間tt機票數(shù) nn);printf(PRINT);/顯示信息 pri

9、ntf(n查詢完畢,按回車鍵繼續(xù));getchar();getchar();return; printf(n對不起,沒有您需要的信息!n );printf(是否重新查找請鍵入y或n以回車鍵完畢 );scanf(%s,hangbanhao);while(!strcmp(hangbanhao,y);/判定是否重新查找4.6訂票業(yè)務代碼void dingpiao()/定義訂票業(yè)務函數(shù)int n;char a10=y;dosearch();/調(diào)用查詢模塊doprintf(請輸入您要訂的機票數(shù)以回車鍵完畢: );scanf(%d,&n);/輸入所訂機票數(shù)if(n=n)/判定機票數(shù)是否大于等于訂票數(shù)si.

10、count=si.count-n;printf(訂票成功! );break;else if(si.countn)/判定機票數(shù)是否小于訂票數(shù) printf(對不起,你所選擇的航班只剩 %d機票n, si.count);printf(是否需要重新輸入機票數(shù)請輸入y或n以回車鍵完畢: );/判定是否重新輸入訂票數(shù)scanf(%s,a);while(!strcmp(a,y);printf(是否需要訂其他航班的機票請輸入y或n以回車鍵完畢: );scanf(%s,a);while(!strcmp(a,y);/判定是否繼續(xù)訂票4.7退票業(yè)務代碼void tuipiao()/定義退票函數(shù)int n;char

11、 a10;dosearch();/調(diào)用查詢函數(shù)printf(請輸入您要退的機票數(shù)目: );scanf(%d,&n);/輸入所退票數(shù)if(n=0)/判定票數(shù)是否有效printf(輸入錯誤!至少需退1機票。 );else si.count=si.count+n;printf(退票成功! );printf(是否繼續(xù)? 請鍵入y或n以回車鍵完畢: );/判定是否繼續(xù)退票scanf(%s,a);while(!strcmp(a,y);/判定并跳出循環(huán) 第五章 總結(jié)一周的C語言課程設計即將完畢,通過此次課程設計也學會綜合運用理論知識來分析和解決實際問題的能力、養(yǎng)成嚴謹?shù)目茖W態(tài)度和良好的程序設計習慣實現(xiàn)由知識

12、向智能的初步轉(zhuǎn)化學會循軟件開發(fā)過程的根本規(guī)運用構造化程序設計的方法按照課程設計的題目要求并能夠完成設計、編寫、調(diào)試和測試應用程序及編寫文檔的任務 程序整體上運行與題目要求很吻合算法大多比擬通用各個函數(shù)模塊的正確性、完備性、對輸入的容錯能力以及算法的進一步改良在設計中都有表述這道題使我熟悉了文件的輸入輸出操作真切的感受到了fprintf和fwrite函數(shù)的區(qū)別。回憶起此次課程設計至今我仍感慨頗多從理論到實踐在整整半個月的日子里我學到很多很多的東西不僅穩(wěn)固了以前所學過的知識而且學到了很多在書本上所沒有學到過的容。通過這次課程設計使我懂得了理論與實際相結(jié)合是很重要的只有理論知識是遠遠不夠的只有把所學

13、的理論知識與實踐相結(jié)合起來從理論中得出結(jié)論才是真正的知識才能提高自己的實際動手能力和獨立思考的能力。在設計的過程遇到了各種各樣的問題同時在設計的過程中發(fā)現(xiàn)了自己的缺乏之處對以前所學過的知識理解得不夠深刻掌握得不夠結(jié)實通過這次課程設計把以前所學過的知識重新溫故穩(wěn)固了所學的知識。 在編寫程序的過程中受到了其他同學的指點也許在*些程序方面會和有的同學想類似但是教師在我編程序過程中也起到了很大的作用我們在C語言這門課上還會繼續(xù)走下去以后還會經(jīng)常碰到我會努力。附1: 源代碼#include/標準輸入、輸出頭文件#include/包含字符串函數(shù)處理頭文件#define N 9999/定義最多的航班數(shù)#de

14、fine PRINT %dtt%stt%stt星期%stt%dn ,si.num,si.qidian,si.zhongdian,si.time,si.count /宏定義輸出格式struct air /定義構造體數(shù)組int num;/定義航班號char qidian20;/航班起始站char zhongdian20;/終點站char time10;/飛行時間int count;/機票數(shù)量sN;int i,m=0;/定義全局變量char hangbanhao10;void add();/函數(shù)聲明增加航班信息函數(shù)void print(); /顯示航班信息void search();/查找航班信息v

15、oid dingpiao();/訂票業(yè)務void tuipiao();/退票void read();/讀取文件void save();/保存文件void output();/輸出格式void pai*u();/航班排序void build();/建立數(shù)據(jù)文件void pai*u1();/按航班號從小到大排序void pai*u2();/從大到小void main()/主函數(shù)int j; read(); printf(ntt歡送使用航班訂票系統(tǒng)!n); printf(*n); printf( 1.增加航班信息n); printf( 2.瀏覽航班信息n); printf( 3.查找航班信息n);

16、printf( 4.航班排序(按航班號)n); printf( 5.辦理訂票業(yè)務n); printf( 6.辦理退票業(yè)務n); printf( 0.退出系統(tǒng)(e*it)n); printf(*n); printf(請在0-6中選擇以回車鍵完畢: );scanf(%d,&j);switch(j)case 1: add();/調(diào)用增加航班函數(shù)break;case 2:print();/調(diào)用顯示模塊break;case 3:search();/調(diào)用查找模塊break;case 4:pai*u();/調(diào)用排序函數(shù)break;case 5:dingpiao();/調(diào)用訂票模塊break;case 6:t

17、uipiao();/調(diào)用退票模塊break; case 0:save(); /退出系統(tǒng)printf(使用,再見! );break; void read()/定義讀取文件函數(shù)FILE *fp;if(fp=fopen(hangban.dat,rb)=NULL)printf(創(chuàng)立文件失敗! );getchar();return;i=0;while(!feof(fp)fread(&si,sizeof(struct air),1,fp);/逐塊讀取數(shù)據(jù)i+;m+;/計算存在航班數(shù)m-;fclose(fp);void save()/定義保存函數(shù)FILE *fp;if(fp=fopen(hangban.da

18、t,wb)=NULL) printf(創(chuàng)立文件失敗! );getchar();return;for(i=0;im;i+)/逐塊保存數(shù)據(jù)fwrite(&si,sizeof(struct air),1,fp);fclose(fp);void add()/定義增加航班信息函數(shù)doprintf(請依次輸入您要增加的航班信息(以回車鍵完畢): n); /打印提示信息printf(- n);printf(請輸入航班號: ); scanf(%d,&sm.num);/讀取航班號printf(請輸入起始站: );scanf(%s,sm.qidian);/讀取起始站printf(請輸入終點站: );scanf(%

19、s,sm.zhongdian);/讀取終點站printf(請輸入時間: );scanf(%s,sm.time);/讀取時間printf(請輸入機票數(shù): );scanf(%d,&sm.count);/讀取機票數(shù)m+;printf(添加完畢,是否繼續(xù)添加請鍵入y或n以回車鍵完畢:);scanf(%s,hangbanhao);while(!strcmp(hangbanhao,y);/判斷是否繼續(xù)添加void output()/定義輸出格式函數(shù)printf(航班號tt起始站tt終點站tt時間tt機票數(shù)n);/信息標題 for(i=0;im;i+)printf(PRINT);/打印出信息void pri

20、nt()/定義顯示航班信息函數(shù)printf(n目前我們有如下航班:n);output();/調(diào)用輸出格式函數(shù)printf(n請按回車鍵返回上層菜單 );getchar();getchar();void search()/定義查詢函數(shù)int n;doprintf(n請輸入航班號: );scanf(%d,&n);/輸入查詢的航班號for(i=0;im;i+) if(si.num=n)/按航班號判定輸出條件 printf(n您所查找的航班信息為:n );printf(航班號tt起始站tt終點站tt時間tt機票數(shù) nn);printf(PRINT);/顯示信息 printf(n查詢完畢,按回車鍵繼續(xù))

21、;getchar();getchar();return;printf(n對不起,沒有您需要的信息!n );printf(是否重新查找請鍵入y或n以回車鍵完畢 );scanf(%s,hangbanhao);while(!strcmp(hangbanhao,y);/判定是否重新查找 void dingpiao()/定義訂票業(yè)務函數(shù)int n;char a10=y;doprintf(請輸入您要訂的機票數(shù)以回車鍵完畢: );scanf(%d,&n);/輸入所訂機票數(shù)if(n=n)/判定機票數(shù)是否大于等于訂票數(shù)si.count=si.count-n;printf(訂票成功! );break;else if(si.countn)/判定機票數(shù)是否小于訂票數(shù) printf(對不起,你所選擇的航班只剩 %d機票n, si.count);printf(是否需要重新輸入機票數(shù)請輸入y或n以回車鍵完畢: );/判定是否重新輸入訂票數(shù)scanf(%s,a);printf(是否需要訂其他航班的機票請輸入y或n以回車鍵完畢: );scanf(%s,a);while(!strcmp(a,y);/判定是否繼續(xù)訂票void tuipiao()/定義退票函數(shù)int n;char a10;dosearch();/調(diào)用查詢函數(shù)printf(請輸入您要退的機票數(shù)目: );sc

溫馨提示

  • 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

提交評論