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

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p>  1 課程設計目的與要求1</p><p><b>  2 問題描述2</b></p><p><b>  3總體設計3</b></p><p>  3.1 功能分析3</p><p&

2、gt;  3.2 系統使用的主要函數3</p><p>  3.3 系統使用的主要數據結構4</p><p><b>  4 詳細設計5</b></p><p>  4.1 程序總體結構圖5</p><p>  4.2 程序流程圖7</p><p><b>  5 功能測試1

3、0</b></p><p>  5.1 系統主界面10</p><p>  5.2 系統輸入信息的界面11</p><p>  5.3 系統信息查詢的界面12</p><p>  5.4 系統信息按作者名查詢的界面13</p><p>  5.5 系統信息按作者名排序14</p>&

4、lt;p>  6 程序設計調試情況分析15</p><p>  7 課程設計小結16</p><p><b>  參考文獻17</b></p><p>  附錄 系統源程序18</p><p><b>  圖書信息管理系統</b></p><p>  1 課程

5、設計目的與要求</p><p>  圖書信息存放在文件中,提供文件的輸入、輸出等操作;要實現瀏覽功能;查詢和排序功能要求實現查找操作(至少兩種依據);還應該提供圖書信息刪除和修改的功能;另外還應該提供鍵盤式選擇菜單以實現功能選擇。</p><p>  圖書管理系統,其中包括:</p><p>  圖書信息包括:登錄號、書名、作者名、分類號、出版單位、出版時間、價格等

6、。</p><p><b>  功能包括:</b></p><p>  1) 系統以菜單方式工作;</p><p>  2) 圖書信息錄入功能(圖書信息用文件保存);</p><p>  3) 圖書信息瀏覽功能;</p><p>  4) 查詢和排序功能;</p><p>

7、  5)圖書信息的刪除與修改功能</p><p><b>  2 問題描述</b></p><p>  1.設計一個圖書管理系統,其中包括:</p><p>  圖書信息包括:登錄號、書名、作者名、分類號、出版單位、出版時間、價格等。</p><p><b>  功能包括:</b></p>

8、;<p>  1) 系統以菜單方式工作;</p><p>  2) 圖書信息錄入功能(圖書信息用文件保存);</p><p>  3) 圖書信息瀏覽功能;</p><p>  4) 查詢和排序功能;</p><p>  5)圖書信息的刪除與修改功能</p><p><b>  2.需求分析:&l

9、t;/b></p><p>  圖書信息存放在文件中,提供文件的輸入、輸出等操作;要實現瀏覽功能;查詢和排序功能要求實現查找操作(至少兩種依據);還應該提供圖書信息刪除和修改的功能;另外還應該提供鍵盤式選擇菜單以實現功能選擇。</p><p><b>  顯示模塊</b></p><p>  通過設計一個模塊,來實現圖書信息的顯示,以便于

10、瀏覽圖書的信息。</p><p><b>  查詢模塊</b></p><p>  通過設計一個模塊,這個模塊可以按圖書的書名、作者來查詢圖書所有的信息,以便查詢者閱讀。</p><p><b>  刪除模塊</b></p><p>  通過設計一個模塊,當輸入一個圖書的登入號或者書名的時候,可以通

11、過這個模塊,將輸入登入號或者書名的書籍的所有信息從數據庫中刪除出去。以后,這本圖書的信息不再出現在數據庫中。</p><p><b>  修改模塊</b></p><p>  通過設計一個模塊,當某本圖書的信息發生變化的時候,可以通過修改模塊來進行修改。修改模塊時一具有多級子菜單的模塊。</p><p><b>  排序模塊</

12、b></p><p>  通過設計一個模塊,來實現數據庫的信息按某項成員名的升序或者降序排列,這個模塊提供了按書名,作者名,分類號三種方式來實現排序。</p><p><b>  3總體設計</b></p><p><b>  3.1 功能分析</b></p><p> ?。ㄏ到y提供主界面,各

