2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩29頁(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><b>  圖書(shū)館信息管理系統(tǒng)</b></p><p><b>  摘 要</b></p><p>  在現(xiàn)代化的圖書(shū)館中,圖書(shū)信息管理是一項(xiàng)必備的工作。相比于傳統(tǒng)的人力操作行為,使用現(xiàn)代化的管理工具例如專業(yè)的圖書(shū)館圖書(shū)管理軟件,能夠減少人力資源的損耗,加快工作的流程,縮短工作時(shí)間。在圖書(shū)館管理當(dāng)中,人工統(tǒng)計(jì)的速度慢,且容易出

2、現(xiàn)差錯(cuò)。本信息管理系統(tǒng)的自動(dòng)化加速了統(tǒng)計(jì)工作,提高管理效率。在本程序中,運(yùn)用了文件來(lái)進(jìn)行儲(chǔ)存,并有增加和修改已有信息的功能,本程序?qū)崿F(xiàn)了所有題目要求設(shè)計(jì)的設(shè)計(jì)要求。</p><p>  關(guān)鍵詞:文件,修改,儲(chǔ)存,添加,高效率</p><p><b>  目 錄 </b></p><p><b>  中文摘要Ⅰ</b>

3、</p><p><b>  1 題目要求1</b></p><p>  1.1 要求.1</p><p><b>  2 需求分析1</b></p><p><b>  3 總體設(shè)計(jì)1</b></p><p><b>  詳細(xì)

4、設(shè)計(jì)1</b></p><p><b>  4.1主函數(shù)2</b></p><p>  4.2各功能模塊設(shè)計(jì)5</p><p>  4.3 公共函數(shù)6</p><p>  5.運(yùn)行結(jié)果(附帶抓圖)7</p><p><b>  6.總結(jié)10</b>&l

5、t;/p><p>  附錄A 源碼14</p><p><b>  參考文獻(xiàn)29</b></p><p><b>  1 題目要求</b></p><p><b>  1.1 要求</b></p><p>  圖書(shū)信息包括:登錄號(hào)、書(shū)名、作者名、分

6、類號(hào)、出版單位、出版時(shí)間、價(jià)格等。試設(shè)計(jì)一圖書(shū)館的圖書(shū)信息管理系統(tǒng),使之能提供以下功能:</p><p>  (1) 系統(tǒng)以菜單方式工作。</p><p>  (2) 圖書(shū)信息錄入功能(圖書(shū)信息用文件保存)。</p><p>  (3) 圖書(shū)信息瀏覽功能。</p><p>  (4) 圖書(shū)信息查詢功能。</p><p>

7、;  (5) 圖書(shū)信息修改功能。</p><p><b>  2 需求分析</b></p><p>  本程序?qū)⒂玫轿募到y(tǒng),date.txt文件內(nèi)容作儲(chǔ)存的載體。本程序運(yùn)行后首先將圖書(shū)信息以文件系統(tǒng)讀取并保存到程序的結(jié)構(gòu)體數(shù)組當(dāng)中,然后提供文件輸入、修改、添加、查詢、瀏覽的操作;另外還提供鍵盤式選擇菜單實(shí)現(xiàn)功能選擇。</p><p><

8、;b>  總體設(shè)計(jì)</b></p><p>  根據(jù)上面的分析,可以將這個(gè)系統(tǒng)分為如下五大模塊:enter圖書(shū)信息輸入模塊、modify圖書(shū)信息修改模塊、add圖書(shū)信息添加模塊、browse圖書(shū)信息瀏覽模塊、search圖書(shū)信息搜索模塊。而各個(gè)模塊之間由menu菜單模塊來(lái)做連接,最后由main主函數(shù)領(lǐng)導(dǎo)。</p><p><b>  4 詳細(xì)設(shè)計(jì)</b&

9、gt;</p><p><b>  主函數(shù)</b></p><p><b>  【數(shù)據(jù)結(jié)構(gòu)】</b></p><p>  原始數(shù)據(jù)有圖書(shū)信息的圖書(shū)序號(hào)、書(shū)名、作者名、價(jià)格、出版單位、出版時(shí)間、分類號(hào)。所以定義一個(gè)全局結(jié)構(gòu)體數(shù)組book用于保存原始數(shù)據(jù)。然后定義全局變量n保存圖書(shū)的數(shù)目。在結(jié)構(gòu)體定義中,除了價(jià)格使用浮點(diǎn)型變量

