c語言圖書館管理系統(tǒng)課程設(shè)計_第1頁
已閱讀1頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p><b>  一、需求分析2</b></p><p><b>  二、概要設(shè)計2</b></p><p><b>  三、詳細設(shè)計4</b></p><p><b>  四、調(diào)試分析

2、6</b></p><p><b>  五、用戶手冊6</b></p><p><b>  六、測試數(shù)據(jù)6</b></p><p><b>  七、附錄8</b></p><p><b>  一、需求分析</b></p>

3、<p>  1. 程序以菜單的方式工作,具備圖書的添加、刪除、修改、查詢、統(tǒng)計操作,數(shù)據(jù)存儲采用文件形式。</p><p>  2.定義結(jié)構(gòu)體數(shù)組struct library bookinf[30],用以存儲ISBN、書名、作者名、圖書類別、出版單位、出版時間、價錢、數(shù)量信息。利用文件開辟并將信息保存在“bookinf.txt”中。</p><p>  3.用戶從鍵盤輸入需要的操

4、作,其中“ISBN、書名、作者名、圖書類別、出版單位”需使用字符輸入,“出版時間、價格、數(shù)量”采用數(shù)字輸入。</p><p><b>  4.測試數(shù)據(jù):</b></p><p>  (1)查找:若找到了所要查找的書本,則打印出書本信息;若沒有找到,則打印“沒有找到您要找的書本”</p><p> ?。?)刪除:若找到了所要查找的書本,按下y確認

5、刪除后,打印出“該書已刪除”;若沒有找到要刪除的書本,則打印“沒有找到該書,退出操作”</p><p> ?。?)修改:若找到了要修改的書本,打印“請輸入你要修改的信息”并開始修改;若沒有找到要修改的書本,則打印“沒有找到要修改的書本”</p><p>  5.程序執(zhí)行命令為:</p><p> ?。?)創(chuàng)建“bookinf.txt”文件</p>&l

6、t;p> ?。?)將圖書信息用添加操作加進“bookinf.txt”文件中</p><p> ?。?)用戶選擇所需操作</p><p><b>  (4)搜索結(jié)果</b></p><p><b>  二、概要設(shè)計</b></p><p>  1.定義結(jié)構(gòu)體數(shù)組struct library bo

7、okinf[50]。</p><p>  bookinf[i].ISBN // ISBN </p><p>  bookinf[i].name //書名</p><p>  bookinf[i].author // 作者名</p><p>  bookinf[i].vari // 圖

8、書類別</p><p>  bookinf[i].pubplace //出版單位</p><p>  bookinf[i].pubtime // 出版時間</p><p>  bookinf[i].price //價格</p><p>  bookinf[i].num // 數(shù)量<

9、/p><p>  /* 用以下程序開辟存儲文件"bookinf.txt" */</p><p>  FILE *fp; </p><p>  if((fp=fopen("bookinf.txt","r+"))==NULL) </p><p><b>  {</b>&

10、lt;/p><p>  printf("無法打開文件!\n"); </p><p>  return; </p><p><b>  }</b></p><p><b>  2.程序構(gòu)造</b></p><

11、p><b>  add ()</b></p><p>  通過此函數(shù)將輸入的書本信息添加存儲進"bookinf.txt"文件中,用于下一次的查詢或刪、改、統(tǒng)操作的調(diào)用。</p><p><b>  del()</b></p><p>  通過此函數(shù)完成對"bookinf.txt"

12、;文件中書本信息的刪除,“printf("確定要刪除該書嗎?(y/n) \n");”鍵盤輸入y/n確定書本信息的刪除,刪除后將不再有該書記錄</p><p><b>  modify()</b></p><p>  通過此函數(shù)完成對書本信息的修改,修改內(nèi)容包括:ISBN、書名、作者名、圖書類別、出版單位、出版時間、價格、數(shù)量。</p>

13、<p><b>  search()</b></p><p>  此函數(shù)為查詢書本信息操作,可查詢"bookinf.txt"文件中存儲的書本信息。</p><p><b>  count()</b></p><p>  此操作為統(tǒng)計操作,用于統(tǒng)計"bookinf.txt"

