圖書信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  圖書信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告</p><p>  指導(dǎo)老師: &

2、lt;/p><p>  班 級(jí): 1 </p><p>  學(xué)生姓名: </p><p><b>  目錄</b></p><p>

3、;  問(wèn)題概述--------------------------------------------------3</p><p>  系統(tǒng)目標(biāo)--------------------------------------------------3</p><p>  設(shè)計(jì)的過(guò)程及步驟------------------------------------------3</p>

4、<p>  函數(shù)設(shè)計(jì)--------------------------------------------------4</p><p>  系統(tǒng)實(shí)現(xiàn)--------------------------------------------------7</p><p>  主要問(wèn)題及解決措施---------------------------------------15&

5、lt;/p><p>  總結(jié)-----------------------------------------------------16</p><p>  參考文獻(xiàn)-------------------------------------------------16</p><p><b>  一、問(wèn)題概述</b></p>&l

6、t;p> ?。▽?duì)問(wèn)題背景及主要實(shí)現(xiàn)的功能進(jìn)行簡(jiǎn)要說(shuō)明。)</p><p>  隨著圖書館圖書的不斷增加,圖書管理的難度也隨之加大,一個(gè)好的圖書館圖書信息管理系統(tǒng),能夠使圖書管理工作簡(jiǎn)便,有條不紊。通過(guò)C語(yǔ)言學(xué)習(xí),我們已經(jīng)能夠完成基本的C語(yǔ)言編程,此次實(shí)訓(xùn),是將學(xué)習(xí)和實(shí)踐結(jié)合,充分感受C語(yǔ)言解決實(shí)踐問(wèn)題的魅力。此次編寫的圖書館信息管理系統(tǒng),能夠?qū)崿F(xiàn)基本的圖書管理功能。它包括圖書庫(kù)的創(chuàng)建,打印圖書信息表,錄入新

7、圖書,修改圖書信息,刪除圖書信息。圖書庫(kù)包含圖書的各方面信息,編號(hào),類型,作者,出版社,等等,并且打印圖書信息表。錄入,修改,刪除這些功能都是對(duì)圖書庫(kù)的操作。借書,還書這兩項(xiàng)最重要的功能也都能很好的實(shí)現(xiàn)。把此系統(tǒng)應(yīng)用于圖書館的圖書管理,能使圖書館的各項(xiàng)工作便捷,可靠的完成。</p><p><b>  二、系統(tǒng)目標(biāo)</b></p><p>  2.1(對(duì)系統(tǒng)技術(shù)的目

8、標(biāo))</p><p>  根據(jù)所學(xué)的程序設(shè)計(jì)基礎(chǔ)原理與程序設(shè)計(jì)的知識(shí),能夠針對(duì)一個(gè)小型的程序設(shè)計(jì)基礎(chǔ)管理系統(tǒng),進(jìn)行系統(tǒng)的需求分析,系統(tǒng)設(shè)計(jì),程序設(shè)計(jì)基礎(chǔ)設(shè)計(jì),編碼,測(cè)試等,完成題目要求的功能,從而達(dá)到掌握開(kāi)發(fā)一個(gè)小型系統(tǒng)程序設(shè)計(jì)的目的。</p><p>  2.2(對(duì)系統(tǒng)技術(shù)的要求)</p><p>  圖書信息包括:登錄號(hào)、書名、作者名、分類號(hào)、出版單位、出版時(shí)間

9、、價(jià)格等。試設(shè)計(jì)一圖書信息管理系統(tǒng),使之能提供以下功能:</p><p>  1.圖書信息錄入功能(圖書信息用文件保存)</p><p>  2.圖書信息瀏覽功能</p><p>  3.查詢或排序功能:(至少一種查詢方式)</p><p><b> ?。?)按書名查詢</b></p><p>&

