飛機定票系統(tǒng)c語言課程設計_第1頁
已閱讀1頁,還剩81頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  課 程 設 計 報 告</p><p>  課程名稱 C語言課程設計 </p><p>  課題名稱 飛機訂票系統(tǒng) </p><p>  專 業(yè) 電子信息工程 </p><p>  班 級 0981

2、 </p><p>  學 號 200913020127 </p><p>  姓 名 肖雙喜 </p><p>  指導教師 黃哲 陳多 </p><p>  2010年6月25日</p><p&

3、gt;<b>  湖南工程學院</b></p><p>  課 程 設 計 任 務 書</p><p>  課程名稱 C程序設計 </p><p>  課 題 飛機訂票系統(tǒng) </p><p>  專業(yè)班級 電子信息工程0981 </p><p>

4、  學生姓名 肖雙喜 </p><p>  學 號 200913020127 </p><p>  指導老師 黃哲 田媛 陳多 </p><p>  審 批 </p><p&

5、gt;  任務書下達日期 2010年6 月 25日</p><p>  任務完成日期 2010年 7 月 10日</p><p>  一、設計內(nèi)容與設計要求</p><p><b>  1.設計內(nèi)容:</b></p><p><b>  見附錄</b></p><p&

6、gt;<b>  2.設計要求:</b></p><p>  1).設計正確,方案合理。</p><p>  2).界面友好,使用方便。</p><p>  3).程序精煉,結(jié)構(gòu)清晰。</p><p>  4).設計報告5000字以上,含程序設計說明,用戶使用說明,源程序清單及程序框圖。</p><p

7、><b>  5).上機演示。</b></p><p><b>  二、進度安排</b></p><p>  第一周 星期五: 課題分配,查閱資料</p><p>  第二周 星期日: 總體設計,詳細設計</p><p>  星期二: 編程,上機調(diào)試、修改程序</p>

8、<p>  星期四: 編程,上機調(diào)試、修改程序</p><p>  星期五: 答辯撰寫課程設計報告</p><p><b>  附:</b></p><p>  課程設計報告裝訂順序:封面、任務書、目錄、正文、評分、附件(A4大小的圖紙及程序清單)。 </p><p>  正文的格式:一級標題用3號黑體,

9、二級標題用四號宋體加粗,正文用小四號宋體;行距為22。</p><p>  正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實現(xiàn)(至少要有一個主要模塊的流程圖);四、程序調(diào)試;五、總結(jié);六、附件(所有程序的原代碼,要求對程序?qū)懗霰匾淖⑨專?lt;/p><p>  正文總字數(shù)要求在5000字以上(不含程序原代碼)。</p><p&

10、gt;  設計課題四:飛機訂票系統(tǒng)</p><p><b>  一、問題描述:</b></p><p>  本系統(tǒng)可以用來實現(xiàn)對訂票信息進行輸出,顯示,退票,查詢,保存等,并保存文件中,以達到對飛機訂票信息進行隨時的訂票,查詢何退票的操作管理系統(tǒng).</p><p><b>  二、功能描述:</b></p>

11、<p>  本系統(tǒng)采用一個包含N個數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,每個數(shù)據(jù)的結(jié)構(gòu)應當包括:航班號,出發(fā)地,目的地,價格,等信息,。</p><p><b>  完成以下模塊:</b></p><p><b>  1.訂票</b></p><p><b>  2.顯示</b></p><

12、p><b>  3.退票</b></p><p><b>  4.查詢</b></p><p><b>  5.保存</b></p><p><b>  6.退出系統(tǒng)</b></p><p><b>  測試</b></p

13、><p><b>  四、其它:</b></p><p>  對該系統(tǒng)有興趣的同學可以在實現(xiàn)系統(tǒng)基本功能后,完善系統(tǒng)的其它功能。</p><p><b>  目錄</b></p><p><b>  一、功能簡介1</b></p><p>  1.1主要功

14、能介紹1</p><p>  2.1輸入輸出的要求1</p><p><b>  二、概要設計2</b></p><p>  2.1程序的模塊2</p><p><b>  2.2結(jié)構(gòu)體2</b></p><p>  2.3文件的定義3</p>&l

15、t;p><b>  三、 測試數(shù)據(jù)4</b></p><p>  3.1機票信息文件4</p><p>  3.2旅客信息信息登記4</p><p><b>  四、詳細設計5</b></p><p>  4.1系統(tǒng)總體結(jié)構(gòu)5</p><p>  4.2密碼模

