飛機航班訂票系統C語言程序設計報告_第1頁
飛機航班訂票系統C語言程序設計報告_第2頁
飛機航班訂票系統C語言程序設計報告_第3頁
飛機航班訂票系統C語言程序設計報告_第4頁
飛機航班訂票系統C語言程序設計報告_第5頁
已閱讀5頁,還剩44頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、程序設計課程設計說明書課程名稱程序設計設計題目飛機航班訂票系統專業班級計算機應用技術201221學生姓名指導教師起止日期2013年6月8日至2013年6月14日福建林業職業牧*拷皖自劭化工程a目錄1設計內容、任務以及要求11.1 計 fl 的aj "o'11.2要求12總體設計思路22. 1系統基本功能22. 2具體設計思想22.3系統的總體流程圖33 功能模塊的詳細設計53.1結構的定義53.2各個函數的設計具體設計思想和流程圖54.功能模塊的調試及測試274. 1添加函數的測試274. 2判斷函數的測試284. 3刪除函數的測試284. 4統計函數的測試284.5密碼確認

2、函數的測試144. 6密碼的修改函數31344.7主函函數的測試32 5總結6致謝35參考文獻36原程序代碼:211設計內容、任務以及要求設計題目的內容、任務主要利用c語言的文件操作能力設計開發一個小型的飛機訂票系統,至少具 有如下功能:信息讀出,可以查看全部航班信息和查詢一個航班信息。可以進行 添加(再添加過程中有重復顯示提示信息)、刪除、訂票等基本操作。操作界面 要能使使用者看懂,以便使使用者正確使用。具體內容如下:程序屬于非數值計算型算法設計,學生需要設計出飛機訂票系統所需要的基 本功能,并設計簡單的界面。(1) 通過提示菜單選擇可以進行的操作。(2) 將航班的信息存入文件中,并命名為f

3、lighttnfo. txt。(3) 將訂票情況信息存入文件中,并命名為selecttnfo. txt。(4) 在本系統中可以進行管理系統包含的基本操作,其中包括a) 查看所有航班的信息b) 輸入一條航班的航班編號,從當前航班中進行查找,如果找到則顯 示該航班的相關信息,如果沒有找到則給岀提示信息0)添加一條航班的基本信息,通過輸入航班編號,首先查找是否存在 該航班編號的航班,如果存在則提示重新輸入,否則將該航班按照 順序插入到相應位置d) 刪除一條航班的基本信息,通過輸入航班編號,首先查找是否存在 該航班編號的航班,如果存在則將該航班刪除,否則給出提示信息, 提示該航班不存在e) 選擇一條航

4、班,需要給出學號和航班編號,如果航班編號不存在則 重新輸入,直到輸入正確為止,并將學號和相應的航班編號存入 selecttnfo. txt 文件中(5) 航班基本信息包括航班編號、起點、終點、飛行吋間和訂票額度這些簡 單信息。(6) 航班信息文件中每一行存放一條航班的信息。12要求要求:明確課程設計的目的,能根據課程設計的要求,查閱相關文獻,為 完成設計準備必要的知識;提高學生用高級語言進行程序設計的能力,重點 提高用c語言進行文件操作和繪圖應用的編程技術水平;初步了解軟件開發的 一般方法和步驟;提高撰寫技術文檔的能力。2總體設計思路2. 1系統基本功能外部操作:根據耍求系統耍有查看全部航班信

5、息,查詢一個航班,添加航 班(再添加過程屮如有重復顯示提示信息),刪除航班(在刪除過程屮如果沒 有查找到要刪除的顯示提示信息),選擇航班訂票。內部操作:將航班的信息存入文件中,并命名為flightinfo, txto將訂 票情況信息存入文件中,并命名為selectinfo, txto相應的航班編號存入 selectinfo, txt 文件中為了接近實戰模擬飛機航班訂票系統,增加了一些功能。增加功能有把系 統分為了兩個部分,一個是官方操作,一個是客戶端。官方操作有密碼認定和 密碼修改,密碼的以文件形式存儲在硬盤里,以只讀認定客戶,以只寫修改密 碼。官方還有查看訂票情況,由函數統計出來的。客戶端增