10、來(lái)定義之外,其他的都是用字符型變量來(lái)定義。所有的信息均以數(shù)組保存。</p><p><b>  【數(shù)據(jù)結(jié)構(gòu)代碼】</b></p><p>  struct book</p><p><b>  {</b></p><p>  char num[10];//序號(hào) </p><p&g

11、t;  char name[20];//書(shū)名 </p><p>  char writter[20];//作者名 </p><p>  float price;//價(jià)格 </p><p>  char indate[15];//出版單位 </p><p>  char out[15];//出版時(shí)間 </p><p> 

12、 char outdate[15];//分類號(hào) </p><p><b>  }equ[N];</b></p><p>  函數(shù)通過(guò)調(diào)用load()讀取文件數(shù)據(jù),然后用全局變量n來(lái)保存文件返回的書(shū)本的數(shù)量,然后menu()顯示主菜單。</p><p><b>  【程序】</b></p><p> 

13、 int main()// --------------主函數(shù) </p><p>  { void menu();//聲明menu函數(shù)</p><p><b>  menu(); </b></p><p><b>  return 0;</b></p><p>  system("p

14、ause"); //系統(tǒng)暫停</p><p><b>  }</b></p><p>  4.1.1 load ()讀取文件數(shù)據(jù)</p><p>  load()函數(shù)從data.txt文件讀取數(shù)據(jù),將數(shù)據(jù)保存到程序全局變量n中。</p><p><b>  【程序】</b></

15、p><p>  int load()//************************讀取文件后返回n </p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p><b>  int i;</b></p><

16、;p>  if((fp=fopen("data.txt","rb"))==NULL) //用只讀方式打開(kāi)data.txt文件</p><p><b>  {</b></p><p>  printf("找不到文件\n");</p><p><b>  }</b&g

17、t;</p><p>  for(i=0;!feof(fp);i++){</p><p>  fread(&equ[i],sizeof(struct book),1,fp);}</p><p>  fclose(fp);</p><p>  return (i-1);</p><p><b>  }&

18、lt;/b></p><p>  4.1.2 menu()顯示主菜單</p><p>  向用戶顯示菜單,讓用戶選項(xiàng)進(jìn)入相應(yīng)模塊可視化操作。</p><p><b>  【程序】</b></p><p>  void menu()// 菜單函數(shù) </p><p>  { void

19、 load(); </p><p>  void enter();</p><p>  void modify();</p><p>  void add();</p><p>  void browse();</p><p>  void search();</p><p>  void a

20、uthor();</p><p>  int n,w1; //定義整型變量n保存用戶輸入的選擇序號(hào)</p><p><b>  do</b></p><p><b>  {</b></p><p>  puts("******************圖書(shū)管理系統(tǒng)-菜單**********

21、*************\n");</p><p>  puts("\t\t\t\t1.圖書(shū)信息-錄入\n");</p><p>  puts("\t\t\t\t2.圖書(shū)信息-修改\n");</p><p>  puts("\t\t\t\t3.圖書(shū)信息-添加\n");</p>&l

22、t;p>  puts("\t\t\t\t4.圖書(shū)信息-瀏覽\n");</p><p>  puts("\t\t\t\t5.圖書(shū)信息-查詢\n");</p><p>  puts("\t\t\t\t6.關(guān)于程序作者\(yùn)n");</p><p>  puts("\t\t\t\t7.退出\n&quo

23、t;);</p><p>  puts("************************************************************\n");</p><p>  printf("選擇數(shù)字(1-7):[ ]\b\b");</p><p>  scanf("%d",&n)

24、;</p><p>  if(n<1||n>7)// 校檢用戶輸入序號(hào)</p><p>  { w1=1;getchar();}</p><p>  else w1=0;</p><p><b>  }</b></p><p>  while(w1==1);</p>&

25、lt;p>  switch(n) //多分支選擇語(yǔ)句</p><p>  { case 1:enter();break;// 信息錄入 </p><p>  case 2:modify();break;// 信息修改 </p><p>  case 3:add();break;//添加 </p><p>  case 4:

26、browse();break;//瀏覽 </p><p>  case 5:search();break;//查詢 </p><p>  case 6:author();break;// 作者信息 </p><p>  case 7:exit(0);</p><p><b>  }</b></p><

27、p><b>  }</b></p><p><b>  各功能模塊設(shè)計(jì)</b></p><p><b>  圖書(shū)信息的錄入</b></p><p>  此模塊用于用戶輸入圖書(shū)的相關(guān)信息,包括序號(hào)、書(shū)名、作者名、價(jià)格、出版單位、出版時(shí)間、分類號(hào)。</p><p><b