16、塊函數(shù) void checkcode()6</p><p>  4.3機票信息錄入void inputinfo()流程圖7</p><p>  4.4訂票系統(tǒng)void bookticket()流程圖8</p><p>  4.5顯示模塊void display()流程圖9</p><p>  4.6退票系統(tǒng)void returntic

17、ket()流程圖10</p><p><b>  五、使用說明11</b></p><p><b>  5.1主界面11</b></p><p>  5.2機票信息管理(保存)12</p><p>  5.3訂票系統(tǒng)使用15</p><p>  5.4退票系統(tǒng)17

18、</p><p>  六、課程設計總結(jié)19</p><p>  6.1課程設計心得:19</p><p>  6.2在程序設計中的問題和解決:19</p><p><b>  附錄20</b></p><p>  源程序清單(帶注釋)20</p><p>  1.

19、機票信息錄入(帶注釋):20</p><p>  3.源程序清單:(附)31</p><p><b>  參考文獻75</b></p><p>  計算機與通信學院課程設計評分表76</p><p><b>  一、功能簡介</b></p><p><b>

20、  1.1主要功能介紹</b></p><p>  本程序能輸入最多1000個機票信息,管理員在保存功能中通過密碼驗證輸入機票信息,可以對機票信息進行查詢;修改;刪除等功能。一般用戶可以使用訂票;顯示;退票等功能,在訂票時用戶輸入密碼在退票時通過驗證后成功退票。</p><p><b>  具體功能如下:</b></p><p> 

21、 1 、保存模塊: 1 機票信息錄入 2查詢所有機票</p><p>  3修改機票信息 4刪除機票信息</p><p>  有機票信息的管理,對機票信息輸入,查詢,修改,刪除。</p><p>  2、訂票模塊:當有機票信息后可以訂票,訂票時輸入航班號(進入時有可以查詢所有機票信息)出現(xiàn)航班信息,確定訂票后輸入個人信息

22、:姓名,性別,證件號,聯(lián)系電話,密碼(退票時用)。出現(xiàn)您的個人信息,確定后回車訂票結(jié)束。</p><p>  3顯示模塊: 1全部 2航班號 3出發(fā)地 4目的地</p><p>  按上述方式查看機票信息</p><p>  4退票模塊:(可以選擇查看航班信息) 1姓名 2證件號</p><p>

23、  當輸入姓名或證件號后會顯示您定的航班信息,再要求輸入密碼,當密碼正確時會顯示您的個人信息,回車再是否確定退票。</p><p>  5 查詢模塊:(輸入管理密碼)輸入航班號,顯示航班信息 和所有乘客個人信息</p><p>  2.1輸入輸出的要求</p><p>  當要輸入密碼時一般為1234,在界面中無提示時當要繼續(xù)請按回車,其他的請按提示操作,由于時間

24、和能力的關(guān)系沒有考慮到意外情況請按提示操作。</p><p><b>  二、概要設計</b></p><p><b>  2.1程序的模塊</b></p><p>  1、 保存模塊:含有機票信息的管理,對機票信息輸入,查詢,修改,刪除。</p><p>  2、訂票模塊:當有機票信息后可以訂票,

25、訂票時輸入航班號(進入時有可以查詢所有機票信息)出現(xiàn)航班信息,確定訂票后輸入個人信息:姓名,性別,證件號,聯(lián)系電話,密碼(退票時用)。出現(xiàn)您的個人信息,確定后回車訂票結(jié)束。</p><p>  3、顯示模塊:含全部;航班號;出發(fā)地;目的地等方式查詢所有機票信息。</p><p>  4、退票模塊:當輸入姓名或證件號后會顯示您定的航班信息,再要求輸入密碼,當密碼正確時會顯示您的個人

26、信息,回車再是否確定退票。</p><p>  5 查詢模塊:(輸入管理密碼)輸入航班號,顯示航班信息 和所有乘客個人信息</p><p><b>  2.2結(jié)構(gòu)體</b></p><p>  struct travellerinfo//旅客信息結(jié)構(gòu)</p><p><b>  {</b></

27、p><p>  char fightnum [10];//航班號</p><p>  char name [10]; //姓名</p><p>  char sex [5]; //性別</p><p>  char idnum [20];//證件號碼</p><p>  char password [10];//密碼<

28、;/p><p>  char poto [12]; //聯(lián)系電話</p><p><b>  };</b></p><p>  struct fightinfo//機票信息結(jié)構(gòu)體</p><p><b>  {</b></p><p>  char fightnum [10];/

