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

下載本文檔

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

文檔簡介

1、<p><b>  C語言課程設(shè)計報告</b></p><p>  圖書信息管理系統(tǒng)設(shè)計</p><p><b>  C 語言程序設(shè)計</b></p><p>  編程實踐是學(xué)習(xí)C語言程序設(shè)計的一重要環(huán)節(jié),上機實習(xí)和課程設(shè)計是提高同學(xué)們程序設(shè)計能力的有效途徑,能夠使同學(xué)們初步掌握程序設(shè)計的基本方法和調(diào)試技能。學(xué)校

2、安排上機時間有限,老師也只能教給我們一些方法,而我們自己需要投入很大的時間和精力來鍛煉。</p><p><b>  1、題目要求</b></p><p>  設(shè)計“圖書信息管理系統(tǒng)”</p><p><b>  要求:</b></p><p>  圖書信息包括:登錄號,書名,作者名,分類號,出版單

3、位,出版時間,價格等。使之提供以下功能:</p><p>  系統(tǒng)以菜單方式工作。</p><p>  圖書信息錄入功能。(圖書信息用文件保存)。</p><p><b>  圖書信息瀏覽功能。</b></p><p><b>  圖書信息查詢功能。</b></p><p>

4、  圖書信息的刪除和修改。</p><p><b>  2、分析:</b></p><p>  根據(jù)題目要求,應(yīng)當(dāng)把圖書信息用結(jié)構(gòu)體形式輸入,再定義一個全局變量和文件指針進行整個程序的運行,然后把圖書信息送到文件中,所以應(yīng)該提供一個結(jié)構(gòu)體和文件的輸入輸出等操作;在程序中需實現(xiàn)圖書信息錄入,瀏覽,查詢,刪除和修改等功能的操作,所以需要建立相應(yīng)的模塊來實現(xiàn);另外還需提供鍵

5、盤式選擇菜單實現(xiàn)功能,在運行時達(dá)到所要目的。</p><p><b>  3、總體設(shè)計:</b></p><p>  根據(jù)題目要求,可以將系統(tǒng)分為六個模塊:</p><p>  管理員登錄系統(tǒng)模塊。</p><p><b>  菜單選擇模塊。</b></p><p>  圖書

6、信息錄入功能模塊。</p><p><b>  圖書信息瀏覽功能。</b></p><p><b>  圖書信息查詢功能。</b></p><p>  圖書信息的刪除和修改。</p><p><b>  第1頁</b></p><p><b>

7、  4、詳細(xì)設(shè)計:</b></p><p><b>  頭函數(shù)名:</b></p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<string.h></p>&l

8、t;p>  /*********圖書信息結(jié)構(gòu)體*********/</p><p>  /***包括登錄號,書名,作者名,分類號,出版單位,出版時間,價格等***/</p><p>  struct bookinf </p><p>  { int num; *************************************************

9、*****登錄號</p><p>  char bname[20];*************************************** 書名</p><p>  char wname[10];*************************************** 作者名</p><p>  char clanum[14];************

10、*************************** 分類號</p><p>  char pubcom[10];*************************************** 出版單位</p><p>  char pubtime[10];*************************************** 出版時間</p><p> 

11、 float price;********************************************* 價格</p><p><b>  };</b></p><p>  一管理員登錄系統(tǒng)模塊:</p><p>  來到圖書信息管理系統(tǒng)頁面</p><p>  void index() </p>

12、;<p><b>  { </b></p><p>  char input; 注釋:運行時</p><p>  printf("\n\n\t\t\t*****************************\n");

13、 直接進入</p><p>  printf("\t\t\t 圖書信息管理系統(tǒng)\n"); 這個頁面</p><p>  printf("\t\t\t*****************************\n\n\n");<

14、;/p><p>  printf(" ------------------------------------------------------------------------------\n");</p><p>  printf("\t<按任意鍵進入>\n\t");</p><p>  input=getch

15、ar(); </p><p><b>  }</b></p><p>  管理員登陸進入功能菜單頁面</p><p><b>  第2頁</b></p><p><b>  FILE *fp;</b></p><p>  struct manage

