C語言飛機訂票系統(tǒng)課程設計_第1頁
C語言飛機訂票系統(tǒng)課程設計_第2頁
C語言飛機訂票系統(tǒng)課程設計_第3頁
免費預覽已結束,剩余23頁可下載查看

下載本文檔

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

文檔簡介

1、課程設計報告課程名稱C程言稱程設計課題名稱飛機訂票系統(tǒng)前言C語言程序設計課程設計是對學生的一種全面綜合訓練,它包括問題分析,總體結構設計,用戶界面設計,程序設計基本技能和技巧,多人合作,以至一整套軟件工作規(guī)范的訓練和科學作風的培養(yǎng)。是與課堂聽講、自學和練習相輔相成的必不可少的一個教學環(huán)節(jié)。通常,課程設計的課題比平時的習題復雜得多,也更接近實際。課程設計著眼丁與應用的結合點,使學生學會如何把書上學到的知識用丁解決實際問題,培養(yǎng)軟件工作所需要的動手能力;另一方面,能使書上的知識變“活”,使學生更好地深化理解和靈活掌握教學內容。為了達到上述目的,本課程設計安排了八個設計課題,訓練重點在丁基本的程序設

2、計方法和分析問題的能力,而不強調面面俱到。學生可任選其中一題進行設計,設計完畢寫出課程設計報告,用A4紙打印成冊;并將課程設計報告與源程序存盤。學習委員將課程設計報告與磁盤收齊后交指導老師。一、目的全面熟悉、掌握C語言基本知識,掌握C程序設計中的順序、分支、循環(huán)三種結構及數組、函數和C語言基本圖形編程等方法,把編程和實際結合起來,增強對不同的問題運用和靈活選擇合適的數據結構以及算法描述的本領,熟悉編制和調試程序的技巧,掌握分析結果的若十有效方法,進一步提高上機動手能力,培養(yǎng)使用計算機解決實際問題的能力,養(yǎng)成提供文檔資料的習慣和規(guī)范編程的思想,為以后在專業(yè)課程中應用計算機系統(tǒng)解決計算、分析、實驗

3、和設計等學習環(huán)節(jié)打下較扎實的基礎。二、設計要求掌握結構化程序設計的主體思想,以自頂向下逐步求精的方法編制程序解決一些實際的問題,為將來編寫軟件積累一些典型的案例處理經驗。1. 設計正確,方案合理。2. 界面友好,使用方便。3. 程序精煉,結構活晰。4. 設計報告5000字以上,含程序設計說明,用戶使用說明,源程序活單及程序框圖。5. 上機演示。6. 按學號順序選課題號,并在規(guī)定的時間內獨自完成相關課題的C源程序編寫、調整和運行。源程序及編譯生成各文件均保存在軟盤中;務書的要求,按附錄的要求編寫課程設計報告(Word文檔格式)。并用A4的復印紙打印并裝訂;7.在2011年1月10日之前,請各班學

4、習委員收齊課程設計報告和源程序軟盤交王穎老師,聯(lián)系電話:。三、進度安排第二周星期四:課題講解,查閱資料第三周星期一:總體設計,詳細設計星期二:編程,上機調試、修改程序星期三:上機調試、完善程序星期四:完善程序星期五:答辯星期六-星期天:撰寫課程設計報告課程設計報告規(guī)范一、需求析分1、程序的功能。2、輸入輸出的要求。二、概要設計1、程序由哪些模塊組成以及一個模塊之間的層次結構、模塊的調用關系;每個模塊的功能。2、課題的總體數據結構和數據庫結構;即要存儲什么數據,這些數據是什么樣的結構,它們之間有什么關系等。三、詳細設計1、采用C語言定義相關的數據類型。2、寫出各模塊的類C碼算法。3、畫出函數的調