29、/航班號</p><p>  char start [8];//出發(fā)地</p><p>  char destination [8];//目的地</p><p>  unsigned int price;//價格</p><p>  unsigned int goyear;//出發(fā)時間 年</p><p>  uns

30、igned int gomoth;//月</p><p>  unsigned int goday;//日</p><p>  unsigned int gohour;//時</p><p>  unsigned int gominute;//分</p><p>  unsigned int arryear;//到達時間 年<

31、/p><p>  unsigned int arrmoth;//月</p><p>  unsigned int arrday;//日</p><p>  unsigned int arrhour;//時</p><p>  unsigned int arrminute;//分</p><p>  unsigned

32、 int rebate;//折扣</p><p>  unsigned int allsticket;//總票數(shù)</p><p>  unsigned int surplusticket;//剩余票數(shù)</p><p><b>  };</b></p><p>  struct allfightinfo //機票全部

33、結(jié)構(gòu)</p><p><b>  {</b></p><p>  struct travellerinfo fight;//旅客信息結(jié)構(gòu)</p><p>  struct fightinfo fight1;//機票信息結(jié)構(gòu)體</p><p><b>  };</b></p><p

34、><b>  2.3文件的定義</b></p><p>  FILE *travellerfile=NULL; //存旅客信息數(shù)據(jù)文件</p><p>  FILE *fightfile=NULL; //存機票信息數(shù)據(jù)文件</p><p>  char filename[]="旅客信息信息登記.dat"; //記錄旅客

35、信息登記</p><p>  char filename1[]="機票信息.dat"; //記錄機票信息</p><p><b>  測試數(shù)據(jù)</b></p><p><b>  3.1機票信息文件</b></p><p>  航班號出發(fā)地目的地 價格 發(fā)月-日| 時-分到月-日

36、| 時-分|折扣| 總票|余票</p><p>  長沙 衡陽 170 1-1 12: 0 2-2 13: 0 89 240 238</p><p>  T1234 衡陽 廣州 280 1-1 12:0 2-2 13: 0 60 240 240 </p><p>  T12345 衡陽

37、 廣州 230 1-1 12:11 2-2 13:12 60 241 241</p><p>  3.2旅客信息信息登記</p><p>  航班號 | 姓名 | 性別| 證件號 | 聯(lián)系電話 | 密碼 </p><p>  肖雙喜 男 200913020127

38、15292283221 123</p><p>  123 余榮川 男 200913020128 2142452314 12345 </p><p><b>  四、詳細設計</b></p><p><b>  4.1系統(tǒng)總體結(jié)構(gòu)</b></p>

39、;<p><b>  退</b></p><p>  圖4.1系統(tǒng)總體結(jié)構(gòu)圖</p><p>  在這個總體框架中,我們可以整體地看到這個系統(tǒng)運行流程,所調(diào)用幾個重要函數(shù)。</p><p>  4.2密碼模塊函數(shù) void checkcode()</p><p>  該模塊包括密碼的輸入并驗證,修改密碼。算

40、法如下:</p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  密碼驗證</b&g

41、t;</p><p>  4.3機票信息錄入void inputinfo()流程圖</p><p><b>  無效重新輸入</b></p><p><b>  無效重新輸入</b></p><p><b>  無效重新輸入</b></p><p>  

42、4.4訂票系統(tǒng)void bookticket()流程圖</p><p>  在有航班信息的情況下可以進行訂票操作。</p><p><b>  否</b></p><p><b>  是</b></p><p><b>  否</b></p><p>&

43、lt;b>  是</b></p><p><b>  否</b></p><p><b>  是</b></p><p><b>  否</b></p><p><b>  是</b></p><p><b&

44、gt;  否</b></p><p><b>  否</b></p><p>  4.5顯示模塊void display()流程圖</p><p><b>  否</b></p><p><b>  是</b></p><p><b&g

45、t;  否</b></p><p><b>  是</b></p><p><b>  是</b></p><p><b>  否</b></p><p>  顯示所有或條件航班信息</p><p>  4.6退票系統(tǒng)void returnt

46、icket()流程圖</p><p><b>  否</b></p><p><b>  是</b></p><p><b>  否</b></p><p><b>  是</b></p><p><b>  否</

47、b></p><p><b>  是</b></p><p><b>  否</b></p><p><b>  是</b></p><p><b>  否</b></p><p><b>  五、使用說明 <

48、/b></p><p><b>  5.1主界面</b></p><p><b>  5-1</b></p><p>  1.程序歡迎界面(對系統(tǒng)的說明,及程序分組名單)停留15s</p><p><b>  5-2</b></p><p>  2

49、、程序主界面(按數(shù)字1---5 再回車)進入其他功能</p><p>  5.2機票信息管理(保存)</p><p><b>  5-3</b></p><p>  1、輸入密碼(第一次設置密碼1234)機票信息管理</p><p><b>  5-4</b></p><p&g

50、t;  選1進入機票信息錄入</p><p><b>  5-5</b></p><p>  選2查詢所有航班信息</p><p><b>  5-6</b></p><p>  選3修改航班信息,確定后進入查詢所有航班 </p><p><b>  5-7 <

51、;/b></p><p>  輸入航班號 顯示航班信息 要求輸入修改信息</p><p><b>  5-8</b></p><p>  刪除請謹慎,全部刪除會刪除所有文件</p><p><b>  5.3訂票系統(tǒng)使用</b></p><p><b>  

52、5-8</b></p><p>  1、定票時查詢所有的航班信息</p><p><b>  5-9</b></p><p>  2、輸入正確的航班號</p><p><b>  5-10</b></p><p><b>  訂票時輸入個人信息</

53、b></p><p><b>  5.4退票系統(tǒng)</b></p><p><b>  5-11</b></p><p>  1、進入退票系統(tǒng)是否查詢所有機票信息</p><p><b>  5-12</b></p><p>  2、選擇輸入信息輸入

54、的方式并輸入</p><p><b>  5-13</b></p><p>  3、退票時的信息顯示然后確定</p><p><b>  六、課程設計總結(jié)</b></p><p>  6.1課程設計心得: </p><p>  課程設計給我一個學以致用的機會,剛開始的時候

55、還以為學這黑黑的東西沒用,只是一些簡單的計算。經(jīng)過了這次的練習我才發(fā)現(xiàn)原來的黑屏有它自己的好處,通過學習也發(fā)現(xiàn)原來這種黑屏就是那些應用程序的原型,不論你以后學程序開發(fā)還是網(wǎng)頁的制作都有很好大好處,這些基礎是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.隨著科學技術(shù)發(fā)展的日新月異,當今計算機應用在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握計算機開

56、發(fā)技術(shù)是十分重要的?;仡櫰鸫舜握n程設計,至今我們?nèi)愿锌H多,的確,自從拿到題目到完成整個編程,從理論到實踐,可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我們懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。</p>&l

