2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計(jì)</b></p><p>  專 業(yè):電子信息工程</p><p>  課程名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) </p><p><b>  班  級:</b></p><p><b>  姓 名:</b></p><p&

2、gt;<b>  學(xué)  號: </b></p><p>  設(shè)計(jì)題目:學(xué)院圖書管理系統(tǒng)</p><p><b>  指導(dǎo)老師:</b></p><p>  評 語:_________________________________</p><p>  _____________________

3、____________________</p><p>  _________________________________________</p><p>  _________________________________________</p><p>  _________________________________________</p&g

4、t;<p>  評閱成績:__ __評閱教師:__ </p><p>  數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)任務(wù)書 </p><p><b>  目錄</b></p><p><b>  一、概要設(shè)計(jì)3</b></p><p>  二、學(xué)院圖書管理系統(tǒng)總體框圖5</p>

5、;<p><b>  三、算法設(shè)計(jì)5</b></p><p>  三、運(yùn)行結(jié)果和調(diào)試分析12</p><p><b>  五、參考文獻(xiàn)20</b></p><p><b>  附件:21</b></p><p><b>  學(xué)院圖書管理系統(tǒng)<

6、;/b></p><p><b>  一、概要設(shè)計(jì)</b></p><p><b>  有十個(gè)模塊:</b></p><p><b>  管理員登錄</b></p><p>  密碼驗(yàn)證(初始管理員為:administer;初始密碼為:000000)</p>

7、<p><b>  圖書初始化</b></p><p>  輸入圖書的一些信息,編號、作者、書名、數(shù)量,使有一定的庫存。</p><p><b>  新書入庫</b></p><p>  新書采編入庫,輸入編號后如果有次數(shù)只需輸入數(shù)量,沒有則繼續(xù)輸入書名、作者、數(shù)量。</p><p>&

8、lt;b>  添加讀者信息</b></p><p>  讀者信息初始化,輸入讀書證號和姓名,只有輸入書證號和姓名才能進(jìn)行借書還書</p><p><b>  借書模塊</b></p><p>  讀者輸入讀書證號,證號存在輸入要借的圖書編號,不能借同一本書,如果借書數(shù)量以達(dá)到最大也不能借書。</p><p&

9、gt;<b>  還書模塊</b></p><p>  歸還已借的圖書,要先輸入讀者書證號,書證號存在繼續(xù)輸入要還的圖書編號,圖書編號存在并且借來此書,歸還成功。</p><p><b>  查詢圖書信息</b></p><p><b>  查詢讀者信息</b></p><p>

10、;  可查詢讀者姓名書證號,借了幾本書,都是什么書和還書日期,還可以借幾本書。</p><p><b>  管理員修改密碼</b></p><p><b>  退出</b></p><p>  退出讀書管理系統(tǒng)并保存讀者和圖書信息。</p><p>  二、學(xué)院圖書管理系統(tǒng)總體框圖 </

11、p><p><b>  三、算法設(shè)計(jì)</b></p><p>  1)進(jìn)入操作界面后,首先需要管理員密碼登錄</p><p>  2)進(jìn)入系統(tǒng)后首先進(jìn)行圖書初始化,輸入圖書的信息。</p><p>  3)初始化之后,進(jìn)入系統(tǒng),顯示功能列表,可選擇任意系統(tǒng),但在借書之前先要輸入讀者信息。</p><p&g

12、t;<b>  4)采編入庫</b></p><p><b>  是</b></p><p><b>  否</b></p><p><b>  5)輸入讀者信息</b></p><p><b>  6)借閱圖書</b></p&

13、gt;<p><b>  否</b></p><p><b>  是</b></p><p><b>  否</b></p><p><b>  是</b></p><p><b>  否</b></p>

14、<p><b>  是</b></p><p><b>  是</b></p><p><b>  否</b></p><p><b>  是</b></p><p><b>  否</b></p><p

15、><b>  7)歸還圖書</b></p><p><b>  否</b></p><p><b>  是</b></p><p><b>  否</b></p><p><b>  是</b></p><p

16、><b>  8)查詢圖書信息</b></p><p><b>  否</b></p><p><b>  9)查詢讀者信息</b></p><p><b>  否</b></p><p><b>  管理員密碼修</b><

17、;/p><p>  三、運(yùn)行結(jié)果和調(diào)試分析</p><p><b>  管理員密碼登錄</b></p><p>  2)圖書信息初始化 </p><p>  3)圖書管理系統(tǒng)主菜單</p><p><b>  4)新書入庫</b></p><p><