13、種功能操作以獨立的函數為基礎,運用對鏈表操作的技術來實現通訊錄的管理,同時對操作結果在計算機中做永久保存。)</p><p>  整個系統可以分為信息錄入、信息瀏覽、信息查詢、信息排序、信息刪除和信息修改的功能。系統提供主界面,各種功能操作以獨立的函數為基礎,運用對鏈表操作的技術來實現圖書信息的管理,同時對操作結果在計算機中做永久保存。</p><p>  3.2 系統使用的主要函數<

14、;/p><p>  void menu();</p><p>  int bookluru(struct book*p,int n); (錄入圖書信息) </p><p>  void bookliulan(struct book*p,int n); (圖書信息瀏覽)

15、 </p><p>  void bookchaxun(struct book*p,int n);(圖書信息查詢)</p><p>  void bookxiugai(struct book*p,int n); (圖書信息修改) </p><p>  int bookzengjia(struct book*p,int n); (圖書信息增加)</p>

16、<p>  int bookshanchu(struct book*p,int n); (圖書信息刪除) </p><p>  void bookpaixu(struct book*p,int n); (圖書信息排序) </p><p>  void DLsearch(struct book*p,int n)

17、; (按登入號查詢)</p><p>  void AUsearch(struct book*p,int n); (按作者名查詢)</p><p>  int bookzairu(struct book*p,int n); (圖書信息文件儲存 )</p><p>  void goout(); (退出程序) <

18、/p><p>  int bookbaocun(struct book*p,int n); (圖書信息保存) </p><p>  void main() </p><p>  3.3 系統使用的主要數據結構</p><p>  struct book //定義一個book類結

19、構體。</p><p><b>  {</b></p><p>  char no[L];</p><p>  char name[L];</p><p>  char author[L];</p><p>  char fenlei[L];</p><p>  char

20、puttime[L];</p><p>  char putfrom[L];</p><p>  char price[L];</p><p><b>  };</b></p><p><b>  4 詳細設計</b></p><p>  4.1 程序總體結構圖</p&

21、gt;<p>  N </p><p><b>  Y</b></p><p>  圖4.1 程序總體結構圖</p><p><b>  0</b></p><p>  1 2 3 4

22、 </p><p>  5 6 7</p><p>  圖4.2 程序層次圖 </p><p><b>  4.2 程序流程圖</b></p><p>  圖4.3信息登入功能流程圖</p><p>  圖4.4 查詢功能流程圖<

23、/p><p>  圖4.5 修改功能流程圖</p><p><b>  5 功能測試</b></p><p><b>  5.1 系統主界面</b></p><p>  圖5.1 系統主界面</p><p>  5.2 系統輸入信息的界面</p><p>

24、;  圖 5.2 輸入信息界面</p><p>  5.3 系統信息查詢的界面 </p><p>  圖5.3信息查詢界面</p><p>  5.4 系統信息按作者名查詢的界面</p><p>  圖5.4 按作者名查詢</p><p>  5.5 系統信息按作者名排序 </p><p>

25、;  圖5.5 信息排序界面</p><p>  6 程序設計調試情況分析</p><p>  1)問題:在信息查詢完成后,無法跳出該界面,無法回到主界面。</p><p>  圖6.1 查詢后無法回到主界面</p><p>  解決方法:在信息查詢那個版塊的程序中,把原先用scanf輸入字符改成gets(no),排除由于回車鍵出現的問題

26、。</p><p>  2)問題:“登錄號書名作者。。?!敝g無空格號</p><p>  解決方法:改為printf("\n %9s%9s%9s%9s%9s%9s%9s\n","登錄號","書名","作者名","分類號","出版單位","出版時間",

27、"價格"); 拉寬長度。</p><p><b>  7 課程設計小結</b></p><p>  通過一周的課程設計,第一次我們試著用所學的C語言知識去編制生活中常用的程序。我們是小組選擇編輯圖書信息管理系統程序。由于分工合作,我負責的是查詢和排除模塊。起初對知識掌握的不夠全面,在整個設計過程中遇到很多問題。比如,編譯出現錯誤,對于格式的掌握還不

