2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  信息科學(xué)與技術(shù)學(xué)院</b></p><p>  程序設(shè)計基礎(chǔ)課程設(shè)計報告</p><p>  題目名稱: 飛機(jī)訂票系統(tǒng) </p><p>  學(xué)生姓名: 李梹 </p><p>  學(xué) 號: 201150805

2、4 </p><p>  專業(yè)班級: 計科2班 </p><p>  指導(dǎo)教師: 鄭瑤 </p><p><b>  2012年7月5號</b></p><p>  1 課程設(shè)計題目與要求3</p><p

3、>  .1.1 設(shè)計題目3</p><p><b>  1.2設(shè)計要求3</b></p><p><b>  .2總體設(shè)計3</b></p><p><b>  .3 詳細(xì)設(shè)計4</b></p><p><b>  調(diào)試與測算5</b>&l

4、t;/p><p><b>  .4 調(diào)試分析6</b></p><p>  ˙5 課程設(shè)計總結(jié)10</p><p><b>  6.附錄10</b></p><p>  7 指導(dǎo)教師意見27</p><p>  1 課程設(shè)計題目與要求</p><p&g

5、t;  假定民航機(jī)場共有n個航班,每個航班有一航班號、確定的航線(起始站、終點站)、確定的飛行時間(星期幾)和一定的成員訂額。設(shè)計一飛機(jī)訂票系統(tǒng),使之能提供下列服務(wù):</p><p>  1、航班信息錄入功能(航班信息用文件保存) </p><p>  包括航班號、起始站、重點站、機(jī)票數(shù)等;</p><p>  2、航班信息瀏覽功能</p><p

6、><b>  3、按航班號排序</b></p><p>  4、查詢航線:按航班號查詢</p><p>  5、承辦訂票和退票業(yè)務(wù)(可選項)</p><p><b>  2,總體設(shè)計:</b></p><p>  編寫一個飛機(jī)訂票系統(tǒng)的程序,使該系統(tǒng)能夠?qū)崿F(xiàn)對航班信息的錄入、瀏覽、排序、查詢以

7、及訂票、退票的功能。根據(jù)題目要求,首先要制作一個主菜單顯示出各個操作的提示可供用戶選擇,進(jìn)而一步步地深入操作。根據(jù)主菜單的內(nèi)容再進(jìn)一步編制具體操作的函數(shù),各個功能均用專門編制的函數(shù)來完成。這就是看到題目后的最初的思路。</p><p><b>  3,詳細(xì)設(shè)計</b></p><p><b>  (10)流程圖</b></p>&l

8、t;p><b>  .4 調(diào)試分析</b></p><p><b>  ˙5 課程設(shè)計總結(jié)</b></p><p>  開始對c語言只是一種零散的認(rèn)識,作為一個c語言的初學(xué)者對編程沒有明確的概念,只是對語句的格式與編程規(guī)定有了一個初步了解。也不知道編程的主要目的是什么,依據(jù)什么來編?為什么要編程?編出來又能干什么?通過對這一飛機(jī)訂票系統(tǒng)的學(xué)

9、習(xí),知道了c語言在實際應(yīng)用中的作用,明確了學(xué)c語言的意義。</p><p>  對c語言編程經(jīng)驗的掌握要從實踐中積累,在程序調(diào)試的過程中遇到的錯誤能夠正確的識別并改正,使我收益很大。</p><p>  熟悉了調(diào)試的方法和步驟,對c語言編程過程中可能遇到的各種錯誤有了深刻的認(rèn)識與理解,并能夠迅速的根據(jù)提示解決程序的錯誤:</p><p>  對變量賦值時,要用“=”

10、,而表示相等時用“==”。</p><p>  程序語句后的注釋有時會很有用,會幫助我們更好的理解程序,在程序調(diào)試時根據(jù)注釋也可以幫我們快速準(zhǔn)確的了解出錯處程序的意思,做出快速的更正。</p><p>  使用函數(shù)時要注意先聲明。</p><p>  使用fp=fopen(“\\……”)標(biāo)明地址時要注意使用“\\”。</p><p>  通過

11、實用函數(shù)流程圖,使我更深入的理解了語句的使用,特別是對循環(huán)語句的理解與掌握:</p><p>  dowhile(表達(dá)式)</p><p>  {循環(huán)體{循環(huán)體</p><p>  }while(表達(dá)式);}注意兩個循環(huán)結(jié)構(gòu)的使用,特別是“;”的使用。</p><p>  使我體會到了