6、加了機票顯示(顯 示包括統計岀來的座位號,以及航班號和學號)。2. 2具體設計思想(1)以結構化各個功能模塊,函數間的調用精簡整個函數。(2)以全局結構來隨時定義結構數組以及機構。(3)以寫一個信息存一個的思想,實現多個添加功能。(4)以讀一個打印一個的思想,實現顯示全部信息。(5)以先判斷(以判斷函數給定是否有此航班)再打印的思想,來實現查 找是否有這個航班。(6)以先判斷(以判斷函數給定是否有此航班)再添加的思想,(添加中引用 了刪除函數以供用戶選擇),實現添幾功能。(7)以先判斷(以判斷函數給定是否有此航班)再刪除的思想,刪除航班信息o(8)以循環統計(以統計函數統計給定航班號)訂票文件

7、的的情況返回值 的思想,以顯示當前訂票情況。(9)以統計(以統計函數統計給定航班號)來返回值的思想,以顯示座位 號。(10)密碼的確認以及修改,是利用文件存儲的永久性來實現的,以只讀來 確認密碼,以只寫來修改密碼的思想,來實現的官方操作。2. 3系統的總體流程圖圖2.1系統的總體流程圖(1)2. 2系統的總體流程圖(2)/時間以小時為單位/頂票信息機構/航班號學號/座位號3 功能模塊的詳細設計3. 1結構的定義為了方便使用結構此系統結構均為全局類型定義,其定義有如下兩個typedef struct flight/航班信息機構char fnumber5;char start20;char des

8、tination20;int time;int money; fl;typedef struct consumerchar no 5;char xuehao10;int n; select;3. 2各個函數的設計具體設計思想和流程圖此系統一共十四個函數如下所示:(1)intjudgc_havc_or_no_a_f 1 ight (char) ;/判斷是否有這個航班(2)voi ddelete_a_filght(char ch);刪除函數(3)voidadd many_hangban ();/新建(添加)航班信息(4)voidview_all ();/察看所有的航班信息(5)voidscan_a

