c++課程設(shè)計(jì)——飛機(jī)訂票系統(tǒng)_第1頁
已閱讀1頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

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

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

4、;p><b>  .4 調(diào)試分析6</b></p><p>  ˙5 課程設(shè)計(jì)總結(jié)10</p><p><b>  6.附錄10</b></p><p>  7 指導(dǎo)教師意見27</p><p>  1 課程設(shè)計(jì)題目與要求</p><p>  假定民航機(jī)場共有n

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

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

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

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

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

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

11、的理解了語句的使用,特別是對(duì)循環(huán)語句的理解與掌握:</p><p>  dowhile(表達(dá)式)</p><p>  {循環(huán)體{循環(huán)體</p><p>  }while(表達(dá)式);}注意兩個(gè)循環(huán)結(jié)構(gòu)的使用,特別是“;”的使用。</p><p>  使我體會(huì)到了流程圖在c語言學(xué)習(xí)中的重要

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

13、</p><p><b>  6,附錄</b></p><p><b>  第一部分:源程序</b></p><p>  #include <stdio.h></p><p>  #include <string.h></p><p>  #inclu

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

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

16、 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 menu1();</p

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

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

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

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

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

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

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

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

25、ot;%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()</p>&

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

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

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

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

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

31、;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><p><b

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

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

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

35、t航班代號(hào) 起飛地點(diǎn) 降落地點(diǎn) 起飛時(shí)間 票價(jià) 最大乘客 已售票數(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><b>  {&

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

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

38、printf("\n");</p><p>  /*調(diào)用顯示一個(gè)記錄的函數(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><p><b&

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

41、lt;/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航班代號(hào) 起飛地點(diǎn) 降落地點(diǎn) 起飛時(shí)間 票價(jià) 最大乘客 已售票數(shù)\n");</p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p&g

43、t;<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");</p><p&

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

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

47、har(); </p><p><b>  menu1();</b></p><p><b>  }</b></p><p>  void menu1()</p><p><b>  {</b></p><p><b>  int n,w1;&

48、lt;/b></p><p><b>  do</b></p><p><b>  {</b></p><p>  system( "cls" ); /*清屏*/</p><p>  puts("\t\t\t\t 飛機(jī)售票操作

49、!\n\n");</p><p>  puts("\t\t*********************MENU*********************\n\n");</p><p>  puts("\t\t\t\t1.按照時(shí)間排序");</p><p>  puts("\t\t\t\t2.按照時(shí)間查找航班&

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

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

52、t;/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>  getchar();&

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

54、t;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:serch_end();brea

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

56、<p><b>  {</b></p><p><b>  int i,k;</b></p><p>  struct plane s;</p><p><b>  k=-1;</b></p><p>  system( "cls" ); &l

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

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

59、 /*查找要修改的數(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].data)==0)</p

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

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

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

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

64、</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>  {</b>

65、;</p><p>  printf("\n該趟航班票已售完!");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  ti[i].num

66、++;</p><p>  printf("\n訂票成功!\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  printf(&q

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

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

69、f("歡迎進(jìn)入退票窗口!\n");</p><p>  printf("\n\n輸入航班代號(hào):");</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; /*找到要修改的記錄*/</p>

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

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

73、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><b> 

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

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

77、lt;/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)</p>

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

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

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

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

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

83、></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><b>  {

84、</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;</b></p

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

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

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

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

89、;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.保存");</p><p

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

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

92、t;/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(); </p><p

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

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論