14、;文件中存儲書本的總數(shù)量及金額數(shù)。</p><p><b>  main()</b></p><p>  通過對上述函數(shù)的調(diào)用,將所得信息打印出來</p><p><b>  3.主程序流程</b></p><p><b>  三、詳細設(shè)計</b></p><

15、;p>  1.圖書館管理的數(shù)據(jù)類型</p><p>  struct library{</p><p>  char ISBN[20]; //ISBN</p><p>  char name[30]; //書名</p><p>  char author[30]; //作者名</p><p

16、>  char vari[10]; //圖書類別</p><p>  char pubplace[50]; //出版單位</p><p>  int pubtime; //出版時間</p><p>  int price; //價格</p><p>  int num;

17、 //數(shù)量</p><p><b>  };</b></p><p>  //----------基本操作的算法描述--------------------</p><p><b>  1.文件部分</b></p><p>  FILE *fp; </p><p>  

18、if((fp=fopen("bookinf.txt","r+"))==NULL) //檢查打開的操作是否出錯</p><p><b>  {</b></p><p>  printf("無法打開文件!\n"); //若出錯則打印該行文字</p><p>  return;

19、 </p><p><b>  }</b></p><p><b>  2.查詢操作部分</b></p><p>  printf("\n請輸入您要查找的書名\n");</p><p>  scanf("%s"

20、;,bookname); //輸入想查詢的書名</p><p>  while(!feof(fp)) //循環(huán) 直到文件尾部,函數(shù)值為真</p><p>  { fread(&bookinf,sizeof(struct library),1,fp); //從fp中讀入1個長度為sizeof(struct library)的數(shù)據(jù),存到bookinf[ ]中</

21、p><p>  if(strcmp(bookinf.name,bookname)==0) //比較輸入的書名和文件中保存的書名,若相同</p><p>  {printf("ISBN 書名 作者名 圖書類別 出版單位 出版時間 價格 數(shù)量\n");</p><p>  printf("%s %s %s %s %s

22、%d %d %d \n",bookinf.ISBN,bookinf.name,bookinf.author,</p><p>  bookinf.vari,bookinf.pubplace,bookinf.pubtime,bookinf.price,bookinf.num);//若相同,則打印出書本的信息</p><p>  i=1;break;}</p>&l

23、t;p><b>  }</b></p><p>  if(i!=1) //若沒有找到該書</p><p>  {printf("沒有找到您要找的書本\n");}</p><p><b>  3.刪除部分</b></p><p>  strcpy(bookinf[fla

24、g].ISBN,bookinf[flag+1].ISBN);//將后一本書的ISBN復(fù)制給前一本書的ISBN</p><p>  strcpy(bookinf[flag].name,bookinf[flag+1].name); //將后一本書的書名復(fù)制給前一本書的書名</p><p>  strcpy(bookinf[flag].author,bookinf[flag+1].author)

25、; //將后一本書的作者名復(fù)制給前一本書的作者名</p><p>  strcpy(bookinf[flag].vari,bookinf[flag+1].vari); //將后一本書的圖書種類復(fù)制給前一本書的圖書類別</p><p>  strcpy(bookinf[flag].pubplace,bookinf[flag+1].pubplace); //將后一本書的出版單位復(fù)制給前一本書的

26、出版單位</p><p>  bookinf[flag].pubtime=bookinf[flag+1].pubtime; //將后一本書的出版時間復(fù)制給前一本書的出版時間</p><p>  bookinf[flag].price=bookinf[flag+1].price; //將后一本書的價格復(fù)制給前一本書的價格</p><p>  bookinf[flag]

27、.num=bookinf[flag+1].num; //將后一本書的數(shù)量復(fù)制給前一本書的數(shù)量</p><p><b>  4.修改部分</b></p><p>  if(strcmp(bookinf[i].ISBN,nbook)==0) //如果輸入的書本nbook與文件中存儲的ISBN相同,則開始修改</p><p><b>  5

