2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩14頁(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> 任務(wù)要求:設(shè)計(jì)一圖書信息管理系統(tǒng),使之能提供以下功能:系統(tǒng)以菜單方式工作圖書信息錄入功能(圖書信息用文件保存)——輸入圖書信息瀏覽功能——輸出圖書信息查詢功能——算法查詢方式按書名查詢按作者查詢5.圖書信息的刪除與修改(可選項(xiàng))</p><p> 內(nèi)容摘要:本系統(tǒng)以菜單方式工作,操作界面簡(jiǎn)潔大方、美觀實(shí)用,詳細(xì)收錄圖書信息,總共可以實(shí)現(xiàn)九項(xiàng)功能,具體可以實(shí)現(xiàn)瀏覽書目、錄入、刪除、保存、清空、查

2、詢圖書、退出系統(tǒng)九項(xiàng)功能,其中查詢功能可以通過三種方式實(shí)現(xiàn):按編號(hào)、按書名、按作者名。</p><p> 教師評(píng)語(yǔ):成績(jī) 簽名: 日期: </p><p><b>  課程設(shè)計(jì)報(bào)告書</b></p><p><b>  圖書信息管理系統(tǒng)</b></p&

3、gt;<p><b>  班 級(jí): </b></p><p><b>  學(xué) 號(hào): </b></p><p><b>  姓 名:</b></p><p><b>  指導(dǎo)教師:</b></p><p><b> 

4、 2013年7月5日</b></p><p><b>  一 設(shè)計(jì)思想</b></p><p>  操作系統(tǒng)界面應(yīng)該簡(jiǎn)潔、大方、美觀,操作系統(tǒng)實(shí)用性強(qiáng)。打開系統(tǒng)后,系統(tǒng)菜單居中,進(jìn)行操作后,操作結(jié)果顯示在界面的左端,并再次出現(xiàn)系統(tǒng)菜單,繼續(xù)進(jìn)行操作。錄入的圖書信息將會(huì)以文本文檔的格式儲(chǔ)存在相應(yīng)的文件夾下,每次操作結(jié)束后,都會(huì)保留當(dāng)前最新信息,從而保證系統(tǒng)的

5、實(shí)用性。</p><p>  二 系統(tǒng)完成功能及框圖</p><p>  系統(tǒng)完成功能:用戶根據(jù)功能輸入相應(yīng)的編號(hào),按回車鍵進(jìn)入功能選項(xiàng),根據(jù)提示完成操作。 </p><p><b>  三 核心算法及說(shuō)明</b></p><p>  1. 結(jié)構(gòu)體數(shù)據(jù)類型定義</p><p>  struct b

6、k_node{</p><p>  char id[16];</p><p>  char name[32];</p><p>  char author[16];</p><p>  char press[32];</p><p>  char date[16];</p><p>  floa

7、t price;</p><p>  n_ptr next;</p><p><b>  };</b></p><p><b>  2.函數(shù)定義</b></p><p>  n_ptr clean_list(n_ptr list);</p><p>  n_ptr creat

8、e_list(void);</p><p>  n_ptr create_node(void);</p><p>  void save_list(n_ptr list);</p><p>  n_ptr insert_node(n_ptr list, n_ptr node);</p><p>  n_ptr delete_node(n_pt

9、r list, n_ptr node);</p><p>  n_ptr query_node(n_ptr list,char* id);</p><p>  n_ptr findbook1_node(n_ptr list,char* name);</p><p>  n_ptr findbook2_node(n_ptr list,char* author);<

10、;/p><p>  void print_list(n_ptr list);</p><p>  void print_node(n_ptr node);</p><p><b>  3. 處理過程</b></p><p><b>  //錄入功能</b></p><p>  n

11、_ptr insert_node(n_ptr list, n_ptr node){</p><p>  n_ptr pos=list;</p><p>  /*當(dāng)鏈表為NULL時(shí),進(jìn)行如下處理,此時(shí)鏈表頭會(huì)發(fā)生改變*/</p><p>  if(list==NULL){</p><p>  list=node;</p><

12、p>  return list;</p><p><b>  }</b></p><p>  while (pos->next !=NULL)</p><p>  pos=pos->next;</p><p>  node->next=pos->next;</p><p&

13、gt;  pos->next=node;</p><p>  return list;</p><p><b>  }</b></p><p><b>  //瀏覽功能</b></p><p>  void print_list(n_ptr list){</p><p>

14、;  n_ptr pos=list;</p><p>  if (list==NULL){</p><p>  printf("列表為空!\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>

15、;  while(pos!=NULL){</p><p>  printf("編號(hào)\n");</p><p>  printf("%-10s\n",pos->id);</p><p>  printf("書名\n");</p><p>  printf("%-30s\

16、n",pos->name);</p><p>  printf("作者\(yùn)n");</p><p>  printf("%-15s\n",pos->author);</p><p>  printf("出版單位\n");</p><p>  printf(&quo

17、t;%-30s\n",pos->press);</p><p>  printf("出版日期\n");</p><p>  printf("%-10s\n",pos->date);</p><p>  printf("價(jià)格\n");</p><p>  prin

18、tf("%.2f",pos->price);</p><p>  printf("\n\n");</p><p>  pos=pos->next;</p><p><b>  }</b></p><p><b>  }</b></p>

19、<p><b>  //查詢功能</b></p><p><b>  //按書名查詢</b></p><p>  n_ptr findbook1_node(n_ptr list,char* name){</p><p>  n_ptr pos=list;</p><p>  while(

20、pos!=NULL && strcmp(pos->name, name)!=0)</p><p>  pos=pos->next;</p><p>  if(pos==NULL)</p><p>  printf("沒有找到記錄!\n");</p><p>  return pos;</p

21、><p><b>  }</b></p><p><b>  //按作者名查詢</b></p><p>  n_ptr findbook2_node(n_ptr list,char* author){</p><p>  n_ptr pos=list;</p><p>  whi

22、le(pos!=NULL && strcmp(pos->author, author)!=0)</p><p>  pos=pos->next;</p><p>  if(pos==NULL)</p><p>  printf("沒有找到記錄!\n");</p><p>  return pos

23、;</p><p><b>  }</b></p><p><b>  四 界面設(shè)計(jì)</b></p><p><b>  五 結(jié)論</b></p><p>  本次程序設(shè)計(jì)是由二人共同完成,經(jīng)歷了從選擇題目,整體分析,畫流程圖,設(shè)計(jì)模板,自己編寫程序,上網(wǎng)查找標(biāo)準(zhǔn)代碼,完善所編