18、b>  5)讀者信息初始化</b></p><p><b>  6)借書模塊</b></p><p>  7)查詢讀者借書后信息</p><p>  8)查詢借書后書庫信息</p><p><b>  9)還書模塊</b></p><p>  10)查詢還書

19、后讀者信息</p><p><b>  查詢還書后庫存信息</b></p><p>  12)管理員修改密碼</p><p> ?、俚谝淮屋斎脲e(cuò)誤舊密碼,第二次輸入正確的舊密碼</p><p>  ②驗(yàn)證是否能夠更改密碼</p><p><b>  13)退出系統(tǒng)</b>&l

20、t;/p><p><b>  四、總結(jié)體會</b></p><p>  選到這個(gè)課程設(shè)計(jì)題目的時(shí)候,自認(rèn)為很簡單,因?yàn)樵谄綍r(shí)上課有被都老師點(diǎn)名上去講這類型的課題。但真正拿到手中,才發(fā)現(xiàn),真正要做好真的不容易。像查找,增加,,顯示,這些平時(shí)在數(shù)據(jù)結(jié)構(gòu)和C語言中都學(xué)過,用過,但是實(shí)際操作中還是遇到了很多問題,所以特意到圖書館專門借了幾本關(guān)于數(shù)據(jù)結(jié)構(gòu)程序設(shè)計(jì)方面的書以及幾本關(guān)于

21、C語言和C++方面的書,同時(shí)也希望能把平時(shí)沒有學(xué)好的地方好好補(bǔ)一補(bǔ),能對知識有更深層次的理解。一切準(zhǔn)備就緒,把平時(shí)寫的相關(guān)的程序拿出來參考,對比,慢慢才找到一些感覺,把源程序?qū)懗鰜?。開始的時(shí)候,我就只對老師給出設(shè)計(jì)的幾條要求做了系統(tǒng)分析,并且起草出了最初的程序。但是結(jié)合具體的圖書管理系統(tǒng),我發(fā)現(xiàn)僅僅這些還遠(yuǎn)遠(yuǎn)達(dá)不到實(shí)用的標(biāo)準(zhǔn),于是我就相關(guān)興趣查找資料,發(fā)現(xiàn)可以加的功能很多,由于時(shí)間的問題,我就選擇其中的管理員密碼登錄與管理員密碼修改這兩

22、條功能做了詳細(xì)分細(xì),并且得出最初算法。</p><p>  經(jīng)過幾天的努力終于寫完了程序的初稿,然后輸入電腦,一編譯,發(fā)現(xiàn)錯(cuò)誤幾十個(gè),還有許多警告,只得一條一條的看,一個(gè)一個(gè)的改,首當(dāng)其沖的是再輸入電腦過程中不小心漏掉的標(biāo)點(diǎn)符號,有些括號忘了,有些是忘了寫分號等粗心導(dǎo)致的小毛病,這些錯(cuò)誤很容易改正.到后面的錯(cuò)誤就有些麻煩了,編譯過程中好幾十個(gè)錯(cuò)誤就是改不過來,后來和同學(xué)討論才知道原來錯(cuò)在什么地方,這樣一下就變成了

23、幾個(gè)錯(cuò)誤,這時(shí)信心大增,有些錯(cuò)誤都看不懂錯(cuò)在那里,由于英文水平不太好,只好去查字典,還要推敲這個(gè)單詞在這里到底是哪個(gè)意思,由于電腦系統(tǒng)原因,裝的VC6.0用不了,我?guī)滋於寂菰趫D書館多媒體閱覽室里,經(jīng)過幾大塊時(shí)間的思考,才得到零錯(cuò)誤零警告,那時(shí)真開心,我的程序終于可以運(yùn)行了,激動的按下運(yùn)行,得到了預(yù)想的界面,按照提示操作,都很順利,一個(gè)一個(gè)的實(shí)驗(yàn)每一個(gè)功能,都以為成功了,當(dāng)運(yùn)行到了修改管理員密碼功能時(shí),突然不往下運(yùn)行了,只見操作界面不停的

24、閃。這是邏輯錯(cuò)誤,很難找,后來只有一步一步的,一句一句的檢查,找到了錯(cuò)誤的根源,并改正。</p><p>  回顧這些日子的設(shè)計(jì)之路,我不由得想到下面這些。從進(jìn)入大學(xué)來,我們學(xué)習(xí)了C語言,數(shù)據(jù)結(jié)構(gòu)。特別是周老師的認(rèn)真授課,精心講解下,同學(xué)們學(xué)到了很多東西,知識方面的很多,還有平時(shí)?心的習(xí)慣也養(yǎng)成了.這對我們以后的學(xué)習(xí)生活很有好處,這次的實(shí)驗(yàn)還讓我復(fù)習(xí)了C語言的一些知識,如數(shù)組,while語句,switch語句,通