16、 pswd;</p><p>  if ((fp=fopen("password.txt","r"))==NULL) </p><p><b>  { </b></p><p>  printf("\n\n\n\tCannot open file!\n\t");</p>

17、<p><b>  }</b></p><p>  else </p><p><b>  {</b></p><p><b>  do </b>

18、</p><p>  { </p><p>  printf("\n\n\t請輸入管理員帳號:"); </p><p>  scanf("%s",name);

19、 </p><p>  printf("\n\n\t請輸入管理員密碼:");</p><p>  scanf("%s",password);</p><p>  fp=fopen("password.txt","r");

20、 </p><p>  fread(&pswd,sizeof(struct manage),1,fp);</p><p>  fclose(fp);</p><p>  w=strcmp(pswd.manage_name,name); </p><p>  k=strcmp(pswd.password,password);</

21、p><p>  adm_servelist();</p><p><b>  }</b></p><p>  while (w!=0||k!=0);</p><p>  adm_servelist(); </p><p><b>  }</b></p>&l

22、t;p><b>  }</b></p><p>  (3)來到功能菜單頁面</p><p><b>  第3頁</b></p><p>  void adm_servelist()</p><p><b>  {</b></p><p>  voi

23、d book_add();</p><p>  void book_view();</p><p>  void change();</p><p>  void del();</p><p>  void book_search();</p><p>  void login();</p><p&

24、gt;  void pwchange();</p><p>  int in; 注釋:菜單列出的服務(wù)種類</p><p>  char input; 從1,2,3,4,5,6</p>&l

25、t;p>  do 所對應(yīng)的功能進行選擇</p><p>  { </p><p>  printf("\n\n\n\t--歡迎使用信息管理系統(tǒng)--");<

26、;/p><p>  printf("\n\n\t1.圖書信息錄入\n");</p><p>  printf("\t2.圖書信息瀏覽\n");</p><p>  printf("\t3.圖書信息查詢\n");</p><p>  printf("\t4.圖書信息刪除\n&qu

27、ot;);</p><p>  printf("\t5.圖書信息修改\n");</p><p>  printf("\t6.退出管理模式\n");</p><p>  printf("\n\t請選擇服務(wù)種類:");</p><p>  scanf("%d",&am

28、p;in);</p><p>  if (in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6)</p><p><b>  { </b></p><p>  printf("\n\t沒有這項服務(wù)~\n");</

29、p><p>  printf("\t按任意鍵重新選擇");</p><p>  input=getchar();</p><p><b>  }</b></p><p><b>  }</b></p><p>  while (in!=1&&i

30、n!=2&&in!=3&&in!=4&&in!=5&&in!=6);</p><p>  switch (in)</p><p><b>  {</b></p><p>  case 1: book_add(); break;

31、 注釋:選擇自己所需要</p><p>  case 2: book_view(); break; 后摁下數(shù)字鍵則</p><p>  case 3: book_search(); break; 則進入此功能頁面</

32、p><p>  case 4: del(); break;</p><p>  case 5: change();break;</p><p>  case 6: login(); break;</p><p><b>  }</b></p><p><b>  }</b>&l