28、夠透徹;在分界面運行完后,回不到系統的主界面,出現了死循環;在刪除信息的板塊中,刪除了要保留的;運行時,屏幕顯示的字之間無空格。后來,通過小組互相幫組討論,查閱書籍,改善了程序。首先把原程序中的運用scanf()輸入字符,改為getchar(),排除了接受回車鍵所出現的問題,能夠順利的返回主界面。其次,printf()中字符串控制的長度拉寬。最后還是能如期的完成此次實訓。</p><p>  當然,由于初次接觸圖

29、書管理系統的設計,程序還是存在缺陷。比如操作起來不夠簡便、連貫,同時也沒考慮到實際問題。如圖書的價格要取大于等于零的數等。</p><p>  總之,此次的課程設計還是對我們的專業很有幫助。既鞏固了我們的C語言知識,讓我們對一部分函數的功能有了更加深刻的理解,把所學運用到實際,也使我們在系統設計領域有了新的拓展,開發我們的思維。</p><p><b>  參考文獻</b&

30、gt;</p><p>  [1] 吉順如. 《C程序設計教程與實驗》. 北京 :清華大學出版社. 2011. 48-103</p><p><b>  附錄 系統源程序</b></p><p>  #include<stdio.h> //頭文件</p><p>  #inclu

31、de<string.h></p><p>  #include<stdlib.h></p><p>  #define L 30 //宏定義</p><p>  #define Q 200</p><p>  struct book //定義一個bo

32、ok類結構體。</p><p><b>  {</b></p><p>  char no[L];</p><p>  char name[L];</p><p>  char author[L];</p><p>  char fenlei[L];</p><p>  c

33、har puttime[L];</p><p>  char putfrom[L];</p><p>  char price[L];</p><p><b>  };</b></p><p>  //函數聲明 //函數聲明</p><p&

34、gt;  void menu();</p><p>  int bookluru(struct book*p,int n); </p><p>  void bookliulan(struct book*p,int n); </p>

35、<p>  void bookchaxun(struct book*p,int n); </p><p>  void bookxiugai(struct book*p,int n); </p><p>  int bookzhengjia(struct book*p,int n);</p><p>  int bookshanch

36、u(struct book*p,int n); </p><p>  void bookpaixu(struct book*p,int n); </p><p>  void DLsearch(struct book*p,int n); </p><p>  vo

37、id AUsearch(struct book*p,int n);</p><p>  int bookzairu(struct book*p,int n);</p><p>  void goout();</p><p>  int bookbaocun(struct book*p,int n); </p><p>  void

38、 main() //主函數</p><p><b>  {</b></p><p>  char slect,yn;</p><p>  struct book record[Q]; //定義book類結構體變量存放圖書信息共200條</p>

39、;<p>  int total=0,flag;</p><p>  total=bookzairu(record,Q); //從文件讀取圖書信息,不超過200條</p><p><b>  do</b></p><p><b>  {</b></p><p>

40、;  menu(); //顯示菜單</p><p>  printf("請服務項編號:");</p><p>  slect=getchar();</p><p>  getchar();</p><p>  switch(slect)</p><p

41、><b>  {</b></p><p>  case'0': goout();break;</p><p>  case'1': total=bookluru(record,total);break; //函數調用</p><p>  case'2': bookliulan(recor

42、d,total);break;</p><p>  case'3': bookchaxun(record,total);break;</p><p>  case'4': bookxiugai(record,total);break;</p><p>  case'5': total=bookzhengjia(reco

43、rd,total);break;</p><p>  case'6': total=bookshanchu(record,total);break;</p><p>  case'7': bookpaixu(record,total);break;</p><p>  case'8': flag=bookbaocun(

44、record,total);</p><p>  if("flag==1") </p><p>  printf("圖書信息保存成功!\n");</p><p><b>  else</b></p><p>  printf("圖書信息保存失??!\n")