24、程序到調(diào)試程序的過程,其中我們有共同合作的歡樂,也有分工進(jìn)行編寫程序的喜悅,我們分工編寫不同的函數(shù),再將各自所編程序組成整體。編寫程序的過程真是一個(gè)幸福的過程,讓我找回了在編程道路上曾經(jīng)失去的信心,讓我感受到了偉大的團(tuán)結(jié)力量。</p><p><b>  參考資料</b></p><p>  譚浩強(qiáng)著,《C程序設(shè)計(jì)(第三版)》,清華大學(xué)出版社,2005</p&g

25、t;<p>  李丹程,劉瑩,那俊著,《C語(yǔ)言程序設(shè)計(jì)案例實(shí)踐》,清華大學(xué)出版社,2009.2</p><p><b>  附錄</b></p><p><b>  程序代碼如下:</b></p><p>  /*bklist.h*/</p><p>  #ifndef BKLIST_

26、H</p><p>  #define BKLIST_H</p><p>  #define DATA_FILE "data"</p><p>  struct bk_node;</p><p>  typedef struct bk_node* n_ptr;</p><p>  struct bk

27、_node{</p><p>  char id[16];</p><p>  char name[32];</p><p>  char author[16];</p><p>  char press[32];</p><p>  char date[16];</p><p>  float

28、 price;</p><p>  n_ptr next;</p><p><b>  };</b></p><p>  n_ptr clean_list(n_ptr list);</p><p>  n_ptr create_list(void);</p><p>  n_ptr create_

29、node(void);</p><p>  void save_list(n_ptr list);</p><p>  n_ptr insert_node(n_ptr list, n_ptr node);</p><p>  n_ptr delete_node(n_ptr list, n_ptr node);</p><p>  n_ptr

30、query_node(n_ptr list,char* id);</p><p>  n_ptr findbook1_node(n_ptr list,char* name);</p><p>  n_ptr findbook2_node(n_ptr list,char* author);</p><p>  void print_list(n_ptr list);&

31、lt;/p><p>  void print_node(n_ptr node);</p><p><b>  #endif</b></p><p>  /*bklist.c*/</p><p>  #include <stdio.h></p><p>  #include <stdl

32、ib.h></p><p>  #include <string.h></p><p>  n_ptr clean_list(n_ptr list){</p><p>  n_ptr pos, tmp;</p><p>  if(list==NULL){</p><p>  printf("

33、列表已經(jīng)為空!\n");</p><p>  return NULL;</p><p><b>  }</b></p><p><b>  pos=list;</b></p><p>  while(pos!=NULL){</p><p>  tmp=pos->

34、;next;</p><p>  free(pos);</p><p><b>  pos=tmp;</b></p><p><b>  }</b></p><p>  printf("列表已清空!\n");</p><p>  return NULL;&