5、用關系圖。四、調試分析以及設計體會1、測試數據:準備典型的測試數據和測試方案,包括正確的輸入及輸出結果和含有錯誤的輸入及輸出結果。2、程序調試中遇到的問題以及解決問題的方法。3、課程設計過程經驗教訓、心得體會。五、使用說明用戶使用手冊:說明如何使用你編寫的程序,詳細列出每一步的操作步驟。六、附錄1、參考書H2、源程序活單(帶注釋)附1:課程設計報告裝訂順序:封面、任務書、目錄、正文、評分、附件(A4大小的圖紙及程序活單)。正文的格式:一級標題用3號黑體,二級標題用四號宋體加粗,正文用小四號宋體;行距為22。正文的內容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能

6、的實現(至少要有一個主要模塊的流程圖);四、程序調試;五、總結;六、附件(所有程序的原代碼,要求對程序寫出必要的注釋)。正文總字數要求在5000字以上(不含程序原代碼)。目錄一、緒論錯誤!未定義書簽1.1項目背景描述錯誤!未定義書簽1.2問題定義11.3思考錯誤!未定義書簽二、需求分析錯誤!未定義書簽錯誤!2.1問題描述:2.2功能描述:錯誤!未定義書簽。2.3 算法提示:錯誤!未定義書簽。2.4、測試數據:錯誤!未定義書簽。2.5其它:錯誤!未定義書簽。第三章總體設計83.1課程設計題目:93.2. 內容摘要:93.3. 關鍵字:9.總體設計方案的選定:9四、詳細設計錯誤!未定義書簽。4.4

7、 4.1采用C語言定義相關的數據類型.54.2寫出各模塊的類C碼算法.54.3機票信息錄入voidinputinfo()流程圖11訂票系統(tǒng)voidbookticket()流程圖124.5顯示模塊voiddisplay。流程圖134.6退票系統(tǒng)voidreturnticket()流程圖14五、測試10六、使用說明錯誤!未定義書簽。5.1主界面錯誤!未定義書簽。5.2機票信息管理(保存)錯誤!未定義書簽。5.3訂票系統(tǒng)使用錯誤!未定義書簽。七、課程設計總結錯誤!未定義書簽6.1課程設計心得:錯誤!未定義書簽6.2在程序設計中的問題和解決:.錯誤!未定義書簽附錄錯誤!未定義書簽1. 源程序清單(帶注

8、釋)錯誤!未定義書簽機票信息錄入(帶注釋):錯誤!未定義書簽3.源程序清單:(附)錯誤!未定義書簽參考文獻錯誤!未定義書簽第一章緒論1.1:項目背景描述1、課程設計性質與目的:C語言程序設計是一門實踐性很強的課程。C程序課程設計是學習C語言程序設計的非常重要的實踐環(huán)節(jié),通過本課程設計使學生進一步鞏固課堂所學,全面熟悉,掌握C語言程序設計的基本方法和技巧,進一步提高編寫程序、分析程序及上機操作、調試程序的能力,讓學生加深理解書上所學的知識,提高動手操作能力及分析問題和解決問題的能力2、課程設計包含的知識點:1.掌握并熟練利用C語言的基本數據類型與各種表達式,程序的流程控制語句。掌握數組的基本概念

9、。掌握一維數組與二維數組的使用,掌握字符數組與字符申的關系。2. 熟練掌握指針、地址、指針類型的概念及其使用。掌握指針變量的定義與初始化、指針的間接訪問和表達式,掌握指針與數組、函數、字符申的聯(lián)系掌握函數的定義,函數的返回值,函數的調用,函數的聲明,函數的形式參數和實際參數之間的關系,了解函數的作用區(qū)間。3. 掌握結構體的概念,結構體類型的定義,結構體變量的定義和初始化,結構體成員的表示。結構體與指針、函數的關系。1.2:問題的定義假設某航空公司只有M架N個座位的飛機,每架飛機每天飛行一趟。通過該系統(tǒng)來實現機票的訂購問題。第二章需求分析一、問題描述:假設某航空公司只有M架N個座位的飛機,每架飛