28、>  【程序】</b></p><p>  void enter()// 數(shù)據(jù)的輸入 </p><p>  { int i,n;</p><p>  void save(int i); //聲明save保存函數(shù)</p><p><b>  FILE *fp;</b></p>

29、<p>  fp=fopen("data.txt","rb");</p><p>  printf("添加多少本圖書(shū)呢?: 本\b\b");</p><p>  scanf("%d",&n);</p><p>  printf("\n\n");&l

30、t;/p><p>  for(i=0;i<n;i++)</p><p>  { printf("現(xiàn)在輸入第%d個(gè)數(shù)據(jù)\n\n",i+1);</p><p>  printf("輸入序號(hào)\n");</p><p>  scanf("%s",equ[i].n

31、um);</p><p>  printf("輸入書(shū)名\n");</p><p>  scanf("%s",equ[i].name);</p><p>  printf("輸入作者名\n");</p><p>  scanf("%s",equ[i].writter

32、);</p><p>  printf("輸入圖書(shū)價(jià)格\n");</p><p>  scanf("%f",&equ[i].price);</p><p>  printf("輸入出版單位\n");</p><p>  scanf("%s",equ[i].

33、indate);</p><p>  printf("輸入出版時(shí)間\n");</p><p>  scanf("%s",equ[i].out);</p><p>  printf("輸入分類號(hào)\n");</p><p>  scanf("%s",equ[i].ou

34、tdate); </p><p><b>  }</b></p><p>  if ((fp=fopen("data.txt","wb"))==NULL)//以只寫方式打開(kāi)data.txt文件</p><p>  { prin

35、tf("cannot open file~");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  for(i=0;i<n;i++)</p><p>  if(fwrite(&equ[i],sizeof(

36、struct book),1,fp)!=1)//如果不能寫入就報(bào)錯(cuò)</p><p>  printf("file write error~");</p><p>  fclose(fp);</p><p>  printf_back();//返回菜單選項(xiàng)</p><p><b>  }</b><

37、/p><p>  對(duì)儲(chǔ)存的信息進(jìn)行修改</p><p>  讓用戶輸入要修改的信息選項(xiàng),如作者名,輸入新的數(shù)據(jù)將原值替代掉,即完成了修改。</p><p><b>  【程序】</b></p><p>  void modify() //modify 修改數(shù)據(jù)用的 </p><p>  