35、lt;/p><p><b>  }</b></p><p>  n_ptr create_list(void){</p><p><b>  FILE* fp;</b></p><p>  n_ptr list=NULL;</p><p>  n_ptr node;</p&

36、gt;<p>  fp=fopen(DATA_FILE,"rb");</p><p>  if (fp==NULL)</p><p>  return list;</p><p><b>  while(1){</b></p><p>  node=malloc(sizeof(struc

37、t bk_node));</p><p>  if(fread(node,sizeof(struct bk_node),1,fp)==0)</p><p><b>  break;</b></p><p>  node->next=NULL;</p><p>  list=insert_node(list,node

38、);</p><p><b>  }</b></p><p>  return list;</p><p><b>  }</b></p><p>  void save_list(n_ptr list){</p><p><b>  FILE* fp;</b

39、></p><p>  n_ptr pos=list;</p><p>  fp=fopen(DATA_FILE,"wb");</p><p>  while(pos!=NULL){</p><p>  fwrite(pos,sizeof(struct bk_node),1,fp);</p><p

40、>  pos=pos->next;</p><p><b>  }</b></p><p>  printf("保存成功!\n");</p><p>  fclose(fp);</p><p><b>  }</b></p><p>  n_p

41、tr create_node(void){</p><p>  n_ptr node;</p><p>  node=malloc(sizeof(struct bk_node));</p><p>  printf("編號(hào):");</p><p>  gets(node->id);</p><p&

42、gt;  printf("書名:");</p><p>  gets(node->name);</p><p>  printf("作者:");</p><p>  gets(node->author);</p><p>  printf("出版單位:");</p&

43、gt;<p>  gets(node->press);</p><p>  printf("出版日期(年/月):");</p><p>  gets(node->date);</p><p>  printf("價(jià)格:");</p><p>  scanf("%f&q

44、uot;,&node->price);</p><p>  node->next=NULL;</p><p>  getchar();</p><p>  return node;</p><p><b>  }</b></p><p>  n_ptr insert_node(

45、n_ptr list, n_ptr node){</p><p>  n_ptr pos=list;</p><p>  if(list==NULL){</p><p>  list=node;</p><p>  return list;</p><p><b>  }</b></p>

46、;<p>  while (pos->next !=NULL)</p><p>  pos=pos->next;</p><p>  node->next=pos->next;</p><p>  pos->next=node;</p><p>  return list;</p>&

47、lt;p><b>  }</b></p><p>  n_ptr delete_node(n_ptr list, n_ptr node){</p><p>  n_ptr pos=list;</p><p>  n_ptr tmp;</p><p>  if(list==NULL){</p><

48、p>  printf("列表為空!\n");</p><p>  return list;</p><p><b>  }</b></p><p>  if (pos==node){</p><p>  tmp=pos->next;</p><p>  free(p

49、os);</p><p>  printf("刪除成功!\n");</p><p>  return tmp;</p><p><b>  }</b></p><p>  while (pos->next !=node && pos->next !=NULL)</p&

50、gt;<p>  pos=pos->next;</p><p>  if(pos->next !=NULL){</p><p>  pos->next=node->next;</p><p>  free(node);</p><p>  printf("刪除成功!\n");</

51、p><p><b>  }else</b></p><p>  printf("沒有找到記錄!\n");</p><p>  return list;</p><p><b>  }</b></p><p>  n_ptr query_node(n_ptr l

52、ist, char* id){</p><p>  n_ptr pos=list;</p><p>  while(pos!=NULL && strcmp(pos->id, id)!=0)</p><p>  pos=pos->next;</p><p>  if(pos==NULL)</p><

53、;p>  printf("沒有找到記錄!\n");</p><p>  return pos;</p><p><b>  }</b></p><p>  n_ptr findbook1_node(n_ptr list,char* name){</p><p>  n_ptr pos=list;

54、</p><p>  while(pos!=NULL && strcmp(pos->name, name)!=0)</p><p>  pos=pos->next;</p><p>  if(pos==NULL)</p><p>  printf("沒有找到記錄!\n");</p>

55、<p>  return pos;</p><p><b>  }</b></p><p>  n_ptr findbook2_node(n_ptr list,char* author){</p><p>  n_ptr pos=list;</p><p>  while(pos!=NULL &&am

56、p; strcmp(pos->author, author)!=0)</p><p>  pos=pos->next;</p><p>  if(pos==NULL)</p><p>  printf("沒有找到記錄!\n");</p><p>  return pos;</p><p>

57、;<b>  }</b></p><p>  void print_list(n_ptr list){</p><p>  n_ptr pos=list;</p><p>  if (list==NULL){</p><p>  printf("列表為空!\n");</p><p&

58、gt;<b>  return;</b></p><p><b>  }</b></p><p>  while(pos!=NULL){</p><p>  printf("編號(hào)\n");</p><p>  printf("%-10s\n",pos->

59、id);</p><p>  printf("書名\n");</p><p>  printf("%-30s\n",pos->name);</p><p>  printf("作者\(yùn)n");</p><p>  printf("%-15s\n",pos-&g

60、t;author);</p><p>  printf("出版單位\n");</p><p>  printf("%-30s\n",pos->press);</p><p>  printf("出版日期\n");</p><p>  printf("%-10s\n&q

61、uot;,pos->date);</p><p>  printf("價(jià)格\n");</p><p>  printf("%.2f",pos->price);</p><p>  printf("\n\n");</p><p>  pos=pos->next;<

62、;/p><p><b>  }</b></p><p><b>  }</b></p><p>  void print_node(n_ptr node){</p><p>  printf("編號(hào):%s\n",node->id);</p><p>  

63、printf("書名:%s\n",node->name);</p><p>  printf("作者:%s\n",node->author);</p><p>  printf("出版單位:%s\n",node->press);</p><p>  printf("出版日期:%s

64、\n",node->date);</p><p>  printf("價(jià)格:%2f\n",node->price);</p><p><b>  }</b></p><p>  /*bkman.c*/</p><p>  #include <stdio.h></

65、p><p>  #include <stdlib.h></p><p>  void print_menu(void);</p><p>  int main(int argc,char** argv){</p><p><b>  char c;</b></p><p>  char i

66、d[16];</p><p>  char name[32];</p><p>  char author[16];</p><p>  n_ptr list;</p><p>  n_ptr node;</p><p>  list=create_list();</p><p><b&g

67、t;  while(1){</b></p><p>  print_menu();</p><p>  c=getchar(); </p><p>  getchar();</p><p>  switch (c) {</p><p><b>  case'1'

68、:</b></p><p>  print_list(list);</p><p><b>  break;</b></p><p><b>  case'2':</b></p><p>  printf("請(qǐng)輸入要查詢的圖書編號(hào):");</p&

69、gt;<p>  scanf("%s",id);</p><p>  getchar();</p><p>  node=query_node(list,id);</p><p>  if(node!=NULL)</p><p>  print_node(node);</p><p>

70、<b>  break;</b></p><p><b>  case'3':</b></p><p>  node=create_node();</p><p>  list=insert_node(list,node);</p><p><b>  break;<

71、/b></p><p><b>  case'4':</b></p><p>  printf("請(qǐng)輸入要?jiǎng)h除的圖書編號(hào):");</p><p>  scanf("%s",id);</p><p>  getchar();</p><p&g

72、t;  node=query_node(list,id);</p><p>  if(node!=NULL)</p><p>  list=delete_node(list,node);</p><p><b>  break;</b></p><p><b>  case'5':</b&

73、gt;</p><p>  list=clean_list(list);</p><p><b>  break;</b></p><p><b>  case'6':</b></p><p>  save_list(list);</p><p><b&

74、gt;  break;</b></p><p><b>  case'7':</b></p><p>  printf("請(qǐng)輸入要查詢的圖書書名:");</p><p>  scanf("%s",name);</p><p>  getchar();&l

75、t;/p><p>  node=findbook1_node(list,name);</p><p>  if(node!=NULL)</p><p>  print_node(node);</p><p><b>  break;</b></p><p><b>  case'8&

76、#39;:</b></p><p>  printf("請(qǐng)輸入要查詢的圖書的作者名:");</p><p>  scanf("%s",author);</p><p>  getchar();</p><p>  node=findbook2_node(list,author);</p

77、><p>  if(node!=NULL)</p><p>  print_node(node);</p><p><b>  break;</b></p><p><b>  case'0':</b></p><p><b>  return 0;&l

78、t;/b></p><p><b>  default:</b></p><p>  printf("輸入錯(cuò)誤,請(qǐng)重新輸入!\n");</p><p><b>  }</b></p><p><b>  }</b></p><p&g

79、t;<b>  return 0;</b></p><p><b>  }</b></p><p>  void print_menu(void){</p><p>  printf("\n\n\n\t\t------------圖書信息管理系統(tǒng)-----------\n");</p>&

80、lt;p>  printf("\n\t\t\t\t1.瀏覽書目\n");</p><p>  printf("\n\t\t\t\t2.按編號(hào)查詢\n");</p><p>  printf("\n\t\t\t\t3.錄入\n");</p><p>  printf("\n\t\t\t\t4.

81、刪除\n");</p><p>  printf("\n\t\t\t\t5.清空?qǐng)D書列表\n");</p><p>  printf("\n\t\t\t\t6.保存修改\n");</p><p>  printf("\n\t\t\t\t7.按書名查詢\n");</p><p&g

82、t;  printf("\n\t\t\t\t8.按作者名查詢\n");</p><p>  printf("\n\t\t\t\t0.退出系統(tǒng)\n");</p><p>  printf("\n\t\t\t\t請(qǐng)選擇:");</p><p><b>  }</b></p>

溫馨提示

  • 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ù)覽,若沒有圖紙預(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)論