28、.統(tǒng)計部分</b></p><p>  int tn,total=0,alprice=0;//初始化總數(shù)和總價格的值為0</p><p>  for(i=0;i<=tn;i++){</p><p>  total=total+bookinf[i].num;//運用遞歸,新的總數(shù)和為上一次的總數(shù)值加上這一次的值</p><p>

29、;  alprice=alprice+(bookinf[i].num)*(bookinf[i].price); //運用遞歸,新的總價錢和為上一次的總價錢值加上這一次的價錢 </p><p><b>  }</b></p><p>  printf("圖書總冊書為%d 總金額數(shù)為%d\n",total,alprice);//打印出圖書總冊書和總

30、金額數(shù)</p><p><b>  6.菜單部分</b></p><p>  printf(" 歡迎登錄圖書管系統(tǒng) \n");</p><p>  printf("************************************\n");</p>&l

31、t;p>  printf("* 1.添加圖書 2.刪除圖書 *\n");</p><p>  printf("* 3.修改圖書 4.查詢圖書 *\n");</p><p>  printf("* 5.統(tǒng)計圖書 0.退出系統(tǒng) *\n");</p>

32、<p>  printf("************************************\n");</p><p><b>  7.選擇部分</b></p><p>  switch(b){</p><p>  case 1:add();break; //選擇1時,執(zhí)行添加操作</p>

33、<p>  case 2:del();break; //選擇2時,執(zhí)行刪除操作</p><p>  case 3:modify();break; //選擇3時,執(zhí)行修改操作</p><p>  case 4:search();break; //選擇4時,執(zhí)行查詢操作</p><p>  case 5:count();break; //選擇5時,執(zhí)行

34、統(tǒng)計操作</p><p>  case 0:flag=1;break; //選擇0時,執(zhí)行退出操作</p><p>  default:printf("您輸入的選擇錯誤!\n"); //否則,打印輸入錯誤</p><p><b>  四.調(diào)試部分</b></p><p>  1.開始寫程序時,沒有

35、運用文件保存函數(shù),導(dǎo)致輸入的書本信息不能被查看</p><p>  2.程序刪除函數(shù)部分產(chǎn)生左值方面的錯誤,后運用strcmp( )解決</p><p>  3. 程序刪除函數(shù)部分,開始不論找到還是沒找到要刪除的書本,都會打印循環(huán)外的"該書已刪除!",后運用i=n,解決了這個問題。</p><p><b>  五.用戶手冊</b&

36、gt;</p><p>  1.本程序執(zhí)行文件為“bookinf.txt”.</p><p>  2. 進入菜單部分,會出現(xiàn)一下選擇菜單</p><p>  1.添加圖書 2.刪除圖書 </p><p>  3.修改圖書 4.查詢圖書 </p><p>  5.統(tǒng)計圖書

37、 0.退出系統(tǒng) </p><p>  并提示"請輸入你的選擇!",用戶僅需選擇0~5運行該程序</p><p>  3.添加、修改圖書部分,其中ISBN、name、author、vari、pubplace、需輸入字符(即字母或數(shù)字),pubtime、price、num需輸入數(shù)字。</p><p>  4. 添加、修改圖書部分,輸入的信息不可超標

38、,需遵循ISBN為20字節(jié),name、author為30字節(jié),vari為10字節(jié),pubplace為50字節(jié)。</p><p><b>  六、測試部分</b></p><p>  歡迎登錄圖書管系統(tǒng) ************************************</p><p>  * 1.添加圖書

39、 2.刪除圖書 *</p><p>  * 3.修改圖書 4.查詢圖書 *</p><p>  * 5.統(tǒng)計圖書 0.退出系統(tǒng) *</p><p>  ************************************</p><p><b>  請輸入你的選擇!</b&g

40、t;</p><p><b>  1</b></p><p>  請輸入需要添加的書本書以及您要添加的書本數(shù)信息</p><p><b>  1</b></p><p><b>  ISBN:1</b></p><p><b>  書名:1&l

41、t;/b></p><p><b>  作者:1</b></p><p><b>  圖書類別:1</b></p><p><b>  出版單位:1</b></p><p><b>  出版時間:1</b></p><p>&

42、lt;b>  價錢:1</b></p><p><b>  數(shù)量:1</b></p><p>  歡迎登錄圖書管系統(tǒng) ************************************</p><p>  * 1.添加圖書 2.刪除圖書 *</p><p> 

43、 * 3.修改圖書 4.查詢圖書 *</p><p>  * 5.統(tǒng)計圖書 0.退出系統(tǒng) *</p><p>  ************************************</p><p><b>  請輸入你的選擇!</b></p><p><b> 

44、 3</b></p><p>  請輸入您要修改的書號</p><p><b>  2</b></p><p>  沒有找到要修改的書本</p><p>  歡迎登錄圖書管系統(tǒng) ************************************</p><p> 

45、 * 1.添加圖書 2.刪除圖書 *</p><p>  * 3.修改圖書 4.查詢圖書 *</p><p>  * 5.統(tǒng)計圖書 0.退出系統(tǒng) *</p><p>  ************************************</p><p><b>

46、  請輸入你的選擇!</b></p><p><b>  3</b></p><p>  請輸入您要修改的書號</p><p><b>  1</b></p><p><b>  ISBN:2</b></p><p><b>  書

47、名:2</b></p><p><b>  作者:2</b></p><p><b>  圖書類別:2</b></p><p><b>  出版單位:2</b></p><p><b>  出版時間:2</b></p><p

48、><b>  價錢:2</b></p><p><b>  數(shù)量:2</b></p><p><b>  修改成功!</b></p><p>  歡迎登錄圖書管系統(tǒng) ************************************</p><p>

49、  * 1.添加圖書 2.刪除圖書 *</p><p>  * 3.修改圖書 4.查詢圖書 *</p><p>  * 5.統(tǒng)計圖書 0.退出系統(tǒng) *</p><p>  ************************************</p><p><b>

50、;  請輸入您的選擇!</b></p><p><b>  4</b></p><p>  請輸入您要查找的書名</p><p><b>  2</b></p><p>  ISBN書名 作者名 圖書類別 出版單位 出版時間 價格 數(shù)量</p><p>  2

51、 2 2 2 2 2 2 2</p><p>  歡迎登錄圖書管系統(tǒng) ************************************</p><p>  * 1.添加圖書 2.刪除圖書 *</p><p>  * 3.修改圖書 4.查詢

52、圖書 *</p><p>  * 5.統(tǒng)計圖書 0.退出系統(tǒng) *</p><p>  ************************************</p><p><b>  請輸入您的選擇!</b></p><p><b>  2</b></p>

53、<p>  請輸入您要刪除的書本名</p><p><b>  2</b></p><p>  2 2 2 2 2 2 2 2</p><p>  確定要刪除該書嗎?(y/n)</p><p><b>  y</b>&

54、lt;/p><p><b>  該書已刪除!</b></p><p>  歡迎登錄圖書管系統(tǒng) ************************************</p><p>  * 1.添加圖書 2.刪除圖書 *</p><p>  * 3.修改圖書 4.查詢

55、圖書 *</p><p>  * 5.統(tǒng)計圖書 0.退出系統(tǒng) *</p><p>  ************************************</p><p><b>  請輸入您的選擇!</b></p><p><b>  0</b></p>

56、<p>  press any key to continue!</p><p><b>  七、附錄</b></p><p>  #include"stdio.h"</p><p>  #include"string.h"</p><p>  #include&quo

57、t;struct.h"</p><p>  #include"conio.h"</p><p>  struct library bookinf[30];</p><p><b>  int n;</b></p><p>  struct library{</p><p&

58、gt;  char ISBN[20];</p><p>  char name[30];</p><p>  char author[30];</p><p>  char vari[10];</p><p>  char pubplace[50];</p><p>  int pubtime;</p>

59、<p>  int price;</p><p><b>  int num;</b></p><p><b>  };//結(jié)構(gòu)體部分</b></p><p>  void main(){//主函數(shù)部分</p><p>  int b,flag=0;</p><p>