57、t;p>  通過這次的學習我發(fā)現(xiàn)以后不管是哪一科我們盡量要把它拿過來使用,只有把知識應用到實際生活中才能說這知識是自己的啦。在以后找工作中這些作品就會是我的學習憑證,是我的能力的體現(xiàn),不難想象一個公司要的是一些實際的東西不需要太多的理論。</p><p>  6.2在程序設計中的問題和解決:</p><p>  在訂票系統(tǒng)中我們發(fā)現(xiàn),在訂票時我們的把機票信息中的剩余票數(shù)要減少一個,而

58、在退票時我們的把剩余票數(shù)加以個,由于在文件的定義時不好把機票信息文件和旅客信息文件放一起,所以在修改機票剩余票數(shù)的是侯的打開兩個文件然后得對兩個文件進行修改。</p><p>  再保存模塊得把機票的信息錄入進去,所以有很多不分都得寫,像機票信息的錄入,修改,刪除,這樣一來就像是寫一個機票信息管理系統(tǒng)一樣,這樣一來導致這個文件會很大,很繁瑣。但是還好c語言是面向過程的導致很多的程序代碼重復,這樣就在寫好一部分代碼

59、以后就可以進行復制,然后進行修改就行,總體來說工作量還不是很大。.</p><p><b>  附錄</b></p><p>  源程序清單(帶注釋)</p><p>  1.機票信息錄入(帶注釋):</p><p>  /*************************機票信息錄入******************

60、*******/</p><p>  void inputinfo(struct allfightinfo *p_fight)</p><p><b>  {</b></p><p>  int count;//變量的定義</p><p>  char ch,ch1;//定義變量</p><p>

61、  system("cls");//清屏</p><p>  if((fightfile=fopen(filename1,"a+b"))==NULL)//打開文件</p><p><b>  {</b></p><p>  printf("不能打開文件,請確認磁盤已滿或 機票信息.dat文件沒有

62、損壞");</p><p>  getch();exit(1);//不能打開時的處理</p><p><b>  }</b></p><p>  rewind(fightfile); //定位文件頭開始讀取</p><p>  for(count=0;fread(&p_fight[count].figh

63、t1,sizeof(struct fightinfo),1,fightfile)==1;count++)</p><p>  continue; //讀取并計數(shù)已經(jīng)存的數(shù)據(jù)量</p><p>  printf("\n\t\t★---您好,歡迎進入中國民航機票信息登記系統(tǒng)!---★\n");//輸出字符及提示語句</p><p>  printf(

