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

下載本文檔

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

文檔簡介

1、<p><b>  課程設計報告</b></p><p>  實習名稱 程序設計課程設計 </p><p>  設計題目 圖書信息管理系統 </p><p>  實習時間 2010.06.27-2010.07.04 </p><p>  專業班級 <

2、;/p><p>  指導老師 </p><p>  教學單位(蓋章) </p><p><b>  小組分工情況:</b></p><p><b>  二O一O年七月五日</b></p><p><b>

3、;  C語言程序設計報告</b></p><p><b>  ---圖書管理系統</b></p><p><b>  一、實驗準備</b></p><p>  做系統前,首先,自己詳細看了《C程序設計教程》(教科書)的第十章《文件》,基本自學會了文件的相關內容,理解了相關函數的用法和作用;另,上網查詢了很多相關

4、資料,還有找了很多相關的系統,都詳細的看了一遍,加深了對C的理解以及對文件的相關內容進一步理解。學習了C語言的內容,圖書信息管理系統有助于C語言學習的進一步鞏固,在本系統可以增強對指針、數組、文件、函數等基本知識的進一步理解。另外圖書信息管理系統也是學校常用的基本系統之一,它有助于學校對圖書館書籍的基本管理。</p><p><b>  二、功能簡介 </b></p><

5、p>  圖書信息管理系統是對圖書信息的基本管理,它包括:圖書信息的輸入、圖書信息的修改及刪除、圖書信息的查詢、圖書信息的添加、圖書信息的瀏覽。</p><p>  使用模塊化編程的方法每項功能有一個或多個函數組合來完成. </p><p><b>  三、系統與性環境</b></p><p>  系統可以在MicrosoftVisualC

6、++6.0軟件運行,硬件基本無要求,現在的計算機基本都可以運行該系統。</p><p>  四、功能劃分及詳細說明</p><p><b>  主要算法的設計:</b></p><p><b>  主函數的算法設計</b></p><p><b>  開始</b></p&

7、gt;<p>  首先,運行程序,進入菜單,然后選擇操作(運用swith語句),調用各子函數。在返回操作中運用while語句進行控制返回菜單。</p><p><b>  各子函數的算法設計</b></p><p>  1、圖書信息的輸入函數</p><p><b>  假</b></p>&l

8、t;p><b>  真</b></p><p><b>  2、圖書信息的修改</b></p><p><b>  3、圖書信息的查詢</b></p><p>  void search()選擇查詢方式 ,1按書號查詢,2按書名查詢, 然后定位,再調用輸出函數;</p><

9、p><b>  4、圖書信息的瀏覽</b></p><p>  首先,輸出所有圖書的信息,并輸出圖書記錄數,然后調用輔助函數進行菜單選擇,操作完成后返回主菜單。</p><p><b>  5、圖書信息的添加</b></p><p>  首先,從文件中調用函數讀入函數,再輸入要添加數,然后添加圖書信息,并保存。<

10、;/p><p><b>  上機調試過程:</b></p><p>  在調試過程中出現了許多的錯誤!特別是在查詢、修改刪除這2個函數的調上花費了很多時間,主要是文件的寫入與讀出以及菜單調試的問題,還有建立新的鏈接也出現問題,說明自己對程序的執行過程理解不夠深刻。</p><p><b>  五、源程序</b></p&g

11、t;<p>  #include<stdio.h></p><p>  #include<malloc.h></p><p>  #include<string.h></p><p>  #include<stdlib.h></p><p>  #define LEN sizeof

12、(stu)</p><p>  typedef struct student{</p><p>  long number;</p><p>  char name[10];</p><p>  char sex[3];</p><p><b>  int age;</b></p>

13、<p>  float chinese;</p><p>  float math;</p><p>  float english;</p><p>  float sum;</p><p>  float average;</p><p>  struct student *next;</p>

14、<p><b>  }stu;</b></p><p>  book *creat(void);</p><p>  book *changes(book *head);</p><p>  book *modify(book *head,long num);</p><p>  book *del(boo

15、k *head,long num);</p><p>  book *insert(book *head,book *stud);</p><p>  book *input(book *head,book *p1);</p><p>  void sort(book *head);</p><p>  void total_average_

