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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  目錄</b></p><p>  一、需求分析- 2 -</p><p>  二、概要設計- 2 -</p><p>  2.1 設計思想- 2 -</p><p>  2.2運行平臺及開發環境- 2 -</p><p>  2.3 數據結構- 3 -<

2、;/p><p>  2.4 系統結構圖- 3 -</p><p>  三、詳細設計- 3 -</p><p>  3.1 主函數- 3 -</p><p>  3.2 圖書基本信息輸入- 4 -</p><p>  3.3查詢模塊- 5 -</p><p>  3.4 刪除模塊- 6 -

3、</p><p>  3.5 辦理借書手續模塊- 7 -</p><p>  3.6 辦理還書手續模塊- 8 -</p><p>  四、測試結果分析- 9 -</p><p>  4.1 輸入圖書信息模塊效果- 9 -</p><p>  4.2 查詢模塊效果示意- 10 -</p><

4、p>  4.3 刪除模塊效果圖- 12 -</p><p>  4.4 借閱圖書模塊效果示意圖- 12 -</p><p>  4.5 歸還圖書模塊效果示意圖- 13 -</p><p>  五、總結- 14 -</p><p>  5.1 優缺點分析- 14 -</p><p>  5.2 心得體會與

5、收獲- 15 -</p><p>  六、參考文獻- 15 -</p><p>  七、附錄- 16 -</p><p><b>  一、需求分析</b></p><p>  先分析我所拿到的題目,我需要設計一個簡單的圖書管理系統。分為兩個方面,一方面是對圖書的管理。首先需將圖書的基本信息寫入到指定的儲存圖書信息的

6、文件中;接下來是查詢功能,要實現根據圖書的序號和書名查詢圖書的基本信息;然后是刪除功能,要求根據輸入序號刪除對應圖書所有信息。另一方面是學生借書和還書系統。借書后,要求輸入學生信息,并且與所借書本對應,并且借出后,書本所存狀態隨之發生改變,并儲存;還書時,要求輸入學生的信息,并且將還書信息儲存。</p><p>  根據以上分析可知,由于圖書的信息是存放在文件中,所以要有文件的寫入讀出等操作;同時要對圖書信息和對

7、應學生的信息進行瀏覽、查找或刪除等一系列的操作,就要對文件的內容進行讀出寫入保存,就要涉及到一些簡單的算法;此外,由于是一個操作系統,就需要有主菜單實現選擇操作。</p><p><b>  二、概要設計</b></p><p><b>  2.1 設計思想</b></p><p>  根據以上的需求分析可以將整個系統的設

8、計分為六個模塊:1、輸入圖書基本信息模塊, 2、查詢圖書基本信息模塊,3、刪除圖書信息模塊,4、辦理借書手續模塊,5、辦理還書手續模塊。另外加上系統主菜單的選擇的設計。</p><p>  2.2運行平臺及開發環境</p><p>  此程序是在Microsoft Visual C++軟件平臺上編譯的,具有集成開發環境,可提供編輯C語言,C++以及C++/CLI等等編程語言。VC++整合了

9、便利的除錯工具,特別是整合了微軟視窗程式設計(Windows API)、三維動畫DirectX API,Microsoft .NET框架。</p><p><b>  2.3 數據結構</b></p><p>  綜合以上的分析及開發平臺特點,我決定采用結構體數據結構,將圖書的基本信息設計為結構體數據,用來存放多種圖書的信息,把圖書的名稱、編號、單價、作者、存在狀態,

10、包括與之對應的借書人姓名、性別、學號作為結構體成員,然后將結構體數據存儲到文件中,以便實現信息之間的對應輸入輸出,以及存儲。</p><p><b>  2.4 系統結構圖</b></p><p>  根據以上分析,可得以下圖書管理系統設計的框圖:</p><p>  圖2-1 圖書管理系統設計框圖</p><p>

11、<b>  三、詳細設計</b></p><p><b>  3.1 主函數</b></p><p>  主函數的設計主要是為調用菜單函數,在菜單函數中實現各個模塊功能子函數的調用,同時為用戶提供一個較為人性化的操作界面,能夠提示用戶進行正確的操作,在輸入出錯后可以有出錯提示。具體流程圖如圖:</p><p>  圖 3-