25、過這次實(shí)驗(yàn),我對鏈表的使用更加清楚,以及怎樣從整體上設(shè)計(jì)系統(tǒng)有了更深刻的認(rèn)識。還知道了如何使用system("cls")清屏,還知道了strcmp是用來比較字符串s1和s2大小的,strcpy使用來把字符串s2的值賦給s1的。</p><p>  我覺得更重要的是,這次課程設(shè)計(jì)讓我對自己有了更深的了解,以及對數(shù)據(jù)結(jié)構(gòu)這門課程有了更好的掌握。這次的課程設(shè)計(jì)增加了自己動手動腦的能力,我誠心希望以后

26、有更多機(jī)會多做這樣類似的的實(shí)踐,真的很有意義,設(shè)計(jì)與現(xiàn)實(shí)生活結(jié)合的程序增加了我的興趣。</p><p>  最后要感謝周老師和吳老師這一學(xué)期以來對我們的教導(dǎo)與幫助。謝謝你們!</p><p><b>  五、參考文獻(xiàn)</b></p><p>  [1]譚浩強(qiáng),C++程序設(shè)計(jì)[M],北京,清華大學(xué)出版社,2006年</p><

27、p>  [2]李振鵬,張小莉,鄭艷娟,數(shù)據(jù)結(jié)構(gòu)[M],中國鐵道出版社,2007年</p><p>  [3]楊小平,VisualC++項(xiàng)目案例導(dǎo)航[M],北京,科學(xué)出版社,2002年</p><p>  [4]David Conger,軟件開發(fā):編程與設(shè)計(jì)[M],北京,清華大學(xué)出版社,2006 年.</p><p>  [5]Francis Glassboro

28、w Roberta Allen ,You Can Do It!——C++編程新手互動教程[M],北京,人民郵電出版社,2005年</p><p>  [6]譚浩強(qiáng),C程序設(shè)計(jì)[M],北京,清華大學(xué)出版社,2007年,第三版</p><p>  [7]田魯懷,數(shù)據(jù)結(jié)構(gòu)[M],北京,電子工業(yè)出版社,2010年</p><p>  [8]匡松,C++語言程序設(shè)計(jì)[M],中

29、國鐵道部出版社,2008年,第一版</p><p><b>  附件:</b></p><p><b>  最終程序:</b></p><p>  #include<stdio.h></p><p>  #include <string.h></p><p

30、>  #include <stdlib.h></p><p>  #include<malloc.h></p><p>  #include<conio.h></p><p>  #define Max 4 </p><p>  #define N 20 </p><p> 

31、 char Password[N]={"000000"};//把Password定義為全局變量;</p><p>  typedef struct book</p><p><b>  {</b></p><p>  char book_num[10];</p><p>  char book_nam

32、e[20];</p><p>  char book_writer[10];</p><p>  int book_xy;</p><p>  int book_kc;</p><p>  struct book *next;</p><p><b>  }BK;</b></p>&

33、lt;p>  typedef struct borrow</p><p><b>  {</b></p><p>  char borrow_book_num[10];</p><p>  char limit_date[8];</p><p><b>  }BO;</b></p>

34、<p>  typedef struct reader</p><p><b>  {</b></p><p>  char reader_num[10];</p><p>  char reader_name[10];</p><p>  int right;</p><p>  

35、BO borrow[Max];</p><p>  struct reader *next;</p><p><b>  }RD;</b></p><p>  BK *h_book;</p><p>  RD *h_reader; </p><p>  void Update();

36、 //改密碼 </p><p>  void Entry(); </p><p>  void Login(); </p><p>  int Menu(); </p><p>  void Init(); </p><p>  void Init

37、_book(); </p><p>  void Menu_select(); </p><p>  void Insert_New_Book(); </p><p>  void Find_Book(); </p><p>  void add_reader();</p>

38、<p>  void Print_reader(); </p><p>  void Print_book(); </p><p>  void Borrow_Book(); </p><p>  void Return_Book(); </p><p>  void Save(); <

39、/p><p>  void Save_Book(); </p><p>  void Save_Reader(); </p><p>  void Load();</p><p>  void Load_Reader(); </p><p>  void Load_Book(); </p><p>

40、  void Update() //修改密碼的C語言算法 </p><p><b>  {</b></p><p><b>  int i; </b></p><p>  char password[N],temp[N];</p><p>  strcpy(temp,Password);</p