38、{ struct book e;</p><p>  int i,n,w0=1,w1,w2=0,k;</p><p>  void printf_one(int i);</p><p>  int modify_data(int i,int j); //聲明一個(gè)修改的子函數(shù),到時(shí)候會(huì)調(diào)用。</p><p>  void menu

39、();</p><p>  void save(int n);</p><p>  int load(); </p><p><b>  n=load();</b></p><p><b>  do{</b></p><p><b>  k=-1;</b>

40、;</p><p>  for(i=0;i<n;i++)</p><p>  {if((i!=0)&&(i%10==0))</p><p>  { printf("記住你要改的序號(hào),任意鍵繼續(xù)..\n");</p><p>  getchar();</p><p>  p

41、uts("\n\n");</p><p><b>  }</b></p><p>  printf_one(i);}</p><p><b>  do</b></p><p>  {printf("\n輸入你要修改的序號(hào):");</p><

42、p>  scanf("%s",e.num);</p><p>  for(i=0;i<n;i++)</p><p>  if(strcmp(e.num,equ[i].num)==0)</p><p>  {k=i;e=equ[i];}</p><p>  if(k==-1) printf("\n\n不

43、存在,請(qǐng)重新輸入");</p><p>  }while(k==-1);</p><p>  printf_one(k);</p><p>  w1=modify_data(k,n); //跳轉(zhuǎn)到 修改的子函數(shù)- modify_data()</p><p>  if(w1==1) // W1=1表示修改成功</p>

44、<p>  {printf("\n恭喜~還想再次修改嗎?\n\n1).是\t2).返回并保存\t[ ]\b\b");</p><p>  scanf("%d",&w0);</p><p><b>  w2=1;}</b></p><p>  else{w0=0;if(w2==1)eq

45、u[k]=e;}</p><p>  if(w0!=1&&w2==1)</p><p>  save(n);// 調(diào)用保存函數(shù)保存</p><p><b>  }</b></p><p>  while(w0==1);</p><p><b>  menu();&l

46、t;/b></p><p><b>  } </b></p><p>  int modify_data(int i,int n) // 修改數(shù)據(jù)的----- 子函數(shù) </p><p><b>  {</b></p><p>  void printf_one(int i);</p

47、><p><b>  int c,w1;</b></p><p><b>  do{</b></p><p>  puts("請(qǐng)選擇要修改的類型=>\n\n 1).序號(hào) 2).書(shū)名 3).作者名 4).價(jià)格 \n\n5).出版單位 6).出版時(shí)間 7).分類號(hào)\n");<

48、;/p><p>  printf("輸入編號(hào):"); </p><p>  scanf("%d",&c);</p><p>  if(c>7||c<1)</p><p>  {puts("\n選擇錯(cuò)誤喲,重新輸入~\n\n");</p><p>

49、;  getchar();}</p><p><b>  }</b></p><p>  while(c>7||c<1); </p><p><b>  do{</b></p><p><b>  switch(c)</b></p><p>

50、  { case 1: printf("新的序號(hào):");scanf("%s",equ[i].num);break;</p><p>  case 2: printf("新的書(shū)名:");scanf("%s",equ[i].name);break;</p><p>  case 3: printf(&q

51、uot;新的作者名:");scanf("%s",equ[i].writter);break; </p><p>  case 4: printf("新的價(jià)格:");scanf("%f",&equ[i].price);break; </p><p>  case 5: printf("

52、;新的出版單位:");scanf("%s",equ[i].indate);break; </p><p>  case 6: printf("新的出版時(shí)間:");scanf("%s",equ[i].out);break;</p><p>  case 7: printf("新的分類號(hào):");sc

53、anf("%s",equ[i].outdate);break;</p><p><b>  }</b></p><p>  printf_one(i);</p><p>  printf("確定?\n\n\t1).確定 2).不,重新修改 3).退出(不保存) [ ]\b\b");</p&g

54、t;<p>  scanf("%d",&w1);</p><p><b>  }</b></p><p>  while(w1==2);</p><p>  return(w1);</p><p><b>  }</b></p><p&g

55、t;<b>  圖書(shū)信息的添加</b></p><p>  在原有信息的基礎(chǔ)上添加新的信息,打開(kāi)文件后,把指針移到數(shù)據(jù)的末尾處然后寫入新的數(shù)據(jù)。</p><p><b>  【程序】</b></p><p>  void add() //--------------添加書(shū)本函數(shù) </p><p&

56、gt;<b>  { </b></p><p>  void printf_back();</p><p>  int load();</p><p>  void input(int i); //聲明輸入函數(shù)</p><p>  int i,n,m,k;</p><p><b>

57、;  FILE *fp;</b></p><p><b>  n=load();</b></p><p>  printf("你想添加多少本書(shū)呢?(0-%d)?: 本\b\b",N-1-n);</p><p>  scanf("%d",&m);</p><p>

58、;<b>  k=m+n;</b></p><p>  for(i=0;i<m;i++)</p><p><b>  {</b></p><p>  printf("\n輸入第%d本書(shū)的數(shù)據(jù)\n\n",i+1);</p><p>  input(i);}</p>

59、<p>  if((fp=fopen("data.txt","ab"))==NULL) //以追加方式打開(kāi)文件</p><p>  {printf("找不到文件\n");}</p><p>  fseek(fp,0,2);</p><p>  for(i=0;i<m;i++)</

60、p><p>  fwrite(&equ[i],sizeof(struct book),1,fp);</p><p>  fclose(fp); </p><p>  printf_back();</p><p><b>  }</b></p><p><b>  圖書(shū)信息數(shù)據(jù)的瀏覽&

61、lt;/b></p><p>  主要通過(guò)調(diào)用printf_one()函數(shù)完成,然后輸出到屏幕。</p><p><b>  【程序】</b></p><p>  void browse()//---------- 瀏覽函數(shù) </p><p>  { void printf_back();</p&g

62、t;<p>  void printf_one(int i);</p><p>  void menu();</p><p>  int load();</p><p><b>  int i,n;</b></p><p><b>  n=load();</b></p>

63、<p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  if(i%10==0)</p><p>  puts("\n\n");</p><p>  printf_one(i);</p><p><b>

64、  }</b></p><p>  printf("\n\t *******************有%d個(gè)記錄****************\n\n",n);</p><p>  printf("任意鍵繼續(xù)~\n");</p><p>  getchar();getchar();<

65、;/p><p><b>  menu(); </b></p><p><b>  }</b></p><p>  4.2.5 圖書(shū)信息的查詢</p><p>  主要根據(jù)輸入要查詢的信息來(lái)和文件中的數(shù)據(jù)對(duì)照,如果相等,則輸出,顯示查找到的數(shù)據(jù)。否則顯示查找不到。</p><p>

66、<b>  【程序】</b></p><p>  void search() //-----搜索總函數(shù) </p><p><b>  {</b></p><p><b>  int n,w1;</b></p><p>  void num_search(); //聲明

67、序號(hào)查找函數(shù)</p><p>  void writter_search(); //聲明 作者名查找函數(shù)</p><p>  void name_search(); //聲明 書(shū)名查找函數(shù)</p><p>  void price_search(); //聲明 價(jià)格查找函數(shù)</p><p>  void indate_search();

68、 //聲明 出版時(shí)間查找函數(shù)</p><p>  void out_search(); //聲明 出版單位查找函數(shù)</p><p>  void outdate_search(); //聲明 分類號(hào)查找函數(shù)</p><p><b>  do</b></p><p><b>  {</b><

69、;/p><p>  printf("*************************搜索圖書(shū)信息選擇項(xiàng)*******************\n");</p><p>  printf("\t\t\t 1.序號(hào)\n");</p><p>  printf("\t\t\t

70、 2.書(shū)名\n");</p><p>  printf("\t\t\t 3.作者名\n");</p><p>  printf("\t\t\t 4.價(jià)格\n"); </p><p>  printf

71、("\t\t\t 5.出版單位\n");</p><p>  printf("\t\t\t 6.出版時(shí)間\n");</p><p>  printf("\t\t\t 7.分類號(hào)\n");</p><p> 

72、 printf("\t\t\t 8.退出\n");</p><p>  printf("************************************************************\n");</p><p>  printf("請(qǐng)輸入號(hào)碼[ ]\b\b");</p

73、><p>  scanf("%d",&n);</p><p>  if(n<1||n>8)</p><p><b>  {w1=1;</b></p><p>  getchar();</p><p><b>  }</b></p>

74、;<p>  else w1=0;</p><p><b>  }</b></p><p>  while(w1==1);</p><p><b>  switch(n)</b></p><p>  { case 1:num_search();break;</p>&

75、lt;p>  case 2:name_search();break;</p><p>  case 3:writter_search();break;</p><p>  case 4:price_search();break;</p><p>  case 5:indate_search();break;</p><p>  case

76、 6:out_search();break;</p><p>  case 7:outdate_search();break;</p><p>  case 8:menu();</p><p><b>  }}</b></p><p>  4.2.6 顯示本程序作者。</p><p>  voi