64、"\n\t\t\t 飛機票信息登記表\n");</p><p>  printf("\n請正確填寫以下信息(系統(tǒng)目前不能完全支持中文(中文有可能出錯),請用英文或拼音\n"); </p><p>  printf("----------------------------------------------------------

65、-------------------\n\n");</p><p>  printf("航班號:");</p><p>  while(count<fightMAX&&gets(p_fight[count].fight1.fightnum)!=NULL //輸入航班號</p><p>  &&p_

66、fight[count].fight1.fightnum[0]!='\0')</p><p><b>  {</b></p><p>  printf("\n出發(fā)地:");</p><p>  gets(p_fight[count].fight1.start); //輸入出發(fā)地</p><

67、p>  printf("\n目的地:");</p><p>  gets(p_fight[count].fight1.destination); //輸入目的地</p><p>  fflush(stdin);//清空緩存</p><p>  printf("\n價格:");</p><p>  

68、scanf("%d",&p_fight[count].fight1.price);//輸入價格</p><p>  fflush(stdin);//清空緩存</p><p>  ye:printf("\n出發(fā)時間年:");</p><p>  scanf("%d",&p_fight[coun

69、t].fight1.goyear);//輸入出發(fā)時間</p><p>  if(!(1500<p_fight[count].fight1.goyear&&p_fight[count].fight1.goyear<4000))// 判斷年份是否為有效值</p><p><b>  {</b></p><p>  pri

70、ntf("\n\t\t您輸入的年份有點不和實際!請確定是否重新輸入(y/n)");//不符合時的處理(下面的輸入一樣)</p><p>  ch1=getch();</p><p>  if(ch1=='n'||ch=='N')//詢問出錯時是否重新輸入</p><p><b>  {</b>

71、</p><p>  printf("\n\t\t您放棄重新輸入年份!");</p><p>  goto mo;//轉(zhuǎn)至輸入月份</p><p><b>  }</b></p><p>  printf("\n\t\t請重新輸入年份!");</p><p>

72、;  goto ye;//轉(zhuǎn)至輸入年份</p><p><b>  }</b></p><p>  fflush(stdin);//清空緩存</p><p>  mo:printf("\n出發(fā)時間月:");</p><p>  scanf("%d",&p_fight[cou

73、nt].fight1.gomoth);//時間的輸入</p><p>  if(!(0<p_fight[count].fight1.gomoth&&p_fight[count].fight1.gomoth<=12))//判斷是否有效</p><p><b>  {</b></p><p>  printf("

74、;\n\t\t您輸入的月份有點不和實際!請確定是否重新輸入(y/n)");//無效時的處理</p><p>  ch1=getch();</p><p>  if(ch1=='n'||ch=='N')</p><p><b>  {</b></p><p>  printf(&q

75、uot;\n\t\t您放棄重新輸入月份!");</p><p>  goto da;//轉(zhuǎn)至輸入時間天</p><p><b>  }</b></p><p>  printf("\n\t\t請重新輸入月份!");</p><p>  goto mo;//轉(zhuǎn)至輸入時間月</p>

76、<p><b>  }</b></p><p>  fflush(stdin);//清空緩存</p><p>  da:printf("\n出發(fā)時間日:");//時間天的輸入</p><p>  scanf("%d",&p_fight[count].fight1.goday);<

77、;/p><p>  if(!(0<p_fight[count].fight1.goday&&p_fight[count].fight1.goday<=31))//判斷是否有效</p><p><b>  {</b></p><p>  printf("\n\t\t您輸入的日有點不和實際!請確定是否重新輸入(y/

78、n)");//無效時的處理</p><p>  ch1=getch();</p><p>  if(ch1=='n'||ch=='N')</p><p><b>  {</b></p><p>  printf("\n\t\t您放棄日重新輸入!");</

79、p><p>  goto go;//轉(zhuǎn)至輸入出發(fā)時間</p><p><b>  }</b></p><p>  printf("\n\t\t請重新輸入日!");</p><p>  goto da;//轉(zhuǎn)至輸入時間天</p><p><b>  }</b>

80、</p><p>  fflush(stdin);//清空緩存</p><p>  go:printf("\n出發(fā)時間時:");//出發(fā)時間時的輸入</p><p>  scanf("%d",&p_fight[count].fight1.gohour);</p><p>  if(!(0<