12、流程圖在c語言學(xué)習(xí)中的重要性。一個清晰的流程圖能使我們的程序簡潔、有條理并易于理解,大大提高編程效率。流程圖能夠幫我們形成一種整體的構(gòu)想,使具體的事物抽象化,條理化,再用程序語言表達(dá)出來。</p><p>  流程圖的掌握不僅對c語言學(xué)習(xí)有很大幫助,而且在各個學(xué)科里都可以利用其思想,生活中也不例外,比如說“統(tǒng)籌思想“,就相當(dāng)于編程前先畫流程圖然后根據(jù)流程圖編寫程序,而轉(zhuǎn)化到實際生活中就是做事前要有一個合理的安排,

13、然后按照安排有條理的做事。</p><p><b>  6,附錄</b></p><p><b>  第一部分:源程序</b></p><p>  #include <stdio.h></p><p>  #include <string.h></p><

14、p>  #include <stdlib.h></p><p>  #define N 1000</p><p>  typedef struct plane</p><p><b>  {</b></p><p>  char ID[10]; /*航班代號*/</p><p>

15、;  char BePlace[10];/*飛機(jī)起飛地點*/</p><p>  char EnPlace[10];/*飛機(jī)降落終點*/</p><p>  char data[15];/*飛機(jī)起飛時間*/</p><p>  int max;/*飛機(jī)最大乘客人數(shù)*/</p><p>  int price;/*飛機(jī)票價*/</p>

16、;<p>  int num;/*飛機(jī)已售票數(shù)*/</p><p><b>  }PLANE;</b></p><p>  PLANE ti[N];</p><p>  int n;/*當(dāng)前的航班數(shù)目*/</p><p>  void menu();</p><p>  void m

17、enu1();</p><p>  void input(int i)</p><p><b>  {</b></p><p>  printf("請輸入航班代號:\n");</p><p>  scanf("%s",ti[i].ID);</p><p> 

18、 printf("請輸入起飛地點:\n");</p><p>  scanf("%s",ti[i].BePlace);</p><p>  printf("請輸入降落地點:\n");</p><p>  scanf("%s",ti[i].EnPlace);</p><

19、p>  printf("請輸入起飛時間:\n");</p><p>  scanf("%s",ti[i].data);</p><p>  printf("請輸入航班的最大載客人數(shù):\n");</p><p>  scanf("%d",&ti[i].max);</p&

20、gt;<p>  printf("請輸入航班的票價:\n");</p><p>  scanf("%d",&ti[i].price);</p><p>  ti[i].num=0;</p><p><b>  }</b></p><p>  void ente

21、r()</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  system( "cls" ); </p><p>  printf("請輸入航班的數(shù)目(0-%d)?:",N);</p>&l

22、t;p>  scanf("%d",&n); /*要輸入的記錄個數(shù)*/</p><p>  printf("\n請輸入數(shù)據(jù)\n\n");</p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p>

23、<p>  printf("\n請輸入第 %d 航班記錄.\n",i+1);</p><p>  input(i); /*調(diào)用輸入函數(shù)*/</p><p><b>  }</b></p><p>  getchar(); </p><p>&l

24、t;b>  menu();</b></p><p><b>  }</b></p><p>  void printf_one(int i) /*顯示一個記錄的函數(shù)*/</p><p><b>  {</b></p><p>

25、;  printf("%11s %6s %10s %6s %6d %6d %6d",ti[i].ID,ti[i].BePlace,ti[i].EnPlace,ti[i].data,ti[i].price,ti[i].max,ti[i].num);</p><p><b>  }</b></p><p>  void browse()

26、</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  system( "cls" ); </p><p>  puts("\n-------------------------------------------

27、-------------------------");</p><p>  printf("\n\t航班代號 起飛地點 降落地點 起飛時間 票價 最大乘客 已售票數(shù)\n");</p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p

28、>  printf_one(i);</p><p>  printf("\n");</p><p><b>  }</b></p><p>  getchar();</p><p>  getchar();</p><p><b>  menu();</