10、lt;b> ?。?)按作者名查詢</b></p><p>  注:查詢結(jié)果用鏈表的形式保存并輸出</p><p>  4.圖書信息的刪除與修改</p><p>  三、設(shè)計(jì)的過(guò)程及步驟</p><p><b>  1、需求分析</b></p><p> ?。枋鱿到y(tǒng)需求,既詳細(xì)分

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

12、;  2、設(shè)計(jì)文件結(jié)構(gòu)</b></p><p>  (設(shè)計(jì)文件結(jié)構(gòu),并扼要說(shuō)明設(shè)計(jì)緣由)</p><p>  此系統(tǒng)根據(jù)所要實(shí)現(xiàn)的功能,使用的函數(shù)等綜合考慮,設(shè)計(jì)了文件名為book的二進(jìn)制文件用來(lái)存儲(chǔ)載入圖書信息,通過(guò)使用存儲(chǔ)和載入圖書信息,進(jìn)一步進(jìn)行錄入新圖書,修改,刪除圖書等一系列操作,兩步操作相互結(jié)合,使各個(gè)功能很好的實(shí)現(xiàn)了,運(yùn)用C語(yǔ)言的文件功能,也是整個(gè)程序的主線。&l

13、t;/p><p><b>  3、設(shè)計(jì)系統(tǒng)功能圖</b></p><p> ?。ǜ鶕?jù)需求分析結(jié)果和文件結(jié)構(gòu),應(yīng)用結(jié)構(gòu)化分析與設(shè)計(jì)技術(shù)設(shè)計(jì)功能結(jié)構(gòu)圖,如下圖所示)</p><p><b>  四、函數(shù)設(shè)計(jì)</b></p><p>  ( 詳細(xì)分析每一個(gè)子模塊的子功能,定義主要的子函數(shù)原型,并對(duì)每一個(gè)函數(shù)的

14、功能加以說(shuō)明)</p><p>  4.1此系統(tǒng)主要有7個(gè)功能,也就有主要的7個(gè)函數(shù),他們分別是</p><p>  enter(book); //輸入圖書信息</p><p>  list(book); //瀏覽圖書信息</p><p>  search(book); //查詢圖書信息</p><p> 

15、 modify(book); //修改圖書信息</p><p>  del(book); //刪除圖書信息</p><p>  save(book); //存儲(chǔ)圖書信息</p><p>  load(book); //載入圖書信息</p><p>  exit(0); //退出系統(tǒng)</p>&l

16、t;p>  4.2每個(gè)函數(shù)所用到的主要的數(shù)據(jù)結(jié)構(gòu)是結(jié)構(gòu)體:</p><p>  struct books{</p><p>  char no[20]; //登錄號(hào)</p><p>  char booknum[20]; //分類號(hào)</p><p>  char bookname[20]; //書名</p><

17、p>  char authorname[20]; //作者</p><p>  char cbs[20]; //出版社</p><p>  char time[20]; //出版時(shí)間</p><p>  char price[5]; //圖書價(jià)格 </p><p>  struct books *next; </p>

18、;<p>  struct books *prior; </p><p><b>  };</b></p><p><b>  4.3界面設(shè)計(jì)</b></p><p>  這是程序剛運(yùn)行時(shí)的界面,界面上共有1-8八個(gè)選項(xiàng),界面簡(jiǎn)潔大方,讓用戶一目了然。</p><p>  這是輸入圖

19、書信息時(shí)的界面,圖書基本信息一共有七個(gè)輸入項(xiàng),分別是登錄號(hào)、書名、作者名、分類號(hào)、出版單位、出版時(shí)間、價(jià)格。在這一模塊中,每輸入一本圖書的信息都要輸入一個(gè)編號(hào),這個(gè)編號(hào)便于管理員的管理和查找,節(jié)省時(shí)間。</p><p><b>  這是存儲(chǔ)信息界面:</b></p><p>  這是查看完整信息的界面,在這里大家可以看到圖書的所有信息。</p><