12、1 主函數操作流程圖</p><p>  實現這部分功能是主要采用switch語句。首先用printf函數在運行界面上打出學籍管理系統和個功能模塊及其對應的數字選項。然后輸入要進行的操作選項,利用switch語句進行判斷,而后進入到不同的功能函數中,進行不同的操作。當然,要在進行完某一項操作要調用main函數,方便用戶進行線下一項的操作</p><p>  3.2 圖書基本信息輸入<

13、;/p><p>  在定義變量時采用結構體數據結構,圖書編號、儲存的數量是整型,圖書的價格在此定義為整型(本也可以定義為float型),圖書名稱、圖書的作者是字符型,采用字符型數組,但數組長度一定要足夠,否則會出現數據丟失錯誤,考慮到圖書名稱、作者的字符長度,在此定義它們的長度要足夠。將涉及到的圖書和對應學生的基本信息定義為結構體。</p><p>  在將圖書的基本信息輸入時,要將其保存為b

14、ook_list1.txt,用來存放所有輸入的圖書的信息。這時就涉及到文件的建立和寫入,選取較為簡單的fprintf函數作為寫入文件的函數。首先定義一個指向文件的指針,再定義一個整型變量,該整型變量count是人為輸入的,其目的是為了實現輸入書本數目的多少,利用循環輸入。在循環輸入之前通過指針打開建立一個文本文件,循環輸入時fprintf函數自動建立一個文本文件,實現向文件中寫入count組數據的功能。循環結束后文件中已經寫入要輸入的信

15、息。流程圖如下;</p><p>  圖3-2 圖書信息輸入模塊操作流程圖</p><p><b>  3.3查詢模塊</b></p><p>  查詢模塊的基本思想比較簡單,就是在已輸入的文件信息中讀取出原文件信息。我設計的具體查詢方法和操作分為兩方面:一方面是通過圖書編號進行查詢,另一方面是通過書名進行查詢。</p><

16、;p>  第一方面,首先在查詢函數中定義文件指針,指向要打開的文件,利用fscanf函數讀取文件中信息,如果文件指針查到的圖書編號與用戶輸入的序號相同,就將該結構體中的圖書的基本信息從文件中輸出,顯示在屏幕上,從而實現基本信息的查詢。</p><p>  第二方面,首先在查詢函數中定義文件指針,指向要打開的文件,利用fscanf函數讀取文件中信息,如果文件指針查到的圖書名稱的長度與用戶輸入的書名相同(利用s

17、trcmp比較字符串),就將該結構體中的該圖書的基本信息從文件中輸出,顯示在屏幕上,從而實現基本信息的查詢。</p><p>  在查詢模塊成績查詢與基本信息查詢的流程一樣,應此將二者作為一起。流程圖如下:</p><p>  圖3-3 圖書信息查詢模塊操作流程圖</p><p><b>  3.4 刪除模塊</b></p>&

18、lt;p>  刪除??斓幕舅枷刖褪呛竺娴男畔⒏采w前面的信息,后面的信息被0代替,從而實現刪除功能。具體實現方法就是選擇刪除功能,利用文件指針和fscanf函數,將文件內容讀出,顯示在屏幕上,讓用戶決定刪除哪一個學生的基本信息,然后輸入該學生的學號賦值給一個整型變量,利用for循環在文件中查找與該變量值相同的學生,找到之后將結構體中一組空的信息(全為0)賦值給當前結構體,從而將該學生信息“刪除”。</p><p

19、>  同時要實現的是在存放成績的文件中也要該同學的成績信息刪除,原理相同,就是在找到該同學的信息之后,保留循環變量的值,再對成績文件里該同學的進行相同覆蓋操作,即可實現同時在B文件刪除信息。流程圖如下;</p><p>  圖3-4 刪除模塊操作流程圖</p><p>  3.5 辦理借書手續模塊</p><p>  辦理借書手續模塊的基本思想是將文件打開,

20、然后輸入并儲存對應該圖書的學生的相關信息,同時,讓所存書本的數目減少借走的書的數目。在編寫函數時,首先要打開圖書存儲所在的文件,將圖書的信息讀回到結構體中。然后輸入要借的圖書的序號,通過循環查找結構體中圖書的編號,直到找到該圖書時,輸入該組對應的學生的信息。并且輸入要借的書本的數目,此時,讓所存書本的數目減少借走的書的數目,之后將這一組信息全部儲存到文件里面,完成辦理借書手續。流程圖如下:</p><p>  圖