41、><p>  printf("請輸入舊密碼:");</p><p>  for(i=1;i<4;i++)</p><p>  { scanf("%s",password);</p><p>  if(strcmp(Password,password)==0)</p><p> 

42、 {printf(" 請輸入新密碼:");</p><p>  scanf("%s",password);</p><p>  strcpy(Password,password);</p><p>  printf(" 請?jiān)俅屋斎胄旅艽a確認(rèn)修改:");</p><p> 

43、 scanf("%s",password);</p><p>  if(strcmp(Password,password)==0)</p><p><b>  {</b></p><p>  printf("\n重新設(shè)置密碼成功!!!!按任意鍵繼續(xù)下一步操作..\n"); </p><

44、p>  getch(); break;</p><p><b>  }</b></p><p>  else printf(" 請重新輸入新密碼:");</p><p><b>  }</b></p><p><b>  else </b><

45、/p><p><b>  {</b></p><p>  strcpy(Password,temp);</p><p>  printf(" 修改密碼失敗,你還%d有次,請重新輸入舊密碼",3-i);</p><p><b>  }</b></p><p&g

46、t;<b>  } </b></p><p>  getch();system("cls");</p><p><b>  }</b></p><p>  void Entry()//管理員登錄的C語言算法</p><p><b>  {</b><

47、;/p><p>  char Administer[N]={"administer"};</p><p>  char administer[N];</p><p>  char password[N];</p><p>  int findOK;</p><p><b>  while(1)

48、</b></p><p><b>  {</b></p><p><b>  findOK=0;</b></p><p>  printf("\t\t*******************************************\n");</p><p>  

49、printf("\t\t    登錄 ");</p><p>  printf("\n\t\t*****************************************\n");</p><p>  printf("\t\t   管理員:");</p><p>  scanf(&q

50、uot;%s",administer);</p><p>  printf("\n\t\t*****************************************\n");</p><p>  printf("\t\t 密碼:");</p><p>  scanf("%s",

51、password);</p><p>  printf("\n\t\t******************************************\n");</p><p>  if(strcmp(Administer,administer)==0 && strcmp(Password,password)==0)</p><p

52、><b>  {</b></p><p><b>  findOK=1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(findOK==1)</p><

53、p><b>  {</b></p><p>  printf("\n\t\t歡迎用戶 %s\n",administer); </p><p><b>  }</b></p><p>  else printf("\n\n\t\t用戶名或密碼有錯(cuò)!請重新\n");</p&g

54、t;<p><b>  }</b></p><p>  printf("\n管理員登錄成功!!!!按任意鍵繼續(xù)下一步操作..\n"); </p><p>  getch(); system("cls"); </p><p><b>  }</b></p>