20、p>  這是查詢圖書信息的界面,在這里大家可以看到所要查找的圖書信息</p><p>  這是修改圖書信息時(shí)的界面,在這個(gè)界面只需要輸入該圖書的名字就可以修改該圖書的其他信息,方便了工作人員,簡(jiǎn)潔方便。</p><p><b>  繼續(xù)修改界面:</b></p><p>  這是刪除圖書信息時(shí)的界面,只需要輸入該書的名字就可以刪除與之相關(guān)

21、的信息,方便了工作人員的管理。</p><p><b>  這是載入信息界面:</b></p><p><b>  五、系統(tǒng)實(shí)現(xiàn)</b></p><p>  #include <stdio.h></p><p>  #include <stdlib.h></p>

22、<p>  #include <string.h></p><p>  /*--------------------定義books結(jié)構(gòu)體-----------------------------*/</p><p>  struct books{</p><p>  char no[20]; //登錄號(hào)</p><p&g

23、t;  char booknum[20]; //分類號(hào)</p><p>  char bookname[20]; //書名</p><p>  char authorname[20]; //作者</p><p>  char cbs[20]; //出版社</p><p>  char time[20]; //出版時(shí)間</p&g

24、t;<p>  char price[5]; //圖書價(jià)格 </p><p><b>  };</b></p><p>  /*------------------------建立一個(gè)鏈表-----------------------------*/</p><p>  typedef struct node{</p&g

25、t;<p>  struct books data;</p><p>  struct node *next; </p><p><b>  }Node;</b></p><p>  /*------------------------函數(shù)聲明-----------------------------*/</p>

26、;<p>  void enter(Node *book); //輸入圖書信息</p><p>  void list(Node *book); //瀏覽圖書信息</p><p>  void search(Node *book); //查詢圖書信息</p><p>  void modify(Node *book); //根據(jù)書名查找并

27、修改信息</p><p>  void del(Node *book); //刪除圖書信息</p><p>  void save(Node *book); //存儲(chǔ)圖書信息</p><p>  void load(Node *book); //載入圖書信息</p><p>  /*--------------------

28、----輸入圖書信息-----------------------------*/</p><p>  void enter(Node *book)//輸入圖書信息</p><p><b>  {</b></p><p>  Node *p,*r,*s; </p><p>  char n[10]; //先

29、用于輸入圖書分類號(hào),也用于判斷是否跳出循環(huán)</p><p><b>  r=book; </b></p><p>  s=book->next; //使s為第一個(gè)有用的結(jié)點(diǎn)</p><p>  while(r->next!=NULL) //這個(gè)循環(huán)的作用是使r為最后一個(gè)有用的結(jié)點(diǎn)</p><p>  

30、r=r->next; //將指針置于最末尾</p><p><b>  while(1)</b></p><p><b>  { </b></p><p>  system("cls"); //清屏</p><p>  printf(">>

31、>>>>>>>>提示:輸入0則返回主菜單!\n");</p><p>  printf("\n請(qǐng)你輸入登錄號(hào):"); </p><p>  scanf("%s",n); </p><p>  if(strcmp(n,"0

32、")==0) break; </p><p>  p=(Node *)malloc(sizeof(Node)); //申請(qǐng)空間</p><p>  strcpy(p->data.no,n);</p><p>  printf("\n請(qǐng)輸入分類號(hào):");</p><p

33、>  scanf("%s",p->data.booknum); </p><p>  printf("\n請(qǐng)輸入書名:");</p><p>  scanf("%s",p->data.bookname);</p><p>  printf("\n請(qǐng)輸入作者名:&

34、quot;);</p><p>  scanf("%s",&p->data.authorname);</p><p>  printf("\n請(qǐng)輸入出版社:");</p><p>  scanf("%s",&p->data.cbs);</p><p>  

35、printf("\n請(qǐng)輸入出版時(shí)間:"); </p><p>  scanf("%s",&p->data.time);</p><p>  printf("\n請(qǐng)輸入圖書價(jià)格:");</p><p>  scanf("%s",&p->data.price);