77、d author()//程序作者信息 </p><p>  { printf(" \n本程序作者:楊成 班級(jí):193092-12 學(xué)號(hào):20091001488 謝謝支持~\n\n\n ****************按任意鍵返回~*************");</p><p>  getchar();</p>

78、<p>  getchar(); </p><p>  menu(); </p><p><b>  }</b></p><p><b>  4.3 公共函數(shù)</b></p><p>  4.3.1 printf_one()用來(lái)顯示文件中的數(shù)據(jù)。</p><p>

79、;<b>  【程序】</b></p><p>  void printf_one(int i)//-----------下面這句是用作瀏覽時(shí)輸出的 </p><p>  { printf("*************************第%d本書(shū)信息*****************\n",i+1);</p><

80、;p>  printf("序號(hào):%s",equ[i].num);</p><p>  printf(" 書(shū)名:%s",equ[i].name);</p><p>  printf(" 作者名:%s",equ[i].writter);</p><p>  printf(" 價(jià)格:%

81、f\n\n",equ[i].price);</p><p>  printf("出版單位:%s",equ[i].indate);</p><p>  printf(" 出版時(shí)間:%s",equ[i].out);</p><p>  printf(" 分類號(hào):%s\n\n",equ[

82、i].outdate);</p><p>  printf("******************************************************\n\n");</p><p><b>  } </b></p><p>  4.3.2 save()函數(shù)用來(lái)保存數(shù)據(jù)。</p><

83、;p><b>  【程序】</b></p><p>  void save(int n) //文件保存函數(shù),用來(lái)保存數(shù)據(jù)進(jìn)一個(gè)2進(jìn)制文本文件 </p><p>  { int i;</p><p><b>  FILE *fp;</b></p><p>  if ((fp=fopen(

84、"data.txt","wb"))==NULL){printf("cannot open file~");return ;}</p><p>  for(i=0;i<n;i++)</p><p>  if(fwrite(&equ[i],sizeof(struct book),1,fp)!=1)</p>

