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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  C實(shí)驗(yàn)專周報(bào)告</b></p><p>  設(shè)計(jì)/實(shí)驗(yàn)題目 圖書館管理系統(tǒng) </p><p>  成都工業(yè)學(xué)院 電氣與電子工程系 </p><p><b>  目 錄</b></p><p>  一、專周目的要求2</p&g

2、t;<p>  二、專周環(huán)境及時(shí)間3</p><p><b>  三、專周內(nèi)容3</b></p><p>  1、系統(tǒng)需求分析3</p><p><b>  2、功能介紹4</b></p><p><b>  3、模塊劃分5</b></p>

3、<p><b>  4、數(shù)據(jù)流圖5</b></p><p>  5、關(guān)鍵代碼及運(yùn)行截圖6</p><p><b>  四、程序源代碼9</b></p><p><b>  五、專周小結(jié)18</b></p><p>  1、自己的編程任務(wù)介紹18</p

4、><p>  2、感想心得及自我評(píng)價(jià)20</p><p><b>  六、附錄21</b></p><p><b>  小組成員名單21</b></p><p><b>  一、目的要求</b></p><p>  目的:通過綜合訓(xùn)練,要求學(xué)生掌握C語

5、言的各種數(shù)據(jù)結(jié)構(gòu),熟練應(yīng)用C語言的各種程序結(jié)構(gòu),熟悉函數(shù)的定義、函數(shù)的調(diào)用,靈活應(yīng)用指針,能夠解決一般的程序設(shè)計(jì)問題。</p><p>  1)根據(jù)課堂講授內(nèi)容,學(xué)生應(yīng)做相應(yīng)的自主練習(xí),復(fù)習(xí)消化課堂所</p><p>  解的內(nèi)容,內(nèi)容包括C語言的三種程序結(jié)構(gòu):順序、選擇和循環(huán),以及對(duì)函數(shù)的使用、指針的概念、結(jié)構(gòu)體的應(yīng)用、文件的操作等; </p><p&g

6、t;  2)通過調(diào)試典型例題或習(xí)題積累調(diào)試C程序的經(jīng)驗(yàn),掌握C語言的各種數(shù)據(jù)結(jié)構(gòu),熟練應(yīng)用C語言的各種程序結(jié)構(gòu),熟悉函數(shù)的定義、函數(shù)的調(diào)用,靈活應(yīng)用指針,能夠解決一般的程序設(shè)計(jì)問題;</p><p>  3)掌握結(jié)構(gòu)化程序設(shè)計(jì)的主題思想,以自頂向下逐步求精的方法編制程序解決一些實(shí)際問題,為將來編寫程序積累一些典型的案例處理經(jīng)驗(yàn);</p><p>  4)通過各組同學(xué)合作完成編程題,逐漸培養(yǎng)

7、學(xué)生的編程能力,用計(jì)算機(jī)解決實(shí)際問題的能力,以及團(tuán)隊(duì)合作精神。</p><p>  要求:設(shè)計(jì)圖書信息管理系統(tǒng),使之能提供以下功能。</p><p>  1)系統(tǒng)以菜單方式工作;</p><p>  2)圖書信息錄入功能(圖書信息用文件保存)——輸入;</p><p>  3)圖書信息瀏覽功能——輸出;</p><p>

8、;<b>  4)圖書信息的修改</b></p><p>  5)查詢和排序功能:(至少一種查詢方式)——算法;</p><p><b>  6)按書名查詢;</b></p><p><b>  7)按作者名查詢;</b></p><p>  8)圖書信息的刪除與修改(可選項(xiàng))

9、。</p><p>  二、專周環(huán)境 專周用的軟環(huán)境(配置)</p><p>  1)運(yùn)行系統(tǒng):Windows XP</p><p>  2)工作軟件:visual c++ 6.0</p><p>  3)專周時(shí)間:6月24日到6月28日</p><p>  星期一 8:30—15:15</p><

10、;p> ?。ǔ槿☆}號(hào),初步確定思路及組內(nèi)分工)</p><p>  星期二 8:30—15:15</p><p><b> ?。ㄩ_始編寫程序)</b></p><p>  星期三 10:00—15:15</p><p> ?。ǔ绦蛘{(diào)試,程序優(yōu)化)</p><p>  星期四 10:00—15