45、;</p><p><b>  break;</b></p><p>  default:continue;</p><p><b>  }</b></p><p>  if(slect=='0') break;</p><p>  printf("

46、\n還要繼續選擇嗎?(Y/N)"); //提示是否結束</p><p><b>  do</b></p><p><b>  {</b></p><p>  yn=getchar();</p><p>  getchar();</p><p>  if (

47、yn=='Y'||yn=='y')</p><p><b>  break;</b></p><p>  else if (yn=='N'||yn=='n')</p><p><b>  break;</b></p><p><b

48、>  else</b></p><p>  printf("非法選項!\n還要繼續選擇嗎?(Y/N)");</p><p><b>  }</b></p><p><b>  while(1);</b></p><p><b>  }</b

49、></p><p>  while(yn!='N'&&yn!='n');</p><p><b>  }</b></p><p>  //圖書管理系統主菜單.</p><p>  void menu()</p><p><b>  {

50、</b></p><p>  system("cls");</p><p>  printf("\n\n");</p><p>  printf("請選擇服務項目編號(0--8)\n");</p><p>  printf("******************

51、************************************************\n");</p><p>  printf("§********************歡迎使用圖書信息管理系統******************§\n");</p><p>  printf("§************

52、**************************************************§\n");</p><p>  printf("§§ §§\n");</p><p>  

53、printf("§§ §§\n");</p><p>  printf("§§ 

54、67;§\n");</p><p>  printf("§§ * 1 . 圖書信息錄入. §§\n");</p><p>  printf("§§ * 2 .

55、圖書信息瀏覽. §§\n");</p><p>  printf("§§ * 3 . 圖書信息查尋. §§\n");</p><p>  printf("

56、7;§ * 4 . 圖書信息修改. §§\n");</p><p>  printf("§§ * 5 . 圖書信息增加. §§\n");</p

57、><p>  printf("§§ * 6 . 圖書信息刪除. §§\n");</p><p>  printf("§§ * 7 . 圖書信息排序.

58、 §§\n");</p><p>  printf("§§ * 8 . 圖書信息保存. §§\n");</p><p>  printf("§§

59、 * 0 . 退出圖書管理系統. §§\n");</p><p>  printf("§§ §§\n");</p><p>  printf

60、("§§ §§\n");</p><p>  printf("§§ §

61、67;\n");</p><p>  printf("******************************************************************\n";</p><p>  printf("\n");</p><p><b>  }</b></p&

62、gt;<p>  int bookluru(struct book *p,int n)//錄入圖書信息.</p><p><b>  {</b></p><p><b>  int i=0;</b></p><p><b>  int m;</b></p><p>

63、;  printf("\n添加前的圖書信息記錄共有%d個:\n",n); //顯示原有的圖書信息</p><p>  printf("\n %9s%9s%9s%9s%9s%9s%9s\n","登錄號","書名","作者名","分類號","出版單位","

64、出版時間","價格");</p><p><b>  i=0;</b></p><p>  while((i<n)&&(strcmp(p->no,"")!=0)) //輸入的登錄號不為空時,輸出圖書信息</p><p><b>  {</

65、b></p><p>  printf("%9s%9s%9s%9s%9s%9s%9s\n",p->no,p->name,p->author,p->fenlei,p->puttime,p->putfrom,p->price);//信息輸出</p><p><b>  i++;</b></p>

66、<p><b>  p++;</b></p><p><b>  }</b></p><p>  printf("\n請輸入要錄入的圖書數目X(0<X<%d): ",200-n); //設置圖書信息存儲最大值</p><p>  scanf("%d",&a

67、mp;m);</p><p><b>  i=0;</b></p><p>  while(i<m)</p><p><b>  {</b></p><p>  printf("\n");</p><p>  printf("請輸入第%d本

68、圖書的信息:\n",i+1);</p><p>  printf("登錄號: ");</p><p><b>  do</b></p><p><b>  {</b></p><p>  gets(p->no); //輸入登錄號,再輸入其他信息</p

69、><p><b>  }</b></p><p>  while(strcmp(p->no,"")==0);</p><p>  printf("書名為:");</p><p>  gets(p->name);</p><p>  printf(&q

70、uot;作者名為:");</p><p>  gets(p->author);</p><p>  printf("分類號為:");</p><p>  gets(p->fenlei);</p><p>  printf("出版時間為:");</p><p>

71、;  gets(p->puttime);</p><p>  printf("出版單位為:");</p><p>  gets(p->putfrom);</p><p>  printf("價格為:");</p><p>  gets(p->price);</p><

72、;p><b>  p++;</b></p><p><b>  i++;</b></p><p><b>  }</b></p><p>  return m+n;</p><p><b>  }</b></p><p>  

73、void bookliulan(struct book*p,int n)//圖書信息瀏覽.</p><p><b>  {</b></p><p><b>  int i=0;</b></p><p>  printf("\n %9s%9s%9s%9s%9s%9s%9s\n","登錄號&quo

74、t;,"書名","作者名","分類號","出版單位","出版時間","價格");</p><p>  while(i<n) //輸出原有圖書信息</p><p><b>

75、  {</b></p><p>  printf("%9s%9s%9s%9s%9s%9s%9s\n",p->no,p->name,p->author,p->fenlei,p->puttime,p->putfrom,p->price);</p><p><b>  p++;</b></p&g

76、t;<p><b>  i++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void bookchaxun(struct book*p,int n)//圖書信息查尋.</p><p><b&g

77、t;  {</b></p><p><b>  char c;</b></p><p>  bookliulan(p ,n);</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf

78、("\n請問按登錄號查詢(D),還是按作者名查詢(A)?"); //選擇查詢方式</p><p>  c=getchar();</p><p>  getchar();</p><p>  if(c=='D'||c=='d')</p><p><b>  {</b>&

79、lt;/p><p>  DLsearch(p,n);</p><p><b>  break;</b></p><p><b>  }</b></p><p>  else if(c=='A'||c=='a')</p><p><b> 

80、 {</b></p><p>  AUsearch(p,n);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {&

81、lt;/b></p><p>  printf("\n輸入的為非法字符!\n");</p><p><b>  continue;</b></p><p><b>  }</b></p><p><b>  }</b></p><p

82、>  while(c!='D'||c!='d'||c!='A'||c!='a');</p><p><b>  }</b></p><p>  void DLsearch(struct book*p,int n)//按登錄號查詢.</p><p><b>  {&l

83、t;/b></p><p>  int i,x=0;</p><p>  char DL[L];</p><p>  printf("\n請輸入要查詢圖書的登錄號:");</p><p><b>  gets(DL);</b></p><p>  for(i=0;i<

84、;n;i++)</p><p>  if(strcmp(DL,p[i].no)==0) //輸入登錄號,如果在系統中找到則輸出圖書信息</p><p><b>  {</b></p><p>  printf("\n %9s%9s%9s%9s%9s%9s%9s\n","登錄號","書名&

85、quot;,"作者名","分類號","出版單位","出版時間","價格");</p><p>  printf("\n%10s%10s%10s%10s%10s%10s%10s\n",p[i].no,p[i].name,p[i].author,p[i].fenlei,p[i].putfrom,p[

86、i].puttime,p[i].price);</p><p><b>  x=1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  if(x==0)</b></p>