60、;  while(1){//菜單部分</p><p>  printf(" 歡迎登錄圖書管系統(tǒng) \n");</p><p>  printf("************************************\n");</p><p>  printf("* 1.添加圖書

61、 2.刪除圖書 *\n");</p><p>  printf("* 3.修改圖書 4.查詢圖書 *\n");</p><p>  printf("* 5.統(tǒng)計圖書 0.退出系統(tǒng) *\n");</p><p>  printf("*********

62、***************************\n");</p><p>  printf("請輸入你的選擇!\n");</p><p>  scanf("%d",&b);</p><p>  switch(b){</p><p>  case 1:add();break;//

63、選擇1,執(zhí)行添加操作</p><p>  case 2:del();break; //選擇2,執(zhí)行刪除操作</p><p>  case 3:modify();break; //選擇3,執(zhí)行修改操作</p><p>  case 4:search();break; //選擇4,執(zhí)行查詢操作</p><p>  case 5:count();b

64、reak; //選擇5,執(zhí)行統(tǒng)計操作</p><p>  case 0:flag=1;break; //選擇0,退出程序操作</p><p>  default:printf("您輸入的選擇錯誤!\n");//否則,打印該句</p><p><b>  }</b></p><p><b> 

65、 }</b></p><p><b>  }</b></p><p>  void add(){ /*添加函數(shù)*/</p><p><b>  int i;</b></p><p><b>  char x;</b>&

66、lt;/p><p>  printf("\n請輸入需要添加的書本書以及您要添加的書本數(shù)信息\n");</p><p>  scanf("%d",&n);//輸入要添加的書本數(shù)</p><p>  for(i=0;i<n;i++){//用循環(huán)添加書本信息</p><p>  printf(&qu

67、ot;ISBN:");</p><p>  scanf("%s",bookinf[i].ISBN);</p><p>  printf("書名:");</p><p>  scanf("%s",bookinf[i].name);</p><p>  printf("

68、;作者:");</p><p>  scanf("%s",bookinf[i].author);</p><p>  printf("圖書類別:");</p><p>  scanf("%s",bookinf[i].vari);</p><p>  printf("

69、;出版單位:");</p><p>  scanf("%s",bookinf[i].pubplace);</p><p>  printf("出版時間:");</p><p>  scanf("%d",&bookinf[i].pubtime);</p><p>  

70、printf("價錢:");</p><p>  scanf("%d",&bookinf[i].price);</p><p>  printf("數(shù)量:");</p><p>  scanf("%d",&bookinf[i].num);</p><p

71、><b>  }</b></p><p>  x=getch();//按任意鍵返回菜單</p><p>  save(); /*調(diào)用保存函數(shù)*/</p><p><b>  }</b></p><p>  void del(){//刪除函數(shù)</p><p>  int