36、</p><p>  printf(">>>>>>>>>>提示:已經(jīng)完成一條記錄的添加。\n");</p><p>  p->next=NULL;</p><p>  r->next=p; //這一步是必需的,將p與先前的鏈表連起來(lái)構(gòu)成一條新鏈表</p>&l

37、t;p>  r=p; //也是必需的.將r 又重設(shè)為新鏈的最后一個(gè)有用結(jié)點(diǎn) </p><p><b>  }</b></p><p><b>  }</b></p><p>  /*------------------------瀏覽圖書信息-----------------------------*/<

38、/p><p>  void list(Node *book) //瀏覽圖書信息</p><p><b>  {</b></p><p>  Node *p=book;</p><p>  system("cls"); //清屏</p><p><b>  if(!p

39、)</b></p><p><b>  {</b></p><p>  printf("\n提示:沒(méi)有記錄可以顯示!\n");</p><p><b>  return;</b></p><p><b>  }</b></p>&l

40、t;p>  printf("登錄號(hào)\t書號(hào)\t 書名 \t作者\(yùn)t 出版社\t 出版時(shí)間 圖書價(jià)格\n"); </p><p>  while(p->next)</p><p><b>  {</b></p><p>  printf("\n%-10s%-6s%-18s%-1

41、0s%-15s%-10s%-5s\n",p->data.no,p->data.booknum,p->data.bookname,p->data.authorname,p->data.cbs,p->data.time,p->data.price);</p><p>  p=p->next;</p><p><b>  }&l

42、t;/b></p><p><b>  }</b></p><p>  /*------------------------查詢圖書信息-----------------------------*/</p><p>  void search(Node *book) //查詢圖書信息</p><p><b

43、>  { </b></p><p><b>  Node *p;</b></p><p><b>  int sel;</b></p><p>  int flag2=0,ha=0;</p><p>  char find[20];</p><p>  

44、system("cls"); //清屏 </p><p>  p=book->next;</p><p>  if(!book->next)//若鏈表為空</p><p><b>  { </b></p><p>  printf("\n提示:沒(méi)有資料可以查詢!\n&quo

45、t;);</p><p><b>  return;</b></p><p><b>  }</b></p><p>  printf("提示:\n=====>0退出\n=====>1按書名查詢\n=====>2按作者名查詢\n");</p><p>  sca

46、nf("%d",&sel);</p><p>  if(sel==1)</p><p><b>  { </b></p><p>  printf("\n輸入你要查詢的書名:");</p><p>  scanf("%s",find);</p&g

47、t;<p><b>  while(p)</b></p><p><b>  { </b></p><p>  if(strcmp(p->data.bookname,find)==0) </p><p><b>  flag2++;</b></p><p>

48、;  if(flag2==1&&ha!=flag2)</p><p><b>  { </b></p><p>  printf("登錄號(hào)\t書號(hào)\t 書名 \t作者\(yùn)t 出版社\t 出版時(shí)間 圖書價(jià)格\n");</p><p>  printf("\n%-10s%-6s%-18s%

49、-10s%-15s%-10s%-5s\n",p->data.no,p->data.booknum,p->data.bookname,p->data.authorname,p->data.cbs,p->data.time,p->data.price);</p><p><b>  ha=flag2;</b></p><p&

50、gt;  } //end if</p><p>  else if(flag2>ha)</p><p><b>  {</b></p><p>  printf("\n%-10s%-6s%-18s%-10s%-15s%-10s%-5s\n",p->data.no,p->data.booknum,p-&g

51、t;data.bookname,p->data.authorname,p->data.cbs,p->data.time,p->data.price);</p><p><b>  ha=flag2;</b></p><p>  } //end if</p><p>  p=p->next;</p>

52、<p>  } //end while</p><p>  if(flag2) printf("\n*********************按設(shè)備名稱%s查詢的有%d條記錄:*********************\n\n",find,flag2);</p><p>  else printf("\n按書名%s查詢的結(jié)果為0個(gè)\n\n&qu