16、sort(book *head);</p><p>  void chinese_sort(book *head);</p><p>  void math_sort(book *head);</p><p>  void english_sort(book *head);</p><p>  void print(book *head);&

17、lt;/p><p>  void Statistics(book *head);</p><p>  void search(book *head);</p><p>  void numsearch(book *head,long num);</p><p>  void namesearch(book *head,char name[]);&

18、lt;/p><p><b>  int n;</b></p><p>  book *creat(void)</p><p><b>  {</b></p><p>  book *head,*p1,*p2;</p><p><b>  n=0;</b>&l

19、t;/p><p>  p1=p2=(book *)malloc(LEN);</p><p>  printf("請輸入圖書信息!\n");</p><p>  head=NULL;</p><p>  p1=input(head,p1);</p><p>  while(p1->number!=0

20、)</p><p><b>  {</b></p><p><b>  n=n+1;</b></p><p>  if(n==1) head=p1;</p><p>  else p2->next=p1;</p><p><b>  p2=p1;</b&

21、gt;</p><p>  p1=(book *)malloc(LEN);</p><p>  p1=input(head,p1);</p><p><b>  }</b></p><p>  p2->next=NULL;</p><p>  return(head);</p>

22、<p><b>  }</b></p><p>  book *input(book *head,book *p1)/*輸入圖書的信息*/</p><p><b>  {</b></p><p>  int i,f,k;</p><p><b>  book *p2;</

23、b></p><p>  loop:printf("圖書號(為整數,輸入0時返回上一級):");</p><p>  scanf("%ld",&p1->number);</p><p>  if(p1->number<0){</p><p>  printf("

24、圖書號不能為負數,請重新輸入!\n");</p><p>  goto loop;</p><p><b>  }</b></p><p><b>  else{</b></p><p>  if(p1->number==0)</p><p>  return

25、(p1);</p><p><b>  else{</b></p><p><b>  p2=head;</b></p><p><b>  f=0;</b></p><p>  for(i=1;i<=n;i++){</p><p>  if(p1

26、->number==p2->number)</p><p>  {f=1;break;}</p><p>  p2=p2->next;}</p><p><b>  }</b></p><p><b>  if(f)</b></p><p>  {print

27、f("圖書不能重復,請重新輸入!\n");goto loop;}</p><p><b>  }</b></p><p>  printf("書名:");</p><p>  scanf("%s",p1->name);</p><p>  loop1:pr

28、intf("類別: 1.文科 2.理科 \n");</p><p>  printf("請選擇類別:");</p><p>  scanf("%d",&k);</p><p><b>  switch(k)</b></p><p><b> 

29、 {</b></p><p>  case 1:strcpy(p1->sex,"文科");break;</p><p>  case 2:strcpy(p1->sex,"理科");break;</p><p>  default:printf("類別只能是“文科”或“理科”,請重新輸入!\n&

30、quot;);goto loop1;}</p><p>  printf("存期:");</p><p>  scanf("%d",&p1->age);</p><p>  while(p1->age<0||p1->age>120){</p><p>  print

31、f("你輸入的存期不符合實際情況,請重新輸入!\n");</p><p>  printf("存期:");</p><p>  scanf("%d",&p1->age);</p><p><b>  }</b></p><p>  printf(&

32、quot;章數:");</p><p>  scanf("%f",&p1->chinese);</p><p>  while(p1->chinese<0||p1->chinese>100){</p><p>  printf("你輸入的章數不符合實際情況,請重新輸入!\n");

33、</p><p>  printf("章數:");</p><p>  scanf("%f",&p1->chinese);}</p><p>  printf("頁數:");</p><p>  scanf("%f",&p1->math

34、);</p><p>  while(p1->math<0||p1->math>100){</p><p>  printf("你輸入的頁數不符合實際情況,請重新輸入!\n");</p><p>  printf("頁數:");</p><p>  scanf("%f&

35、quot;,&p1->math);}</p><p>  printf("閱讀次數:");</p><p>  scanf("%f",&p1->english);</p><p>  while(p1->english<0||p1->english>100){</p&g

36、t;<p>  printf("你輸入的閱讀次數不符合實際情況,請重新輸入!\n");</p><p>  printf("閱讀次數:");</p><p>  scanf("%f",&p1->english);}</p><p>  p1->sum=p1->chin

37、ese+p1->math+p1->english;</p><p>  p1->average=p1->sum/3;</p><p>  return(p1);</p><p><b>  }</b></p><p>  void search(book *head)</p><

38、;p><b>  {</b></p><p><b>  int k;</b></p><p><b>  long num;</b></p><p>  char name[10];</p><p><b>  if(n==0)</b></p

39、><p>  {printf("數據庫為空,沒有圖書的記錄!\n");return;}</p><p><b>  else{</b></p><p><b>  do{</b></p><p>  printf("1. 按書號查找 2. 按書名查找 0. 返回

40、上一級\n");</p><p>  printf("請選擇:");</p><p>  scanf("%d",&k);</p><p><b>  switch(k)</b></p><p><b>  {</b></p>&

41、lt;p>  case 1:do{</p><p>  printf("書號(輸入0時跳出按書號查找):");</p><p>  scanf("%ld",&num);</p><p>  if(num==0)break;</p><p><b>  else{</b>

42、;</p><p><b>  if(num>0)</b></p><p>  numsearch(head,num);</p><p><b>  else</b></p><p>  printf("輸入錯誤,請重新選擇!\n");}</p><p&

43、gt;  }while(1);</p><p><b>  break;</b></p><p>  case 2:do{</p><p>  printf("書名(輸入0時跳出按書名查找):");</p><p>  scanf("%s",name);</p>&l

44、t;p>  printf("書號\t書名\t類別\t存期\t章數\t頁數\t閱讀次數\t總次數\t平均次數\n");</p><p>  namesearch(head,name);</p><p>  }while(strcmp(name,"0")!=0);</p><p><b>  break;</

45、b></p><p>  case 0:break;</p><p>  default:printf("輸入錯誤,請重新選擇!\n");</p><p><b>  }</b></p><p>  }while(k!=0);</p><p><b>  }&l

46、t;/b></p><p><b>  }</b></p><p>  void numsearch(book *head,long num)</p><p><b>  {</b></p><p><b>  book *p1;</b></p><p

47、><b>  p1=head;</b></p><p>  while(p1!=NULL)</p><p><b>  {</b></p><p>  if(num==p1->number){</p><p>  printf("書號\t書名\t類別\t存期\t章數\t頁數\t

48、閱讀次數\t總次數\t平均次數\n");</p><p>  printf("%ld\t%s\t%s\t%d\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\n",p1->number,p1->name,p1->sex,p1->age,p1->chinese,p1->math,p1->english,p1->sum,p1-&

49、gt;average);</p><p><b>  return;}</b></p><p>  p1=p1->next;</p><p><b>  }</b></p><p>  printf("沒有找到你要查找的圖書信息!\n");</p><p

50、><b>  }</b></p><p>  void namesearch(book *head,char name[])</p><p><b>  {</b></p><p><b>  int a=1;</b></p><p><b>  book *p

51、1;</b></p><p><b>  p1=head;</b></p><p>  while(p1!=NULL)</p><p><b>  {</b></p><p>  if(strcmp(name,p1->name)==0){</p><p> 

52、 printf("%ld\t%s\t%s\t%d\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\n",p1->number,p1->name,p1->sex,p1->age,p1->chinese,p1->math,p1->english,p1->sum,p1->average);a=0;}</p><p>  p1=p1-&

53、gt;next;</p><p><b>  }</b></p><p><b>  if(a)</b></p><p>  printf("沒有找到你要查找的圖書信息!\n");</p><p><b>  }</b></p><p&g

54、t;  book *changes(book *head)</p><p><b>  {</b></p><p><b>  book *p1;</b></p><p><b>  int k;</b></p><p><b>  long num;</b&g

55、t;</p><p><b>  do{</b></p><p>  printf("1. 修改 2. 刪除 3. 插入 0. 返回上一級\n");</p><p>  printf("請選擇:");</p><p>  scanf("%d"

56、,&k);</p><p><b>  switch(k)</b></p><p><b>  {</b></p><p>  case 1:do{</p><p><b>  if(n==0){</b></p><p>  printf(&qu

57、ot;數據庫為空,沒有圖書的記錄!\n");break;}</p><p><b>  else{</b></p><p>  printf("請輸入圖書的書號(書號應為整數,輸入0時跳出修改數據):");</p><p>  scanf("%ld",&num);</p>

58、<p>  if(num==0)break;</p><p><b>  else{</b></p><p><b>  if(num>0)</b></p><p>  head=modify(head,num);</p><p><b>  else</b>&

59、lt;/p><p>  printf("書號不能為負數,請重新輸入!\n");}</p><p><b>  }</b></p><p>  }while(1);</p><p><b>  break;</b></p><p>  case 2:do{<

60、;/p><p>  if(n==0){printf("數據庫為空,沒有圖書信息!\n");break;}</p><p><b>  else{</b></p><p>  printf("請輸入要刪除的圖書的書號(書號應為整數,輸入0時跳出刪除元素):");</p><p>  sc

61、anf("%ld",&num);</p><p>  if(num==0)break;</p><p><b>  else{</b></p><p><b>  if(num>0)</b></p><p>  head=del(head,num);</p&g

62、t;<p><b>  else</b></p><p>  printf("書號不能為負數,請重新輸入!\n");}</p><p><b>  }</b></p><p>  }while(1);</p><p><b>  break;</b&

63、gt;</p><p>  case 3:printf("請輸入圖書信息!\n");</p><p>  p1=(book *)malloc(LEN);</p><p>  p1=input(head,p1);</p><p>  while(p1->number!=0)</p><p>  

64、{head=insert(head,p1);</p><p>  print(head);</p><p>  printf("請輸入圖書信息!\n");</p><p>  p1=(book *)malloc(LEN);</p><p>  p1=input(head,p1);</p><p>&

65、lt;b>  }</b></p><p><b>  break;</b></p><p>  case 0:break;</p><p>  default:printf("輸入錯誤,請重新輸入!\n");</p><p><b>  }</b></p&

66、gt;<p>  }while(k!=0);</p><p>  return(head);</p><p><b>  }</b></p><p>  void sort(book *head)</p><p><b>  {</b></p><p><

67、b>  int k;</b></p><p>  if(n==0){printf("數據庫為空,沒有圖書記錄!\n");return;}</p><p><b>  do{</b></p><p>  printf("1.按書號排序 2.按總次數和平均次數排序 3.按章數成績排序 4.

68、按頁數排序 5.按閱讀次數排序 0.返回上一級\n");</p><p>  printf("請選擇:");</p><p>  scanf("%d",&k);</p><p><b>  switch(k)</b></p><p><b> 

69、 {</b></p><p>  case 1:print(head);break;</p><p>  case 2:total_average_sort(head);break;</p><p>  case 3:chinese_sort(head);break;</p><p>  case 4:math_sort(head

70、);break;</p><p>  case 5:english_sort(head);break;</p><p>  case 0:break;</p><p>  default:printf("輸入錯誤,請重新輸入!\n");</p><p><b>  }</b></p>&

71、lt;p>  }while(k!=0);</p><p><b>  }</b></p><p>  void total_average_sort(book *head)</p><p><b>  {</b></p><p>  book *p1,*p2;</p><p

72、><b>  int j=0;</b></p><p>  float max,k=301;</p><p>  printf("書號\t書名\t類別\t存期\t章數\t頁數\t閱讀次數\t總次數\t平均次數\n");</p><p><b>  do{</b></p><p&

73、gt;<b>  max=0;</b></p><p>  for(p1=head;p1;p1=p1->next)</p><p>  if(p1->sum>max&&p1->sum<k){</p><p>  max=p1->sum;</p><p><b>

74、;  p2=p1;}</b></p><p><b>  k=max;</b></p><p>  for(p1=p2;p1;p1=p1->next)</p><p>  if(p1->sum==max){</p><p>  printf("%ld\t%s\t%s\t%d\t%.1f\

75、t%.1f\t%.1f\t%.1f\t%.1f\n",p1->number,p1->name,p1->sex,p1->age,p1->chinese,p1->math,p1->english,p1->sum,p1->average);</p><p><b>  j++;}</b></p><p>  }

76、while(j<n);</p><p><b>  }</b></p><p>  void chinese_sort(book *head)</p><p><b>  {</b></p><p><b>  int j=0;</b></p><p&

77、gt;  float k=101,max;</p><p>  book *p1,*p2;</p><p>  printf("書號\t書名\t類別\t存期\t章數\t頁數\t閱讀次數\t總次數\t平均次數\n");</p><p><b>  do{</b></p><p><b>  m

78、ax=0;</b></p><p>  for(p1=head;p1;p1=p1->next)</p><p>  if(p1->chinese>max&&p1->chinese<k){</p><p>  max=p1->chinese;</p><p><b>  

79、p2=p1;}</b></p><p><b>  k=max;</b></p><p>  for(p1=p2;p1;p1=p1->next)</p><p>  if(p1->chinese==max){</p><p>  printf("%ld\t%s\t%s\t%d\t%.1f

80、\t%.1f\t%.1f\t%.1f\t%.1f\n",p1->number,p1->name,p1->sex,p1->age,p1->chinese,p1->math,p1->english,p1->sum,p1->average);</p><p><b>  j++;}</b></p><p>  

81、}while(j<n);</p><p><b>  }</b></p><p>  void math_sort(book *head)</p><p><b>  {</b></p><p><b>  int j=0;</b></p><p>

82、;  float k=101,max;</p><p>  book *p1,*p2;</p><p>  printf("書號\t書名\t類別\t存期\t章數\t頁數\t閱讀次數\t總次數\t平均次數\n");</p><p><b>  do{</b></p><p><b>  max

83、=0;</b></p><p>  for(p1=head;p1;p1=p1->next)</p><p>  if(p1->math>max&&p1->math<k){</p><p>  max=p1->math;</p><p><b>  p2=p1;}<

84、/b></p><p><b>  k=max;</b></p><p>  for(p1=p2;p1;p1=p1->next)</p><p>  if(p1->math==max){</p><p>  printf("%ld\t%s\t%s\t%d\t%.1f\t%.1f\t%.1f\t

85、%.1f\t%.1f\n",p1->number,p1->name,p1->sex,p1->age,p1->chinese,p1->math,p1->english,p1->sum,p1->average);</p><p><b>  j++;}</b></p><p>  }while(j<n)

86、;</p><p><b>  }</b></p><p>  void english_sort(book *head)</p><p><b>  {</b></p><p><b>  int j=0;</b></p><p>  float k=

87、101,max;</p><p>  book *p1,*p2;</p><p>  printf("書號\t書名\t類別\t存期\t章數\t頁數\t閱讀次數\t總次數\t平均次數\n");</p><p><b>  do{</b></p><p><b>  max=0;</b&g

88、t;</p><p>  for(p1=head;p1;p1=p1->next)</p><p>  if(p1->english>max&&p1->english<k){</p><p>  max=p1->english;</p><p><b>  p2=p1;}</b

89、></p><p><b>  k=max;</b></p><p>  for(p1=p2;p1;p1=p1->next)</p><p>  if(p1->english==max){</p><p>  printf("%ld\t%s\t%s\t%d\t%.1f\t%.1f\t%.1f\

90、t%.1f\t%.1f\n",p1->number,p1->name,p1->sex,p1->age,p1->chinese,p1->math,p1->english,p1->sum,p1->average);</p><p><b>  j++;}</b></p><p>  }while(j<n

91、);</p><p><b>  }</b></p><p>  book *modify(book *head,long num)</p><p><b>  {</b></p><p><b>  book *p1;</b></p><p><

92、b>  int k,m;</b></p><p><b>  p1=head;</b></p><p>  while(p1!=NULL)</p><p><b>  {</b></p><p>  if(p1->number==num)</p><p&g

93、t;<b>  break;</b></p><p>  p1=p1->next;</p><p><b>  }</b></p><p>  if(p1->number==num)</p><p><b>  {</b></p><p>&

94、lt;b>  do{</b></p><p>  printf("1.書名 2.類別 3.存期 4.章數成績 5.頁數 6.閱讀次數 0.返回上一級\n");</p><p>  printf("請選擇:");</p><p>  scanf("%d",&

95、k);</p><p><b>  switch(k)</b></p><p><b>  {</b></p><p>  case 1:printf("書名:");scanf("%s",p1->name);printf("修改成功!\n");break;&

96、lt;/p><p>  case 2:loop2:printf("類別: 1.文科 2. 理科\n");</p><p>  printf("請選擇類別:");</p><p>  scanf("%d",&m);</p><p><b>  switch(m)<

97、;/b></p><p><b>  {</b></p><p>  case 1:strcpy(p1->sex,"文科");break;</p><p>  case 2:strcpy(p1->sex," 理科");break;</p><p>  defaul

98、t:printf("類別只能是“文科”或“ 理科”,請重新輸入!\n");goto loop2;}</p><p>  printf("修改成功!\n");</p><p><b>  break;</b></p><p>  case 3:printf("存期:");</p&g

99、t;<p>  scanf("%d",&p1->age);</p><p>  while(p1->age<0||p1->age>120){</p><p>  printf("你輸入的存期不符合實際情況,請重新輸入!\n");</p><p>  printf("

100、存期:");</p><p>  scanf("%d",&p1->age);</p><p><b>  }</b></p><p>  printf("修改成功!\n");</p><p><b>  break;</b></p

101、><p>  case 4:printf("章數成績:");</p><p>  scanf("%f",&p1->chinese);</p><p>  while(p1->chinese<0||p1->chinese>100){</p><p>  printf(&q

102、uot;你輸入的章數成績不符合實際情況,請重新輸入!\n");</p><p>  printf("章數成績:");</p><p>  scanf("%f",&p1->chinese);}</p><p>  p1->sum=p1->chinese+p1->math+p1->e

103、nglish;</p><p>  p1->average=p1->sum/3;</p><p>  printf("修改成功!\n");</p><p><b>  break;</b></p><p>  case 5:printf("頁數:");</p>

104、;<p>  scanf("%f",&p1->math);</p><p>  while(p1->math<0||p1->math>100){</p><p>  printf("你輸入的頁數不符合實際情況,請重新輸入!\n");</p><p>  printf(&quo

105、t;頁數:");</p><p>  scanf("%f",&p1->math);}</p><p>  p1->sum=p1->chinese+p1->math+p1->english;</p><p>  p1->average=p1->sum/3;</p><p

106、>  printf("修改成功!\n");</p><p><b>  break;</b></p><p>  case 6:printf("閱讀次數:");</p><p>  scanf("%f",&p1->english);</p><p

107、>  while(p1->english<0||p1->english>100){</p><p>  printf("年輸入的閱讀次數不符合實際情況,請重新輸入!\n");</p><p>  printf("閱讀次數:");</p><p>  scanf("%f",&am

108、p;p1->english);}</p><p>  p1->sum=p1->chinese+p1->math+p1->english;</p><p>  p1->average=p1->sum/3;</p><p>  printf("修改成功!\n");break;</p><p

109、>  case 0:break;</p><p>  default:printf("輸入錯誤,請重新選擇!\n");</p><p><b>  }</b></p><p>  }while(k!=0);</p><p><b>  }</b></p>&l

110、t;p><b>  else</b></p><p>  printf("沒有找到你要修改的圖書的信息!\n");</p><p>  return(head);</p><p><b>  }</b></p><p>  book *del(book *head,long

111、 num)</p><p><b>  {</b></p><p>  book *p1,*p2;</p><p>  if(head==NULL){printf("數據庫為空,沒有圖書記錄! \n");goto end;}</p><p><b>  p1=head;</b>&

112、lt;/p><p>  while(num!=p1->number&&p1->next!=NULL)</p><p><b>  {</b></p><p>  p2=p1;p1=p1->next;</p><p><b>  }</b></p><

113、p>  if(num==p1->number)</p><p><b>  {</b></p><p>  if(p1==head){head=p1->next;printf("刪除成功!\n");}</p><p>  else {p2->next=p1->next;printf("

114、刪除成功!\n");}</p><p><b>  n=n-1;</b></p><p><b>  }</b></p><p>  else printf("沒有找到你要刪除的圖書信息!\n",num);</p><p><b>  end:;</b&

115、gt;</p><p>  return(head);</p><p><b>  }</b></p><p>  book *insert(book *head,book *stud)</p><p><b>  {</b></p><p>  book *p0,*p1,*

116、p2;</p><p><b>  p1=head;</b></p><p><b>  p0=stud;</b></p><p>  if(head==NULL)</p><p>  {head=p0;p0->next=NULL;}</p><p><b>

117、  else</b></p><p>  {while((p0->number>p1->number)&&(p1->next!=NULL))</p><p><b>  {</b></p><p><b>  p2=p1;</b></p><p>

118、  p1=p1->next;</p><p><b>  }</b></p><p>  if(p0->number<=p1->number)</p><p><b>  {</b></p><p>  if(head==p1)head=p0;</p><

119、p>  else p2->next=p0;</p><p>  p0->next=p1;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  

120、p1->next=p0;p0->next=NULL;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  n=n+1;</b></p><p>  return(head);</p><p&

121、gt;<b>  }</b></p><p>  void Statistics(book *head)</p><p><b>  {</b></p><p><b>  book *p1;</b></p><p>  int i,c=0,m=0,e=0;</p>

122、<p>  float cmax=0,mmax=0,emax=0,summax=0,averagemax=0;</p><p><b>  p1=head;</b></p><p>  for(i=1;i<=n;i++){</p><p>  if(p1->chinese>=cmax)</p>&l

123、t;p>  cmax=p1->chinese;</p><p>  if(p1->math>=mmax)</p><p>  mmax=p1->math;</p><p>  if(p1->english>=emax)</p><p>  emax=p1->english;</p>

124、<p>  if(p1->sum>=summax)</p><p>  summax=p1->sum;</p><p>  if(p1->average>=averagemax)</p><p>  averagemax=p1->average;</p><p>  if(p1->chin

125、ese<60)</p><p><b>  c++;</b></p><p>  if(p1->math<60)</p><p><b>  m++;</b></p><p>  if(p1->english<60)</p><p><b&

126、gt;  e++;</b></p><p>  p1=p1->next;</p><p><b>  }</b></p><p>  printf("總成績最高分:%5.1f\n",summax);</p><p>  printf("平成績最高分:%5.1f\n"

127、;,averagemax);</p><p>  printf("章數最多:%5.1f\n",cmax);</p><p>  printf("頁數最高分:%5.1f\n",mmax);</p><p>  printf("閱讀次數最多:%5.1f\n",emax);</p><p>

128、;  printf("章數最少:%d\n",c);</p><p>  printf("頁數最少:%d\n",m);</p><p>  printf("閱讀次數最少:%d\n",e);</p><p>  printf("\n");</p><p><b&

129、gt;  }</b></p><p>  void print(book *head)</p><p><b>  {</b></p><p><b>  book *p1;</b></p><p>  printf("\n現在的%d個圖書記錄為:\n",n);<

130、;/p><p><b>  p1=head;</b></p><p>  if(head!=NULL){</p><p>  printf("書號\t書名\t類別\t存期\t章數\t頁數\t閱讀次數\t總次數\t平均次數\n");</p><p><b>  do {</b><

131、/p><p>  printf("%ld\t%s\t%s\t%d\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\n",p1->number,p1->name,p1->sex,p1->age,p1->chinese,p1->math,p1->english,p1->sum,p1->average);</p><p

132、>  p1=p1->next;</p><p>  }while(p1!=NULL);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b

133、></p><p>  int choice;</p><p>  book *head;</p><p><b>  do{</b></p><p><b>  /*打印表頭*/</b></p><p>  printf("*****************

134、**************************************************************\n");</p><p>  printf("^_^_^_^_^_^_^_^_^_^_^_^_^_^歡迎來到圖書成績管理系統!^_^_^_^_^_^_^_^_^_^_^_^_^_^\n");</p><p>  printf("

135、; \n");</p><p>  printf(" 圖書成績管理系統的基本功能: \n");</p><p&g

136、t;  printf(" 1. 新建; \n");</p><p>  printf(" 2. 查找; \n&

137、quot;);</p><p>  printf(" 3. 更新; \n");</p><p>  printf(" 4. 排序;

138、 \n");</p><p>  printf(" 5. 統計; \n");</p><p>  printf("

139、 6. 顯示; \n");</p><p>  printf(" 0. 跳出; \n");</p><p>  printf("

140、 \n");</p><p>  printf(" 按鍵選擇,回車確定! \n");</p><p

141、>  printf(" \n");</p><p>  printf("^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_

142、^_^\n");</p><p>  printf("*******************************************************************************\n");</p><p>  printf("請選擇:");/*提示用戶選擇操作功能*/</p><p>

143、;  scanf("%d",&choice);</p><p>  while(getchar()!='\n');/*接收回車符*/</p><p>  switch(choice)</p><p><b>  {</b></p><p>  case 1:head=creat

144、();print(head);break;</p><p>  case 2:search(head);break;</p><p>  case 3:head=changes(head);break;</p><p>  case 4:sort(head);break;</p><p>  case 5:Statistics(head);b

145、reak;</p><p>  case 6:print(head);break;</p><p>  case 0:break;</p><p>  default:printf("輸入錯誤,請重新選擇!\n");</p><p><b>  }</b></p><p>  

146、}while(choice!=0);</p><p><b>  }</b></p><p>  說明:基本上實現了題目所要求的函數功能,可以對圖書的信息進行輸入、瀏覽、查詢、修改、添加等功能管理。</p><p><b>  六、個人心得</b></p><p>  通過本次課程設計,自己C語言編

147、程的能力有了提高,特別是在文件、指針、數組、函數和結構體方面有了很大提高,另外還學習了課本沒有講到的知識,學會了使用模塊化編程的簡單方法,另外在對話框的編程要求美觀、方面也有了體會。</p><p>  循環是C語言的重要方法,也是本程序的靈魂,它在本程序中既有“穿針引線”的作用,也起到了對數據進行分析、存貯、讀取等重要的作用,本程序在使用循環過程中對循環進行了多方法的應用也是一個“亮點”,它使程序變得結構合理,

溫馨提示

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

評論

0/150

提交評論