72、 i=0,flag,t=0,tn=0;//tn為保存文件內(nèi)的書本數(shù)</p><p>  char a,bookname[20];</p><p><b>  FILE *fp;</b></p><p>  if((fp=fopen("bookinf.txt","r"))==NULL) //如果無法打開文件

73、 </p><p><b>  {</b></p><p>  printf("無法打開文件!\n"); </p><p>  return; </p><p><b>  }</b></p><p&g

74、t;  printf("\n請輸入您要刪除的書本名\n");</p><p>  scanf("%s",bookname);</p><p>  rewind(fp);</p><p>  while(!feof(fp))/*沒有結(jié)束時進行循環(huán)*/</p><p>  { fread(&b

75、ookinf[tn],sizeof(struct library),1,fp);tn++;</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  for(i=0;i<tn;i++)</p><p>  { if(strcmp(bookinf[i].name,b

76、ookname)==0)//如果輸入的書名與文件內(nèi)保存的書名相同</p><p><b>  {</b></p><p>  printf("%s %s %s %s %s %d %d %d\n",bookinf[i].ISBN,bookinf[i].name,bookinf[i].author,bookinf[i].vari,book

77、inf[i].pubplace,bookinf[i].pubtime,bookinf[i].price,bookinf[i].num);</p><p><b>  getch();</b></p><p>  flag=i;t=1;</p><p>  printf("確定要刪除該書嗎?(y/n) \n");</p

78、><p>  scanf("%s",&a);</p><p>  if(a == 'y')</p><p><b>  {</b></p><p>  for(flag;flag<tn;flag++)</p><p>  { strcpy(boo

79、kinf[flag].ISBN,bookinf[flag+1].ISBN); //將后一本書的ISBN復(fù)制給前一本書的ISBN</p><p>  strcpy(bookinf[flag].name,bookinf[flag+1].name); //將后一本書的書名復(fù)制給前一本書的書名</p><p>  strcpy(bookinf[flag].author,bookinf[flag+1

80、].author); //將后一本書的作者名復(fù)制給前一本書的作者名</p><p>  strcpy(bookinf[flag].vari,bookinf[flag+1].vari); //將后一本書的圖書類別復(fù)制給前一本書的圖書類別</p><p>  strcpy(bookinf[flag].pubplace,bookinf[flag+1].pubplace); //將后一本書的出版單

81、位復(fù)制給前一本書的出版單位</p><p>  bookinf[flag].pubtime=bookinf[flag+1].pubtime; //將后一本書的出版時間復(fù)制給前一本書的出版時間</p><p>  bookinf[flag].price=bookinf[flag+1].price; //將后一本書的價格復(fù)制給前一本書的價格</p><p>  book

82、inf[flag].num=bookinf[flag+1].num; //將后一本書的數(shù)量復(fù)制給前一本書的數(shù)量</p><p>  tn--;//刪除后書的數(shù)量減一</p><p><b>  }</b></p><p>  printf("\n該書已刪除!\n");break;</p><p>&l

83、t;b>  }</b></p><p><b>  }</b></p><p><b>  getch();</b></p><p><b>  }</b></p><p>  if(t!=1)//如果沒有找到要刪除的書</p><p>