53、ot;,find);</p><p>  } //end if</p><p>  else if(sel==2)</p><p><b>  { </b></p><p>  printf("\n輸入你要查詢的作者名:");</p><p>  scanf("

54、%s",find);</p><p><b>  while(p)</b></p><p><b>  { </b></p><p>  if(strcmp(p->data.authorname,find)==0)</p><p>  flag2++; </p>&l

55、t;p>  if(flag2==1&&ha!=flag2)</p><p><b>  { </b></p><p>  printf("登錄號(hào)\t書號(hào)\t 書名 \t作者\(yùn)t 出版社\t 出版時(shí)間 圖書價(jià)格\n");</p><p>  printf("\n%-10s%-6s

56、%-18s%-10s%-15s%-10s%-5s\n",p->data.no,p->data.booknum,p->data.bookname,p->data.authorname,p->data.cbs,p->data.time,p->data.price);</p><p><b>  ha=flag2;</b></p>

57、<p>  } //end if</p><p>  else if(flag2>ha)</p><p><b>  {</b></p><p>  printf("\n%-10s%-6s%-18s%-10s%-15s%-10s%-5s\n",p->data.no,p->data.booknu

58、m,p->data.bookname,p->data.authorname,p->data.cbs,p->data.time,p->data.price);</p><p><b>  ha=flag2;</b></p><p>  } //end if</p><p>  p=p->next;</

59、p><p>  } //end while</p><p><b>  if(flag2)</b></p><p>  {printf("\n******************按設(shè)備名稱%s統(tǒng)計(jì)的有%d條記錄:********************\n\n",find,flag2);}</p><p>

60、;  else {printf("\n按作者名%s查詢的結(jié)果為0個(gè)\n\n",find);}</p><p>  } //end if</p><p>  else if(sel==0) return;</p><p><b>  }</b></p><p>  /*---------------

61、---------修改圖書信息-----------------------------*/</p><p>  void modify(Node *book) //根據(jù)書名查找并修改信息 </p><p><b>  { </b></p><p>  char name[20];</p><p>  int c

62、,b,t;</p><p><b>  Node *p;</b></p><p>  system("cls"); //清屏</p><p>  list(book);</p><p>  if(!book->next)</p><p><b>  {<