21、3-5 辦理借書手續操作流程圖</p><p>  3.6 辦理還書手續模塊</p><p>  辦理借書手續模塊的基本思想是將文件打開,改變并儲該文件的信息。在編寫函數時,首先要打開圖書存儲所在的文件,將圖書的信息讀回到結構體中。然后輸入學生的學號,通過循環查找結構體中對應學生的學號,直到找到對應該組圖書的信息時,輸入該組圖書和學生的所有信息,之后輸入要還的書本的數目,此時,讓所存書本

22、的數目增加還書的數目。如果存數等于總數,則顯示完全儲存。之后將這結構體信息全部存回到文件里面,完成辦理還書手續。流程圖如下:</p><p>  圖3-5 辦理還書手續操作流程圖</p><p>  以上就是各模塊的詳細設計,在主菜單中選擇調用各個模塊子的函數,從而實現不同功能。</p><p><b>  四、測試結果分析</b></

23、p><p>  4.1 輸入圖書信息模塊效果</p><p>  存放文件的位置可以有自己指定,如在打開建立一個新文件時,指定存放到F://Csheji時,則要在此位置才能找到文件。此時,對應學生的信息全部為0。其輸入信息與文件寫入文件的結果如下圖:</p><p>  圖 4-1 圖書信息輸入</p><p>  文件按內容寫入如圖:<

24、/p><p>  圖 4-2 圖書信息儲存到文件</p><p>  4.2 查詢模塊效果示意</p><p><b>  基本信息查詢:</b></p><p> ?。?)按圖書序號查詢。過程及結果如圖4—3:(輸入圖書編號)</p><p>  圖 4-3 按圖書序號查詢結果</p>

25、;<p> ?。?)按圖書名稱查詢。過程及結果如圖4—4:(輸入圖書名稱)</p><p>  圖 4-4 按圖書名稱查詢結果</p><p>  4.3 刪除模塊效果圖</p><p>  圖 4-5 注銷圖書的操作過程</p><p><b>  文件中被刪除效果:</b></p>&

26、lt;p>  圖 4-6 圖書注銷的結果顯示</p><p>  4.4 借閱圖書模塊效果示意圖</p><p>  借閱過程和結果如圖:</p><p>  圖 4-7 借閱圖書的操作示意圖</p><p>  此時文件中的儲存效果:(注意第二組信息:所存書本數目減少了2本,并輸入了學生信息)</p><p&g

27、t;  圖 4-8 借閱圖書的操作結果示意圖</p><p>  4.5 歸還圖書模塊效果示意圖</p><p>  歸還過程和結果如圖:</p><p>  圖 4-9 歸還圖書的操作過程示意圖</p><p>  文件中保存的結果如圖:</p><p>  圖 4-8 歸還圖書的操作結果示意圖</p&g

28、t;<p><b>  五、總結</b></p><p><b>  5.1 優缺點分析</b></p><p>  優點分析:針對書本題目所設計的圖書管理系統基本上能完成題目規定的要求。整個系統,結構清晰,程序思維一目了然。其中查詢模塊,我還加入了兩種查詢功能(通過編號查詢,通過書名查詢)。各個模塊運行較好,并且并加入了模塊的完善

29、部分。比如輸入出錯,并且能從各個模塊回到主菜單進行下一步操作等。缺點:程序較為冗長,而且中間很多重復的部分因為時間原因未采用函數的調用,使得各個模塊中都有很多重復的部分,如回到主菜單等,造成了各個函數程序較長,未能精煉。</p><p>  5.2 心得體會與收獲</p><p>  個人心得體會:之前剛剛拿到題目的時候,我傻眼了。一方面,C語言課程去年上半年就結束了,而現在才開始課程設計

30、,感覺很多知識都已忘卻。第二方面,本身C語言基礎不是很好,而且面對如此龐大的系統,我感到束手無策,無從下手。而且因為時間原因,前面的兩天都耽誤了很多。這個時候,我很著急。后來,我決定仔細分析題目,在自己腦海里構造一個整個系統的框架和模塊。各個模塊分別可以怎樣實現。在遇到問題和知識點遺漏的時候,我決定回歸課本,仔細研讀和回憶學過的知識。在我把第一個模塊成功的編寫出來的時候,我興奮了!看著程序暢通的運行,我真的體會到了學習的快樂和成就感。但