9、_filght( char ch);/查看個航班函數(6)intmima_hanshu ();/密碼確認函數(7)voi dxiugai_hanshu();/密碼修改函數(8)voidtongj i_han_shu();/飛機航班統計函數(9)intzuoweihaosure(char hangban);/座位確定函數(10)1 void select_a_filght();訂票函數(11)(void printf_han_shu();官方界面美化函數(12)1 void printf_han_shu_comsouer();/顧客端界面美化函數(13)1 void time han shu()

10、;/時間函數3. 2.1判斷是否有這個航班函數根據要求在添加的時候要先判斷是否己有此航班信息,給出相應的提示。所 以以判斷函數的返回值來提示是否要對原有的航班信息進行操作,因此判斷函數 的類型為整型。其功能具體設計如下:具 體 流 程 如 下 所 示輸入航班號只讀方式打開文件m=strcmp(dp.fnumber,ch);第一次比一次if(m=0)語句判斷是否 有何已知數據相等的只要條件成立nhl并眺出循返回n的值return n;代碼說明圖3. 1以下代碼說明請對照程序附件。ch為字符型字符串,添加函數在調用時 引入的實參的值付給它,然后引入函數屮應用。file *fp :文件指針指向航班信

11、息(flightinfo, txt)存儲文本的緩存地址。if語句是對文本是否打開做出判斷。文件以只讀方式打開。fl dp;是定義的航班信此結構。while語句是把文件里的數據讀到內存里,然后和ch字符串比較,如果相 等m二二0,不相等它就不是一個定值了。strcmp(dp. fnumber, ch);判斷是否讀出來的數據和已知數據是否相等。if語句是用來確定返回值,如果有與已知數據n就是1否則為0; fclose(fp);關閉文件指針。return n;返冋 n3.2.2刪除函數刪除一個航班的基本思想是,把文件中的數據全部讀出來,然后再放回去, 與已知數據進行比較,如果相等說明就是刪除的數據,

12、就不放回文件屮。具體流程如下所示圖3.2代碼說明ch為引用的字符串。fl all100;定義的結構數組,來控制變量。把文件中的數據全部讀出來, 放到結構數組里以便操作。if (fp二fopen(flightinfo. txt", "r")二二null)判 斷文件是否打開。以只讀的方式。while語句把文件里的數據讀到結構數組里,以i的自增來確保數據的完整。 len=i;作為下面while(i<len)語句的循環控制。fp=fopen(,zflightinfo. txt", v);語句以只寫的方式打開。將文件里的書 局全部覆蓋掉。tf語句中的:str

13、cmp(al 1 i. fnumber, ch) !=0判斷但當前字符串是否和已知 字符串是否相等,并以此來確定是否打印數據到文件中。如果哦相等說明與已知 字符串相等。就不打印到文件中以此來刪除航班信息。fclose(fp);對打印到文件中數據保證存儲。3.2.3新建(添加航班信息函數以追加方式打開文件,先輸入要輸入的個數,再在for循環中輸入航班號, 在for循環屮先判斷是否已有次航班,如果已有做出相應的提示。沒有則接續輸 入。流程圖圖3.3代碼說明pdntf(nnntt請輸入要添加的航班個數:);顯示提示信息,以增加 程序的美觀。scanf (%d, &n)語句是要輸入的航班個數。

14、if (fp=fopen(flightinfo, txt", a+")二二null)printf(f訂e can not open!,z);exit(0);語句以追加(既可以讀也可以寫,讀重文件頭開始讀,寫重 文件末尾寫進)的方式打開文件。m=judge_have_or_no_a_f 1 ight (dp. fnumber) ;/判斷是否有這個航班:把實參dp. fnumber引入判斷函數,返冋一個值。if語句:根據m的值來提示是否當前添加的航班號是否已有,并提示做相 應的操作有放棄刪除重新輸入,有刪除后重新輸入。if(h=l):語句調用相應的刪除函數,把dp. fnumb

15、er作為實參引用到刪除 函數。然后用函數遞歸應用在執行循環操作。if(h=2):語句直應用函數遞歸,應用添加函數執行添加循環。在for循環中沒有應用結構數組,直接輸入一個,就把這個放到文件中。 fprintf:語句是把內存中的數據打印到文件中。vicw_allo;是查看全部航班函數,為了直接顯示是否添加成功,顯示文件 屮的全部信息。3. 2. 4察看所有的航班信息以只讀方式打開,以文件結束為標志結束,從文件中讀一個就打印一個的思 想。流程圖圖3.4代碼說明printfc航班號起飛地點終點 飛行時間(小時)票價(元)nw);:此語句是對航班總體的說明while:語句為控制循環,然后就讀一個打印一

16、個,直到文件結束。printf (z,%5s%10s%10s%10d%10dnnz,, dp. fnumber, dp start, dp. destination, dp. time, dp. money)打印內容間的距離控制。fclosc(fp);關閉文件指針。3. 2. 5查看一個航班函數和查看全部航班信息思想一樣,只是打印出來的時候只準與查找的航班信息 打印。用一個遷語句條件限制為m =strcmp (dp. fnumber, ch) ;m的值為0才打印 出來。流程圖代碼說明ch導入字符要找的航班號。 while (!feof (fp)控制循環。m =strcmp(dp. fnumbe

17、r, ch) ;if (m=0) 控制是夠打印。break;如果打卬了就跳岀循環。根據if (n-0)判斷是否有與給定數據相等的,如果沒有會顯示提示信息3. 2. 6密碼確認函數先給定初始密碼,可以利用密碼修改函數進行修改,密碼認定是把文件中的 字符讀岀來和輸入的進行對比,是否相等來實現的。程序流程圖代碼說明char mima20;密碼最多有20個字符。while (!feof(fp) fscanf (fp, "%s", yuanmima);從文件屮不把密碼拿出來。i f(st rcmp (m i ma, yuanm i ma) =0)與輸入字符進行比較。等則輸入密碼正確,

18、 不等則輸入密碼不正確。返回值說明是否輸入正確,正確返回1,不對返回0.。3. 2. 7密碼修改函數設計思想先用密碼確認函數確認是否密碼正確,正確才讓進入下一個環節, 修改是文件以只寫的方式打開,然后保存。函數流程圖圖3.7代碼說明n=mima_hanshu() ;/引入密碼確認函數。if語句判斷是否密碼正確。正確系統讓進行密碼修改,不正確不讓修改。fclose(fp);關閉文件。3. 2. 8飛機航班訂票統計函數以只讀方式打開文件,讀岀每個航班號的訂票情況,然后打印岀來。程序流程代碼說明printf (/,t%stt%dnn/,, dpi. fnumber, n);if (rp=fopen(

19、,zf1 ightlnfo. txt", r)二二null)以只讀方式打開文件 打印岀來,航班信息。whilc(!fcof (rp):控制循環,把文件中的數據讀到數組中。i+;為后面的for循環做控制。在for循環中沒統計一次,指針就指到文件末尾,所以每次統計都要重新 打開文件。統計到一個則座位號加一,最終結果多以就是當請客戶的座位號。 fclosc(fp);關閉文件指針。3.2.9座位確定函數用的是統計的思想,只要文件中有何已知數據相等的票,那么統計變量自增 一。然后打印出來。程序流程圖3.9代碼說明“計”可寫可讀。wh ile(! feof (fp)控制一次一次的讀出來, if

20、(strcmp (hangban, piao. no)=0) 和已知數據進行比較,符合自增。不符合進行下一次。 fclose(fp);關閉文件 return n;返回座位號。3.2.10訂票函數以先判斷再預定,成功輸入后把飛機票存入文件中。代碼說明view_all();為了訂票方便引入了查看全部函數。while (m=l);要求直道輸入正確為止n=judge_have_or_no_a_flight (stu. no) ;/判斷函數;判斷是否有此航班 if(stu.n>1007控前飛機票的數量不能超過限制人數。m=0;跳岀循環。else printf ct無此次航班號,請重新輸入!nnrt

21、);;提示重新輸入。fprintf (fp, n%10st%10st%d,stu. no, stu. xuehao, stu. n) ;fclose(fp)保存已預定的飛機票。printf (t%stt%stt%dnn", stu no, stu xuehao, stu n);打卬飛機票。3. 2. 10 官方界面美化函數 顧客端界面美化函數 時間函數為了主函數的簡潔,所以引入兩個顯示提示信息函數。而時間函數是為了模 擬真實系統而引用的系統函數,以顯示當前時間。然后保存到文件中,以便查詢 操作吋間。4.功能模塊的調試及測試4.1添加函數的測試圖4. 1添加函數的測試4. 1. 1文本

22、文檔中的信息f _= flightinfo-記事本口叵岡文件g)編輯g)格式©)查看 幫助gfgffg12399401239944fgfg12399921239996圖4.2添加后文本中的信息由文木中的信息的出,函數代碼有誤,原代碼為: fprintf (fp,,n%5s%10s%10s%10d%10dn,/,dp. fnumbcr, dp. start, dp. destination, &dp. time, &dp. moncy); 應 該改為: fprintf(fp, "n%5st%10st%10st%10dt%10d", dp. fnumb

23、er,dp.start,dp.des tination, dp. time, dp. money);原因是寫道文件中的事整型數的地址。所以在文 木中顯示的是亂碼。調試成功。4. 2判斷函數的測試(判斷輸入的航班號是否已有,給出相應的提示)| c' *c: docu*ents and sett ingsad>inist r at or 桌面710答辯debugchensong.|二 b兇航班號起飛地點終點飛行時間小時票價元alli南示巴黎58988y526河北海南3908二1圖4. 3判斷函數的測試圖4. 4判斷函數的測試4.3刪除函數的測試(引入刪除航班,先通過判斷函數,再進行刪

24、除)圖4. 5刪除函數的測試輸入1后查看全部圖示為| c: "c:documents and settingsad*inistrator桌面710答辯debugchensong. q航班號起飛地點終點飛行時間小時票價兀y526河北海南3908ufo3烏魯木齊福建5898h176黑龍江昆明3999二1圖4. 6刪除函數的測試成功的刪除航班。(以拿出來,再放回去的操作,設置是否打印,以此來實 現刪除)4. 4統計函數的測試(統計處已訂航班的票數)ca *c: docu>ent sand set t ingsad>inist r at or 桌面7-10答辯debugchens

25、ong航班號£y5262圖4. 7統計函數的測試原代碼為 if (fp二fopen ("selectinfo, txt", r)=null) printf(file can not open2 !n); exit (0);for(i=0;i<len;i+) while(!feof(fp)fscanf (fp, s%s%d,piao. no, piao. xuehao, &piao. n) ; if (strcmp(dpi. fnumb er, pi ao. no) =0)n二n+1;printf(t%stt%dnn,dpi fnumber,n);n=

26、0; fclose (fp);說明文件指針已經一到文件末尾,可以改變指針位置,或者是重復打開文件指針。 所以改為:for (i=0; i<len; i+) if (fp二fopen ("selectinfo, txt", "r)=null) printf(file can not open2 !n);exit (0);while(!feof(fp) fscanf (fp, s%s%d,piao. no, piao. xuehao, &piao. n);if(strcmp(dpi fnumber, piao. no)二二0)n=n+l;printf(t

27、%stt%dnrt, dpi fnumber, n);n 二0;fclose (fp);圖4. 8統計函數的測試說明修改成功,證明文件每讀一次文件指針就會指到文件末尾。4. 5密碼確認函數的測試密碼函數利用文本文檔的長期存儲,以只讀的方式打開文件,和輸入字符串 進行比較。以是否相等來判斷密碼的對錯。以實現密碼確認函數。f: 7-10 答 d ebug chens ong.exe nixnew tine is fri jul 10 13:49:34 2009歡迎進入飛機訂票系統?& <1>官方操作。& <2>客戶端。& <0>退出系統。

28、請輸入(原圖4. 9密碼確認函數的測試 根據設想密碼確認函數成功實現。圖4. 10密碼確認函數的測試4. 6密碼的修改函數模擬密碼操作,先用密碼判斷函數判斷是否是正確的密碼,然后只寫的方式 把新密碼打印進去在保存的思想,來實現密碼修改。c *f二10答辯debugchensong. exe日回3請輸入(原)密碼注請輸入你的新密碼=000000裡淺成功?歡迎使用飛機訂票系統?本系統有以下功能供你選擇& 丄察看全部航班信息.& 2 查找一個航班信息.& 3 添加航班信息.&刪除航班信息.& 5 預定你所要的航班.&密碼修改.& 7 航班訂票統

29、計顯示.圖4. 11密碼的修改函數的測試根據設計思想,符合事實。成功地 完成了密碼修改函數的實現。4.7主函函數的測試圖4. 12主函函數的測試根據辻語句的判斷功能,系統可供官方操作,和客戶端。客戶端直接進入, 官方操作,為模擬真實系統設計了密碼認定,才允許進入。時間函數就在這時顯 示和存儲。進入官方操作后可以有如圖4. 13所示的操作,進入客戶端有如圖4. 14 的操作。圖4. 13主函函數的測試圖4. 14主函函數的測試進入一個操作后就是自身的循環操作,根據wehile(n-l)來反復的界面刷 新和循環操作。在while的語句中改變n的值來控制循環的結束。總結經過十天的程序設計,基本掌握程

30、序設計的基本方法和步驟。在這十天中悟出:程序設要求有一定的基礎是必須的,但是更多的是無論你 設計什么程序,在設計前一定要有自己的設計理念、設計思想,也可以說是中心 思想。否則在做程序的時候,請教一個高手,就有一種不同的方法。結果最終的 程序不倫不類,設計完后會發現會有不同的漏洞。在設計過程中要人膽的發揮自 己的想彖力,要敢于不斷的創新,要敢于嘗試,我認為這也是一種進步的好方法。另外我述有一個小小的建議,老師們給初學這門課程的學生盡量不這門課的 神奇的地方講講,我覺得會對那些對這門課感興趣的同學會更感興趣。記得上次 老師第一次演示文件時,有點相見恨晚,象被注射了興奮劑一樣。6致謝在這十天的時間里

31、,我學到了很多知識,這些少不了老師辛苦指導。同 學之間的幫助,相互鼓勵,以及相互探討,給了自己很大的信心,和跨域式 的進步。所以首先要感謝各位老師和我一起奮斗的同學們。還要感謝我的父母,是他們給了我機會來學習。還要感謝所有為教育事業作出奉獻的人。社,2004.參考文獻1 楊路明 c語言程序設計基礎.北京郵電大學出版社.2005.2 何欽銘,顏暉.c語言程序設計基礎.高等教育出版社2008.3 張引c程序設計基礎課程設計杭州浙江大學出版社,2007.4 k0ciiansgc語言編程.電子工業出版社.2006.5高福成,c語言程序設局,清華人學出版社、北方交通大學出版原程序代碼:#includes

32、tdio. h>#include<string. h>#include<stdlib. h>#includc<timc. h>int judge_have_or_no_a_f 1 ight (char) ;/判斷是否有這個航班void select_a_filght();訂票函數void xiugai_hanshu();/密碼修改函數void view_al 1 ();/察看所有的航班信息void sean_3_filght( char ch);查看一個航班函數void add_many_hangban();/新建航班信息void delete_a_f

33、ilght(char ch);刪除函數void printf_han_shu();官方界面美化函數void printf_hem_shu_comsouer();/顧客端界面美化函數int mima_hanshu();/密碼確認函數int zuowei_hao_sure(char hangban);/座位確定函數void time_han_shu();時間函數void tongji_han_shu();/飛機航班統計函數typedef struct flightj/航班信息機構ichar fnumber5;char start20;char destination20;int time;吋間以小

34、吋為單位int money; fl;typedef struct consumeri/頂票信息機構ichar no 5;/航班號char xuehao10;學號int n;/座位號 select;/*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&

35、;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/void main()/主函數int choice, n=l, m, t, w;char ch5;time han shu();printf (,znttt歡迎進入飛機訂票系統!nn);printf (,ztt& <1> 官方操作。nn);printf

36、(,ztt& <2> 客戶端。nrt);printf (,ztt& <0> 退出系統。nn);printf cztt請輸入你的選擇:);scanf ("%d,&t);if(t=l) chongxin:w=mima_hanshu() ;/密碼確認函數 while(n=l) if (w二二 1) printf_han_shu();官方界面美化函數printf ct請輸入你選擇的功能:); scanf ("%ct, &choice);printf(nn);switch(choice) case 1: system(,zcls

37、,z); view_all () ;break; /察看所有的航班信息case 2:systcm("cls); view_all () ;/查看全部 printf (,znntt請輸入你要查找的航班號:);scanf(s,&ch); scan_a_filght ( ch) ;/察看一個航班信息break;case 3: system("cls");add many hangban () ; break; /新建航班信息(添加函數)case 4:system(,zcls,z);printfcnntt請輸入你要刪除的航班號:); scanf(s,&ch

38、);有這個航班有這個航班break;break;m=judgc_havc_or_no_a_f 1 ight ( ch); 判斷是否if(m=l) delete_a_filght ( ch) ;/刪除函數printf (z,tt 成功刪除! nnz,);if(m!=l) printfc無此次航班!n);case 5: system(cls); sclcct_a_filght() ; break;/訂票函數case 6: system(cls);xiugai hanshu() ; break; /密碼修改函數 case 7: system(cls);tongji_han_shu() ; break

39、;/航班統計函數case 0: n=0;break;default :printf(,z請重新輸入沒有你輸入的選擇nn);break;elseprintf (z,tt 密碼錯誤! n);printf (,ztt請重新輸入密碼!nn);goto chongxin;printf_han_shu_comsouer ();顧客端界面美化函數printf ct請輸入你選擇的功能:); scanf ("%ct, &choice);printf (nn);switch(choice) case 1: system(cls");view_all () ; break; /察看所有的

40、航班信息case 2:system("cls); vicw_all () ;/顯示全部 printf (z,t請輸入你要查找的航班號:); scanf ("%s", &ch);scan_a_filght ( ch) ;/察看一個航班信息break;case 3:system("cls);select a filght () ; break;/訂票函數case 0: n=0;break;default:printf(z,nntt請重新輸入沒有你輸入的選 項:n); break;/*&&&&&&&

41、;&&&&&&&&&&&&& 新 建 航 班 信 息 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

42、amp;&&&*/void add_many_hangban ()/新建航班信息int n , i, m, h;file *fp;fl dp;printf cnnntt請輸入要添加的航班個數:); seanf (%d, &n);if (fp=fopcn (,zf1 ightlnfo. txt", a+)=null) printf(“f訂e can not open!); exit (0);for(i=l;i<=n;i+) printf (,z請輸入第4次航班nn,z, i);printf (t 航班號:);scanf (%s, dp. fnumb

43、er); printf(n);m=judge_have_or_no_a_f 1 ight (dp. fnumber) ;/判斷是否有這個航 if(m=l) printf(,zt此次航班己有是否刪除!nn/z); printf czt刪除重新輸入它請輸入<l>nn,/); printf (,zt不刪除重新輸入請輸入<2>nn,z); printf ct 請輸入:); scanf (%d, &h);if (h二二 1) del ete_a_f i 1 ght (dp. fnumber) ;/刪除函數n=nl;add_many_hangban () ; /添加函數 i

44、f (h二二2) add_many_hangban () ; /添加函數printf (,zt 起飛地:);scanf (s,dp. start); printf ("t 目的地:);scanf ("%s", dp. destination); printf (,zt 飛行時間:);scanf (d", &dp. time);printf (t 票價:);scanf (%d, &dp. money);fprintf(fp, n%5st%10st%10st%10dt%10d", dp. fnumber,dp. start,dp.d

45、es tination, dp. time, dp. money);fclose (fp); viewall ();/*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 察看全部航班信息 &&&

46、&&&&&&&&&&&&&&&&&& */void viewall () "file *fp;fl dp;if (fp=fopen(z,f1 ightlnfo. txt",,zr,z) =null) printf(,zfile can not open!n); exit (0); printfc航班號 起飛地點終點 飛行時間(小時)票價(元)nn);while(!feof (fp) fscanf (fp, %s%s%s%d%ct;

47、dp. fnumber, dp. start, dp. destination, &dp. tim e, &dp. money);printf (z,%5s %10s%10s%10d%10dnnz,, dp. fnumber, dp. start, dp. dcstination, dp. time, dp. money);fclose (fp);/ *&&&&&&&&&&&&&&&&&&&&&&&

48、;&&&&&&查 看一個 航 班 函 數&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/ void sca

49、n_a_filght( char ch)/查看一個航班函數 ""int m, n二0;file *fp;fl dp;if (fp=fopen(z,f1 ightlnfo. txt",,zr,z) =null) printf(,zfile can not open!);exit (0);while(!feof(fp) fscanf(fp, s%s%s%d%dn,dp. fnumber, dp. start, dp. destination, &dp. t imc, &dp. money);m =strcmp(dp fnumber, ch);if (m

50、=0)printf (,z航班號起飛地點終點 飛行時間(小時)票價(元)nn,z);printf (5s%10s%10s%10d%10dnn,dp. fnumber, dp. start, dp.destination, dp. time, dp. money);n二 1;break;if (n=0) printf c沒有你查找的航班號!n,z);fclose (fp);/*&&&&&&&&&&&&&&&&&&&&&&&

51、amp;&&&&&&&&&&& 刪 除 函 數 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */ void delete_a_f ilght (char ch)/刪除函數 ""int i,len

52、;file *fp;fl all100;/航班最多有100班if (fp=fopencflightlnfo. txt,“r)二二null) printf czfi le can not open!,z); exit (0);i=0;while(!feof (fp) fscanf (fp,"%s%s%s%d%d,alli.fnumber,alli.start,alli.dcstina tion,&alli. time, &alli money);i+;len=i; fclose (fp); fp=fopen(,flightinfo. txt",,zw,z);i

53、 二0;wh ile(i<len)if(stremp(alli. fnumber, ch)!=0)fprintf (fp,n%5s%10s%10s%10d%10d", al 1i. fnumber, al 1i. start,al1 i destination,alli time, alli money);i+;)fclose(fp);/*&&&&&&&&&&&&&&&&&&&&&&&&&

54、amp; 判 斷 是 否 有 這 個 航 班 &&&&&&&&&&&&&&&&&&&&&&&&&&&*/int judge_have_or_no_a_flight (char ch)/判斷是否有這個航班int m, n二0;file *fp;fl dp;if (fp=fopen(,zflightinfo. txt", "r")二二null) print

55、f(,zfile can not open!); exit (0);while(!feof (fp) fscanf (fp, s%s%s%d%dn,dp. fnumber, dp. start, dp. destination, &dp. t ime, &dp. money);m =strcmp (dp fnumbcr,ch);if (m=0)n=l;/此次航班已有break;fclose(fp); rcturn n;/*&&&&&&&&&&&&&&&&

56、;&&&&&&&& 官 方 界 面 美 化 函 數 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/ void printf_han_shu()/官方界面美化函數printf( -n );printf (“歡迎使用飛機訂票系統!nnnn );printf (,z本系統有

57、以下功能供你選擇.nrt);printf c&1察看全部航班信息.nn,z);printf(“&2查找一個航班信息.nn,z);printf (,z&3添加航班信息.nnz,);printf (“&4刪除航班信息.nn);printf (,z&5預定你所要的航班.nrt);printf c&6密碼修改.nn,z);printf(“&7航班訂票統計顯示.nrt);printf (,z&0退出系統.n,z);printfc=nn/z);/*&&&&&&&&&&am

58、p;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/ void printf han shu comsouer()/顧客端界面美化函數prin tf (,=printf c printf(“ printf (,z printf (“ printf (,z printf c歡迎使用飛機訂票系統!nnnn “); 本

59、系統有以下功能供你選擇.nn,z);&1察看全部航班信息.nn,z);&2查找一個航班信息.nn,z);&3預定你所要的航班.nrt);&0推出系統.n);printf (=/*&&&&&&&&&&&&&&&&&&&&&&&&&訂&&&&&&&&&&&&&&

60、;&&&&&&&&&&&&&&&&&&&*/ void select_a_filght () /訂票函數 ""file *fp;int n, m=l;select stu;viewall (); while (m二二1)printfc t請輸入你要預定的航班:);scanf ("%s",stu no);printf ("nrt);n=judge_have_or_no_a_flight (stu.

61、 no) ;/判斷函數 stu. n=zuowei_hao_sure(stu. no);座位號確定函數 if (stu. n>100) printf (對不起你所預定的航班已全部被預訂!); exit (0);if(n 二二 1) printf ct請輸入你的學號:);seanf ("%s", stu xuehao);printf ("nrt);m二 0;else printf (,zt無此次航班號,請重新輸入! nnn,z);if (fp=fopen (z,selectinfo. txt,“a+)二二null) printf(,zfilc can not open!); exit (0);fprintf (fp,,zn%10st%10st%d,stu. no, stu. xuehao, stu. n); fclose(fp);printf (,zt 成功預定航班!nrt);printf (z,t你的飛機票信息是:nrt); printf ("t 航班號tt 學號tt座位號nrt);printf (t%stt%stt%dnn,stu. no, st

溫馨提示

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

評論

0/150

提交評論