c語(yǔ)言課程設(shè)計(jì)--圖書(shū)管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩21頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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)專(zhuān)周報(bào)告</b></p><p>  設(shè)計(jì)/實(shí)驗(yàn)題目 圖書(shū)館管理系統(tǒng) </p><p>  成都工業(yè)學(xué)院 電氣與電子工程系 </p><p><b>  目 錄</b></p><p>  一、專(zhuān)周目的要求2</p&g

2、t;<p>  二、專(zhuān)周環(huán)境及時(shí)間3</p><p><b>  三、專(zhuān)周內(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>  五、專(zhuān)周小結(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>  目的:通過(guò)綜合訓(xùn)練,要求學(xué)生掌握C語(yǔ)

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

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

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

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

9、。</p><p>  二、專(zhuān)周環(huán)境 專(zhuān)周用的軟環(huán)境(配置)</p><p>  1)運(yùn)行系統(tǒng):Windows XP</p><p>  2)工作軟件:visual c++ 6.0</p><p>  3)專(zhuān)周時(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>  (開(kāi)始編寫(xiě)程序)</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>  三、專(zhuān)周內(nèi)容</b></p><p><b>  1)系統(tǒng)需求分析</b&g

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

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

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

15、:按書(shū)名查找要注銷(xiāo)的書(shū)籍,再次書(shū)名書(shū)名確認(rèn)注銷(xiāo)。</p><p>  5、圖書(shū)清單:可列出所有圖書(shū)的相關(guān)信息。</p><p>  6、借出清單:列出被借書(shū)籍信息及借書(shū)學(xué)生的編號(hào)。</p><p>  7、信息修改:輸入書(shū)名查找圖書(shū),可修改圖書(shū)各項(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>  將圖書(shū)信息錄入文件:</p><p><b>  

20、FILE *fp;</b></p><p><b>  int n=0;</b></p><p>  printf(">>>注冊(cè)新書(shū)<<<\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>  從文件讀取圖書(shū)信息并輸出

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書(shū)名:%5s\t",book[n].id,book[n].name);</p><p>  ……(此處省略部分代碼)</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  尋找圖書(shū),修改

25、文件內(nèi)的圖書(shū)信息:</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)輸入要查找的書(shū)名:");</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 修改書(shū)名\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)圖書(shū)的借閱:</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(">>>借閱圖書(shū)<<<\n");</p><p>  t=search_book( );</p><p>  if(book[t].total<=0) </p><p>  printf("---

36、此書(shū)已被借完---\n");</p><p><b>  else </b></p><p><b>  {</b></p><p>  printf("---請(qǐng)輸入下列借書(shū)信息---\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("借書(shū)成功\n");</p><

38、p>  printf("學(xué)生編號(hào):%5d\t圖書(shū)剩余:%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; //圖書(shū)序號(hào),圖書(shū)數(shù)量</p><p>  int stdnum,days; //學(xué)生證件編號(hào),借書(shū)天數(shù)</p><p>  char name[10],author[10],</p>&

42、lt;p>  stdname[10],data[10]; //圖書(shū)名,作者,借書(shū)學(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è)新書(shū) |\n\n");</p><p>  printf ("| 2 借閱圖書(shū) |\n\n");</p><p&

48、gt;  printf ("| 3 歸還圖書(shū) |\n\n");</p><p>  printf ("| 4 注銷(xiāo)舊書(shū) |\n\n");</p><p>  printf ("| 5 圖書(shū)清單 |\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è)新書(shū)</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è)新書(shū)<<<\n");</p><p>  fp=fopen("book.txt","a"); //追加方式(向文本末添加文件)打開(kāi)文本文件</p><p>  printf("---請(qǐng)依次輸入

56、圖書(shū)信息輸入---若返回操作菜單請(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、"書(shū)名:");</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() //借閱圖書(shū)</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+"); //以讀寫(xiě)方式打開(kāi)文本文件</p><p>  printf(">>>借閱圖書(shū)<<

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

63、<p><b>  {</b></p><p>  printf("---請(qǐng)輸入下列借書(shū)信息---\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ū)天數(shù):");</p><p>  scanf("%d",&book[t].days);</p&

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

66、ntf("學(xué)生編號(hào):%5d\t圖書(shū)剩余:%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、 //歸還圖書(shū)</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(">>>歸還圖書(shū)<<<\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( ) //注銷(xiāo)

74、圖書(shū)</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(">>>注銷(xiāo)舊書(shū)<<<\n");</p><p>  t=search_b

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

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

78、uot;---注銷(xiāo)成功---\n");</p><p>  book[t].id=0;</p><p><b>  }</b></p><p>  else printf("---輸入書(shū)名有誤--注銷(xiāo)失敗---\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( ) //圖書(shū)清單</p><p><b>  { </b></p>

81、<p>  void confirm( );</p><p><b>  FILE *fp;</b></p><p><b>  int n;</b></p><p>  printf(">>>圖書(shū)清單<<<\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書(shū)名:%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書(shū)名:%5s\t",book[n].id,book[n].name);</p><p>  printf("作者:%5s\t剩余:%5d\n",book[n].author,book[n].total);</p><p>  printf("借書(shū)學(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("---輸入書(shū)名修改信息---\n");</p><p>  t=search_book( );</p><p>  printf(" 1 修改序號(hào)\n\n");</p><p>  printf(" 2 修改書(shū)名\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( ) //尋找圖書(shū)</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"); //以只讀方式打開(kāi)文本文件</p><p>  printf("請(qǐng)輸入要查找的書(shū)名

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書(shū)名:%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("---沒(méi)有您要查詢(xún)的書(shū)籍---\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) 入 圖 書(shū) 管 理 系 統(tǒng) < < <\n");</p><p><b>  

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

112、程中的各種問(wèn)題,解答組員無(wú)法理解的程序代碼。</p><p>  2、整合各模塊程序到主程序,完成各模塊的錯(cuò)誤修復(fù),功能優(yōu)化。對(duì)冗余代碼進(jìn)行精減。</p><p>  3、對(duì)整合后的程序進(jìn)行排版,添加代碼注解。達(dá)到增強(qiáng)程序源代碼可讀性的目的。</p><p>  4、負(fù)責(zé)“尋找圖書(shū)”模塊代碼的編寫(xiě)。</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)輸入要查找的書(shū)名:");</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書(shū)名:%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("---沒(méi)有您要查詢(xún)的書(shū)籍---\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、功能模塊“返回和退出”代碼的編寫(xiě)。</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)試過(guò)程的2個(gè)問(wèn)題。程序修改

122、或錄入信息后產(chǎn)生亂碼,且退出程序后再次進(jìn)入,且會(huì)造成信息的覆蓋。對(duì)寫(xiě)入信息的代碼再次循環(huán)后,解決問(wè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>  專(zhuān)周有五個(gè)題目,采取分小組抽簽的形式進(jìn)行題目分配。第一天抽到這個(gè)題目時(shí),感覺(jué)很難,頭腦里面沒(méi)有任何思路。似乎對(duì)于C的初學(xué)者來(lái)說(shuō),這是無(wú)法完成的任務(wù)。但俗語(yǔ)有云“世上無(wú)難事,只怕有心人”。經(jīng)過(guò)組內(nèi)的討論,復(fù)習(xí)課本知識(shí),借閱老師的資料,程序的編寫(xiě)思路以及基本框架有了雛形。第一天順

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論