63、/b></p><p>  printf("\n>>>>>>>>>>提示:沒(méi)有資料可以修改!\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p> 

64、 printf("請(qǐng)輸入你要查詢的書名:");</p><p>  scanf("%s",name);</p><p>  p=book->next;</p><p>  while(p!=NULL) </p><p><b>  {</b></p><

65、;p>  if(strcmp(p->data.bookname,name)==0) //如果找到的話返回的是符合要求</p><p><b>  break; </b></p><p>  p=p->next;</p><p><b>  }</b></p><p>  i

66、f(p)</p><p><b>  {</b></p><p>  printf("\n需要進(jìn)行修改的選項(xiàng)\n 1.登錄號(hào) 2.分類號(hào) 3.書名 4.作者名 5.出版社 6.出版時(shí)間 7.圖書價(jià)格\n"); </p><p>  printf("請(qǐng)輸入你想修改的那一項(xiàng)序號(hào):\n"); &

67、lt;/p><p>  scanf("%d",&c); </p><p>  if(c>8||c<1) </p><p>  printf("\n選擇錯(cuò)誤,請(qǐng)重新選擇!\n");</p><p><b>  do</b></p><p>

68、<b>  {</b></p><p><b>  switch(c)</b></p><p><b>  { </b></p><p>  case 1: printf("\n請(qǐng)輸入登錄號(hào):");</p><p>  scanf("%s&

69、quot;,p->data.no); break;</p><p>  case 2: printf("\n請(qǐng)輸入分類號(hào):");</p><p>  scanf("%s",p->data.booknum); break;</p><p>  case 3: printf("\n請(qǐng)輸入書名:"

70、);</p><p>  scanf("%s",p->data.bookname); break;</p><p>  case 4: printf("\n請(qǐng)輸入作者名:");</p><p>  scanf("%s",&p->data.authorname); break;</

71、p><p>  case 5: printf("\n請(qǐng)輸入出版社:");</p><p>  scanf("%s",&p->data.cbs); break;</p><p>  case 6: printf("\n請(qǐng)輸入出版時(shí)間:"); </p><p>  sca

72、nf("%s",&p->data.time); break;</p><p>  case 7: printf("\n請(qǐng)輸入圖書價(jià)格:");</p><p>  scanf("%s",&p->data.price); break;</p><p>  } //end swit

73、ch</p><p>  printf("\n");</p><p>  printf("\n是否確定所修改的信息?\n 是 請(qǐng)按1 ; 不,重新修改 請(qǐng)按2: \n"); </p><p>  scanf("%d",&b);</p><p>  }while(b==2);

74、</p><p>  printf("\n瀏覽修改后的所有圖書信息:\n");</p><p>  printf("\n");</p><p>  list(book);</p><p>  save(book);</p><p>  printf("\n繼續(xù)修改請(qǐng)按1

75、,不再修改請(qǐng)按0\n");</p><p>  scanf("%d",&t);</p><p><b>  switch(t)</b></p><p><b>  {</b></p><p>  case 1:modify(book);break;</p&

76、gt;<p>  case 0:break;</p><p>  default :break;</p><p>  } //end switch</p><p>  } //end if</p><p><b>  }</b></p><p>  /*-------------

77、-----------刪除圖書信息-----------------------------*/</p><p>  void del(Node *book) //刪除圖書信息</p><p><b>  {</b></p><p>  Node *p,*r,*s;</p><p>  char find[50];&

78、lt;/p><p>  system("cls"); //清屏</p><p>  if(!book->next) </p><p><b>  {</b></p><p>  printf("\n提示:沒(méi)有資料可以顯示!\n"); </p><p>&

79、lt;b>  return; </b></p><p><b>  }</b></p><p>  printf("\n提示:請(qǐng)輸入您要?jiǎng)h除的圖書的名字!\n");</p><p>  scanf("%s",find);</p><p>  p=book->

80、next;</p><p>  while(p!=NULL) </p><p><b>  { </b></p><p>  if(strcmp(p->data.bookname,find)==0)//如果找到的話返回的是符合要求 </p><p><b>  break; </b><

81、/p><p>  p=p->next; </p><p><b>  }</b></p><p><b>  if(!p)</b></p><p>  printf("\n提示:找不到您想刪除的圖書分類號(hào)!\n");</p><p><b> 

82、 else</b></p><p><b>  {</b></p><p><b>  r=book;</b></p><p>  while(r->next!=p)</p><p>  r=r->next;</p><p>  s=r->nex

83、t;</p><p>  r->next=r->next->next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  /*------------------------存儲(chǔ)圖書信息-----------------------

84、------*/</p><p>  void save(Node *book) //存儲(chǔ)圖書信息</p><p><b>  {</b></p><p><b>  int n;</b></p><p><b>  Node *p;</b></p><

85、p><b>  FILE *fp;</b></p><p>  printf("需要保存嗎?(1-保存 0-不保存)");</p><p>  scanf("%d",&n);</p><p><b>  if(n)</b></p><p>&

86、lt;b>  {</b></p><p>  if(book->next==NULL)</p><p>  printf("無(wú)記錄");</p><p>  else p=book->next;</p><p>  if((fp=fopen("books.txt",&quo

87、t;w+")) == NULL) //打開(kāi)文件,并判斷打開(kāi)是否正常</p><p><b>  {</b></p><p>  printf("打開(kāi)文件出錯(cuò)!\n"); // 打開(kāi)文件出錯(cuò)</p><p><b>  exit(1);</b></p><p><

88、;b>  } </b></p><p>  p=book->next;</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>  fprintf(fp, "%s %s %s %s %s %s %s\n",p->data

89、.no,p->data.booknum,p->data.bookname,p->data.authorname,p->data.cbs,p->data.time,p->data.price);/*從文件讀入記錄*/</p><p>  p = p->next;</p><p><b>  }</b></p>&l

90、t;p>  fclose(fp);</p><p>  } //end if</p><p><b>  }</b></p><p>  /*------------------------載入圖書信息-----------------------------*/</p><p>  void load(Node

91、 *book) //載入圖書信息</p><p><b>  { </b></p><p>  Node *p,*q;</p><p>  FILE *fp=NULL;//指向文件的指針</p><p>  int recordNum;// 統(tǒng)計(jì)記錄數(shù) </p><p>  if((

92、fp=fopen("books.txt","r+"))== NULL) //打開(kāi)文件</p><p><b>  {</b></p><p>  printf("打開(kāi)文件出錯(cuò)!\n"); //不能打開(kāi)</p><p><b>  exit(1);</b><

93、;/p><p><b>  }</b></p><p><b>  p=book;</b></p><p>  recordNum = 0;</p><p>  while(!feof(fp))</p><p><b>  { </b></p>

94、<p>  q=(Node*)malloc(sizeof(Node)); </p><p>  fscanf(fp, "%s %s %s %s %s %s %s\n",p->data.no,p->data.booknum,p->data.bookname,p->data.authorname,p->data.cbs,p->data.time,p-

95、>data.price);/*從文件讀入記錄*/</p><p>  p->next=q;</p><p>  q->next=NULL;</p><p><b>  p=q;</b></p><p>  recordNum++;</p><p><b>  }<