10、機每天飛行一趟。通過該系統(tǒng)來實現機票的訂購問題。、功能要求:1、本系統(tǒng)采用一個包含N個數據的結構體數組,每個數據的結構應當包括:起飛地、目的地航班號、座次號碼、座次訂出與否標記、訂座者的姓名和訂座者的身份證號碼。2、本系統(tǒng)顯示這樣的菜單:輸入航班信息輸出航班信息查找航班信息顯示空座的數量顯示空座的信息顯示已訂座的信息起飛時間訂票預約刪除定票預約退出系統(tǒng)1、本系統(tǒng)成功執(zhí)行菜單的每個信息,選項4)和5)將要求額外的輸入,并且它們都允許用戶收回其輸入。2、查找航班信息既可按線路查,也可按目的地查。4、在兩次運行之間,數據被保存丁一個文件里,當本程序重新開始的時候,它首先從該文件讀入數據三、算法提示:

11、1、數據結構:結構體類型數組2、數據庫結構:下表構成該系統(tǒng)的基本數據庫。航班號起飛時間目的地座次號座次訂出與否的標記訂票者姓名訂票者身份證號碼intcharcharintCharcharchar四、測試數據:每架飛機的座位N=1?M=5五、其它:對該系統(tǒng)有興趣的同學可以在實現系統(tǒng)基本功能后,完善系統(tǒng)的其它功第三章總體設計課程設計主文檔3.1課程設計題目:3.2. 飛機訂票系統(tǒng)內容摘要:假設某航空公司只有M架N個座位的飛機,每架飛機每天飛行一趟。通過該系統(tǒng)來實現機票的訂購問題。3.3. 關鍵字:3.4 函數數組結構體文件循環(huán)語句多分支結構.總體設計方案的選定:程序的功能要求:1、本系統(tǒng)采用一個包