85、<p>  printf("file write error~");</p><p>  fclose(fp);</p><p><b>  }</b></p><p>  4.3.3 printf_back()函數(shù)用來(lái)操作成功吼返回菜單時(shí)顯示。</p><p><b>  【程序

86、】</b></p><p>  void printf_back() </p><p>  { void menu();</p><p>  void browse();</p><p><b>  int w;</b></p><p>  printf("\n\

87、n\n\n");</p><p>  printf("接下來(lái)您想作甚?\n\n1).瀏覽操作后全部數(shù)據(jù)\t\t2).返回主菜單: [ ]\b\b");</p><p>  scanf("%d",&w);</p><p><b>  switch(w)</b></p>&l

88、t;p>  { case 1:browse();break;</p><p>  case 2:menu();break; </p><p>  default:printf("\n選擇錯(cuò)誤噢~請(qǐng)?jiān)俅芜x擇 !\n\n");</p><p><b>  }</b></p><p>  

89、printf_back();}}</p><p>  5 運(yùn)行結(jié)果(附帶抓圖)</p><p>  程序運(yùn)行主界面如下;</p><p>  選擇錄入后運(yùn)行結(jié)果;</p><p>  選擇3圖書(shū)信息-添加運(yùn)行后:</p><p><b>  添加成功后:</b></p><

90、p>  選擇瀏覽后的運(yùn)行結(jié)果:</p><p>  選擇查詢后運(yùn)行結(jié)果:主界面</p><p><b>  成功搜索后界面:</b></p><p>  最后,選擇6關(guān)于程序作者:</p><p><b>  6 總結(jié)</b></p><p>  通過(guò)這次圖書(shū)管理系

91、統(tǒng)C程序設(shè)計(jì),不但使我我掌握了模塊化設(shè)計(jì)方法,還加深了對(duì)結(jié)構(gòu)體和文件這兩種數(shù)據(jù)結(jié)構(gòu)的使用,同時(shí)掌握了文件的輸入輸出,數(shù)據(jù)的搜索等功能的設(shè)計(jì)與實(shí)現(xiàn)。除此之外,我能夠深入的理解結(jié)構(gòu)化程序設(shè)計(jì)思想,熟練地了運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)方法,提高了運(yùn)用C語(yǔ)言進(jìn)行程序設(shè)計(jì)的能力。</p><p><b>  附錄 A 源碼</b></p><p>  #include <stdi

92、o.h></p><p>  #include <string.h></p><p>  #include <stdlib.h></p><p>  #define N 100</p><p>  struct book</p><p>  { char num[10];//序號(hào) &

93、lt;/p><p>  char name[20];//書(shū)名 </p><p>  char writter[20];//作者名 </p><p>  float price;//價(jià)格 </p><p>  char indate[15];//出版單位 </p><p>  char out[15];//出版時(shí)間 <

94、/p><p>  char outdate[15];//分類號(hào) </p><p><b>  }equ[N];</b></p><p>  //********************************以下是搜索函數(shù)***************************** </p><p>  void num_se

95、arch()//搜索---序號(hào) </p><p>  { void printf_back_search();</p><p>  int i,n,c=0;</p><p>  int load();</p><p>  char a[15];</p><p>  void printf_one(int i);&l

96、t;/p><p>  void printf_back();</p><p>  void search();</p><p><b>  n=load();</b></p><p>  printf("請(qǐng)輸入序號(hào)\n");</p><p>  scanf("%s&quo

97、t;,a);</p><p>  for(i=0;i<n;i++)</p><p>  { if(strcmp(equ[i].num,a)==0)</p><p><b>  { c=1;</b></p><p>  printf_one(i);</p><p>  printf_bac

98、k_search(); }</p><p><b>  } </b></p><p>  switch(c){case 0:printf("對(duì)不起,該序號(hào)不存在,將返回重新搜索\n\n");break;</p><p>  default:printf("\n"); }</p><

99、p>  getchar();</p><p>  search();}</p><p>  void writter_search()//作者名-搜索 </p><p>  { int i,n,c=0;</p><p>  char a[20];</p><p>  void printf_back_sear

100、ch();</p><p>  void printf_one(int i);</p><p>  void printf_back();</p><p>  void search();</p><p>  int load();</p><p><b>  n=load();</b></