33、t;/p><p>  圖書信息錄入功能模塊</p><p>  void book_add()</p><p><b>  {</b></p><p><b>  第4頁</b></p><p>  void adm_servelist();</p><p&g

34、t;  void book_add();</p><p>  int i=0,j;</p><p><b>  FILE *fp;</b></p><p>  char input; 注釋:輸入的圖書信息</p><p>  struct book

35、inf books; 是通過文件進行</p><p>  struct bookinf book_taxis[30]; 保存的</p><p>  printf("\n\n\n\t---請輸入圖書信息---\n\n");</p><

36、;p>  printf("\t登錄號:");</p><p>  scanf("%d",&books.num);</p><p>  printf("\n\t書名:");</p><p>  scanf("%s",books.bname);</p><p

37、>  printf("\n\t作者名:");</p><p>  scanf("%s",books.wname);</p><p>  printf("\n\t分類號:");</p><p>  scanf("%s",books.clanum);</p><p&

38、gt;  printf("\n\t出版單位:");</p><p>  scanf("%s",books.pubcom);</p><p>  printf("\n\t出版時間:");</p><p>  scanf("%s",books.pubtime);</p><

39、;p>  printf("\n\t價格:");</p><p>  scanf("%f",&books.price);</p><p>  if ((fp=fopen("book.txt","r"))!=NULL) </p><p><b>  {</b

40、></p><p><b>  do</b></p><p><b>  {</b></p><p>  fread(&book_taxis[i],sizeof(struct bookinf),1,fp); </p><p><b>  i=i+1;</b>&l

41、t;/p><p><b>  }</b></p><p>  while(!feof(fp));</p><p>  fclose(fp);</p><p>  for (j=0;j<=i;j++)</p><p>  if (books.num==book_taxis[j].num) &l

42、t;/p><p><b>  {</b></p><p>  printf("\n\n\n\t對不起,這個編號已經(jīng)使用過了~\n");</p><p>  printf("\t按任意鍵返回管理菜單~");</p><p>  input=getchar();</p>&l

43、t;p>  adm_servelist();</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if ((fp=fopen("book.txt",&qu

44、ot;r"))==NULL) </p><p><b>  {</b></p><p><b>  第5頁</b></p><p>  fp=fopen("book.txt","w"); </p><p><b>  }<

45、/b></p><p><b>  else</b></p><p><b>  {</b></p><p>  fclose(fp);</p><p>  fp=fopen("book.txt","a");</p><p>&l

46、t;b>  }</b></p><p>  fwrite(&books,sizeof(struct bookinf),1,fp); </p><p>  fclose(fp);</p><p>  printf("\n\n\n\t信息輸入完畢~按任意鍵繼續(xù)\n");</p><p>  inp

47、ut=getchar(); </p><p>  adm_servelist();</p><p><b>  }</b></p><p>  圖書信息瀏覽功能模塊</p><p>  void book_view()</p><p><b>  {</b></p>

48、;<p>  void adm_servelist();</p><p>  void book_view();</p><p>  int inp,i=0,n=0;</p><p><b>  FILE *fp;</b></p><p>  char input;</p><p>

49、  struct bookinf bookview[20];</p><p>  if ((fp=fopen("book.txt","r"))==NULL) </p><p><b>  {</b></p><p>  printf("\n\n\n\t數(shù)據(jù)尚未初始化~~\n\n\t請在管理菜

50、單中增加圖書信息~~~\n");</p><p>  printf("\n\t<按任意鍵返回管理菜單>\n\t");</p><p>  input=getchar();</p><p>  adm_servelist();</p><p><b>  }</b></p&g

51、t;<p><b>  else </b></p><p><b>  { </b></p><p><b>  do</b></p><p><b>  {</b></p><p>  fread(&bookview[i],s

52、izeof(struct bookinf),1,fp);</p><p><b>  i=i+1;</b></p><p><b>  }</b></p><p>  while (!feof(fp));</p><p>  fclose(fp); </p><p>&

53、lt;b>  do </b></p><p><b>  { </b></p><p>  printf("\n\t--------共有%d條記錄--------",i-1);</p><p>  printf("\n\n\t登錄號: %d\n",bookview[n].nu

54、m);</p><p><b>  第6頁</b></p><p>  printf("\n\t書名: %s\n",bookview[n].bname);</p><p>  printf("\n\t作者名: %s\n",bookview[n].wname);</p><p&g

55、t;  printf("\n\t分類號: %s\n",bookview[n].clanum);</p><p>  printf("\n\t出版單位: %s\n",bookview[n].pubcom);</p><p>  printf("\n\t出版時間: %s\n",bookview[n].pubtime);&l

56、t;/p><p>  printf("\n\t價格: %f\n",bookview[n].price);</p><p>  printf("\n\n\t1.上一頁\t2.下一頁\t3.回目錄\n");</p><p>  printf("\n\t請選擇:");</p><p>  

57、scanf("%d",&inp);</p><p>  switch (inp)</p><p><b>  {</b></p><p>  case 1: </p><p><b>  {</b></p><p><b>  if

58、 (n==0)</b></p><p><b>  { </b></p><p>  printf("\n\t已到達(dá)首頁\n\t按任意鍵重新選擇");</p><p>  input=getchar();</p><p><b>  }</b></p>

59、<p>  else n=n-1; break;</p><p><b>  }</b></p><p><b>  case 2:</b></p><p><b>  {</b></p><p>  if (n==i-2)</p><p&g

60、t;<b>  {</b></p><p>  printf("\n\t已到達(dá)最末頁\n\t按任意鍵重新選擇");</p><p>  input=getchar();</p><p><b>  }</b></p><p>  else n=n+1; break;</

61、p><p><b>  }</b></p><p><b>  case 3: </b></p><p><b>  {</b></p><p>  adm_servelist();</p><p><b>  break;</b>&l

62、t;/p><p><b>  }</b></p><p><b>  default:</b></p><p><b>  {</b></p><p>  printf("\n\t沒有這項服務(wù)\n\t按任意鍵重新選擇");</p><p&g

63、t;  input=getchar();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  while (inp!=3);</p><p><b>  第

64、7頁</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  圖書信息修改與刪除功能模塊</p><p><b>  修改:</b></p><p>  void change(int x)

65、</p><p><b>  {</b></p><p>  int inp,i=0,j;</p><p>  void book_search();</p><p>  FILE *fp,*fp1;</p><p>  char input;</p><p>  stru

66、ct bookinf books,book_taxis[20];</p><p><b>  do</b></p><p><b>  { </b></p><p>  printf("\n\n\n\t注意:您確定要修改該記錄嗎?\n");</p><p>  printf

67、("\n\t1.是\t2.否\n");</p><p>  printf("\n\t請輸入:");</p><p>  scanf("%d",&inp);</p><p>  if (inp!=1&&inp!=2)</p><p><b>  {&l

68、t;/b></p><p>  printf("\n\t對不起~沒有這項服務(wù)~\n");</p><p>  printf("\t按任意鍵重新選擇\n\t");</p><p>  input=getchar();</p><p><b>  }</b></p>

69、<p><b>  }</b></p><p>  while (inp!=1&&inp!=2);</p><p>  if (inp==2)</p><p>  book_search();</p><p>  if (inp==1) </p><p><

70、b>  {</b></p><p>  printf("\n\n\n\t---請輸入圖書信息---\n\n");</p><p>  printf("\t登錄號:");</p><p>  scanf("%d",&books.num);</p><p>  

71、printf("\n\t書名:");</p><p>  scanf("%s",books.bname);</p><p>  printf("\n\t作者名:");</p><p>  scanf("%s",books.wname);</p><p>  pri

72、ntf("\n\t分類號:");</p><p>  scanf("%s",books.clanum);</p><p>  printf("\n\t出版單位:");</p><p>  scanf("%s",books.pubcom);</p><p>  pr

73、intf("\n\t出版時間:");</p><p>  scanf("%s",books.pubtime);</p><p><b>  第8頁</b></p><p>  printf("\n\t價格:");</p><p>  scanf("%f

74、",&books.price);</p><p>  if ((fp1=fopen("book.txt","r"))!=NULL) </p><p><b>  { </b></p><p><b>  do</b></p><p>&

75、lt;b>  {</b></p><p>  fread(&book_taxis[i],sizeof(struct bookinf),1,fp1); </p><p><b>  i=i+1;</b></p><p><b>  } </b></p><p>  whil

76、e(!feof(fp1));</p><p>  fclose(fp1);</p><p>  for (j=0;j<x;j++)</p><p>  if (books.num==book_taxis[j].num) </p><p><b>  {</b></p><p>  print

77、f("\n\n\n\t對不起,這個編號已經(jīng)使用過了~\n");</p><p>  printf("\t按任意鍵返回管理菜單~");</p><p>  printf("0");</p><p>  input=getchar();</p><p>  book_search();

78、 </p><p><b>  break;</b></p><p><b>  }</b></p><p>  for (j=x+1;j<i-2;j++) </p><p>  if (books.num==book_taxis[j].num)</p><p&g

79、t;<b>  {</b></p><p>  printf("\n\n\n\t對不起,這個編號已經(jīng)使用過了~\n");</p><p>  printf("1");</p><p>  printf("\t按任意鍵返回管理菜單~");</p><p>  in

80、put=getchar();</p><p>  book_search(); </p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  book_taxis[

81、x]=books; </p><p>  fp=fopen("book.txt","w");</p><p>  for (j=0;j<i-1;j++) </p><p>  fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp);</p>

82、<p>  fclose(fp);</p><p>  printf("\n\n\t信息修改完成!按任意鍵返回");</p><p>  input=getchar();</p><p>  book_search(); </p><p><b>  第9頁</b></p>

83、;<p><b>  }</b></p><p><b>  }</b></p><p><b>  S刪除:</b></p><p>  void del(int y)</p><p><b>  {</b></p><

84、p>  char input;</p><p><b>  FILE *fp;</b></p><p>  int inp,i=0,j;</p><p>  struct bookinf book_taxis[20];</p><p>  void book_search();</p><p&g

85、t;  void adm_servelist();</p><p><b>  do </b></p><p><b>  {</b></p><p>  printf("\n\n\n\t注意:您確定要刪除該記錄嗎?\n");</p><p>  printf("

86、\n\t1.是\t2.否\n");</p><p>  printf("\n\t請輸入:");</p><p>  scanf("%d",&inp);</p><p>  if (inp!=1&&inp!=2)</p><p><b>  {</b>

87、;</p><p>  printf("\n\t對不起~沒有這項服務(wù)~\n");</p><p>  printf("\t按任意鍵重新選擇\n\t");</p><p>  input=getchar();</p><p><b>  }</b></p><p&

88、gt;<b>  }</b></p><p>  while (inp!=1&&inp!=2);</p><p>  if (inp==2)</p><p>  book_search();</p><p>  if (inp==1) </p><p><b>  

89、{</b></p><p>  if ((fp=fopen("book.txt","r"))!=NULL) </p><p><b>  {</b></p><p><b>  do</b></p><p><b>  {</b&g

90、t;</p><p>  fread(&book_taxis[i],sizeof(struct bookinf),1,fp);</p><p><b>  i=i+1;</b></p><p><b>  }</b></p><p>  while(!feof(fp));</p>

91、<p>  fclose(fp);</p><p><b>  }</b></p><p>  if (i>2) </p><p><b>  {</b></p><p>  fp=fopen("book.txt","w"); <

92、;/p><p><b>  第10頁</b></p><p>  for (j=0;j<y;j++)</p><p>  fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp);</p><p>  fclose(fp);</p><p> 

93、 fp=fopen("book.txt","a");</p><p>  for (j=y+1;j<i-1;j++)</p><p>  fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp);</p><p>  fclose(fp);</p><

94、;p><b>  } </b></p><p><b>  else </b></p><p><b>  { </b></p><p>  remove("book.txt");</p><p><b>  }</b>&

95、lt;/p><p>  printf("\n\n\t記錄已刪除!\n\n\t按任意鍵返回\n\t");</p><p>  input=getchar();</p><p>  adm_servelist(); </p><p><b>  }</b></p><p><

96、b>  }</b></p><p>  圖書信息查詢功能模塊</p><p>  void book_search() </p><p><b>  {</b></p><p>  void adm_servelist();</p><p>  void id_sea

97、rch();</p><p>  void wr_search();</p><p>  void bn_search();</p><p>  char input;</p><p><b>  FILE *fp;</b></p><p><b>  int inp;</b>

98、;</p><p>  if ((fp=fopen("book.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("\n\n\n\t數(shù)據(jù)尚未初始化~~\n\n\t請在管理菜單中增加圖書信息~~~\n");</p>

99、<p>  printf("\n\t<按任意鍵返回管理菜單>\n\t");</p><p>  input=getchar();</p><p>  adm_servelist();</p><p><b>  }</b></p><p>  else </p&

100、gt;<p><b>  {</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\n\n\n\t1.按圖書登錄號查詢\n");</p><p>  printf(&qu

101、ot;\n\t2.按圖書作者查詢\n");</p><p><b>  第11頁</b></p><p>  printf("\n\t3.按圖書名查詢\n");</p><p>  printf("\n\t4.回到主菜單\n");</p><p>  printf(&qu

102、ot;\n\n\t請選擇查詢類別:");</p><p>  scanf("%d",&inp);</p><p>  if (inp!=1&&inp!=2&&inp!=3&&inp!=4)</p><p><b>  {</b></p><

103、p>  printf("\n\n\t沒有這項服務(wù)~\n\t按任意鍵重新選擇~");</p><p>  input=getchar();</p><p><b>  }</b></p><p><b>  }</b></p><p>  while (inp!=1&

104、&inp!=2&&inp!=3&&inp!=4);</p><p>  fclose(fp);</p><p>  switch (inp)</p><p><b>  {</b></p><p>  case 1: id_search(); break;</p>

105、<p>  case 2: wr_search(); break;</p><p>  case 3: bn_search(); break;</p><p>  case 4: adm_servelist(); break;</p><p><b>  }</b></p><p><b>  }

106、</b></p><p><b>  }</b></p><p><b>  5運行與測試報告:</b></p><p><b>  第12頁</b></p><p><b>  第13頁</b></p><p>  三

107、 后記/課程設(shè)計過程中遇到的問題以及解決方法,課程設(shè)計的體會。</p><p>  這次課程設(shè)計讓我掌握了許多的有用知識。首先通過不斷地學(xué)習(xí)和鍛煉更加熟練地掌握應(yīng)用軟件Microsoft Visual C++ 6.0 了。設(shè)計正確及合適的程序?qū)τ谖覀兂鯇W(xué)者來說是很大的難題,出現(xiàn)一丁點兒錯誤就得非很大的努力去修改,正式者一步步一點點的努力讓我對C語言游樂更深的認(rèn)識。同時我掌握了解決問題的方法,這無論是對以后的學(xué)習(xí)、

108、生活都有無比重要的價值。</p><p>  在設(shè)計中,每個同學(xué)都會遇到一些困難,或多或少,這些困難常常讓我心情煩躁,比如不能清晰的建立設(shè)計模塊,不會修改出現(xiàn)的錯誤等等,然后我向同學(xué)尋求幫助,向他們學(xué)習(xí),最終通過自己努力建立了模塊。不可避免地程序中肯定依然存在者某些問題,我希望在以后的學(xué)習(xí)和應(yīng)用中不斷提高自己的能力,攻克遇到的困難。</p><p><b>  第14頁</

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論