12、含N個數據的結構體數組,每個數據的結構應當包括:起飛地、目的地航班號、座次號碼、座次訂出與否標記、訂座者的姓名和訂座者的身份證號碼。2、本系統(tǒng)顯示這樣的菜單:輸入航班信息輸出航班信息查找航班信息顯示空座的數量顯示空座的信息顯示已訂座的信息起飛時間訂票預約刪除定票預約退出系統(tǒng)3、本系統(tǒng)成功執(zhí)行菜單的每個信息,選項4)和5)將要求額外的輸入,并且它們都允許用戶收回其輸入。4、查找航班信息既可按線路查,也可按目的地查。4、在兩次運行之間,數據被保存于一個文件里,當本程序重新開始的時候,它首先從該文件讀入數據第四章詳細設計4.1采用C語言定義相關的數據類型structtravellerinfo/(ch

13、arfightnum10;/charname10;/charsex5;/charidnum20;/charznum12;/charflage2;/charpoto12;/;structfightinfo/旅客信息結構航班號姓名性別證件號碼座次號碼座次定出與否標記聯(lián)系電話機票信息結構體(charfightnum10;/航班號charstart8;/出發(fā)地chardestination8;/目的地unsignedintprice;/價格unsignedintgoyear;/出發(fā)時間年unsignedintgomoth;/月unsignedintgoday;/日unsignedintgohour;/

14、時unsignedintgominute;/分unsignedintarryear;/至U達時間年unsignedintarrmoth;/月unsignedintarrday;/日unsignedintarrhour;/時unsignedintarrminute;/分unsignedintallsticket;/總票數剩余票數unsignedintsurplusticket;/;structallfightinfo/機票全部結構旅客信息結構機票信息結構體structtravellerinfofight;/structfightinfofight1;/;4.2寫出各模塊的類C碼算法訂票A查詢所有

15、航輸入航班號k輸入旅客信息4.2系統(tǒng)總體結構全部顯示飛機訂票系統(tǒng)退票查詢琳T航班號姓名證件號查詢密碼輸入航班號機票信息錄入保存查詢所有機票修改機票刪除機票信息航班信息和旅客信4.3機票信息錄入voidinputinfo()流程圖4.4訂票系統(tǒng)voidbookticket()流程圖在有航班信息的情況下可以進行訂票操作。流程圖4.5顯示模塊voiddisplay()顯示模塊打開文件否4.6退票系統(tǒng)voidreturnticket()流程圖(1)menu()函數第五章測試結束第七章總結一周的C語言課程設計即將結束,現在回想起來真是五味俱全,從開始的懵懂無知到現在做出一本挺有厚度的資料,我不但實踐了課

16、本的知識,還制作出心算小程序,雖然很多人幫了我的忙,仍舊感覺自己對C語言有了深入的了解,還是有所成長,有所收獲,在實踐中,自己編程常會犯錯誤,并總結一些克服缺點的方法。深刻體會到程序設計中最重要的一部分不是編寫源程序,而是調試過程。只有經過調試程序,我們才能掌握正確的語法知識及把問題的解決方法用程序語言來表達。其實這一周遇到了不少的挫折,第一次上機就有些不知所措,到底該從何下手呢?后來有朋友同學的鼓勵,慢慢調整心態(tài),開始動手操作,原來編程很有意思,有時遇到了一個錯誤怎么找也找不到原因所在,找了老半天結果卻是一個函數放錯了地方所致,有時一個功能不知道怎么實現找這個、找那個。有所編到最后一運行卻告

17、訴我錯誤,那真的很讓人惱火。以前上課都是學一些最基本的東西,覺得很枯燥,而現在卻可以將以前學的東西編出有實際價值的東西,這樣自己非常的投入,其實什么事情只要自己用心了,就會有所感觸,有所收獲。真的覺得有味道,生活都變充實了。此次程序設計主要用了函數的調用,if、else選擇語句,switch語句,時間函數,標準輸入輸出、隨機取整函數等基本知識點,結合課本知識加上自己的應用結果頗為令人滿意,但是還有很多的缺陷與不足,這是我可以活醒認識到的。C語言是一項細致深入的工作,不僅要有嚴謹的思路,還要在實踐中有耐心,要細心,如果無法沉著冷靜,真的會看不到結果,毫無收獲的。C語言乂是一種系統(tǒng)開發(fā)語言這一個學

18、期對C語言的接觸讓我明白了自己的不足之處,對書上內容的理解不夠透徹。這一周的課程設計讓我們有機會上機調試,我才發(fā)現我們的程序存在這么多的漏洞和錯誤。我經過了一個下午的時間,在老師的指導下,檢查調試這程序,終于讓它能夠運行了。但是課程設計并不是那么的簡單,能運行的程序并不代表就是對的,我們還要按要求測試數據,一點一滴的把程序按要求做出來。通過這次的課程設計,我受益匪淺。它讓我了解了細心的重要性,程序中若有一絲一點的錯誤就會影響整個程序,而使其不能運行。當我第一次拿到課程設計的任務書的時候,我都非常的興奮,因為這是我們一次很好的鍛煉機會。我經過一周的C語言課程設計,我不但實踐了課本的所學的知識,還

19、親自制作了自己的小程序,感覺自己對C語言有了更深入的了解。在實踐過程中,自己編程的時候常常會犯錯誤,并總結了一些克服缺點的方法。而且更深刻體會到程序設計中最重要的一部分不是編寫源程序,而是調試過程。只有經過調試程序,我們才能掌握正確的語法知識及把問題的解決方法用程序語言來表達。在設計程序的同時也增長了翻閱有關文獻的能力,加強了實踐能力及自學能力,培養(yǎng)了分析問題、編程和動手能力,掌握了程序設計基本技能。在調試過程中,特別讓我印象深刻的是自己開始在程序調試的時候,開始并沒有并沒有看到預期的結果,最后我仔細檢查了源程序代碼,發(fā)現自己在申明函數的時候,出現了一個嚴重的語法問題,導致我整個程序都不能運行

20、。我開始心理發(fā)慌起來,我開始放棄自己的先前做的工作,覺得自己是第一次做設計,第一次看到這么長的程序代碼,有理由放棄,但是,想著自己很辛苦的寫了這么久,還是不想放棄,我開始慢慢去找我出的問題,我從頭到尾檢查了一面,終于發(fā)現了問題之所在,我的心情頓時高興起來,終于看到了希望!我越來越興奮,我從新把源程序放入WIN-TC中進行調試,終于是“柳岸花明乂一村”。同時也讓我真正體會到一句話:“勝利永遠是屆于永不放棄的人!”當然在本次課程設計的過程中遇到不止上面那一個困難,也有很多困難被我解決了。比如,有一個操作上的功能錯誤。我怎么找也找不到原因所在,找了老半天結果卻是操作錯誤把一個函數放錯了地方所致。有的

21、時候一個功能不知道怎么實現找這個、找那個源代碼都不行。當編譯到最后一行運行卻告訴我錯誤,那真的很煩人。以前上課都是學一些最基本的東西,覺得很枯燥,而現在卻可以將以前學的東西編出有實際價值的東西,這樣自己非常的投入,有時候一編就是二三個小時坐在電腦前面,有時候連吃飯都忘了。但現在回過頭來看,還是挺有成就感的。通過本次課程設計的學習,我體會到學好計算機一定要重視實踐環(huán)節(jié),不僅是在學習C語言,還是其他計算機語言都是一樣的重要。所以我以后在學習過程中更加重視實踐環(huán)節(jié)的重要性。這樣我相信自己的計算機水平一定會取得更好的進步!我總結了一下本次程序課程設計主要用了函數的調用,if、else選擇語句,swit

22、ch語句,時間函數,標準輸入輸出、隨機取整函數等基本知識點,結合課本知識加上自己的應用最終取得圓滿成功。C語言是一項細致深入的工作,不僅要有嚴謹的思路,還要在實踐中有耐心,要細心。這一點我親身體會到了!以下是課程設計中的錯誤總結和分析: 變量是程序中不可缺少的一部分,要謹記先定義后使用。 輸入輸出類型要一致。 “;”是C語言的語句結束語,不可省略。 (的互相匹配。 調用函數必先聲明。 形式參數和實際參數必須個數相等,類型相同。最后,感謝在C語言學習及課程設計中對我指導的老師和同學!附1:源代碼#include#include#includevoidinput(inti)#defineN1000

23、typedefstructplanecharID10;/*charBePlace10;/*charEnPlace10;/*chardata15;/*intmax;/*intprice;/*intnum;/*PLANE;PLANEtiN;intn;/*當前的航班數目*/voidmenu();voidmenu1();航班代號*/飛機起飛地點*/飛機降落終點*/飛機起飛時間*/飛機最大乘客人數*/飛機票價*/飛機已售票數*/printf(請輸入航班代號:n);scanf(%s,tii.ID);printf(請輸入起飛地點:n);scanf(%s,tii.BePlace);printf(請輸入降落地點

24、:n);scanf(%s,tii.EnPlace);printf(請輸入起飛時間:n);scanf(%s,tii.data);printf(請輸入航班的最大載客人數:n);scanf(%d,&tii.max);printf(請輸入航班的票價:n);scanf(%d,&tii.price);tii.num=0;voidenter()(inti;system(cls);printf(-請輸入航班的數目(0-%d)?:,N);scanf(%d”,&n);/*要輸入的記錄個數*/printf(n請輸入數據nn);for(i=0;in;i+)(printf(n請輸入第%d航班記錄.n”,i+1);inp

25、ut(i);/*調用輸入函數*/getchar();menu();voidprintf_one(inti)/*顯示一個記錄的函數*/(printf(%11s%6s%10s%6s%6d%6d%6d”,tii.ID,tii.BePlace,tii.EnPlace,tii.data,tii.price,tii.max,tii.num);voidbrowse()(inti;system(cls);puts(n);已售printf(nt航班代號起飛地點降落地點起飛時間票價最大乘客票數n);for(i=0;in;i+)(printf_one(i);printf(n);getchar();getchar()

26、;menu();排序模塊(按平均成績廣/冒泡法排序*/voidorder()/*(inti,j;structplanes;system(cls);for(i=0;in;i+)/*(for(j=i+1;j0)(s=tii;tii=tij;tij=s;browse();voidsearch_time()(inti,m=0;structplanes;system(cls);printf(nnEnterthetime:);scanf(%s”,s.data);/*輸入出發(fā)的時間*/puts(n-);printf(nt航班代號起飛地點降落地點起飛時間票價最大乘客已售票數n);for(i=0;in;i+)(

27、if(strcmp(s.data,tii.data)=0)(m+;if(m!=0)&(m%10=0)/*目的是分屏顯示*/(printf(nnPressanykeytocontiune.);getchar();puts(nn);printf_one(i);printf(n);/*調用顯示一個記錄的函數*/puts(n-);getchar();/*按任意健*/getchar();menu1();voidserch_end()inti,m=0;structplanes;system(cls);printf(nnEntertheendPlace:);scanf(%s”,s.EnPlace);/*輸入

28、要到達的地方*/puts(n);printf(nt航班代號起飛地點降落地點起飛時間票價最大乘客已售票數n);for(i=0;in;i+)if(strcmp(tii.EnPlace,s.EnPlace)=0)m+;if(m!=0)&(m%10=0)/*目的是分屏顯示*/printf(nnPressanykeytocontiune.);getchar();puts(nn);printf_one(i);printf(n);/*調用顯示一個記錄的函數*/puts(n);按任意健*/getchar();/*getchar();menu1();voidmenu1()(intn,w1;do(system(c

29、ls);/*清屏*/puts(tttt飛機售票操作!nn);puts(tt*MENU*nn);puts(tttt1.按照時間排序);puts(tttt2.按照時間查找航班);puts(tttt3.按照地點查找航班);puts(tttt4.返回主菜單);puts(nntt*printf(Choiceyournumber(1-4):bb);scanf(%d”,&n);對選擇的數字作判斷*/if(n4)/*(w1=1;printf(yourchoiceisnotbetween1and4,Pleaseinputagain:);getchar();getchar();elsew1=0;while(w1=

30、1);/*選擇功能*/switch(n)(case1:order();break;case2:search_time();break;case3:serch_end();break;case4:menu();break;查找模塊*/intsearch()/*(inti,k;structplanes;k=-1;system(cls);printf(nn請輸入要訂票的起飛地點scanf(%s”,s.BePlace);/*printf(-nn請輸入要訂票的降落地點scanf(%s”,s.EnPlace);printf(nn請輸入要訂票的起飛時間scanf(%s”,s.data);:);輸入要到達的地

31、方*/:);/*:);輸入出發(fā)的時間*/for(i=0;i=tii.max)(printf(n該趟航班票已售完!);else(tii.num+;printf(n訂票成功!n);elseprintf(該航班不存在!n);getchar();getchar();/*按任意健*/menu();voidback()(inti,k=-1;structplanes;system(cls);printf(歡迎進入退票窗口!n);printf(nn輸入航班代號:);scanf(%s”,s.ID);/*輸入要到達的地方*/查找要修改的數據*/找到要修改的記錄*/調用顯示一個記錄的函數*/for(i=0;in;i

32、+)/*(if(strcmp(s.ID,tii.ID)=0)(k=i;/*printf_one(k);break;/*if(k=-1)(printf(nnNOexist!);else(tii.num-;printf(n退票成功!n);getchar();/*按任意健*/getchar();/*按任意健*/menu();voidsave()(intw=1;FILE*fp;inti;system(cls);if(fp=fopen(ticket.txt”,wt)=NULL)/*以輸出打開方式,在此前的記錄被覆蓋*/(printf(nCannotopenfilen);return;for(i=0;in;i+)if(fwrite(&tii,sizeof(structplane),1,fp)!=1)(printf(errorn);w=0;if(w=1)(printf(ok!n);fclose(fp);getchar();getchar();menu();voidload()inti,w;w=1

溫馨提示

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

評論

0/150

提交評論