96、/b></p><p>  fclose(fp);</p><p>  printf("文件里共有%d條記錄:\n",recordNum);</p><p><b>  }</b></p><p>  /*------------------------------主函數(shù)------------

97、-----------------*/ </p><p>  void main()</p><p><b>  {</b></p><p><b>  int flag;</b></p><p>  Node *p,*book;</p><

98、p>  book=(Node*)malloc(sizeof(Node));</p><p>  book->next=NULL;</p><p><b>  p=book;</b></p><p><b>  do{</b></p><p>  system("cls"

99、;); //清屏</p><p>  printf("\n\t\t*****************圖書信息管理系統(tǒng)*****************\n");</p><p>  printf("\t\t*\t\t|1.輸入圖書信息 *\n");</p><p>  printf(&quo

100、t;\t\t*\t\t|2.瀏覽圖書信息 *\n");</p><p>  printf("\t\t*\t\t|3.查詢圖書信息 *\n");</p><p>  printf("\t\t*\t\t|4.修改圖書信息 *\n");</

101、p><p>  printf("\t\t*\t\t|5.刪除圖書信息 *\n");</p><p>  printf("\t\t*\t\t|6.載入圖書信息 *\n");</p><p>  printf("\t\t*\t\t|7.退出系統(tǒng)

102、 *\n");</p><p>  printf("\t\t**************************************************\n\n\n");</p><p>  printf("\t\t請(qǐng)輸入以上序號(hào)進(jìn)行選擇:\n");</p><p>  fflus

103、h(stdin); //清除文件緩沖區(qū)</p><p>  scanf("%d",&flag);</p><p>  switch(flag)</p><p><b>  {</b></p><p>  case 1: enter(book); save(book); system(&q

104、uot;pause"); break; //輸入圖書信息 </p><p>  case 2: list(book); system("pause"); break; //瀏覽圖書信息 </p><p>  case 3: search(book); system("pause"); break; //查詢圖書信息</p&

105、gt;<p>  case 4: modify(book); system("pause"); break; //修改圖書信息</p><p>  case 5: del(book); system("pause"); break; //刪除圖書信息</p><p>  case 6: load(book); syst

106、em("pause"); break; //載入圖書信息</p><p>  case 7: exit(0); system("pause"); break; //退出系統(tǒng)</p><p>  default: printf("\n提示:輸入錯(cuò)誤!\n"); break;</p><p> 

107、 }//end switch</p><p>  }while(flag!=0);</p><p><b>  }</b></p><p>  六、程序調(diào)試結(jié)果,測(cè)試過(guò)程中遇到的主要問(wèn)題及采取的解決措施</p><p>  此次實(shí)踐課編寫的是一個(gè)應(yīng)用程序,相對(duì)于以前我們見(jiàn)到的程序,它要大得多,對(duì)數(shù)據(jù)的輸出格式也有較高要求

108、,這次編程讓自己對(duì)許多平時(shí)不注意的小的知識(shí)點(diǎn)有了新的鞏固;我先編的主函數(shù),調(diào)試后我又一個(gè)一個(gè)模塊的往上加,每加上一個(gè)調(diào)試一下;雖然在編程過(guò)程中有些模塊也出現(xiàn)了一些小問(wèn)題,但在翻閱課本和同學(xué)們的幫助下,我很有耐心的一次又一次的進(jìn)行修改,最后運(yùn)行的結(jié)果基本上達(dá)到了預(yù)期的目的。可這畢竟是第一次完成這樣的大程序,雖然并不是非常健壯,但程序中沒(méi)有錯(cuò)誤和警告,各項(xiàng)功能都能完成,我們很高興。</p><p><b>

109、  七、總結(jié)</b></p><p>  首先,我想感謝我的組員,因?yàn)槲覀兪欠止ず献鞯?,他們有的?fù)責(zé)一個(gè)功能,有的負(fù)責(zé)兩個(gè)功能,而我主要是些主函數(shù),在他們的積極配合下,我們很快就把總程序?qū)懞?,并調(diào)試完畢。所以我想感謝他們的配合。因?yàn)榧w的力量是強(qiáng)大的,只有我們的積極合作,才能夠準(zhǔn)時(shí)的完成這個(gè)課程設(shè)計(jì)。 </p><p>  然后,我覺(jué)得在這個(gè)課程設(shè)計(jì)的過(guò)程中,我學(xué)到了