11、:15</p><p> ?。ǔ绦騼?yōu)化,程序美化)</p><p>  星期五8:30—15:15</p><p><b> ?。ǔ绦蝌?yàn)收,答辯)</b></p><p><b>  三、專周內(nèi)容</b></p><p><b>  1)系統(tǒng)需求分析</b&g

12、t;</p><p>  根據(jù)題目要求,應(yīng)當(dāng)把圖書信息用結(jié)構(gòu)體形式輸入,定義文件指針把圖書信息送到文件中去。在程序中需要實(shí)現(xiàn)圖書信息錄入,瀏覽,查詢,刪除和修改等功能的操作,所以需要建立相應(yīng)的模塊來實(shí)現(xiàn)。另外還需提供可視化選擇菜單實(shí)現(xiàn)功能,才能在運(yùn)行時(shí)達(dá)到所要求的目的。</p><p><b>  2)功能介紹</b></p><p>  輸入

13、圖書信息, 出現(xiàn)一個(gè)"圖書信息管理系統(tǒng)的主界面",其中有8個(gè)數(shù)字代表的選項(xiàng),可以按相關(guān)的數(shù)字進(jìn)行操作。每一條記錄包括一本書的序號(hào)、圖書號(hào)、作者、數(shù)量。</p><p><b>  詳細(xì)介紹 </b></p><p>  0、退出:如果在圖書管理系統(tǒng)的主界面,則退出的是系統(tǒng),如果是在子菜單下則返回到主界面。 </p><p>

14、  1、注冊(cè)新書:每次可注冊(cè)一種新書,注冊(cè)后可直接退出系統(tǒng)或返回主界面繼續(xù)選擇其他功能。 </p><p>  2、借閱圖書:輸入書名可查詢想借圖書的相關(guān)信息,包括序號(hào)、書名、作者、剩余數(shù)量。然后錄入學(xué)生相關(guān)信息后,可借閱圖書。 </p><p>  3、歸還圖書:按書名查找想歸還圖書的相關(guān)信息,輸入學(xué)生編號(hào)無誤后,圖書歸還成功。 </p><p>  4、注銷舊書

15、:按書名查找要注銷的書籍,再次書名書名確認(rèn)注銷。</p><p>  5、圖書清單:可列出所有圖書的相關(guān)信息。</p><p>  6、借出清單:列出被借書籍信息及借書學(xué)生的編號(hào)。</p><p>  7、信息修改:輸入書名查找圖書,可修改圖書各項(xiàng)信息。 </p><p><b>  3)模塊劃分</b></p&

16、gt;<p>  圖1 系統(tǒng)功能模塊圖</p><p><b>  4)數(shù)據(jù)流圖</b></p><p>  圖2 系統(tǒng)數(shù)據(jù)流程圖</p><p>  5)關(guān)鍵代碼及運(yùn)行截圖</p><p><b>  操作選單:</b></p><p>  scanf(&q

17、uot;%d",&num);</p><p>  switch(num)</p><p>  {case 1 : book_add();break;</p><p>  case 2 : book_out();break;</p><p>  case 3 : book_in();break;</p>

18、<p>  case 4 : book_del();break; </p><p>  case 5 : book_list();break;</p><p>  case 6 : bookout_list();break;</p><p>  case 7 : book_cha();break;<

19、/p><p>  case 0 : exit(0);</p><p>  default : printf("---輸入有誤,自動(dòng)退出系統(tǒng)---\n");</p><p><b>  }</b></p><p>  將圖書信息錄入文件:</p><p><b>  

20、FILE *fp;</b></p><p><b>  int n=0;</b></p><p>  printf(">>>注冊(cè)新書<<<\n");</p><p>  fp=fopen("book.txt","a");</p>

21、;<p>  ……(此處省略部分代碼)</p><p>  fwrite(&book[n],sizeof(struct Book),1,fp);</p><p>  printf("---注冊(cè)成功---\n");</p><p>  fclose(fp);</p><p>  從文件讀取圖書信息并輸出