31、是,之后我發現,存入文件的全部是亂碼。我調試了好幾次都不行。后來我虛心向同學請教,才發現原來是文件的寫入有問題。后來經過糾正,果然,信息能正確的儲存在文件里了。</p><p>  諸如這種遇到困難,然后不斷摸索和解決問題的過程,在實習的過程中還遇到了很多很多??傊?,在經過無數次挑燈夜戰之后,程序和系統能正確運行了!那種苦盡甘來,客服磨難,到達成功的彼岸的感覺,真的是太深刻,太讓我銘記了。</p>

32、<p>  同時,我在編程時收獲很多,學會了如何將信息寫入到文件里,如何將文件里的內容讀出來,學會了如何使用結構體變量,學會了調用函數,學會了用簡單的算法得到想要的數據,最重要的是對整個C語言有了一個良好的把握和正確的理解。這些,在別人眼里也許是微不足道的,但我卻覺得受益匪淺。我甚至覺得此次課程設計實習所收獲到的東西,甚至比一個學期的課堂學習都多,也可以說經過這次的課程設計的實習,我自己也成長了很多。這些微小的成績,都來自我的

33、刻苦努力,還有老師和同學們的熱心幫助。我還要真心的感謝給我幫助的老師和同學!</p><p><b>  六、參考文獻</b></p><p> ?。郏保葑T浩強《C程序設計》 第三版 清華大學出版社 2005</p><p> ?。郏玻輳埗返取禖語言課程設計與實習指導》 第一版 中國鐵道出版社 2008</p><p&

34、gt;<b>  七、附錄</b></p><p><b>  1、變量定義:</b></p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<conio.h><

35、/p><p>  #include <string.h></p><p><b>  int get()</b></p><p><b>  {</b></p><p><b>  int o;</b></p><p>  scanf("

36、;%d",&o);</p><p><b>  return o;</b></p><p><b>  }</b></p><p>  struct BOOK /*用結構體存放書籍及借書和借閱人的信息。*/ </p><p><b>  {<

37、/b></p><p><b>  int num;</b></p><p>  int price;</p><p>  char aurthor[21];</p><p>  int total;</p><p>  int store;</p><p>  in

38、t xuehao;</p><p>  char name[31];</p><p>  char sex[8];</p><p>  char borrow_name[20];</p><p>  }books[4];</p><p>  void page_title(char*menu_item)</p&g

39、t;<p><b>  {</b></p><p>  printf(" 圖書管理系統 \n-%s-\n",menu_item);</p><p><b>  }</b></p><p><b>  2、主函數:</b></