101、p><p>  printf("請(qǐng)輸入作者名\n");</p><p>  scanf("%s",a);</p><p>  for(i=0;i<n;i++)</p><p>  { if(strcmp(equ[i].writter,a)==0)</p><p><b

102、>  { c=1;</b></p><p>  printf_one(i);</p><p>  printf_back_search(); }</p><p><b>  }</b></p><p>  switch(c){case 0:printf("對(duì)不起,該序號(hào)不存在,將返回重新搜

103、索\n\n");break;</p><p>  default:printf("\n"); }</p><p>  getchar(); </p><p>  search();}</p><p>  void name_search()//搜索-----書(shū)名 </p><p>  {

104、 int load();</p><p>  void printf_back_search();</p><p>  void printf_one( int i);</p><p>  void printf_back();</p><p>  void search();</p><p>  int i,n,

105、c=0;</p><p>  char a[20];</p><p><b>  n=load();</b></p><p>  printf("請(qǐng)輸入書(shū)名\n");</p><p>  scanf("%s",a);</p><p>  for(i=0;i&

106、lt;n;i++)</p><p>  {if(strcmp(equ[i].name,a)==0)</p><p><b>  { c=1;</b></p><p>  printf_one(i);</p><p>  printf_back_search();</p><p><b&g

107、t;  }</b></p><p><b>  }</b></p><p>  switch(c){case 0:printf("對(duì)不起,該序號(hào)不存在,將返回重新搜索\n\n");break;</p><p>  default:printf("\n");</p><p&g

108、t;<b>  }</b></p><p>  getchar(); </p><p>  search();}</p><p>  void out_search()//出版單位--------------搜索 </p><p>  {int load();</p><p>  void pri

109、ntf_back_search();</p><p>  void printf_one(int i);</p><p>  int i,c=0,n;</p><p>  char a[15];</p><p>  void search();</p><p>  void printf_back();</p&g

110、t;<p><b>  n=load();</b></p><p>  printf("請(qǐng)輸入出版單位\n");</p><p>  scanf("%s",a);</p><p>  for(i=0;i<n;i++)</p><p>  {if(strcmp(e

111、qu[i].indate,a)==0)</p><p><b>  { c=1;</b></p><p>  printf_one(i);</p><p>  printf_back_search();</p><p><b>  }</b></p><p><b&g

112、t;  }</b></p><p>  switch(c){case 0:printf("對(duì)不起,該序號(hào)不存在,將返回重新搜索\n\n");break;</p><p>  default:printf("\n");</p><p><b>  }</b></p><p&g

113、t;  getchar(); </p><p>  search();}</p><p>  void indate_search()//出版時(shí)間---搜索 </p><p>  {int i,n,c=0;</p><p>  char a[20];</p><p>  void printf_back_sear

114、ch();</p><p>  void printf_one(int i);</p><p>  void printf_back();</p><p>  void search();</p><p>  int load();</p><p><b>  n=load();</b></