55、<p>  void Login()</p><p><b>  {</b></p><p>  system("cls");</p><p>  printf("\n\n\n\t\t***************************************\n");</p>

56、<p>  printf("\n\n\n\t\t\t歡迎使用學(xué)院圖書管理系統(tǒng)\n");</p><p>  printf("\n\n\n\t\t***************************************\n");</p><p>  printf("\n\n\t\t本程序制作人 天人\n\n\n\n\n\n\n

57、");</p><p>  printf("\n\n\n\t\t 管理員請輸入密碼登錄系統(tǒng)\n\n\n\n\n\n");</p><p>  Entry(); system("cls");</p><p><b>  }</b></p><p>  int Menu()

58、/*主菜單*/</p><p><b>  { int dm;</b></p><p>  printf("\n\t\t學(xué)院圖書管理系統(tǒng)主菜單\n");</p><p>  printf("=================================================\n");<

59、/p><p>  printf("*\t0----退出系統(tǒng) \n");</p><p>  printf("*\t1----采編入庫 \n");</p><p>  printf("*\t2----登記讀者 \n"); </p><p&g

60、t;  printf("*\t3----借閱登記 \n");</p><p>  printf("*\t4----還書管理 \n");</p><p>  printf("*\t5----查詢圖書信息 \n");</p><p>  printf("*

61、\t6----查詢讀者信息 \n");</p><p>  printf("*\t7----管理員密碼修改 \n");</p><p>  printf("=================================================\n");</p><p>  printf(&

62、quot;請選擇相應(yīng)的代碼:"); </p><p><b>  for(;;) </b></p><p>  { scanf("%d",&dm); //dm輸入的數(shù)字</p><p>  if(dm<0||dm>7)</p><p>  printf("\n錯(cuò)

63、誤!請重新輸入:");</p><p>  else break;</p><p><b>  }</b></p><p>  return dm; </p><p><b>  }</b></p><p>  void Menu_select()/*主菜單選擇函數(shù)

64、*/</p><p><b>  {</b></p><p><b>  for(;;) </b></p><p><b>  {</b></p><p>  switch(Menu()) /*功能選擇*/</p><p><b>  { ca

65、se 0:</b></p><p>  system("cls");</p><p><b>  Save();</b></p><p>  printf("\n\n\t文件保存成功!\n"); </p><p>  printf("\n\n\t歡迎下次使用本

66、系統(tǒng)!\n"); </p><p><b>  getch(); </b></p><p><b>  exit(0);</b></p><p>  case 1:Insert_New_Book();break; </p><p>  case 2:add_reader();break;&

67、lt;/p><p>  case 3:Borrow_Book();break;</p><p>  case 4:Return_Book();break;</p><p>  case 5:Print_book();break;</p><p>  case 6:Print_reader();break;</p><p>

68、  case 7:Update();break;</p><p>  default:printf("\n錯(cuò)誤!");</p><p><b>  exit(0);}</b></p><p><b>  }</b></p><p><b>  }</b>&l

69、t;/p><p>  void Init() /*初始化*/</p><p><b>  { </b></p><p><b>  BK *p0;</b></p><p>  printf("\n圖書初始化開始,請輸入圖書信息..\n包括編號.書名.數(shù)量..\n");</p&g

70、t;<p>  p0=(BK*)malloc(sizeof(BK));</p><p>  h_book=p0;</p><p>  printf("\n請輸入圖書信息:\n");</p><p>  printf("圖書編號:"); /*輸入圖書編號(唯一)*/</p>&l

71、t;p>  scanf("%s",p0->book_num);</p><p>  printf("圖書名稱:"); /*輸入圖書名稱*/</p><p>  scanf("%s",p0->book_name);</p><p>  printf("圖書作者:

72、"); /*輸入圖書作者*/</p><p>  scanf("%s",p0->book_writer);</p><p>  printf("圖書數(shù)量:"); /*輸入圖書數(shù)量*/</p><p>  scanf("%d",&p0->

73、;book_kc);</p><p>  p0->book_xy=p0->book_kc; /*開始時(shí)圖書現(xiàn)有量和庫存量相等*/</p><p>  p0->next=NULL;</p><p>  printf("\n\t圖書信息初始化完畢!按任意鍵繼續(xù)下一步操作..\n");</p><p>

74、<b>  getch();</b></p><p>  system("cls");</p><p><b>  }</b></p><p>  void Insert_New_Book()/*新書入庫*/</p><p><b>  {</b></

75、p><p>  BK *p,*p0,*p1; </p><p>  p=p1=h_book;</p><p>  printf("\n新書入庫模塊...\n");</p><p>  printf("\n請輸入新書信息..\n包括書號.書名.數(shù)量..\n");</p><p>  p

76、0=(BK *)malloc(sizeof(BK));</p><p>  printf("圖書編號:");</p><p>  scanf("%s",p0->book_num);</p><p>  while(strcmp(p0->book_num,p1->book_num)!=0&&p1

77、->next!=NULL)</p><p>  p1=p1->next;</p><p>  if(strcmp(p0->book_num,p1->book_num)==0) /*此處分兩種情況,若圖書編號存在,則直接進(jìn)庫,只須輸入書的數(shù)量*/</p><p><b>  {</b></p><p&g

78、t;  printf("\n此編號圖書已存在!!直接入庫!\n"); </p><p>  printf("圖書數(shù)量:");</p><p>  scanf("%d",&p0->book_kc);</p><p>  p1->book_kc+=p0->book_kc;</p&

79、gt;<p>  p1->book_xy+=p0->book_kc;</p><p><b>  }</b></p><p>  else/*若不存在,則需要輸入其他的信息,然后在進(jìn)行插入操作*/</p><p><b>  {</b></p><p>  printf(&

80、quot;圖書名稱:");</p><p>  scanf("%s",p0->book_name);</p><p>  printf("圖書作者:");</p><p>  scanf("%s",p0->book_writer);</p><p>  prin

81、tf("圖書數(shù)量:");</p><p>  scanf("%d",&p0->book_kc);//庫存數(shù)量</p><p>  while(p->next) </p><p>  { p=p->next; }</p><p>  if(h_book==NULL) h_book

82、=p0; /*此處分兩種情況,鏈表中沒有數(shù)據(jù),head直接指向p0處*/</p><p>  else p->next=p0; /*此處分兩種情況,鏈表中有數(shù)據(jù),鏈表中最后元素的next指向p0處*/ </p><p>  p0->next=NULL;</p><p>  p0->book_xy=p0->

83、book_kc; </p><p><b>  }</b></p><p>  printf("\n新書入庫完畢!按任意鍵繼續(xù)下一步操作..\n");</p><p><b>  getch();</b></p><p>  system("cls");<

84、;/p><p><b>  }</b></p><p>  void add_reader()/*添加讀者*/</p><p><b>  { RD *p0;</b></p><p><b>  int i;</b></p><p>  printf(&qu

85、ot;\n讀者初始化開始,請輸入讀者信息..\n包括書證號.姓名..\n");</p><p>  p0=(RD*)malloc(sizeof(RD)); /*申請新結(jié)點(diǎn)存儲空間*/</p><p>  h_reader=p0;</p><p>  printf("\n請輸入讀者的信息:\n");</p><

86、p>  printf("讀者書證號:"); </p><p>  scanf("%s",p0->reader_num);</p><p>  printf("讀者姓名:"); </p><p>  scanf("%s",p0->reader_name

87、);</p><p>  p0->right=0;</p><p>  for(i=0;i<Max;i++)</p><p><b>  {</b></p><p>  strcpy(p0->borrow[i].borrow_book_num,"0"); /*所借圖書直接置為(即沒有

88、借書)*/</p><p>  strcpy(p0->borrow[i].limit_date,"0"); </p><p><b>  }</b></p><p>  p0->next=NULL;</p><p>  printf("\n讀者信息初始化完畢!按任意鍵繼續(xù)下一步操

89、作..\n"); </p><p><b>  getch();</b></p><p>  system("cls");</p><p><b>  }</b></p><p>  void Borrow_Book() /*借書模塊*/</p><

90、p><b>  {</b></p><p>  BK *p0; RD *p1;</p><p>  char bo_num[10],rea_num[10],lim_date[8];</p><p><b>  int i;</b></p><p>  p0=h_book; p1=h_reade

91、r;</p><p>  printf("\n借書模塊...\n");</p><p>  printf("\n請輸入借書的讀者書證號:"); </p><p>  scanf("%s",rea_num);</p><p>  while(p1->next!=NULL&am

92、p;&strcmp(rea_num,p1->reader_num)!=0) </p><p>  p1=p1->next;</p><p>  if(p1->next==NULL&&strcmp(rea_num,p1->reader_num)!=0) </p><p><b>  { <

93、;/b></p><p>  printf("\n此讀者編號不存在!按任意鍵返回..\n");</p><p><b>  goto END;</b></p><p><b>  } </b></p><p>  printf("\n請輸入你要借的書的編號:&qu

94、ot;); </p><p>  scanf("%s",bo_num);</p><p>  while(strcmp(bo_num,p0->book_num)!=0&&p0->next!=NULL) </p><p>  p0=p0->next;</p><p>  if(p0

95、->next==NULL&&strcmp(bo_num,p0->book_num)!=0) </p><p><b>  {</b></p><p>  printf("\n此圖書編號不存在!按任意鍵返回..\n");</p><p><b>  goto END;</b

96、></p><p><b>  }</b></p><p>  else if(p0->book_xy<=0) </p><p><b>  {</b></p><p>  printf("\n抱歉,此書已借完!請等待新書的到來!!\n按任意鍵返回....&quo

97、t;);</p><p><b>  goto END;</b></p><p><b>  } </b></p><p>  else if(p1->right>Max||p1->right==Max) </p><p><b>  {</b></p&

98、gt;<p>  printf("\n不好意思,借書數(shù)目已滿!不能借書!\n按任意鍵返回....");</p><p><b>  goto END;</b></p><p><b>  }</b></p><p>  else if(strcmp(p1->borrow[0].bor

99、row_book_num,"0")!=0) </p><p><b>  {</b></p><p>  for(i=0;i<Max;i++) </p><p><b>  {</b></p><p>  if(strcmp(p1->borrow[i].b

100、orrow_book_num,bo_num)==0)</p><p><b>  {</b></p><p>  printf("\n抱歉!同一個(gè)讀者不能同借兩本相同的書!\n按任意鍵返回....");</p><p><b>  goto END;</b></p><p>&l

101、t;b>  }</b></p><p>  else if(strcmp(p1->borrow[i].borrow_book_num,"0")==0) </p><p><b>  {</b></p><p>  printf("\n請輸入你要?dú)w還圖書的日期:"); <

102、;/p><p>  scanf("%s",lim_date);</p><p>  strcpy(p1->borrow[p1->right++].borrow_book_num,bo_num); </p><p>  strcpy(p1->borrow[p1->right-1].limit_date,lim_date)

103、; </p><p>  p0->book_xy--;</p><p>  p0->book_kc--;</p><p>  printf("\n讀者編號%s借書完畢!按任意鍵繼續(xù)下步操作..",p1->reader_num);</p><p><b>  goto END;</b&g

104、t;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else </b></p><p><b>  {</

105、b></p><p>  printf("\n請輸入你要?dú)w還圖書的日期:"); </p><p>  scanf("%s",lim_date);</p><p>  strcpy(p1->borrow[p1->right++].borrow_book_num,bo_num); </p>&

106、lt;p>  strcpy(p1->borrow[p1->right-1].limit_date ,lim_date ); </p><p>  p0->book_xy--;</p><p>  p0->book_kc--;</p><p>  printf("\n讀者編號%s借書完畢!按任意鍵繼續(xù)下步操作..",p

107、1->reader_num);</p><p><b>  }</b></p><p>  END:getch(); system("cls");</p><p><b>  } </b></p><p>  void Return_Book() /*還書模塊*/</

108、p><p><b>  {</b></p><p>  BK *p; RD *q;</p><p>  int i,j,find=0;</p><p>  char return_book_num[10],return_reader_num[10];</p><p>  p=h_book; q=h_r

109、eader;</p><p>  printf("\n還書模塊...\n");</p><p>  printf("\n請輸入要還書的讀者編號:"); </p><p>  scanf("%s",return_reader_num); </p><p>  whi

110、le(q->next!=NULL&&strcmp(return_reader_num,q->reader_num)!=0) </p><p>  q=q->next;</p><p>  if(q->next==NULL&&strcmp(return_reader_num,q->reader_num)!=0)</p>

111、<p><b>  {</b></p><p><b>  find=2;</b></p><p>  printf("\n此讀者編號不存在!按任意鍵返回..\n");</p><p>  goto end; </p><p><b>  }</b&

112、gt;</p><p>  printf("\n請輸入讀者還書的編號:");</p><p>  scanf("%s",return_book_num);</p><p>  while(p->next!=NULL&&strcmp(return_book_num,p->book_num)!=0)&l

113、t;/p><p>  p=p->next;</p><p>  if(p->next==NULL&&strcmp(return_book_num,p->book_num)!=0)</p><p><b>  {</b></p><p><b>  find=2;</b>

114、</p><p>  printf("\n錯(cuò)誤!此圖書編號不存在!按任意鍵返回..\n");</p><p><b>  goto end;</b></p><p><b>  } </b></p><p>  for(i=0;i<Max;i++)</p>&

115、lt;p>  if(strcmp(return_book_num,q->borrow[i].borrow_book_num)==0) /*如果此讀者借了此書*/</p><p><b>  {</b></p><p><b>  find=1; </b></p><p>  for(j=i;j<M

116、ax-1;j++)</p><p><b>  {</b></p><p>  strcpy(q->borrow[j].borrow_book_num,q->borrow[j+1].borrow_book_num); </p><p>  strcpy(q->borrow[j].limit_date,q->borrow[

117、j+1].limit_date); </p><p><b>  }</b></p><p>  strcpy(q->borrow[Max-1].borrow_book_num,"0");</p><p>  strcpy(q->borrow[Max-1].limit_date,"0");&l

118、t;/p><p>  p->book_xy++;</p><p>  p->book_kc++;</p><p>  q->right--;</p><p>  printf("\n編號%s的讀者還書完畢!按任意鍵繼續(xù)下步操作..",return_reader_num);</p><p&g

119、t;<b>  }</b></p><p>  if(find==0) </p><p>  printf("\n錯(cuò)誤!此讀者未借此書!按任意鍵返回..\n"); </p><p>  end: getch(); system("cls");</p><p>&l

120、t;b>  }</b></p><p>  void Print_book() /*查詢圖書信息*/</p><p><b>  {</b></p><p><b>  BK *p;</b></p><p><b>  p=h_book;</b></p&

121、gt;<p>  printf("\n圖書信息如下:\n\n");</p><p>  printf("圖書編號\t圖書名稱\t圖書作者\(yùn)t現(xiàn)有\(zhòng)t\t庫存\n");</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p&

122、gt;  printf("%s\t\t%s\t\t%s\t\t%d\t\t%d\n",p->book_num,p->book_name,p->book_writer,p->book_xy,p->book_kc);</p><p>  p=p->next;</p><p><b>  }</b></p>

123、<p>  printf("\n圖書信息打印完畢!按任意鍵繼續(xù)下一步操作..");</p><p><b>  getch();</b></p><p>  system("cls");</p><p><b>  }</b></p><p> 

124、 void Print_reader() /*查詢讀者信息*/</p><p><b>  {</b></p><p><b>  RD *p;</b></p><p><b>  int i;</b></p><p>  p=h_reader;</p>

125、<p>  printf("\n讀者信息如下:\n\n");</p><p>  printf("讀者書證號\t\t讀者姓名\n"); </p><p>  printf("\n");</p><p>  while(p!=NULL) </p><p><b> 

126、 {</b></p><p>  printf("\t%s\t\t%s",p->reader_num,p->reader_name);</p><p>  for(i=0;i<Max;i++)</p><p><b>  {</b></p><p>  printf(&q

127、uot;\n");</p><p>  printf("圖書編號",i+1); </p><p>  printf("\t還書日期",i+1); </p><p>  printf("\n");</p><p>  printf("\t%s",p->

128、;borrow[i].borrow_book_num);</p><p>  printf("\t\t%s",p->borrow[i].limit_date); </p><p><b>  }</b></p><p>  printf("\n");</p><p>  p=

129、p->next;</p><p><b>  }</b></p><p>  printf("\n讀者信息打印完畢!按任意鍵繼續(xù)下一步操作..");</p><p><b>  getch();</b></p><p>  system("cls");&

130、lt;/p><p><b>  }</b></p><p>  void Save() /*保存信息*/</p><p><b>  {</b></p><p>  Save_Reader();</p><p>  Save_Book();</p><p>

131、;<b>  }</b></p><p>  void Save_Reader() /*保存讀者信息*/</p><p><b>  {</b></p><p>  FILE *fp_reader; </p><p>  RD *p,*p0;</p><p>  p=

132、h_reader;</p><p>  if((fp_reader=fopen("Reader.txt","wb"))==NULL) /*創(chuàng)建文件,進(jìn)行保存*/</p><p><b>  {</b></p><p>  printf("\n文件保存失敗!\n請重新啟動本系統(tǒng)...\n&qu

133、ot;);</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  while(p!=NULL) </p><p><b>  {</b></p><p>  if(fwrite(p,sizeof

134、(RD),1,fp_reader)!=1) /*將鏈表中的信息寫入文件中*/</p><p>  printf("\n寫入文件失敗!\n請重新啟動本系統(tǒng)!\n");</p><p><b>  p0=p;</b></p><p>  p=p->next;</p><p>  free(p0)

135、; /*釋放所有結(jié)點(diǎn)*/</p><p><b>  }</b></p><p>  h_reader=NULL;</p><p>  fclose(fp_reader); /*關(guān)閉文件*/</p><p><b>  }</b></p><p>  void Save

136、_Book() /*保存圖書信息*/</p><p><b>  {</b></p><p>  FILE *fp_book; /*創(chuàng)建文件型指針*/</p><p>  BK *p,*p0;</p><p><b>  p=h_book;</b></p><p> 

137、 if((fp_book=fopen("Book.txt","wb"))==NULL) /*創(chuàng)建文件,進(jìn)行保存*/</p><p><b>  {</b></p><p>  printf("\n文件保存失敗!\n請重新啟動本系統(tǒng)...\n");</p><p><b&

138、gt;  exit(0);</b></p><p><b>  }</b></p><p>  while(p!=NULL) </p><p><b>  {</b></p><p>  if(fwrite(p,sizeof(BK),1,fp_book)!=1)

139、 /*將鏈表中的信息寫入文件中*/</p><p>  printf("\n寫入文件失敗!\n請重新啟動本系統(tǒng)!\n");</p><p><b>  p0=p;</b></p><p>  p=p->next;</p><p>  free(p0); </p><p&g

140、t;<b>  }</b></p><p>  h_book=NULL;</p><p>  fclose(fp_book); /*關(guān)閉文件*/</p><p><b>  }</b></p><p>  void Load() /*加載信息*/</p><p><

141、b>  {</b></p><p>  Load_Reader();</p><p>  Load_Book();</p><p><b>  }</b></p><p>  void Load_Reader() /*加載讀者信息*/</p><p><b>  {

142、</b></p><p>  RD *p1,*p2,*p3;</p><p>  FILE *fp; /*創(chuàng)建文件型指針*/</p><p>  fp=fopen("book.txt","rb"); /*打開文件*/</p><p>  p1=(RD *)ma

143、lloc(sizeof(RD));</p><p>  fread(p1,sizeof(RD),1,fp);</p><p>  h_reader=p3=p2=p1;</p><p>  while(! feof(fp)) /*讀出信息,重新鏈入鏈表*/</p><p>  { p1=(RD *)malloc(sizeof(RD));&l

144、t;/p><p>  fread(p1,sizeof(RD),1,fp);</p><p>  p2->next=p1;</p><p><b>  p3=p2;</b></p><p><b>  p2=p1;</b></p><p><b>  }</b

145、></p><p>  p3->next=NULL;</p><p><b>  free(p1);</b></p><p>  fclose(fp); /*關(guān)閉文件*/</p><p><b>  }</b></p><p>  void Load_Book()

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論