22、到屏幕:</p><p><b>  FILE *fp;</b></p><p>  if((fp=fopen("book.txt","r"))==NULL)</p><p>  ……(此處省略部分代碼)</p><p>  for(n=0;n<100;n++)</p&

23、gt;<p><b>  { </b></p><p>  fseek(fp,n*sizeof(struct Book),0);</p><p>  fread(&book[n],sizeof(struct Book),1,fp);</p><p>  if(book[n].id==0) continue;</p

24、><p>  printf("序號(hào):%5d\t書名:%5s\t",book[n].id,book[n].name);</p><p>  ……(此處省略部分代碼)</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  尋找圖書,修改

25、文件內(nèi)的圖書信息:</p><p>  int search_book( )</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p><b>  int n;</b></p><p>  char

26、 name[10];</p><p>  fp=fopen("book.txt","r");</p><p>  printf("請(qǐng)輸入要查找的書名:");</p><p>  scanf("%s",name);</p><p>  for(n=0;n<10

27、0;n++)</p><p><b>  { </b></p><p>  fseek(fp,n*sizeof(struct Book),0);</p><p>  fread(&book[n],sizeof(struct Book),1,fp);</p><p>  if(strcmp(name,book[

28、n].name)==0&&book[n].id!=0) </p><p>  ……(此處省略部分代碼)</p><p>  fclose(fp);</p><p><b>  return n;</b></p><p><b>  }</b></p><p>

29、  void book_cha() {</p><p>  int search_book( );</p><p><b>  FILE *fp;</b></p><p>  int t,i,cha;</p&

30、gt;<p>  fp=fopen("book.txt","r+");</p><p><b>  ……(此處省略)</b></p><p>  t=search_book( );</p><p>  printf(" 1 修改序號(hào)\n\n");</p>

31、<p>  printf(" 2 修改書名\n\n");</p><p><b>  ……(此處省略)</b></p><p>  scanf("%d",&cha);</p><p>  printf("輸入修改信息:");</p><p&g

32、t;  if(cha==1) </p><p><b>  {</b></p><p>  scanf("%d",&book[t].id);</p><p>  printf("---修改成功---\n");</p><p>  for(i=0;i<=t;i++)&l

33、t;/p><p>  {fwrite(&book[i],sizeof(struct Book),1,fp);}</p><p>  fclose(fp),confirm( );</p><p><b>  }</b></p><p><b>  ……(此處省略)</b></p>&

34、lt;p>  讀取并修改文件內(nèi)容,實(shí)現(xiàn)圖書的借閱:</p><p>  int search_book( );</p><p><b>  FILE *fp;</b></p><p><b>  int t,i;</b></p><p>  fp=fopen("book.txt&qu

35、ot;,"r+");</p><p>  printf(">>>借閱圖書<<<\n");</p><p>  t=search_book( );</p><p>  if(book[t].total<=0) </p><p>  printf("---

36、此書已被借完---\n");</p><p><b>  else </b></p><p><b>  {</b></p><p>  printf("---請(qǐng)輸入下列借書信息---\n");</p><p>  printf("學(xué)生編號(hào):");

37、</p><p>  scanf("%d",&book[t].stdnum);</p><p><b>  ……(此處省略)</b></p><p>  book[t].total--;</p><p>  printf("借書成功\n");</p><

38、p>  printf("學(xué)生編號(hào):%5d\t圖書剩余:%d\n",book[t].stdnum,book[t].total);</p><p><b>  }</b></p><p>  for(i=0;i<=t;i++)</p><p>  {fwrite(&book[i],sizeof(struct

39、Book),1,fp);}</p><p>  fclose(fp);</p><p><b>  四、程序源代碼</b></p><p>  #include"stdio.h"</p><p>  #include"stdlib.h"</p><p>  

40、#include"string.h"</p><p>  #include"windows.h"</p><p>  struct Book //定義結(jié)構(gòu)體</p><p><b>  {</b></p>

41、<p>  int id,total; //圖書序號(hào),圖書數(shù)量</p><p>  int stdnum,days; //學(xué)生證件編號(hào),借書天數(shù)</p><p>  char name[10],author[10],</p>&

42、lt;p>  stdname[10],data[10]; //圖書名,作者,借書學(xué)生名,日期</p><p>  }book[100]; </p><p>  void confirm( ) //操作結(jié)束確認(rèn),供其他函數(shù)調(diào)用</p>

43、;<p><b>  {</b></p><p>  void menu ( );</p><p><b>  int c;</b></p><p>  printf("請(qǐng)輸入0返回操作選單---或任意鍵退出系統(tǒng):");</p><p>  scanf("

44、%d",&c);</p><p>  if(c==0) menu();</p><p>  else exit(0);</p><p><b>  }</b></p><p>  void menu ( ) //顯示主菜單,選擇進(jìn)入相應(yīng)模塊</

45、p><p>  { void book_add(); //調(diào)用聲明</p><p>  void book_out();</p><p>  void book_in();</p><p>  void book_list();</p><p&g

46、t;  void book_del();</p><p>  void book_cha();</p><p>  void bookout_list();</p><p><b>  char num;</b></p><p>  printf (">>>操作選單<<<

47、;\n");</p><p>  printf ("==================\n");</p><p>  printf ("| 1 注冊(cè)新書 |\n\n");</p><p>  printf ("| 2 借閱圖書 |\n\n");</p><p&

48、gt;  printf ("| 3 歸還圖書 |\n\n");</p><p>  printf ("| 4 注銷舊書 |\n\n");</p><p>  printf ("| 5 圖書清單 |\n\n");</p><p>  printf ("| 6 借出清單

49、 |\n\n");</p><p>  printf ("| 7 信息修改 |\n\n");</p><p>  printf ("| 0 退出系統(tǒng) |\n");</p><p>  printf ("==================\n");</p><p

50、>  printf ("請(qǐng)輸入0-7選擇操作:");</p><p>  scanf("%d",&num);</p><p>  switch(num) //用選擇結(jié)構(gòu),選擇不同的功能模塊,調(diào)用相應(yīng)函數(shù)</p><p><b>  {</b></p><p

51、>  case 1 : book_add();break; </p><p>  case 2 : book_out();break;</p><p>  case 3 : book_in();break;</p><p>  case 4 : book_del();break;</p><p>  case 5

52、: book_list();break;</p><p>  case 6 : bookout_list();break;</p><p>  case 7 : book_cha();break;</p><p>  case 0 : exit(0);</p><p>  default : printf("---輸入

53、有誤,自動(dòng)退出系統(tǒng)---\n");</p><p><b>  }</b></p><p><b>  }</b></p><p>  void book_add( ) //注冊(cè)新書</p><p><

54、;b>  { </b></p><p>  void menu ( );</p><p>  void confirm( );</p><p>  FILE *fp; //定義文件指針</p><p><b>  int n=0;

55、</b></p><p>  printf(">>>注冊(cè)新書<<<\n");</p><p>  fp=fopen("book.txt","a"); //追加方式(向文本末添加文件)打開文本文件</p><p>  printf("---請(qǐng)依次輸入

56、圖書信息輸入---若返回操作菜單請(qǐng)輸入:0\n");</p><p>  printf("序號(hào):");</p><p>  scanf("%d",&book[n].id);</p><p>  if(book[n].id==0) menu ( );</p><p>  printf(

57、"書名:");</p><p>  scanf("%s",&book[n].name);</p><p>  printf ("作者:");</p><p>  scanf("%s",&book[n].author);</p><p>  prin

58、tf ("數(shù)量:");</p><p>  scanf("%d",&book[n].total);</p><p>  book[n].stdnum=0;</p><p>  fwrite(&book[n],sizeof(struct Book),1,fp);</p><p>  pri

59、ntf("---注冊(cè)成功---\n");</p><p>  fclose(fp); //關(guān)閉文件,保存數(shù)據(jù)</p><p>  confirm( );</p><p><b>  }</b></p><p>  void book

60、_out() //借閱圖書</p><p><b>  {</b></p><p>  void confirm( );</p><p>  int search_book( );</p><p><b>  FILE *fp

61、;</b></p><p><b>  int t,i;</b></p><p>  fp=fopen("book.txt","r+"); //以讀寫方式打開文本文件</p><p>  printf(">>>借閱圖書<<

62、;<\n");</p><p>  t=search_book( );</p><p>  if(book[t].total<=0) </p><p>  printf("---此書已被借完---\n");</p><p><b>  else </b></p>

63、<p><b>  {</b></p><p>  printf("---請(qǐng)輸入下列借書信息---\n");</p><p>  printf("學(xué)生編號(hào):");</p><p>  scanf("%d",&book[t].stdnum);</p>&l

64、t;p>  printf("學(xué)生姓名:");</p><p>  scanf("%s",&book[t].stdname);</p><p>  printf("借書天數(shù):");</p><p>  scanf("%d",&book[t].days);</p&

65、gt;<p>  printf("借書日期:");</p><p>  scanf("%s",&book[t].data);</p><p>  book[t].total--;</p><p>  printf("借書成功\n");</p><p>  pri

66、ntf("學(xué)生編號(hào):%5d\t圖書剩余:%d\n",book[t].stdnum,book[t].total);</p><p><b>  }</b></p><p>  for(i=0;i<=t;i++) //用雙重循環(huán)實(shí)現(xiàn)信息修改,防止信息覆蓋</p><p>  {fwrite(&

67、;book[i],sizeof(struct Book),1,fp);}</p><p>  fclose(fp);</p><p>  confirm( );</p><p><b>  }</b></p><p>  void book_in( )

68、 //歸還圖書</p><p><b>  {</b></p><p>  void confirm( );</p><p>  int search_book( );</p><p><b>  FILE *fp;</b></p><p>  int t,i

69、,num;</p><p>  fp=fopen("book.txt","r+");</p><p>  printf(">>>歸還圖書<<<\n");</p><p>  t=search_book( );</p><p>  printf(&q

70、uot;輸入學(xué)生編號(hào):");</p><p>  scanf("%d",&num);</p><p>  if(num==book[t].stdnum) book[t].total++;</p><p><b>  else </b></p><p><b>  {<

71、;/b></p><p>  printf("---輸入的學(xué)生編號(hào)錯(cuò)誤,歸還失敗---\n");</p><p>  confirm();</p><p><b>  }</b></p><p>  book[t].stdnum=0;</p><p>  book[t].

72、days=0;</p><p>  for(i=0;i<=t;i++)</p><p>  {fwrite(&book[i],sizeof(struct Book),1,fp);}</p><p>  printf("---歸還成功---\n");</p><p>  printf("剩余:%d\n

73、",book[t].total);</p><p>  fclose(fp);</p><p>  confirm( );</p><p><b>  }</b></p><p>  void book_del( ) //注銷

74、圖書</p><p><b>  {</b></p><p>  void confirm( );</p><p>  int search_book( );</p><p><b>  FILE *fp;</b></p><p><b>  int t,i;<

75、;/b></p><p>  char name[10];</p><p>  fp=fopen("book.txt","r+");</p><p>  printf(">>>注銷舊書<<<\n");</p><p>  t=search_b

76、ook( );</p><p>  if(book[t].stdnum!=0)</p><p>  printf("---書未歸還,注銷失敗---\n");</p><p>  else if(book[t].total>0)</p><p><b>  {</b></p><

77、;p>  printf("再次輸入書名確認(rèn)注銷:");</p><p>  scanf("%s",name);</p><p>  if(strcmp(name,book[t].name)==0)</p><p><b>  {</b></p><p>  printf(&q

78、uot;---注銷成功---\n");</p><p>  book[t].id=0;</p><p><b>  }</b></p><p>  else printf("---輸入書名有誤--注銷失敗---\n");</p><p>  for(i=0;i<=t;i++)</

79、p><p>  {fwrite(&book[i],sizeof(struct Book),1,fp);}</p><p>  fclose(fp);</p><p><b>  }</b></p><p>  confirm( );</p><p>  }

80、 </p><p>  void book_list( ) //圖書清單</p><p><b>  { </b></p>

81、<p>  void confirm( );</p><p><b>  FILE *fp;</b></p><p><b>  int n;</b></p><p>  printf(">>>圖書清單<<<\n\n");</p><p&

82、gt;  if((fp=fopen("book.txt","r"))==NULL) //NULL等價(jià)于0,判斷文件是否為空</p><p>  printf("----清單為空---\n");</p><p>  for(n=0;n<100;n++)</p><p><b>  { &l

83、t;/b></p><p>  fseek(fp,n*sizeof(struct Book),0);</p><p>  fread(&book[n],sizeof(struct Book),1,fp);</p><p>  if(book[n].id==0) continue;</p><p>  printf("序

84、號(hào):%5d\t書名:%5s\t",book[n].id,book[n].name);</p><p>  printf("作者:%5s\t數(shù)量:%5d\n",book[n].author,book[n].total);</p><p>  printf("\n");</p><p><b>  }</

85、b></p><p>  fclose(fp);</p><p>  confirm( );</p><p><b>  }</b></p><p>  void bookout_list( ) //借出清單</p>&l

86、t;p>  { void confirm( );</p><p><b>  FILE *fp;</b></p><p><b>  int n;</b></p><p>  printf(">>>借出清單<<<\n");</p><p&

87、gt;  if((fp=fopen("book.txt","r"))==NULL)</p><p>  printf("---清單為空---\n");</p><p>  for(n=0;n<100;n++)</p><p><b>  { </b></p>&

88、lt;p>  fseek(fp,n*sizeof(struct Book),0);</p><p>  fread(&book[n],sizeof(struct Book),1,fp);</p><p>  if(book[n].stdnum==0||book[n].id==0) continue;</p><p>  printf("序號(hào):

89、%5d\t書名:%5s\t",book[n].id,book[n].name);</p><p>  printf("作者:%5s\t剩余:%5d\n",book[n].author,book[n].total);</p><p>  printf("借書學(xué)生編號(hào):%2d\n",book[n].stdnum);</p><

90、;p>  printf("\n");</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  confirm( );</p><p><b>  }</b></p><p>  void book_c

91、ha() //信息修改</p><p><b>  {</b></p><p>  void confirm( );</p><p>  void write( );</p><p>  int search_book( );</p&

92、gt;<p><b>  FILE *fp;</b></p><p>  int t,i,cha;</p><p>  fp=fopen("book.txt","r+");</p><p>  printf(">>>信息修改<<<\n"

93、);</p><p>  printf("---輸入書名修改信息---\n");</p><p>  t=search_book( );</p><p>  printf(" 1 修改序號(hào)\n\n");</p><p>  printf(" 2 修改書名\n\n");<

94、/p><p>  printf(" 3 修改作者\(yùn)n\n");</p><p>  printf(" 4 修改數(shù)量\n\n");</p><p>  printf("請(qǐng)輸入1-4選擇操作,其他數(shù)字退出:");</p><p>  scanf("%d",&

95、;cha);</p><p>  printf("輸入修改信息:");</p><p>  if(cha==1) </p><p><b>  {</b></p><p>  scanf("%d",&book[t].id);</p><p>  pr

96、intf("---修改成功---\n");</p><p>  for(i=0;i<=t;i++)</p><p>  {fwrite(&book[i],sizeof(struct Book),1,fp);}</p><p>  fclose(fp),confirm( );</p><p><b>

97、  }</b></p><p>  else if(cha==2) </p><p><b>  {</b></p><p>  scanf("%s",&book[t].name);</p><p>  printf("---修改成功---\n");</

98、p><p>  for(i=0;i<=t;i++)</p><p>  {fwrite(&book[i],sizeof(struct Book),1,fp);}</p><p>  fclose(fp),confirm( );</p><p><b>  }</b></p><p>  

99、else if(cha==3) </p><p><b>  {</b></p><p>  scanf("%s",&book[t].author);</p><p>  printf("---修改成功---\n");</p><p>  for(i=0;i<=t;

100、i++)</p><p>  {fwrite(&book[i],sizeof(struct Book),1,fp);}</p><p>  fclose(fp),confirm( );</p><p><b>  }</b></p><p>  else if(cha==4)</p><p&g

101、t;<b>  {</b></p><p>  scanf("%d",&book[t].total);</p><p>  printf("---修改成功---\n");</p><p>  for(i=0;i<=t;i++)</p><p>  {fwrite(&a

102、mp;book[i],sizeof(struct Book),1,fp);}</p><p>  fclose(fp),confirm( );</p><p><b>  }</b></p><p>  else confirm( );</p><p><b>  }</b></p>

103、<p>  int search_book( ) //尋找圖書</p><p><b>  {</b></p><p>  void confirm( );</p><p><b>  FILE *fp;</b></p>

104、<p><b>  int n;</b></p><p>  char name[10];</p><p>  fp=fopen("book.txt","r"); //以只讀方式打開文本文件</p><p>  printf("請(qǐng)輸入要查找的書名

105、:");</p><p>  scanf("%s",name);</p><p>  for(n=0;n<100;n++)</p><p><b>  { </b></p><p>  fseek(fp,n*sizeof(struct Book),0);</p>&l

106、t;p>  fread(&book[n],sizeof(struct Book),1,fp);</p><p>  if(strcmp(name,book[n].name)==0&&book[n].id!=0) </p><p><b>  { </b></p><p>  printf("序號(hào):%5d

107、\t書名:%5s\t",book[n].id,book[n].name);</p><p>  printf("作者:%5s\t數(shù)量:%5d\n",book[n].author,book[n].total);</p><p><b>  break;</b></p><p><b>  }</b&g

108、t;</p><p><b>  }</b></p><p>  if(n==100)</p><p><b>  {</b></p><p>  printf("---沒有您要查詢的書籍---\n");</p><p>  confirm( );<

109、/p><p><b>  }</b></p><p>  fclose(fp);</p><p><b>  return n;</b></p><p><b>  }</b></p><p>  void main()

110、 //主函數(shù)</p><p>  { system ("color F2");</p><p>  printf("> > > 歡 迎 進(jìn) 入 圖 書 管 理 系 統(tǒng) < < <\n");</p><p><b>  

111、menu ( );</b></p><p><b>  }</b></p><p><b>  五、專周小結(jié)</b></p><p>  1)自己的編程任務(wù)介紹</p><p>  1、作為小組組長(zhǎng),我主要負(fù)責(zé)把各模塊的編寫任務(wù)分配給小組各成員,理清整個(gè)系統(tǒng)的編寫思路,幫助組員解決編程過

112、程中的各種問題,解答組員無法理解的程序代碼。</p><p>  2、整合各模塊程序到主程序,完成各模塊的錯(cuò)誤修復(fù),功能優(yōu)化。對(duì)冗余代碼進(jìn)行精減。</p><p>  3、對(duì)整合后的程序進(jìn)行排版,添加代碼注解。達(dá)到增強(qiáng)程序源代碼可讀性的目的。</p><p>  4、負(fù)責(zé)“尋找圖書”模塊代碼的編寫。</p><p><b>  代碼

113、:</b></p><p>  int search_book( ) {</p><p>  void confirm( );</p><p><b>  FILE *fp;</b></p><p><b>

114、;  int n;</b></p><p>  char name[10];</p><p>  fp=fopen("book.txt","r");</p><p>  printf("請(qǐng)輸入要查找的書名:");</p><p>  scanf("%s"

115、;,name);</p><p>  for(n=0;n<100;n++)</p><p><b>  { </b></p><p>  fseek(fp,n*sizeof(struct Book),0);</p><p>  fread(&book[n],sizeof(struct Book),1,f

116、p);</p><p>  if(strcmp(name,book[n].name)==0&&book[n].id!=0) </p><p><b>  { </b></p><p>  printf("序號(hào):%5d\t書名:%5s\t",book[n].id,book[n].name);</p>

117、;<p>  printf("作者:%5s\t數(shù)量:%5d\n",book[n].author,book[n].total);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p

118、><p>  if(n==100)</p><p><b>  {</b></p><p>  printf("---沒有您要查詢的書籍---\n");</p><p>  confirm( );</p><p><b>  }</b></p>

119、<p>  fclose(fp);</p><p><b>  return n;</b></p><p><b>  }</b></p><p>  5、功能模塊“返回和退出”代碼的編寫。</p><p><b>  代碼:</b></p><p

120、>  void confirm( ) {</p><p>  void menu ( );</p><p><b>  int c;</b></p><p>  printf("請(qǐng)輸入0返回操作選單---或任意鍵退出系統(tǒng):&qu

121、ot;);</p><p>  scanf("%d",&c);</p><p>  if(c==0) menu();</p><p>  else exit(0);</p><p><b>  }</b></p><p>  7、主要解決了調(diào)試過程的2個(gè)問題。程序修改

122、或錄入信息后產(chǎn)生亂碼,且退出程序后再次進(jìn)入,且會(huì)造成信息的覆蓋。對(duì)寫入信息的代碼再次循環(huán)后,解決問題。</p><p><b>  該部分關(guān)鍵代碼:</b></p><p>  for(n=0;n<100;n++)</p><p><b>  { </b></p><p>  fseek(

123、fp,n*sizeof(struct Book),0);</p><p>  fread(&book[n],sizeof(struct Book),1,fp);</p><p>  ……(此處省略部分代碼)</p><p>  for(i=0;i<=t;i++)</p><p>  {fwrite(&book[i],si

124、zeof(struct Book),1,fp);}</p><p>  2)感想心得及自我評(píng)價(jià)</p><p>  專周有五個(gè)題目,采取分小組抽簽的形式進(jìn)行題目分配。第一天抽到這個(gè)題目時(shí),感覺很難,頭腦里面沒有任何思路。似乎對(duì)于C的初學(xué)者來說,這是無法完成的任務(wù)。但俗語有云“世上無難事,只怕有心人”。經(jīng)過組內(nèi)的討論,復(fù)習(xí)課本知識(shí),借閱老師的資料,程序的編寫思路以及基本框架有了雛形。第一天順

125、利地完成了任務(wù)。</p><p>  第二天開始了緊張的編寫工作。編寫過程種遇到了很多在平時(shí)學(xué)習(xí)中沒遇到過的問題。大家都非常認(rèn)真的互相詢問,討論。最終各功能模塊出爐?;氐綄嬍液?,我開始著手整合各功能模塊到主程序。這個(gè)工作看似簡(jiǎn)單,其實(shí)不然,每個(gè)模塊的框架結(jié)構(gòu)各異,且定義的變量名也不同。我提取了每個(gè)模塊的程序構(gòu)思,進(jìn)行了較大的改動(dòng),才實(shí)現(xiàn)了整合。雖然很累,但是感覺非常的充實(shí)。這讓我對(duì)《C程序設(shè)計(jì)》這門課有了更深入的

126、認(rèn)識(shí)。對(duì)課堂學(xué)習(xí)的知識(shí)也有了全新的理解。也明白了要學(xué)好C語言,只有多實(shí)踐,多調(diào)試,才能在發(fā)現(xiàn)問題和解決問題的過程中獲得大的提高。</p><p>  第三天進(jìn)行了程序的調(diào)試和一些簡(jiǎn)單的優(yōu)化,經(jīng)過前面的經(jīng)驗(yàn)積累。第三天的任務(wù)變得相對(duì)輕松。很快程序的問題就得到了修復(fù),并且能較好實(shí)現(xiàn)。這讓大家都感覺非常高興。</p><p>  第四天大家主要是對(duì)程序的操作界面和一些小問題進(jìn)行了改進(jìn)。</

127、p><p>  第五天進(jìn)入程序驗(yàn)收階段。順利地通過了驗(yàn)收,辛勤的付出得到回報(bào),感到很滿足。</p><p>  在整個(gè)專周過程中,感覺過得非常充實(shí),覺得編程其實(shí)并不枯燥,反而非常有趣。在有趣的編程過程中,復(fù)習(xí)消化了課堂所學(xué)的內(nèi)容,也鍛煉了自己的編程思維以及邏輯思維能力。在團(tuán)隊(duì)合作中處理意見分歧和合作解決問題讓我獲益匪淺。最終通過合作編出程序,我想這是對(duì)團(tuán)隊(duì)精神最完美的詮釋。</p>

溫馨提示

  • 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. 眾賞文庫(kù)僅提供信息存儲(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)論