81、=p_fight[count].fight1.gohour&&p_fight[count].fight1.gohour<=23))//不合適時的處理</p><p><b>  {</b></p><p>  printf("\n\t\t您輸入的時間有點不和實際!請確定是否重新輸入(y/n)");</p><

82、;p>  ch1=getch();//輸入一個字符</p><p>  if(ch1=='n'||ch=='N')//判斷字符</p><p><b>  {</b></p><p>  printf("\n\t\t您放棄時間重新輸入!");</p><p>  

83、goto gomi;//轉(zhuǎn)至出發(fā)分的輸入</p><p><b>  }</b></p><p>  printf("\n\t\t請重新輸入時間!");</p><p><b>  goto go;</b></p><p><b>  }</b></

84、p><p>  fflush(stdin);</p><p>  gomi:printf("\n出發(fā)時間分:");</p><p>  scanf("%d",&p_fight[count].fight1.gominute);</p><p>  if(!(0<=p_fight[count].f

85、ight1.gominute&&p_fight[count].fight1.gominute<=59))</p><p><b>  {</b></p><p>  printf("\n\t\t您輸入的時間有點不和實際!請確定是否重新輸入(y/n)");</p><p>  ch1=getch();&l

86、t;/p><p>  if(ch1=='n'||ch=='N')</p><p><b>  {</b></p><p>  printf("\n\t\t您放棄時間重新輸入!");</p><p>  goto arry;</p><p><

87、b>  }</b></p><p>  printf("\n\t\t請重新輸入時間!");</p><p>  goto gomi;</p><p><b>  }</b></p><p>  fflush(stdin);</p><p>  arry:pri

88、ntf("\n到達時間年:");//輸入到達時間</p><p>  scanf("%d",&p_fight[count].fight1.arryear);</p><p>  if(p_fight[count].fight1.arryear<p_fight[count].fight1.goyear)//判斷輸入到達的年份是否為有效,到

89、達時間不能小于出發(fā)時間(下同)</p><p><b>  {</b></p><p>  printf("您輸入的到達時間小于起飛時間,請重新輸入到達時間年!");</p><p>  goto arry;</p><p><b>  }</b></p><

90、p>  if(!(1500<p_fight[count].fight1.arryear&&p_fight[count].fight1.arryear<4000))</p><p><b>  {</b></p><p>  printf("\n\t\t您輸入的年份有點不和實際!請確定是否重新輸入(y/n)");&l

91、t;/p><p>  ch1=getch();</p><p>  if(ch1=='n'||ch=='N')</p><p><b>  {</b></p><p>  printf("\n\t\t您放棄重新輸入年份!");</p><p>  g

92、oto arrm;</p><p><b>  }</b></p><p>  printf("\n\t\t請重新輸入年份!");</p><p>  goto arry;</p><p><b>  }</b></p><p>  fflush(std

93、in);</p><p>  arrm:printf("\n到達時間月:");</p><p>  scanf("%d",&p_fight[count].fight1.arrmoth);</p><p>  if(p_fight[count].fight1.arryear==p_fight[count].fight1.

94、goyear&&p_fight[count].fight1.arrmoth<p_fight[count].fight1.gomoth)</p><p><b>  {</b></p><p>  printf("您輸入的到達時間小于起飛時間,請重新輸入到達時間月!");</p><p>  goto a

95、rrm;</p><p><b>  }</b></p><p>  if(!(0<p_fight[count].fight1.arrmoth&&p_fight[count].fight1.arrmoth<=12))</p><p><b>  {</b></p><p>

96、;  printf("\n\t\t您輸入的月份有點不和實際!請確定是否重新輸入(y/n)");</p><p>  ch1=getch();</p><p>  if(ch1=='n'||ch=='N')</p><p><b>  {</b></p><p>  pr

97、intf("\n\t\t您放棄重新輸入月份!");</p><p>  goto arrd;</p><p><b>  }</b></p><p>  printf("\n\t\t請重新輸入月份!");</p><p>  goto arrm;</p><p

98、><b>  }</b></p><p>  fflush(stdin);</p><p>  arrd:printf("\n到達時間日:");</p><p>  scanf("%d",&p_fight[count].fight1.arrday);</p><p>