87、<p>  printf("\n對不起,圖書系統中沒有包含此書的信息!\n");</p><p><b>  }</b></p><p>  void AUsearch(struct book*p,int n)//按作者名查詢.</p><p><b>  {</b></p>

88、<p>  int i,x=0;</p><p>  char AU[20];</p><p>  printf("\n請輸入要查詢圖書的作者姓名:");</p><p><b>  gets(AU);</b></p><p>  for(i=0;i<n;i++)</p>

89、<p>  if(strcmp(AU,p[i].author)==0) //輸入作者姓名,如果在系統中找到則輸出圖書信息</p><p><b>  {</b></p><p>  printf("\n %9s%9s%9s%9s%9s%9s%9s\n","登錄號","書名","作者名

90、","分類號","出版單位","出版時間","價格");</p><p>  printf("\n%10s%10s%10s%10s%10s%10s%10s\n",p[i].no,p[i].name,p[i].author,p[i].fenlei,p[i].putfrom,p[i].puttime,p[i]

91、.price);</p><p><b>  x=1;</b></p><p><b>  }</b></p><p><b>  if(x==0)</b></p><p>  printf("\n對不起,圖書系統中沒有包含此書的信息!\n"); //提示

92、信息</p><p><b>  }</b></p><p>  void bookxiugai(struct book*p,int n)//圖書信息修改.</p><p><b>  {</b></p><p>  int i,k=0;</p><p>  char no[