29、b></p><p><b>  }</b></p><p>  void order() /*排序模塊(按平均成績)*/</p><p><b>  {</b></p><p><b>  int i,j;</b>&l

30、t;/p><p>  struct plane s;</p><p>  system( "cls" ); </p><p>  for(i=0;i<n;i++) /*冒泡法排序*/</p><p><b>  {</b></p><p>  for

31、(j=i+1;j<n;j++)</p><p>  if(strcmp(ti[i].data,ti[j].data)>0)</p><p><b>  {</b></p><p><b>  s=ti[i];</b></p><p>  ti[i]=ti[j];</p>&

32、lt;p><b>  ti[j]=s;}</b></p><p><b>  }</b></p><p><b>  browse();</b></p><p><b>  }</b></p><p>  void search_time()<

33、/p><p><b>  {</b></p><p>  int i,m=0;</p><p>  struct plane s;</p><p>  system( "cls" ); </p><p>  printf("\n\nEnter the time:"

34、;);</p><p>  scanf("%s",s.data); /*輸入出發(fā)的時間*/</p><p>  puts("\n--------------------------------------------------------------------");</p><p>  pri

35、ntf("\n\t航班代號 起飛地點 降落地點 起飛時間 票價 最大乘客 已售票數(shù)\n");</p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  if(strcmp(s.data,ti[i].data)==0)</p><p>

36、<b>  {</b></p><p><b>  m++;</b></p><p>  if((m!=0)&&(m%10==0)) /*目的是分屏顯示*/</p><p><b>  {</b></p><p>  printf(&

37、quot;\n\nPress any key to contiune . . .");</p><p>  getchar();</p><p>  puts("\n\n");</p><p><b>  }</b></p><p>  printf_one(i); </p>

38、<p>  printf("\n");</p><p>  /*調(diào)用顯示一個記錄的函數(shù)*/</p><p><b>  }</b></p><p><b>  }</b></p><p>  puts("\n------------------------

39、--------------------------------------------");</p><p>  getchar(); /*按任意健*/</p><p>  getchar(); </p><p><b>  menu1();</b></p>&l

40、t;p><b>  }</b></p><p>  void serch_end()</p><p><b>  {</b></p><p>  int i,m=0;</p><p>  struct plane s;</p><p>  system( "c

41、ls" ); </p><p>  printf("\n\nEnter the end Place:");</p><p>  scanf("%s",s.EnPlace); /*輸入要到達(dá)的地方*/</p><p>  puts("\n---------------------

42、-----------------------------------------------");</p><p>  printf("\n\t航班代號 起飛地點 降落地點 起飛時間 票價 最大乘客 已售票數(shù)\n");</p><p>  for(i=0;i<n;i++)</p><p><b>  {</

43、b></p><p>  if(strcmp(ti[i].EnPlace,s.EnPlace)==0)</p><p><b>  {</b></p><p><b>  m++;</b></p><p>  if((m!=0)&&(m%10==0))

44、 /*目的是分屏顯示*/</p><p><b>  {</b></p><p>  printf("\n\nPress any key to contiune . . .");</p><p>  getchar();</p><p>  puts("\n\n");</

45、p><p><b>  }</b></p><p>  printf_one(i); </p><p>  printf("\n");</p><p>  /*調(diào)用顯示一個記錄的函數(shù)*/</p><p><b>  }</b></p><

46、p><b>  }</b></p><p>  puts("\n--------------------------------------------------------------------");</p><p>  getchar(); /*按任意健*/</p>&l

47、t;p>  getchar(); </p><p><b>  menu1();</b></p><p><b>  }</b></p><p>  void menu1()</p><p><b>  {</b></p><p><b>

48、;  int n,w1;</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  system( "cls" ); /*清屏*/</p><p>  puts("\t\

49、t\t\t 飛機(jī)售票操作!\n\n");</p><p>  puts("\t\t*********************MENU*********************\n\n");</p><p>  puts("\t\t\t\t1.按照時間排序");</p><p>  puts("\t\t\t

50、\t2.按照時間查找航班");</p><p>  puts("\t\t\t\t3.按照地點查找航班");</p><p>  puts("\t\t\t\t4.返回主菜單");</p><p>  puts("\n\n\t\t*****************************************

51、*****\n");</p><p>  printf("Choice your number(1-4): [ ]\b\b");</p><p>  scanf("%d",&n);</p><p>  if(n<1||n>4) /*

52、對選擇的數(shù)字作判斷*/</p><p><b>  {</b></p><p><b>  w1=1;</b></p><p>  printf("your choice is not between 1 and 4,Please input again:");</p><p>

53、  getchar();</p><p>  getchar();</p><p><b>  }</b></p><p>  else w1=0;</p><p>  } while(w1==1);</p><p><b>  /*選擇功能*/</b></p>

54、<p><b>  switch(n)</b></p><p><b>  {</b></p><p>  case 1:order();break; </p><p>  case 2:search_time();break; </p><p>  case 3:ser

55、ch_end();break; </p><p>  case 4:menu();break; </p><p><b>  }</b></p><p><b>  }</b></p><p>  int search() /*查找模

56、塊*/</p><p><b>  {</b></p><p><b>  int i,k;</b></p><p>  struct plane s;</p><p><b>  k=-1;</b></p><p>  system( "cl

57、s" ); </p><p>  printf("\n\n請輸入要訂票的起飛地點:");</p><p>  scanf("%s",s.BePlace); /*輸入要到達(dá)的地方*/</p><p>  printf("\n\n請輸入要訂票的降落地點:");</p

58、><p>  scanf("%s",s.EnPlace); </p><p>  printf("\n\n請輸入要訂票的起飛時間:");</p><p>  scanf("%s",s.data); /*輸入出發(fā)的時間*/</p><p>  for(i=0;

59、i<n;i++) /*查找要修改的數(shù)據(jù)*/</p><p><b>  {</b></p><p>  if(strcmp(s.BePlace,ti[i].BePlace)==0&&strcmp(s.EnPlace,ti[i].EnPlace)==0&&strcmp(s.data,ti[i].da

60、ta)==0)</p><p><b>  {</b></p><p>  k=i; /*找到要修改的記錄*/</p><p>  printf_one(k);</p><p>  break; /*調(diào)用顯示一個記錄的函數(shù)*/</p>

61、<p><b>  }</b></p><p><b>  }</b></p><p><b>  if(k==-1)</b></p><p><b>  {</b></p><p>  printf("\n\nNO exist!&

62、quot;);</p><p>  return -1;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  return k;</b></p><p><b>  }</b&

63、gt;</p><p>  void book()</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  system( "cls" ); </p><p>  printf("歡迎進(jìn)入售票

64、窗口!\n");</p><p>  i=search();</p><p><b>  if(i!=-1)</b></p><p><b>  {</b></p><p>  if(ti[i].num>=ti[i].max)</p><p><b>

65、;  {</b></p><p>  printf("\n該趟航班票已售完!");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p&g

66、t;  ti[i].num++;</p><p>  printf("\n訂票成功!\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p&g

67、t;  printf("該航班不存在!\n");</p><p>  getchar(); </p><p>  getchar(); /*按任意健*/</p><p><b>  menu();</b></p><p><b>  }<

68、/b></p><p>  void back()</p><p><b>  {</b></p><p>  int i,k=-1;</p><p>  struct plane s;</p><p>  system( "cls" ); </p><

69、;p>  printf("歡迎進(jìn)入退票窗口!\n");</p><p>  printf("\n\n輸入航班代號:");</p><p>  scanf("%s",s.ID); /*輸入要到達(dá)的地方*/</p><p>  for(i=0;i<n;i++)

70、 /*查找要修改的數(shù)據(jù)*/</p><p><b>  {</b></p><p>  if(strcmp(s.ID,ti[i].ID)==0)</p><p><b>  {</b></p><p>  k=i; /*找到要修改的記

71、錄*/</p><p>  printf_one(k);</p><p>  break; /*調(diào)用顯示一個記錄的函數(shù)*/</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  

72、if(k==-1)</b></p><p><b>  {</b></p><p>  printf("\n\nNO exist!");</p><p><b>  }</b></p><p><b>  else</b></p>

73、<p><b>  {</b></p><p>  ti[i].num--;</p><p>  printf("\n退票成功!\n");</p><p><b>  }</b></p><p>  getchar();

74、 /*按任意健*/</p><p>  getchar(); /*按任意健*/</p><p><b>  menu();</b></p><p><b>  }</b></p><p>  void save()</p><p&

75、gt;<b>  {</b></p><p><b>  int w=1;</b></p><p><b>  FILE *fp;</b></p><p><b>  int i;</b></p><p>  system( "cls"

76、 ); </p><p>  if((fp=fopen("D:\\我的文檔\\桌面\\ticket.txt","wt"))==NULL) /*以輸出打開方式,在此前的記錄被覆蓋*/</p><p><b>  {</b></p><p>  printf("\nCannot open fi

77、le\n");</p><p><b>  return ;</b></p><p><b>  }</b></p><p>  for(i=0;i<n;i++)</p><p>  if(fwrite(&ti[i],sizeof(struct plane),1,fp)!=1

78、)</p><p><b>  { </b></p><p>  printf("file write error\n");</p><p><b>  w=0;</b></p><p><b>  }</b></p><p&

79、gt;<b>  if(w==1)</b></p><p><b>  {</b></p><p>  printf("file save ok!\n");</p><p><b>  }</b></p><p>  fclose(fp);</p>

80、;<p>  getchar();</p><p>  getchar(); </p><p><b>  menu();</b></p><p><b>  }</b></p><p>  void load()</p><p><b>  {

81、</b></p><p><b>  FILE *fp;</b></p><p><b>  int i,w;</b></p><p><b>  w=1;</b></p><p>  system( "cls" ); </p>&

82、lt;p>  if((fp=fopen("D:\\我的文檔\\桌面\\ticket.txt","rt"))==NULL)</p><p><b>  {</b></p><p>  printf("\nCan not open file\n");</p><p><b>

83、;  w=0;</b></p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  n=0;</b></p><p>  for(i=0;!feof(fp);i++)</p><p>

84、;<b>  {</b></p><p>  fread(&ti[i],sizeof(struct plane),1,fp);</p><p><b>  n++;</b></p><p><b>  }</b></p><p><b>  n=n-1;<

85、;/b></p><p>  fclose(fp);</p><p><b>  if(w==1)</b></p><p>  printf("Load file ok!");</p><p>  getchar();</p><p>  getchar(); &l

86、t;/p><p><b>  menu();</b></p><p><b>  }</b></p><p>  void menu()</p><p><b>  {</b></p><p><b>  int n,w1;</b>&l

87、t;/p><p><b>  do</b></p><p><b>  {</b></p><p>  system( "cls" ); /*清屏*/ /*清屏*/</p><p>  puts("\t\t\t\t 飛機(jī)售票管理系統(tǒng)!\n

88、\n");</p><p>  puts("\t\t*********************MENU*********************\n\n");</p><p>  puts("\t\t\t\t1.輸入新航班");</p><p>  puts("\t\t\t\t2.瀏覽 ");&l

89、t;/p><p>  puts("\t\t\t\t3.航班操作");</p><p>  puts("\t\t\t\t4.訂票");</p><p>  puts("\t\t\t\t5.退票");</p><p>  puts("\t\t\t\t6.保存");<

90、/p><p>  puts("\t\t\t\t7.載入");</p><p>  puts("\t\t\t\t8.退出");</p><p>  puts("\n\n\t\t**********************************************\n");</p><p&

91、gt;  printf("Choice your number(1-8): [ ]\b\b");</p><p>  scanf("%d",&n);</p><p>  if(n<1||n>8) /*對選擇的數(shù)字作判斷*/</p><p>&

92、lt;b>  {</b></p><p><b>  w1=1;</b></p><p>  printf("your choice is not between 1 and 8,Please input enter to choice again:");</p><p>  getchar(); <

93、/p><p>  getchar();</p><p><b>  }</b></p><p>  else w1=0;</p><p>  } while(w1==1);</p><p><b>  /*選擇功能*/</b></p><p><b

94、>  switch(n)</b></p><p><b>  {</b></p><p>  case 1:enter();break; /*輸入模塊*/</p><p>  case 2:browse();break; /*瀏覽模塊*/</p><p>  case 3:menu1()

95、;break; /*查找模塊*/</p><p>  case 4:book();break; /*訂票模塊*/</p><p>  case 5:back();break; /*退票模塊*/</p><p>  case 6:save();break; /*保存模塊*/</p><p>  case 7:lo

96、ad();break; /*加載模塊*/</p><p>  case 8:exit(0);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void main()</p><p><b>  {</

溫馨提示

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

評論

0/150

提交評論