99、;  if(p_fight[count].fight1.arrmoth==p_fight[count].fight1.gomoth&&p_fight[count].fight1.arrday<p_fight[count].fight1.goday)</p><p><b>  {</b></p><p>  printf("您輸入的到達

100、時間小于起飛時間,請重新輸入到達時間日!");</p><p>  goto arrd;</p><p><b>  }</b></p><p>  if(!(0<p_fight[count].fight1.arrday&&p_fight[count].fight1.arrday<=31))</p&g

101、t;<p><b>  {</b></p><p>  printf("\n\t\t您輸入的日有點不和實際!請確定是否重新輸入(y/n)");</p><p>  ch1=getch();</p><p>  if(ch1=='n'||ch=='N')</p>&l

102、t;p><b>  {</b></p><p>  printf("\n\t\t您放棄日重新輸入!");</p><p>  goto arrh;</p><p><b>  }</b></p><p>  printf("\n\t\t請重新輸入日!"

103、);</p><p>  goto arrd;</p><p><b>  }</b></p><p>  fflush(stdin);</p><p>  arrh:printf("\n到達時間時:");</p><p>  scanf("%d",&

104、;p_fight[count].fight1.arrhour);</p><p>  if(p_fight[count].fight1.arrmoth==p_fight[count].fight1.gomoth&&p_fight[count].fight1.arrday==p_fight[count].fight1.goday&&p_fight[count].fight1.arrh

105、our<p_fight[count].fight1.gohour)</p><p><b>  {</b></p><p>  printf("您輸入的到達時間小于起飛時間,請重新輸入到達時間時!");</p><p>  goto arrh;</p><p><b>  }</

106、b></p><p>  if(!(0<=p_fight[count].fight1.arrhour&&p_fight[count].fight1.arrhour<=23))</p><p><b>  {</b></p><p>  printf("\n\t\t您輸入的時間有點不和實際!請確定是否重

107、新輸入(y/n)");</p><p>  ch1=getch();</p><p>  if(ch1=='n'||ch=='N')</p><p><b>  {</b></p><p>  printf("\n\t\t您放棄時間重新輸入!");</p

108、><p>  goto arrmi;</p><p><b>  }</b></p><p>  printf("\n\t\t請重新輸入時間!");</p><p>  goto arrh;</p><p><b>  }</b></p>&l

109、t;p>  fflush(stdin);</p><p>  arrmi:printf("\n到達時間分:");</p><p>  scanf("%d",&p_fight[count].fight1.arrminute);</p><p>  if(p_fight[count].fight1.arrmoth=

110、=p_fight[count].fight1.gomoth&&p_fight[count].fight1.arrday==p_fight[count].fight1.goday&&p_fight[count].fight1.arrhour==p_fight[count].fight1.gohour&&p_fight[count].fight1.arrminute<p_fight[co

111、unt].fight1.gominute)</p><p><b>  {</b></p><p>  printf("您輸入的到達時間小于起飛時間,請重新輸入到達時間分!");</p><p>  goto arrmi;</p><p><b>  }</b></p>

112、;<p>  if(!(0<=p_fight[count].fight1.arrminute&&p_fight[count].fight1.arrminute<=59))</p><p><b>  {</b></p><p>  printf("\n\t\t您輸入的時間有點不和實際!請確定是否重新輸入(y/n)&q

113、uot;);</p><p>  ch1=getch();</p><p>  if(ch1=='n'||ch=='N')</p><p><b>  {</b></p><p>  printf("\n\t\t您放棄時間重新輸入!");</p><

114、p>  goto reb;</p><p><b>  }</b></p><p>  printf("\n\t\t請重新輸入時間!");</p><p>  goto arrmi;</p><p><b>  }</b></p><p>  ff

115、lush(stdin);</p><p>  reb:printf("\n折扣:");</p><p>  scanf("%d",&p_fight[count].fight1.rebate);</p><p>  if(!(0<p_fight[count].fight1.rebate&&p_fig

116、ht[count].fight1.rebate<=100))</p><p><b>  {</b></p><p>  printf("\n\t\t您輸入的折扣有點不和實際!請確定是否重新輸入(y/n)");</p><p>  ch1=getch();</p><p>  if(ch1==&

117、#39;n'||ch=='N')</p><p><b>  {</b></p><p>  printf("\n\t\t您放棄折扣重新輸入!");</p><p>  goto alls;</p><p><b>  }</b></p>

118、<p>  printf("\n\t\t請重新輸入折扣!");</p><p><b>  goto reb;</b></p><p><b>  }</b></p><p>  fflush(stdin);</p><p>  alls:printf("\n

119、總票數(shù):");</p><p>  scanf("%d",&p_fight[count].fight1.allsticket);</p><p>  fflush(stdin);</p><p>  surp:printf("\n剩余票數(shù):");</p><p>  scanf(&qu

120、ot;%d",&p_fight[count].fight1.surplusticket);</p><p>  if(p_fight[count].fight1.surplusticket>p_fight[count].fight1.allsticket)</p><p><b>  {</b></p><p>  pr

121、intf("您輸入的剩余票不合乎實際!!!請重新輸入!");</p><p>  goto surp;</p><p><b>  }</b></p><p>  fflush(stdin);//清空緩存</p><p>  fwrite(&p_fight[count++].fight1,si

122、zeof(struct fightinfo),1,fightfile); //將信息寫入文件 </p><p>  printf("是否錄入下一個飛機票信息(y/n)");//詢問是否輸入下一個機票信息</p><p>  ch=getch(); //輸入一個字符</p><p>  if(ch=='y'||ch=='Y

123、')//判斷字符的輸入</p><p><b>  {</b></p><p>  system("cls");</p><p>  printf("\n請輸入下一個飛機票信息\n");</p><p>  printf("\n航班號:"); </

124、p><p>  continue; //繼續(xù)輸入下一個飛機票信息 </p><p><b>  } </b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("\n\n飛機

125、票信息錄入結(jié)束,返回!");</p><p>  fclose(fightfile); //關(guān)閉文件 </p><p>  getch(); //返回子菜單</p><p>  system("cls");//清屏</p><p><b>  return ; </b></p>

126、<p><b>  }</b></p><p><b>  }</b></p><p>  printf("輸入有誤,終止飛機票信息錄信,返回!");</p><p>  getch();//等待輸入字符</p><p>  system("cls"