110、很多東西。第一是耐心,當(dāng)你在調(diào)試程序中,看到了你設(shè)計(jì)的程序出現(xiàn)了那么多錯(cuò)誤,或者當(dāng)顯示0錯(cuò)誤0警告,卻不能運(yùn)行,或者是運(yùn)行結(jié)果不是你所期望時(shí),我覺(jué)得這時(shí)候最是考驗(yàn)?zāi)托牡臅r(shí)候,也只有耐心和永不言敗的信念,才能支持你逆流而上,解決所有的困難。在這個(gè)過(guò)程中,我試過(guò)用了幾個(gè)鐘的時(shí)間找一個(gè)錯(cuò)誤,而結(jié)果只是打錯(cuò)了一個(gè)定義。第二是溝通,因?yàn)槲覍?duì)C語(yǔ)言也比較熟了,有一些同學(xué)比較陌生,所以他們來(lái)問(wèn)我,在我解答他們的問(wèn)題是,我深刻的體會(huì)了溝通的重要性,因?yàn)?/p>

111、只有你溝通的好,他們?nèi)菀桌斫猓阋膊挥美速M(fèi)口舌去講一些不必要的知識(shí)點(diǎn)!</p><p><b>  八、參考文獻(xiàn)</b></p><p>  [1]徐連信編著 C語(yǔ)言程序設(shè)計(jì) 清華大學(xué)出版社,2005 P34-P79</p><p>  [2]徐連信編著 C語(yǔ)言程序設(shè)計(jì)習(xí)題解答與實(shí)驗(yàn)教程清華大學(xué)出版社,2005 P132-P134</p&

112、gt;<p>  [3]劉振安 孫忱 C程序設(shè)計(jì)課程設(shè)計(jì) 機(jī)械工業(yè)出版社, 2004,P76-P98</p><p>  [4]王士元 C高級(jí)實(shí)用程序設(shè)計(jì)[M]. 北京: 清華大學(xué)出版社,1998,P78-P98</p><p>  [5]Al Kelley / Ira Pohl《C語(yǔ)言解析教程》(原書第4版)</p><p>  原名: C by

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論