84、;<b>  {</b></p><p>  printf("\n沒有找到該書,退出操作\n");</p><p><b>  }</b></p><p><b>  save();</b></p><p><b>  }</b><

85、;/p><p>  void search(){//查詢函數(shù)</p><p><b>  int i=0;</b></p><p>  FILE *fp;//文件打開</p><p>  struct library bookinf;</p><p>  char bookname[20];</

86、p><p>  if((fp=fopen("bookinf.txt","r"))==NULL) </p><p><b>  {</b></p><p>  printf("無法打開文件!\n"); </p><p>  return;

87、 </p><p><b>  }</b></p><p>  printf("\n請輸入您要查找的書名\n");</p><p>  scanf("%s",bookname);</p><p>  while(!feof(fp)) //循環(huán) 直到文件

88、尾部,函數(shù)值為真</p><p>  { fread(&bookinf,sizeof(struct library),1,fp); //從fp中讀入1個長度為sizeof(struct library)的數(shù)據(jù),存到bookinf[ ]中</p><p>  if(strcmp(bookinf.name,bookname)==0) /*比較輸入的書名和文件中保存的書名*/&l

89、t;/p><p>  {printf("ISBN 書名 作者名 圖書類別 出版單位 出版時間 價格 數(shù)量\n");</p><p>  printf("%s %s %s %s %s %d %d %d \n",bookinf.ISBN,bookinf.name,bookinf.author,</p><p&g

90、t;  bookinf.vari,bookinf.pubplace,bookinf.pubtime,bookinf.price,bookinf.num);</p><p>  i=1;break;}</p><p><b>  }</b></p><p>  if(i!=1)//如果沒有找到要查詢的書</p><p> 

91、 {printf("沒有找到您要找的書本\n");}</p><p>  printf("\n按任意鍵返回菜單\n");</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  void modify

92、(){//修改函數(shù)</p><p>  int i=0,n=0;</p><p>  char nbook[20];</p><p>  FILE *fp;//文件打開</p><p>  char bookname[20];</p><p>  printf("\n請輸入您要修改的書號\n");&

93、lt;/p><p>  scanf("%s",nbook);</p><p>  if((fp=fopen("bookinf.txt","r+"))==NULL) </p><p><b>  {</b></p><p>  printf("無法打開文件

94、!\n"); </p><p>  return; </p><p><b>  }</b></p><p>  while(!feof(fp)) /*沒有結(jié)束時進行循環(huán)*/</p><p>  { fread(&bookinf[n],si

95、zeof(struct library),1,fp);n++;</p><p><b>  }</b></p><p>  for(i=0;i<n;i++)</p><p><b>  { </b></p><p>  if(strcmp(bookinf[i].ISBN,nbook)==0)/

96、/如果輸入的nbook與文件內(nèi)保存的ISBN相同</p><p><b>  {</b></p><p>  printf("請輸入你要修改的信息\n");</p><p>  printf("ISBN:");</p><p>  scanf("%s",boo

97、kinf[i].ISBN);</p><p>  printf("書名:");</p><p>  scanf("%s",bookinf[i].name);</p><p>  printf("作者:");</p><p>  scanf("%s",bookinf

98、[i].author);</p><p>  printf("圖書類別:");</p><p>  scanf("%s",bookinf[i].vari);</p><p>  printf("出版單位:");</p><p>  scanf("%s",booki

99、nf[i].pubplace);</p><p>  printf("出版時間:");</p><p>  scanf("%d",&bookinf[i].pubtime);</p><p>  printf("價錢:");</p><p>  scanf("%d&q

100、uot;,&bookinf[i].price);</p><p>  printf("數(shù)量:");</p><p>  scanf("%d",&bookinf[i].num);</p><p>  printf("\n修改成功!\n");</p><p><b&

101、gt;  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(i==n)//如果沒找到要修改的書本</p><p>  {printf("沒有找到要修改的書本\n”);}</p><

102、p><b>  getch();</b></p><p><b>  save();</b></p><p><b>  }</b></p><p>  void count(){//統(tǒng)計函數(shù)</p><p>  int total=0,alprice=0,i,tn=0;

103、//先定義總數(shù)量 總價錢為0</p><p>  FILE *fp;//文件打開</p><p>  if((fp=fopen("bookinf.txt","r"))==NULL) </p><p><b>  {</b></p><p>  printf("無法打開文

104、件!\n"); </p><p>  return; </p><p><b>  }</b></p><p>  while(!feof(fp))</p><p>  { fread(&bookinf[tn],sizeof(struct

105、library),1,fp);tn++;</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  for(i=0;i<=tn;i++){</p><p>  total=total+bookinf[i].num;// 運用遞歸,新的總數(shù)和為上一次的總數(shù)值加上這一次的值

106、</p><p>  alprice=alprice+(bookinf[i].num)*(bookinf[i].price); //運用遞歸,新的總價錢為上一次的總價錢加上這一次的價錢</p><p><b>  } </b></p><p>  printf("圖書總冊書為%d 總金額數(shù)為%d\n",total,alpr

107、ice);</p><p>  printf("按任意鍵返回菜單\n");</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  void save() //保存函數(shù)</p><p><b

108、>  {</b></p><p>  FILE *fp; //文件打開 </p><p><b>  int i;</b></p><p>  if((fp=fopen("bookinf.txt","r+"))==NULL) //打開一個二進制文本文件</p><p

109、><b>  {</b></p><p>  printf("無法打開文件!\n"); </p><p>  return; </p><p><b>  }</b></p><p>  for(i=0;i<n

110、;i++) </p><p>  { if(fwrite(&bookinf[i],sizeof(struct library),1,fp)!=1)</p><p>  printf("文件寫入錯誤\n");</p><p><b>  }</b></p><p>  fclose(fp

111、); </p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  主函數(shù)流程圖</b></p><p><b>  添加函數(shù)流程圖</b></p><p>&l

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論