40、p><p>  void main()</p><p><b>  { </b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  void book_add();</p><

41、;p>  void search_of_book();</p><p>  void book_del();</p><p>  void book_out();</p><p>  void book_in();</p><p>  printf(" /*************系統菜單*******

42、******/\n\n");</p><p>  printf("\n 請用數字選擇操作 \n\n");</p><p>  printf(" /********* 1,注冊新圖書 ***********/\n");</p>

43、<p>  printf(" /********* 2,查詢圖書 ***********/\n");</p><p>  printf(" /********* 3,注銷舊書 ***********/\n");</p><p>  printf("

44、 /********* 4,借閱圖書 ************/\n");</p><p>  printf(" /********* 5,歸還圖書 ***********/\n");</p><p>  printf("\n /********* 0,退

45、 出 ***********/\n");</p><p>  switch(get())</p><p><b>  { </b></p><p>  case 1: book_add();break;</p><p>  case 2: search_of_book();break;<

46、/p><p>  case 3: book_del();break;</p><p>  case 4: book_out();break;</p><p>  case 5: book_in();break;</p><p>  default : exit(0);</p><p><b>  }</b&

47、gt;</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  3、圖書基本信息輸入函數:</p><p>  void book_add()

48、 /*新圖書基本信息的輸入*/</p><p><b>  {</b></p><p>  int n,count,i;</p><p><b>  FILE *fp;</b></p><p>  page_title("/************** 注冊新圖書 ****

49、**********/");</p><p>  if((fp=fopen("book_list1.txt","a+"))==NULL)</p><p>  {printf("cannot open the file\n");</p><p><b>  }</b></

50、p><p>  printf("您需要注冊幾本書:");</p><p>  scanf("%d",&count);</p><p>  printf("請按如下順序輸入圖書信息:序號 書名 單價 作者 數量 學生姓名 性別 學號\n");</p><p>  fo

51、r(n=0;n<count;n++)</p><p><b>  {</b></p><p>  scanf("%d %s %d %s %d %s %s %d\n",&books[n].num,books[n].name,&books[n].price,books[n].aurthor,&books[n]

52、.total,books[n].borrow_name,books[n].sex,&books[n].xuehao);</p><p>  books[n].store=books[n].total;</p><p>  fprintf(fp,"%d %s %d %s %d %d %s %s %d\n",books[n].num,books[n]

53、.name,books[n].price,books[n].aurthor,books[n].total,books[n].store,books[n].borrow_name,books[n].sex,books[n].xuehao);</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  p

54、rintf("1,返回主菜單 2,退出\n");</p><p>  scanf("%d",&i);</p><p><b>  switch(i)</b></p><p><b>  {</b></p><p>  case 1:main();b

55、reak;</p><p>  default: exit(0);</p><p><b>  }</b></p><p><b>  }</b></p><p>  4、新圖書基本信息的查找函數:</p><p>  void search_of_book()

56、 /*新圖書基本信息的查找*/</p><p><b>  {</b></p><p>  int n=0,a,m,i,j=0;</p><p><b>  FILE *fp;</b></p><p>  char b[10];</p><p>  page_title(

57、"/************** 查詢圖書信息 **************/");</p><p>  printf("\n1.按圖書序號查詢,2.按圖書名稱查詢.\n");</p><p>  printf(" 請用數字選擇操作--> \n\n&quo

58、t;);</p><p>  scanf("%d",&a);</p><p>  if(a==1) //按圖書序號查詢</p><p><b>  {</b></p><p>  printf("請輸入圖書序號:\n");</p>

59、<p>  scanf("%d",&i);</p><p>  if((fp=fopen("book_list1.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("\nCannot open

60、book_list1!\n");</p><p><b>  }</b></p><p>  for(;!feof(fp);)</p><p><b>  {</b></p><p>  fscanf(fp,"%d %s %d %s %d %d %s %s %d\

61、n",&books[n].num,books[n].name,&books[n].price,books[n].aurthor,&books[n].total,&books[n].store,books[n].borrow_name,books[n].sex,&books[n].xuehao);</p><p><b>  n++;</b>&

62、lt;/p><p><b>  }</b></p><p>  for(n=0;n<4;n++)</p><p><b>  {</b></p><p>  if(books[n].num==i)</p><p><b>  {</b></p&

63、gt;<p>  printf("書名:%s\n",books[n].name);</p><p>  printf("圖書編號:%d\n",books[n].num);</p><p>  printf("單價:%d 元\n",books[n].price);</p><p>  print

64、f("作者:%s\n",books[n].aurthor);</p><p>  printf("現存:%d 本\n",books[n].store);</p><p>  printf("總數:%d 本\n",books[n].total);</p><p><b>  break;</b

65、></p><p><b>  }</b></p><p>  else printf("there is no record!!!\n");</p><p><b>  }</b></p><p><b>  }</b></p>&l

66、t;p>  else if(a==2) //按圖書名稱查詢</p><p><b>  {</b></p><p>  printf("\n請輸入您要查詢的書名:");</p><p>  scanf("%s",&b);</p><p>  if((fp=fop

67、en("book_list1.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("\nCannot open book_list1!\n");</p><p><b>  }</b></p>

68、<p>  for(;!feof(fp);)</p><p><b>  {</b></p><p>  fscanf(fp,"%d %s %d %s %d %d %s %s %d\n",&books[j].num,books[j].name,&books[j].price,books[j].aurtho

69、r,&books[j].total,&books[j].store,books[j].borrow_name,books[j].sex,&books[j].xuehao);</p><p><b>  j++;</b></p><p><b>  }</b></p><p>  for(j=0;j&

70、lt;4;j++)</p><p>  if(strcmp(books[j].name,b)==0)</p><p><b>  {</b></p><p>  printf("書名:%s\n",books[j].name); </p><p>  printf("圖書編號:%d\n&

71、quot;,books[j].num);</p><p>  printf("單價:%d 元\n",books[j].price);</p><p>  printf("作者:%s\n",books[j].aurthor );</p><p>  printf("現存:%d 本\n",books[j].st

72、ore );</p><p>  printf("總數:%d 本\n",books[j].total);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else </b></p>&

73、lt;p><b>  {</b></p><p>  printf("\n輸入錯誤(無效圖書序號或圖書名)!\n");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  fclose(fp

74、);</p><p>  printf("1,返回主菜單 2,退出");</p><p>  scanf("%d",&m);</p><p><b>  switch(m)</b></p><p><b>  {</b></p>&l

75、t;p>  case 1:main();break;</p><p>  default: exit(0);</p><p><b>  }</b></p><p><b>  }</b></p><p>  5、舊書的注銷函數:</p><p>  void book

76、_del()</p><p><b>  {</b></p><p>  int n,m,a,j=0;</p><p><b>  FILE *fp;</b></p><p>  page_title("/************** 注銷圖書信息 **************

77、/");</p><p>  printf("請輸入您要注銷的圖書序號:(<4)\n");</p><p>  scanf("%d",&a);</p><p>  if((fp=fopen("book_list1.txt","r"))==NULL)</p&g

78、t;<p><b>  {</b></p><p>  printf("\nCannot open book_list1!\n");</p><p><b>  }</b></p><p>  for(;!feof(fp);)</p><p><b>  

79、{</b></p><p>  fscanf(fp,"%d %s %d %s %d %d %s %s %d\n",&books[j].num,books[j].name,&books[j].price,books[j].aurthor,&books[j].total,&books[j].store,books[j].borrow_na

80、me,books[j].sex,&books[j].xuehao);</p><p>  if(books[j].num==a)</p><p><b>  {</b></p><p>  printf("您要注銷的舊書的信息:圖書編號 書名 價格 作者 總數 現存 借閱者姓名 性別 學號\n");

81、</p><p>  printf("%d %s %d %s %d %d %s %s %d\n",books[j].num,books[j].name,books[j].price,books[j].aurthor,books[j].total,books[j].store,books[j].borrow_name,books[j].sex,books[j].xuehao);&

82、lt;/p><p>  books[j]=books[4];</p><p><b>  }</b></p><p><b>  j++;</b></p><p><b>  }</b></p><p>  for(n=0;n<4;n++)</p

83、><p>  {fprintf(fp,"%d %s %d %s %d %d %s %s %d\n",books[n].num,books[n].name,books[n].price,books[n].aurthor,books[n].total,books[n].store,books[n].borrow_name,books[n].sex,books[n].xuehao);&l

84、t;/p><p><b>  }</b></p><p>  fclose(fp);</p><p>  printf("圖書已成功注銷??!\n");</p><p>  printf("\n1,返回主菜單 2,退出");</p><p>  scanf(&

85、quot;%d",&m);</p><p><b>  switch(m)</b></p><p><b>  {</b></p><p>  case 1:main();break;</p><p>  default: exit(0);</p><p>

86、<b>  }</b></p><p><b>  }</b></p><p>  6、辦理借閱手續的函數:</p><p>  void book_out() /*借書函數,首先要找書*/ </p><p><b>  {</b></p><

87、p>  int n=0,m,k,x,j=0,a=0;</p><p><b>  FILE *fp;</b></p><p>  page_title("/************** 借閱圖書 **************/");</p><p>  printf("請輸入您想借的圖書的序號:&

88、quot;);</p><p>  scanf("%d",&x);</p><p>  if((fp=fopen("book_list1.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf(&qu

89、ot;\nCannot open book_list1!\n");</p><p><b>  }</b></p><p>  for(;!feof(fp);)</p><p><b>  {</b></p><p>  fscanf(fp,"%d %s %d %s %d

90、 %d %s %s %d\n",&books[j].num,books[j].name,&books[j].price,books[j].aurthor,&books[j].total,&books[j].store,books[j].borrow_name,books[j].sex,&books[j].xuehao);</p><p><b>

91、  j++;</b></p><p><b>  }</b></p><p><b>  do{</b></p><p>  if((books[n].num==x) && books[n].store >0)</p><p><b>  {</b&

92、gt;</p><p>  printf("請按如下順序輸入您的信息:姓名 性別 學號 想借幾本書(<= %d 本)\n",books[n].store);</p><p>  scanf("%s%s%d%d",books[n].borrow_name,books[n].sex,&books[n].xuehao,&k);&

93、lt;/p><p>  printf("本書現存: %d 本\n",books[n].store);</p><p>  books[n].store=books[n].store-k;</p><p>  printf("本書還有: %d 本\n",books[n].store);</p><p>  p

94、rintf("借閱成功??!\n");</p><p><b>  a=1;</b></p><p><b>  }</b></p><p><b>  n++;</b></p><p>  if(n==4) { a=2; break;}</p>

95、<p>  //else if(a==0) printf("此書已借完或輸入錯誤(本館沒有您想要的書)。\n");</p><p>  }while(a==0);</p><p>  if(a==2) printf("此書已借完或輸入錯誤(本館沒有您想要的書)。\n");</p><p>  fclose(fp);

96、</p><p>  if((fp=fopen("book_list1.txt","w+"))==NULL) //重新寫入并替換文件</p><p>  {printf("cannot open the file\n");</p><p><b>  }</b></p>

97、<p>  for(n=0;n<4;n++)</p><p>  {fprintf(fp,"%d %s %d %s %d %d %s %s %d\n",books[n].num,books[n].name,books[n].price,books[n].aurthor,books[n].total,books[n].store,books[n].borrow

98、_name,books[n].sex,books[n].xuehao);</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  printf("1,返回主菜單 2,退出");</p><p>  scanf("%d",&

99、m);</p><p><b>  switch(m)</b></p><p><b>  {</b></p><p>  case 1:main();break;</p><p>  default: exit(0);</p><p><b>  }</b&

100、gt;</p><p><b>  }</b></p><p>  7、辦理還書手續的函數:</p><p>  void book_in() /*還書函數*/</p><p><b>  {</b></p><p>  int n,a,b,m,j=0;</p&g

101、t;<p><b>  FILE *fp;</b></p><p>  page_title("/************** 還圖書 **************/");</p><p>  printf("輸入您的學號:\n");</p><p>  scanf("

102、%d",&a);</p><p>  if((fp=fopen("book_list1.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("\nCannot open book_list1!\n");<

103、/p><p><b>  }</b></p><p>  for(;!feof(fp);)</p><p><b>  {</b></p><p>  fscanf(fp,"%d %s %d %s %d %d %s %s %d\n",&books[j].num

104、,books[j].name,&books[j].price,books[j].aurthor,&books[j].total,&books[j].store,books[j].borrow_name,books[j].sex,&books[j].xuehao);</p><p>  if(books[j].xuehao==a)</p><p><b&

105、gt;  {</b></p><p>  printf("您的信息:\n");</p><p>  printf("姓名:%s\n",books[j].borrow_name);</p><p>  printf("性別:%s\n",books[j].sex);</p><p

106、>  printf("學號:%d\n",books[j].xuehao);</p><p>  printf("\n您的相關借閱信息:\n");</p><p>  printf("書名:%s\n",books[j].name);</p><p>  printf("作者:%s\n"

107、;,books[j].aurthor);</p><p>  printf("本書現存:%d\n",books[j].store);</p><p>  printf("\n您還幾本書:\n");</p><p>  scanf("%d",&b);</p><p>  boo

108、ks[j].store=books[j].store+b;</p><p>  printf("還書成功。\n\n");</p><p><b>  }</b></p><p><b>  }</b></p><p>  fclose(fp);</p><p&

109、gt;  if((fp=fopen("book_list001.txt","w+"))==NULL) //重新寫入并替換文件</p><p>  {printf("cannot open the file\n");</p><p><b>  }</b></p><p>  for

110、(n=0;n<4;n++)</p><p>  {fprintf(fp,"%d %s %d %s %d %d\n",books[n].num,books[n].name,books[n].price,books[n].aurthor,books[n].total,books[n].store);</p><p><b>  }</b>

111、;</p><p>  fclose(fp);</p><p>  printf("1,返回主菜單 2,退出");</p><p>  scanf("%d",&m);</p><p><b>  switch(m)</b></p><p><

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論