115、p><p>  printf("請(qǐng)輸入出版時(shí)間\n");</p><p>  scanf("%s",a);</p><p>  for(i=0;i<n;i++)</p><p>  { if(strcmp(equ[i].out,a)==0)</p><p><b&g

116、t;  {c=1;</b></p><p>  printf_one(i);</p><p>  printf_back_search(); }</p><p><b>  }</b></p><p>  switch(c){case 0:printf("對(duì)不起,該序號(hào)不存在,將返回重新搜索\n\n

117、");break;</p><p>  default:printf("\n");</p><p><b>  }</b></p><p>  getchar(); </p><p>  search();}</p><p>  void outdate_search

118、()//分類號(hào)----搜索 </p><p>  { int i,n,c=0;</p><p>  char a[15];</p><p>  void printf_back_search();</p><p>  void printf_one(int i);</p><p>  void printf_ba

119、ck();</p><p>  void search();</p><p>  int load();</p><p><b>  n=load();</b></p><p>  printf("請(qǐng)輸入分類號(hào)\n");</p><p>  scanf("%s&quo

120、t;,a);</p><p>  for(i=0;i<n;i++)</p><p>  {if(strcmp(equ[i].outdate,a)==0)</p><p><b>  {c=1;</b></p><p>  printf_one(i);</p><p>  printf_bac

121、k_search();</p><p><b>  }}</b></p><p>  switch(c){case 0:printf("對(duì)不起,該序號(hào)不存在,將返回重新搜索\n\n");break;</p><p>  default:printf("\n");</p><p>&

122、lt;b>  }</b></p><p>  getchar(); </p><p>  search();}</p><p>  void price_search()//價(jià)格 -----搜索 </p><p>  {int i,n,c=0;</p><p><b>  float a;&

123、lt;/b></p><p>  void printf_back_search();</p><p>  void printf_one(int i);</p><p>  void printf_back();</p><p>  void search();</p><p>  int load();<

124、;/p><p><b>  n=load();</b></p><p>  printf("請(qǐng)輸入設(shè)備價(jià)格\n");</p><p>  scanf("%f",&a);</p><p>  for(i=0;i<n;i++)</p><p>  {i

125、f(equ[i].price==a)</p><p><b>  {c=1;</b></p><p>  printf_one(i);</p><p>  printf_back_search();}}</p><p>  switch(c){case 0:printf("對(duì)不起,該序號(hào)不存在,將返回重新搜索\

126、n\n");break;</p><p>  default:printf("\n");}</p><p>  getchar();</p><p>  search();}</p><p>  //***********************************搜索函數(shù)到此結(jié)束**************

127、********* </p><p>  int modify_data(int i,int n) // 修改數(shù)據(jù)的-----子函數(shù) </p><p>  {void printf_one(int i);</p><p><b>  int c,w1;</b></p><p><b>  do</b&

128、gt;</p><p>  {puts("請(qǐng)選擇要修改的類型=>\n\n 1).序號(hào) 2).書(shū)名 3).作者名 4).價(jià)格 \n\n5).出版單位 6).出版時(shí)間 7).分類號(hào)\n");</p><p>  printf("輸入編號(hào):"); </p><p>  scanf("%d&q

129、uot;,&c);</p><p>  if(c>7||c<1)</p><p>  {puts("\n選擇錯(cuò)誤喲,重新輸入~\n\n");</p><p>  getchar();}}</p><p>  while(c>7||c<1);//------------------------

130、---注意 C的取值 </p><p><b>  do{</b></p><p><b>  switch(c)</b></p><p>  { case 1: printf("新的序號(hào):");scanf("%s",equ[i].num);break;</p&g

131、t;<p>  case 2: printf("新的書(shū)名:");scanf("%s",equ[i].name);break;</p><p>  case 3: printf("新的作者名:");scanf("%s",equ[i].writter);break; </p><p>  ca

132、se 4: printf("新的價(jià)格:");scanf("%f",&equ[i].price);break; </p><p>  case 5: printf("新的出版單位:");scanf("%s",equ[i].indate);break; </p><p>  case 6

133、: printf("新的出版時(shí)間:");scanf("%s",equ[i].out);break;</p><p>  case 7: printf("新的分類號(hào):");scanf("%s",equ[i].outdate);break;</p><p><b>  }</b></

134、p><p>  printf_one(i);</p><p>  printf("確定?\n\n\t1).確定 2).不,重新修改 3).退出(不保存) [ ]\b\b");</p><p>  scanf("%d",&w1);}</p><p>  while(w1==2);</p&

135、gt;<p>  return(w1);}</p><p>  int load()//************************讀取文件后返回n </p><p>  { FILE *fp;</p><p><b>  int i;</b></p><p>  if((fp=fopen(&qu

136、ot;data.txt","rb"))==NULL)</p><p>  {printf("找不到文件\n");}</p><p>  for(i=0;!feof(fp);i++){fread(&equ[i],sizeof(struct book),1,fp);}</p><p>  fclose(fp);&

137、lt;/p><p>  return (i-1);}</p><p>  int main()// --------------主函數(shù)在這 </p><p>  { void menu();</p><p><b>  menu();</b></p><p><b>  return

138、0;</b></p><p>  system("pause");}</p><p>  void menu()// 菜單函數(shù) </p><p>  { void losd();</p><p>  void enter();</p><p>  void modify();&

139、lt;/p><p>  void add();</p><p>  void browse();</p><p>  void search();</p><p>  void order();</p><p><b>  int n,w1;</b></p><p><b

140、>  do</b></p><p><b>  {</b></p><p>  puts("**********************圖書(shū)管理系統(tǒng)-菜單***************************\n");</p><p>  puts("\t\t\t\t1.圖書(shū)信息-錄入\n&quo

141、t;);</p><p>  puts("\t\t\t\t2.圖書(shū)信息-修改\n");</p><p>  puts("\t\t\t\t3.圖書(shū)信息-添加\n");</p><p>  puts("\t\t\t\t4.圖書(shū)信息-瀏覽\n");</p><p>  puts("

142、;\t\t\t\t5.圖書(shū)信息-查詢\n");</p><p>  puts("\t\t\t\t6.關(guān)于程序作者\(yùn)n");</p><p>  puts("\t\t\t\t7.退出\n");</p><p>  puts("******************************************

溫馨提示

  • 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)論