127、;);</p><p>  return ; //返回 </p><p>  3.源程序清單:(附)</p><p>  /* ****************************************</p><p>  * Author:飛機訂票系統(tǒng)組</p><p>  * Datetime:2010/06

128、*/</p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<string.h></p><p>  #include<conio.h></p><p>  #include&

129、lt;time.h></p><p>  #define fightMAX 1000</p><p>  void inputinfo(struct allfightinfo *);//機票信息錄入</p><p>  void filename1read (struct allfightinfo *);//旅客信息信息讀取</p><p&

130、gt;  void allabout(struct allfightinfo *); //查詢所有信息</p><p>  void mofinfo(struct allfightinfo *);//修改機票信息</p><p>  void password();//密碼驗證</p><p>  int checkcode();//身份驗證</p>

131、<p>  void modifycode();//修改登陸密碼</p><p>  void delinfo(struct allfightinfo *);//刪除</p><p>  void fightcontrol(struct allfightinfo *);//機票管理模塊</p><p>  void bookticket(struct al

132、lfightinfo *p_fight);//訂票系統(tǒng)</p><p>  void display(struct allfightinfo *p_fight);//顯示模塊</p><p>  void returnticket(struct allfightinfo *p_fight);//退票</p><p>  void enquiry(struct all

133、fightinfo *p_fight);//查詢模塊</p><p>  void welcome();//歡迎</p><p>  int submeun();</p><p>  struct travellerinfo//旅客信息結(jié)構(gòu)</p><p><b>  {</b></p><p>

134、  char fightnum [10];//航班號</p><p>  char name [10]; //姓名</p><p>  char sex [5]; //性別</p><p>  char idnum [20];//證件號碼</p><p>  char password [10];//密碼</p><p&g

135、t;  char poto [12]; //聯(lián)系電話</p><p><b>  };</b></p><p>  struct fightinfo//機票信息結(jié)構(gòu)體</p><p><b>  {</b></p><p>  char fightnum [10];//航班號</p>

136、<p>  char start [8];//出發(fā)地</p><p>  char destination [8];//目的地</p><p>  unsigned int price;//價格</p><p>  unsigned int goyear;//出發(fā)時間 年</p><p>  unsigned int gomot

137、h;//月</p><p>  unsigned int goday;//日</p><p>  unsigned int gohour;//時</p><p>  unsigned int gominute;//分</p><p>  unsigned int arryear;//到達時間 年</p><p>

138、;  unsigned int arrmoth;//月</p><p>  unsigned int arrday;//日</p><p>  unsigned int arrhour;//時</p><p>  unsigned int arrminute;//分</p><p>  unsigned int rebate;//折

139、扣</p><p>  unsigned int allsticket;//總票數(shù)</p><p>  unsigned int surplusticket;//剩余票數(shù)</p><p><b>  };</b></p><p>  struct allfightinfo //機票全部結(jié)構(gòu)</p>&l

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論