93、L];</p><p>  bookliulan(p,n);</p><p>  printf("\n請輸入要修改圖書的登錄號:");</p><p><b>  gets(no);</b></p><p>  for(i=0;i<n;i++,p++) </p><

94、p><b>  {</b></p><p>  if(strcmp(no,p->no)!=0) continue; //輸入的登錄號不匹配,結束本次循環</p><p><b>  else</b></p><p><b>  {</b></p><p> 

95、 printf("\n請輸入正確的圖書登錄號:");</p><p>  gets(p->no);</p><p>  printf("\n請輸入正確的圖書書名:");</p><p>  gets(p->name);</p><p>  printf("\n請輸入正確的圖書作者

96、名:");</p><p>  gets(p->author);</p><p>  printf("\n請輸入正確的圖書分類號:");</p><p>  gets(p->fenlei);</p><p>  printf("\n請輸入正確的圖書出版時間:");</p>

97、;<p>  gets(p->puttime);</p><p>  printf("\n請輸入正確的圖書出版單位:");</p><p>  gets(p->putfrom);</p><p>  printf("\n請輸入正確的圖書價格:");</p><p>  gets

98、(p->price);</p><p>  printf("\n修改圖書圖書信息完成??!");</p><p><b>  k=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><

99、p><b>  if(k==0)</b></p><p>  printf("\n對不起,圖書系統中沒有包含此書的信息!\n");</p><p><b>  }</b></p><p>  int bookzhengjia(struct book *p,int n)//圖書信息增加.</p

100、><p><b>  {</b></p><p><b>  int i=0;</b></p><p><b>  char c;</b></p><p>  struct book t,*q;</p><p>  printf("\n添加前圖書信

101、息的記錄為:\n");</p><p>  bookliulan(p ,n);//顯示添加前圖書信息的記錄</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("請輸入新圖書信息的登錄號:");</p

102、><p>  gets(t.no); </p><p>  printf("\n請輸入新圖書信息的書名為:");</p><p>  gets(t.name);</p><p>  printf("\n請輸入新圖書信息的作者名為:");</p><p>  gets(t.

103、author);</p><p>  printf("\n請輸入新圖書信息的分類號為:");</p><p>  gets(t.fenlei);</p><p>  printf("\n請輸入新圖書信息的出版時間為:");</p><p>  gets(t.puttime);</p>&l

104、t;p>  printf("\n請輸入新圖書信息的出版單位為:");</p><p>  gets(t.putfrom);</p><p>  printf("\n請輸入新圖書信息的價格為:");</p><p>  gets(t.price);</p><p>  for(i=0;i<n;

105、i++)if(strcmp(t.no,(p+i)->no)==0||strcmp(t.author,(p+i)->author)==0||strcmp(t.fenlei,(p+i)->fenlei)==0)</p><p><b>  {</b></p><p>  printf("登錄號、作者名和分類號重復,要重新輸入嗎(Y/N)?&

106、quot;);</p><p>  c=getchar();</p><p>  putchar('\n');</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  if(i==n)&l

107、t;/b></p><p><b>  {</b></p><p>  *(p+i)=t; </p><p>  printf("\n添加后圖書的信息記錄為:\n"); //顯示添加后圖書的信息記錄</p><p>  printf("\n %9s%9s%9s%9s%9s%9s%

108、9s\n","登錄號","書名","作者名","分類號","出版單位","出版時間","價格");</p><p>  for(i=0;i<n+1;i++)</p><p>  printf("\n%9s%9s%9s%9s%9

109、s%9s%9s\n",p[i].no,p[i].name,p[i].author,p[i].fenlei,p[i].putfrom,p[i].puttime,p[i].price);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }

110、</b></p><p>  while(c=='y'||c=='Y');</p><p>  return n+1;</p><p><b>  }</b></p><p>  int bookshanchu(struct book *p,int n)//圖書信息刪除.<

111、;/p><p><b>  {</b></p><p>  int i,x,y=0;</p><p>  char c,name[20],no[20];</p><p>  printf("\n刪除前圖書的信息記錄為:\n");</p><p>  printf("\n

112、%9s%9s%9s%9s%9s%9s%9s\n","登錄號","書名","作者名","分類號","出版單位","出版時間","價格"); //顯示刪除前圖書的信息記錄</p><p>  for(i=0;i<n;i++)printf(&quo

113、t;\n%9s%9s%9s%9s%9s%9s%9s\n",(p+i)->no,(p+i)->name,(p+i)->author,(p+i)->fenlei,(p+i)->putfrom,(p+i)->puttime,p[i].price);</p><p>  printf("\n請輸入要刪除圖書的登陸號:");</p><p

114、><b>  gets(no);</b></p><p>  for(x=0;x<n;x++)</p><p><b>  {</b></p><p>  if(strcmp(no,p[x].no)!=0) ////輸入的登錄號不匹配,結束本次循環</p><p><b>

115、;  continue;</b></p><p><b>  if(x<n)</b></p><p><b>  {</b></p><p>  for(i=x;i<n;i++) //后一個圖書信息對前一個圖書信息覆蓋刪除</p><p><b> 

116、 {</b></p><p>  strcpy(p[i].no,p[i+1].no);</p><p>  strcpy(p[i].author,p[i+1].author);</p><p>  strcpy(p[i].name,p[i+1].name);</p><p>  strcpy(p[i].fenlei,p[i+1].

117、fenlei);</p><p>  strcpy(p[i].price,p[i+1].price);</p><p>  strcpy(p[i].putfrom,p[i+1].putfrom);</p><p>  strcpy(p[i].puttime,p[i+1].puttime);</p><p><b>  }</b

118、></p><p>  printf("圖書信息刪除后的記錄:\n");</p><p>  printf("\n %9s%9s%9s%9s%9s%9s%9s\n","登錄號","書名","作者名","分類號","出版單位","出版時間

119、","價格"); //顯示圖書信息刪除后的記錄</p><p>  for(i=0;i<n-1;i++)printf("\n%9s%9s%9s%9s%9s%9s%9s\n",p[i].no,p[i].name,p[i].author,p[i].fenlei,p[i].putfrom,p[i].puttime,p[i].price);</p&

120、gt;<p><b>  y=1;</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  printf("\n對不起,圖書系統中沒有包含此書的信息!\n");</p><p>  re

121、turn n-y;</p><p><b>  }</b></p><p><b>  }</b></p><p>  //對圖書信息排序.</p><p>  void bookpaixu(struct book*p,int n)</p><p><b>  {&

122、lt;/b></p><p>  int j,i,k;</p><p>  char c1,c2;</p><p>  struct book temp;</p><p>  printf("\n排序前圖書的信息記錄為:\n");</p><p>  printf("\n %9s%9

123、s%9s%9s%9s%9s%9s\n","登錄號","書名","作者名","分類號","出版單位","出版時間","價格");</p><p>  for(i=0;i<n;i++)</p><p>  printf("\n%1

124、0s%10s%10s%10s%10s%10s%10s\n",(p+i)->no,(p+i)->name,(p+i)->author,(p+i)->fenlei,(p+i)->putfrom,(p+i)->puttime,p[i].price);</p><p>  printf("\n按登錄號排序(D),還是按作者名排序(A)?"); /

125、/選擇排序的方式</p><p>  c1=getchar();</p><p>  getchar();</p><p>  if(c1=='d'||c1=='D') //選擇登錄號由小到大排序</p><p><b>  {</b></p>

126、<p>  for(i=0;i<n-1;i++) </p><p><b>  {</b></p><p><b>  k=i;</b></p><p>  for(j=i+1;j<n;j++)</p><p>  if(strcm

127、p(p[k].no,p[j].no)>0) //使用選擇法進行排序</p><p><b>  k=j;</b></p><p>  if(k!=i) //如果最小熟不熟默認的p[i],再交換,</p><p><b>  {</b></p><p>  temp=p[k];&l

128、t;/p><p>  p[k]=p[i];</p><p>  p[i]=temp;</p><p><b>  }</b></p><p><b>  }</b></p><p>  printf("\n排序后圖書的信息記錄為:\n");

129、 //輸出排序后圖書的信息</p><p>  printf("\n %9s%9s%9s%9s%9s%9s%9s\n","登錄號","書名","作者名","分類號","出版單位","出版時間","價格");</p><p>  f

130、or(i=0;i<n;i++)printf("\n%10s%10s%10s%10s%10s%10s%10s\n",(p+i)->no,(p+i)->name,(p+i)->author,(p+i)->fenlei,(p+i)->putfrom,(p+i)->puttime,p[i].price);</p><p><b>  }</

131、b></p><p>  else if(c1=='a'||c1=='A') //選擇作者名由小到大排序</p><p><b>  {</b></p><p>  for(i=0;i<n-1;i++)</p><p><b>  {</b></

132、p><p><b>  k=i;</b></p><p>  for(j=i+1;j<n;j++)</p><p>  if(strcmp(p[k].author,p[j].author)>0)</p><p><b>  k=j;</b></p><p>  if(

133、k!=i) //使用選擇法進行排序</p><p><b>  {</b></p><p>  temp=p[k];</p><p>  p[k]=p[i];</p><p>  p[i]=temp;</p><p><b>  }</b></p>

134、<p><b>  }</b></p><p>  printf("\n排序后圖書的信息記錄為:\n");</p><p>  printf("\n %9s%9s%9s%9s%9s%9s%9s\n","登錄號","書名","作者名","分類號&qu

135、ot;,"出版單位","出版時間","價格"); //輸出排序后圖書的信息</p><p>  for(i=0;i<n;i++)</p><p>  printf("\n%10s%10s%10s%10s%10s%10s%10s\n",(p+i)->no,(p+i)->name,(

136、p+i)->author,(p+i)->fenlei,(p+i)->putfrom,(p+i)->puttime,p[i].price);</p><p><b>  }</b></p><p><b>  else</b></p><p>  printf("\n您輸入的為非法字符!\n

137、");</p><p><b>  }</b></p><p>  //圖書信息文件存儲.</p><p>  int bookzairu(struct book*p,int n) </p><p><b>  {</b></p><p>  FILE *fp;

138、 //定義FILE類型文件指針變量</p><p>  int i,all=0;</p><p>  char bookfile[200]="book.txt";</p><p>  fp=fopen("book.txt","r+"); //以只讀方式打開</p&

139、gt;<p>  if(fp==NULL)</p><p><b>  {</b></p><p>  printf("\n***打開%s失?。?!***",bookfile);</p><p><b>  return 0;</b></p><p><b>

140、;  }</b></p><p>  fscanf(fp,"%d\n",&all); //從文件指針指向的文本文件中按指定格式逐個輸入信息到指定變量 </p><p>  if(all>200) //讀取記錄總數</p><p><b>  {</b><

141、;/p><p>  printf("文件記錄太多,不能讀??!");</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  for(i=0;i<all;i++) //圖書信息按指定格式輸入</p>

142、;<p>  {fscanf(fp,"%s %s %s %s %s %s %s\n",p[i].no,p[i].name,p[i].author,p[i].fenlei,p[i].putfrom,p[i].puttime,p[i].price);</p><p><b>  }</b></p><p>  fclose(fp);

143、 //關閉文件</p><p>  return all;</p><p><b>  }</b></p><p>  //圖書信息文件保存.</p><p>  int bookbaocun(struct book*p,int n)</p><p><b>  {</b>

溫馨提示

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

評論

0/150

提交評論