c語言課程設(shè)計報告---學(xué)生成績管理系統(tǒng)_第1頁
已閱讀1頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  C語言課程設(shè)計報告</b></p><p>  題 目: 學(xué)生成績管理系統(tǒng)設(shè)計</p><p>  設(shè) 計 者: </p><p>  專業(yè)班級: 電子信息工程(2)班</p><p>  學(xué) 號: </p><p><b>  

2、指導(dǎo)教師: </b></p><p>  完成日期: 6月21日</p><p>  學(xué)生成績管理系統(tǒng)課程設(shè)計</p><p><b>  報 告</b></p><p><b>  目錄</b></p><p>  一.系統(tǒng)軟件環(huán)境………………………………

3、……………………(3)</p><p>  二.課程設(shè)計目的……………………………………………………(3)</p><p>  三.內(nèi)容與要求………………………………………………………(3)</p><p>  四.程序主要功能……………………………………………………(4)</p><p>  五.系統(tǒng)功能設(shè)計…………………………………………

4、…………(4)</p><p>  六.函數(shù)實現(xiàn)功能說明………………………………………………(5)</p><p>  七.調(diào)試分析…………………………………………………………(6)</p><p>  八.心得與體會………………………………………………………(6)</p><p>  九.各功能模塊的實現(xiàn)及其程序清單………………………………

5、(7)</p><p>  十、附頁源程序清單…………………………………………………(11)</p><p>  學(xué)生成績管理系統(tǒng)課程設(shè)計</p><p><b>  報 告</b></p><p><b>  一.系統(tǒng)軟件環(huán)境:</b></p><p>  本程序主要運(yùn)行在

6、:Visual C++ 6.0(主要)</p><p>  Turbo C/C++ 3.0</p><p>  Turbo C 2.</p><p><b>  二.課程設(shè)計目的:</b></p><p>  本課程設(shè)計的系統(tǒng)是早已在很多領(lǐng)域均有應(yīng)用,是一個很不錯的教學(xué)管理系統(tǒng),而且其功能更是相當(dāng)強(qiáng)大、界面更加友好的應(yīng)用

7、型軟件。</p><p>  而現(xiàn)在我的設(shè)計并非是重走舊路,而我的設(shè)計主要目的在于學(xué)習(xí)并深刻地掌握對C語言的基礎(chǔ)知識以及其實踐經(jīng)驗,更好地在以后的學(xué)習(xí)中能夠更好地運(yùn)用學(xué)習(xí)。特別是像這種比較多運(yùn)用</p><p>  到一些課本上沒有教的知識,比如說,像清屏函數(shù)CLRSCR、菜單函數(shù)MENU等。許多都是一開始就沒有涉及到的知識,在自已的設(shè)計中得到了提升,更加重要的一點(diǎn)就是增加了自已的實踐操作

8、能力。</p><p><b>  三.內(nèi)容與要求:</b></p><p><b>  設(shè)計內(nèi)容:</b></p><p>  成績信息,內(nèi)容如下:</p><p>  例:現(xiàn)有學(xué)生成績信息,包含</p><p>  姓名 學(xué)號 語文 數(shù)學(xué)

9、 英語 </p><p>  張明明 01 67 78 82</p><p>  李成友 02 78 91 88</p><p>  張輝燦 03 68 82 56</p><p>  王露 04 56 45 77</p>

10、<p>  陳明 05 67 38 47</p><p><b>  ………………</b></p><p>  請用C/C++編寫一系統(tǒng),實現(xiàn)學(xué)生信息管理,軟件的入口界面應(yīng)包括如下幾個方面:</p><p><b> ?。ǘ┕δ芤螅?lt;/b></p><p><b>  (1

11、)信息輸入:</b></p><p><b>  (2)信息查詢:</b></p><p>  要求:查詢時可實現(xiàn)按姓名查詢、按學(xué)號查詢</p><p><b>  (3)成績統(tǒng)計:</b></p><p>  要求:A輸入任意的一個課程名(如數(shù)學(xué))和一個分?jǐn)?shù)段(如60--70),統(tǒng)計出

12、在此分?jǐn)?shù)段的學(xué)生情況。</p><p> ?。?)可選功能:實現(xiàn)學(xué)生信息數(shù)據(jù)的維護(hù)??砂ǎ涸黾訉W(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息</p><p> ?。ㄆ渌螅簩W(xué)生信息數(shù)據(jù)以結(jié)構(gòu)體數(shù)組組織;或以鏈表形式組織;或以文件形式保存(可加分)</p><p>  2、 插入記錄――在一個特定序號處插入一條記錄 </p><p><b>

13、;  3、 刪除記</b></p><p><b>  4、 修改記―關(guān)鍵</b></p><p>  可選增強(qiáng)功能:統(tǒng)計錄――修改特定記錄 </p><p>  5、 查詢記錄―。(可對記錄分)</p><p>  6、 排序――按學(xué)號、姓名、出生年月、家庭住址、郵編、電話等進(jìn)行排序 </p>

14、<p>  7、 系統(tǒng)維護(hù)――退出系統(tǒng)時關(guān)閉所有文件</p><p><b>  四.程序主要功能:</b></p><p>  本系統(tǒng)的主要功能有如下:</p><p>  (1)、新輸入學(xué)生的詳細(xì)信息(包括:學(xué)號、姓名、語文成績、數(shù)學(xué)成績、英語成績)</p><p>  (2)、增加學(xué)生的信息</p

15、><p> ?。?)、刪除學(xué)生的信息</p><p> ?。?)、查詢學(xué)生的信息</p><p> ?。?)、統(tǒng)計學(xué)生的成績</p><p>  注:由于本人能力有限,不能完全地將所有的功能模塊做出來;但我相信我能夠再接再厲,繼續(xù)開發(fā)下去的,并向人性化發(fā)展。</p><p><b>  五.系統(tǒng)功能設(shè)計:<

16、/b></p><p> ?。ㄒ唬┍鞠到y(tǒng)的總體框架圖:</p><p>  (二)、本系統(tǒng)的總體流程圖:</p><p>  注:此圖為概圖、程序較多無法一一展示。</p><p>  六.函數(shù)實現(xiàn)功能說明:</p><p> ?。?)、MENU函數(shù)是定義一個菜單函數(shù),其功能在于輸出菜單界面供使用者選擇。<

17、/p><p> ?。?)、CREAT函數(shù)是定義用于創(chuàng)建新的鏈表,并帶回一個指向鏈表頭的指針。其功能是輸入最初的學(xué)生信息。</p><p> ?。?)、ADD函數(shù)是定義用于再次輸入學(xué)生信息,并將所有的學(xué)生信息按學(xué)號排序。</p><p>  (4)、DEL函數(shù)是定義用于刪除學(xué)生信息。</p><p><b>  :</b>&l

18、t;/p><p> ?。?)、SEARCH函數(shù)是定義義用于查詢學(xué)生信息,主要是學(xué)號的查詢。</p><p><b>  :</b></p><p> ?。?)、TAXIS函數(shù)是定義用于統(tǒng)計學(xué)生的成績信息,采用排序函數(shù)的方式對學(xué)號/數(shù)學(xué)等的排序。</p><p><b> ?。?lt;/b></p>

19、<p><b>  七.調(diào)試分析:</b></p><p>  因在不同的環(huán)境中運(yùn)行是有不同的結(jié)果,以下分兩種環(huán)境中說明:</p><p> ?。?)、在Turbo C 2.0 </p><p>  在這個環(huán)境下運(yùn)行警告之處比較多,在調(diào)試時采用的圖象處理函數(shù)在其它兩個環(huán)境中不能運(yùn)行。</p><p>  例

20、如:在原程序中加入</p><p>  #include “graphics.h”</p><p>  { int gdtiver=DETECT,gmode;</p><p>  Initgraph(&gdriver,&gmode,“圖象處理函數(shù)的路徑”);</p><p>  Cleardevice();</p>

21、<p>  Setbkcolor(顏色值);</p><p><b>  }</b></p><p>  **在Turbo C/C++ 3.0 中的Error提示是:</p><p>  Undefined symboc _c closegraph in module ……</p><p>  原因在于:T

22、C 3.0中對圖象的處理函數(shù)有不足之處。</p><p>  **在Visual C++ 6.0 中的Error提示是:</p><p>  BGI Error:Graghics not initialized (use’initgraph’)</p><p>  Cannot open includefile:”graphics.h”</p><

23、;p>  No such file or diretory</p><p>  原因在于:VC 6.0中對圖象處量理的函數(shù)與TC中的不一樣。</p><p> ?。?)、在Turbo C/C++ 3.0 </p><p>  在這個環(huán)境中運(yùn)行到輸入學(xué)生姓名時就出錯:</p><p>  Error:(在用戶窗口中可以看到)</p&

24、gt;<p>  Scanf:floating point formats not linked </p><p>  Ab mormal program termination</p><p>  **原因在于:連接浮點(diǎn)庫錯誤。</p><p>  **解決辦法:在主函數(shù)中加入:fioat arg,*pointer=&arg;</p&g

25、t;<p><b>  即可運(yùn)行</b></p><p><b>  。</b></p><p><b>  八.心得與體會:</b></p><p> ?。?)、通過本次對C語言的深入學(xué)習(xí),讓我對C語言有了更多的了解并撐握更多的知識,成功地運(yùn)用各類函數(shù)、循環(huán)變量、結(jié)構(gòu)化的程序設(shè)計,以及

26、結(jié)構(gòu)體、指針的使用。</p><p>  (2)、但在學(xué)習(xí)中發(fā)現(xiàn),編程確實不是很好做的,并非是你想要就能完成的,它需要的是認(rèn)真、仔細(xì)地對待每一個程序塊,特別是在對指針的使用時更加困難,那些指針指來指去,一不小心就會看錯,編譯不出來。</p><p> ?。?)、由于學(xué)生的我只是大一而已,沒能夠完完全全地把程序做出來,而且程序中有許多不足之處不能夠正確地將它改正,但總體上是可以運(yùn)行的。<

27、;/p><p>  九.各功能模塊的實現(xiàn)及其程序清單:</p><p>  (1)、各功能模塊的實現(xiàn)(請參照第六點(diǎn):函數(shù)實現(xiàn)功能說明)</p><p> ?。?)、程序清單(請見附頁)</p><p><b>  參考文獻(xiàn):</b></p><p>  [1] 譚浩強(qiáng)編著.C程序設(shè)計第三版.北京:清華

28、大學(xué)出版社,2005</p><p>  [2] 林瑞仲等編著.C語言實例解析精粹.北京:人民郵電出版社,2005</p><p><b>  附頁:</b></p><p>  學(xué)生成績管理系統(tǒng)源程序清單</p><p>  #include<stdio.h></p><p>  #

29、include<string.h></p><p>  #include<stdlib.h></p><p>  #include<conio.h></p><p>  #define M 3</p><p>  /*定義結(jié)構(gòu)體變量*/</p><p>  typedef struc

30、t students</p><p>  { char name[20];</p><p>  char num[15];</p><p>  float score[M];</p><p>  float average;</p><p>  float total;</p><p><

31、b>  }MESSA;</b></p><p>  MESSA stu[20];int S;</p><p><b>  /*函數(shù)聲明*/</b></p><p>  void menu(void);</p><p>  void choose(void);</p><p>  

32、void input(void);</p><p>  void savescore(void);</p><p>  void loadscore(void); </p><p>  void choosec(void);</p><p>  void average(void);</p><p>  void to

33、tal(void);</p><p>  void name(void);</p><p>  void number(void);</p><p>  void show(void);</p><p>  void excellent(void);</p><p>  void passing(void);</

34、p><p>  void personal(void);</p><p>  void Exit();</p><p><b>  /*主函數(shù)調(diào)用*/</b></p><p>  void main()</p><p><b>  { menu();</b></p>

35、<p><b>  choose();</b></p><p><b>  }</b></p><p><b>  /*菜單系統(tǒng)*/</b></p><p>  void menu(void)</p><p><b>  {</b></p

36、><p>  system("CLS");</p><p>  printf("\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n");</p><p>  printf("\t^*

37、 *^\n");</p><p>  printf("\t^* 。。。。。。歡迎使用這個成績管理系統(tǒng)。。。。。。。 *^\n");</p><p>  printf("\t^* *^\n&

38、quot;);</p><p>  printf("\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n");</p><p>  printf("\n");</p><p>  printf("\t 以下這個菜單由余銷云制作,詳情請看:\

39、n\n");</p><p>  printf("\t#########################################################\n");</p><p>  printf("\t# 請輸入學(xué)生的分?jǐn)?shù).....................1 #\n");</p&

40、gt;<p>  printf("\t# 搜索學(xué)生分?jǐn)?shù) ....................2 #\n");</p><p>  printf("\t# 搜索學(xué)生的優(yōu)秀通過率.................3 #\n");</p><p>  printf(&qu

41、ot;\t# 搜索學(xué)生的通過狀況...................4 #\n");</p><p>  printf("\t# 搜索個人個門成績分?jǐn)?shù).................5 #\n");</p><p>  printf("\t# 離開..............

42、...................6 #\n");</p><p>  printf("\t#########################################################\n");</p><p>  printf("\n\t請選擇:\n");</p><p>

43、;<b>  }</b></p><p><b>  /*菜單選擇*/</b></p><p>  void choose(void)</p><p><b>  {</b></p><p>  int x,flag=0;</p><p>  while

44、(flag==0)</p><p><b>  {</b></p><p>  fflush(stdin);</p><p>  scanf("%d",&x);</p><p>  getchar();</p><p><b>  switch(x)</

45、b></p><p>  { case 1:input();savescore();loadscore();menu();choose();flag=1;break;</p><p>  case 2:choosec();flag=1;break;</p><p>  case 3:excellent();flag=1;break;</p>&l

46、t;p>  case 4:passing();flag=1;break;</p><p>  case 5:personal();flag=1;break;</p><p>  case 6:Exit();flag=1;</p><p>  default:printf("\tSorry,your choose doesn't exist!

47、please choose again!\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /*輸入學(xué)生成績*/</p><p>  void

48、input(void)</p><p><b>  {</b></p><p>  int flag=1,j,i;char k;float pp=0;</p><p>  for(i=0;flag==1;i++)</p><p><b>  {</b></p><p>  p

49、rintf("\t請輸入第N.%hd個學(xué)生的成績信息:\n",i+1);</p><p>  puts("姓名:");</p><p>  fflush(stdin);</p><p>  gets(stu[i].name);</p><p>  fflush(stdin);</p>&l

50、t;p>  puts("學(xué)號:");</p><p>  fflush(stdin);</p><p>  gets(stu[i].num);</p><p>  puts("\t分?jǐn)?shù):\t語文\t數(shù)學(xué)\t英語");</p><p>  for(j=0;j<M;j++)</p>

51、<p>  scanf("%f",&stu[i].score[j]);</p><p>  puts("\t你想要繼續(xù)么?(Y/N)");</p><p><b>  while(1)</b></p><p>  { puts("\t請選擇.......");&l

52、t;/p><p>  fflush(stdin);</p><p>  scanf("%c",&k);</p><p>  if(k!='N'&&k!='Y')</p><p>  puts("\t出錯了,哈哈,再輸一次吧!");</p>

53、<p>  else if(k=='N')</p><p><b>  {</b></p><p>  flag=0;S=i;break;</p><p><b>  }</b></p><p>  else break;</p><p><

54、b>  }</b></p><p><b>  }</b></p><p>  for(i=0;i<=S;i++)</p><p><b>  {</b></p><p>  for(j=0,stu[i].total=0.0;j<M;j++)</p>&l

55、t;p>  stu[i].total+=stu[i].score[j];</p><p>  stu[i].average=stu[i].total/M;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  /*保存數(shù)據(jù)*/&

56、lt;/b></p><p>  void savescore(void)</p><p><b>  { </b></p><p>  int i,flag=1;FILE *fp;char m;</p><p>  puts("\t你想要保存這些數(shù)據(jù)么?(Y/N)");</p>

57、<p><b>  while(1)</b></p><p><b>  {</b></p><p>  fflush(stdin);</p><p>  scanf("%c",&m);</p><p>  if(m=='Y')</p&g

58、t;<p><b>  {</b></p><p>  if((fp=fopen("D:\score.txt","w"))==NULL)</p><p><b>  {</b></p><p>  printf("\t對不起哦,無法打開這個表單....\n&q

59、uot;);</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  for(i=0;i<=S;i++)</p><p>  if(fwrite(&stu[i],sizeof(struct students),1,fp)!=1)

60、</p><p><b>  {</b></p><p>  puts("\t對不起,表單書寫錯誤了!");</p><p><b>  flag=0;</b></p><p><b>  }</b></p><p>  if(fla

61、g==1)</p><p>  for(i=0;i<=S;i++)</p><p>  printf("\t好了,第N.%d個學(xué)生的數(shù)據(jù)已經(jīng)被保存了哦!!!\n",i+1);</p><p>  fclose(fp);</p><p><b>  break; </b></p>

62、<p><b>  }</b></p><p>  else if(m!='N'&&m!='Y')</p><p>  puts("\t對不起,你輸入錯誤,請重新輸入一次吧!");</p><p><b>  else</b></p>

63、<p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /*讀取文件中保存的數(shù)據(jù)*/</p><p>  void loadscore(void)</p><

64、p><b>  {</b></p><p>  FILE *fp;char n;MESSA restu[20];int i,j,flag=0;</p><p>  char read[5][10]={"學(xué)號","姓名","語文","數(shù)學(xué)","英語"};</p

65、><p>  puts("\t你想要立刻讀取這些數(shù)據(jù)么?(Y/N)");</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  fflush(stdin);</p><p>  scanf("

66、;%c",&n);</p><p>  if(n=='Y')</p><p><b>  {</b></p><p>  if((fp=fopen("D:\score.txt","r"))==NULL)</p><p><b>  {&l

67、t;/b></p><p>  fprintf(stderr,"\tOpen %s error!!!\n","score.txt");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  fo

68、r(i=0;i<=S;i++)</p><p>  fread(&restu[i],sizeof(struct students),1,fp);</p><p>  system("CLS");</p><p>  puts("\t成績信息讀取中.................");</p>&l

69、t;p>  printf("\t好的,表單已經(jīng)被讀取!...........\n");</p><p>  printf("\n");</p><p>  printf("\t$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$\n");</p

70、><p>  printf("\t$**$ $**$\n\t");</p><p>  printf("$**$ ");</p><p>  for(i=0;i<5;i++)</p><p&

71、gt;  printf("%-10s",read[i]);</p><p>  printf(" $**$");</p><p>  printf("\n");</p><p>  for(i=0;i<=S;i++)</p><p>  { printf("\t

72、$**$ ");</p><p>  printf("%-10s%-10s",restu[i].num,restu[i].name);</p><p>  for(j=0;j<3;j++)</p><p>  printf("%-10.2f",restu[i].score[j]);</p>

73、<p>  printf(" $**$\n");</p><p><b>  }</b></p><p>  printf("\t$**$ $**$");</p><p>  prin

74、tf("\n\t$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$\n");</p><p>  fclose(fp);</p><p><b>  break;</b></p><p><b>  }</b></p>

75、<p>  else if(n=='N')</p><p><b>  break;</b></p><p><b>  else</b></p><p>  printf("\t對不起,出現(xiàn)錯誤了,再來一次吧,相信你會成功的!\n");</p><p&g

76、t;<b>  }</b></p><p>  puts("\t輸入任意鍵回到主菜單..............\n");</p><p>  getchar();</p><p>  getchar();</p><p><b>  }</b></p><p

77、>  /*選擇查分的子菜單及子菜單選擇*/</p><p>  void choosec(void)</p><p><b>  {</b></p><p>  int biao,i,flag=0;FILE *fp;</p><p>  if((fp=fopen("D:\\score.txt",

78、"r"))==NULL)</p><p><b>  {</b></p><p>  printf("\t對不起,你無法輸入任何成績信息! 無法打開這個表單!\n\n\n");</p><p>  printf("\t輸入任意鍵回到主菜單!!\n");</p><p

79、>  getchar();</p><p>  getchar();</p><p><b>  menu();</b></p><p><b>  choose();</b></p><p><b>  }</b></p><p>  for(i

80、=0;i<=S;i++)</p><p>  fread(&stu[i],sizeof(struct students),1,fp);</p><p>  fclose(fp);</p><p>  system("CLS");</p><p>  printf("\t以下是第二個菜單:\n&quo

81、t;);</p><p>  printf("\n");</p><p>  printf("\t%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$\n");</p><p>  pri

82、ntf("\t%%$ 按平均分由高到低..............................1 %%$\n");</p><p>  printf("\t%%$ 按總分由高到低................................2 %%$\n");</p><p>  printf("\t%%$ 按學(xué)號降

83、序....................................3 %%$\n");</p><p>  printf("\t%%$ 按姓名降序....................................4 %%$\n");</p><p>  printf("\t%%$ 回到主菜單.................

84、...................5 %%$\n");</p><p>  printf("\t%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$\n");</p><p>  printf("\n\t請選

85、擇輸入方式:\n");</p><p>  while(flag==0)</p><p><b>  {</b></p><p>  fflush(stdin);</p><p>  scanf("%d",&biao);</p><p>  getchar()

86、;</p><p>  switch(biao)</p><p>  { case 1:flag=1;average();show();break;</p><p>  case 2:flag=1;total();show();break;</p><p>  case 3:flag=1;number();show();break;

87、 </p><p>  case 4:flag=1;name();show();break;</p><p>  case 5:flag=1;menu();choose();break;</p><p>  default:printf("\t對不起,你的操作無法進(jìn)行! 請重新做出正確操作!\n");</p><p>

88、;<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  /*顯示分?jǐn)?shù)*/</b></p><p>  void show(void)</p><p>&l

89、t;b>  { </b></p><p>  int i,j,n,flag=0;</p><p>  char head[7][10]={"學(xué)號","姓名","語文","數(shù)學(xué)","英語","總分","平均分"};</p>

90、<p>  system("CLS");</p><p>  puts("\t讀取信息中.................");</p><p>  printf("\n");</p><p>  printf("\t$**$**$**$**$**$**$**$**$**$**$**

91、$**$**$**$**$**$**$**$**$**$**$**$**$\n\n\t");</p><p>  for(i=0;i<7;i++)</p><p>  printf("%-10s",head[i]);</p><p>  printf("\n\t");</p><p> 

92、 for(i=0;i<=S;i++)</p><p><b>  {</b></p><p>  printf("%-10s%-10s",stu[i].num,stu[i].name);</p><p>  for(j=0;j<3;j++)</p><p>  printf("%

93、-10.2f",stu[i].score[j]);</p><p>  printf("%-10.2f",stu[i].total);</p><p>  printf("%-10.2f",stu[i].average);</p><p>  printf("\n\t");</p>

94、<p><b>  }</b></p><p>  printf("\n\t$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$\n");</p><p>  printf("\nYou want :(1 or 2)\n");<

95、;/p><p>  puts("\t1.回到第二個菜單!\n");</p><p>  puts("\t2.回到主菜單!\n");</p><p>  while(flag==0)</p><p><b>  {</b></p><p>  fflush(std

96、in);</p><p>  scanf("%d",&n);</p><p>  getchar();</p><p><b>  switch(n)</b></p><p>  { case 1:flag=1;choosec();break;</p><p>

97、  case 2:flag=1;menu();choose();break;</p><p>  default:printf("\t出錯了,請再次輸入!\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>

98、  }</b></p><p>  /*按平均分由高到低*/</p><p>  void average(void)</p><p><b>  {</b></p><p>  int i,j,k;MESSA t;</p><p>  for(i=0;i<S;i++)</

99、p><p><b>  {</b></p><p><b>  k=i;</b></p><p>  for(j=i+1;j<=S;j++)</p><p>  if(stu[k].average<stu[j].average)</p><p><b>  

100、k=j;</b></p><p><b>  if(k!=i)</b></p><p><b>  {</b></p><p><b>  t=stu[k];</b></p><p>  stu[k]=stu[i];</p><p><

101、b>  stu[i]=t;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /*按總分由高到低*/</p><p>  void tot

102、al(void)</p><p><b>  {</b></p><p>  int i,j,k;MESSA t;</p><p>  for(i=0;i<S;i++)</p><p><b>  {</b></p><p><b>  k=i;</b&

103、gt;</p><p>  for(j=i+1;j<=S;j++)</p><p>  if(stu[k].total<stu[j].total)</p><p><b>  k=j;</b></p><p><b>  if(k!=i)</b></p><p>

104、<b>  {</b></p><p><b>  t=stu[k];</b></p><p>  stu[k]=stu[i];</p><p><b>  stu[i]=t;</b></p><p><b>  }</b></p><

105、p><b>  }</b></p><p><b>  }</b></p><p><b>  /*按學(xué)號降序*/</b></p><p>  void number(void)</p><p><b>  { </b></p>&

106、lt;p>  int i,j,k;MESSA t;</p><p>  for(i=0;i<S;i++)</p><p><b>  { </b></p><p><b>  k=i;</b></p><p>  for(j=i+1;j<=S;j++)</p><

107、;p>  if(strcmp(stu[k].num,stu[j].num)<0)</p><p><b>  k=j;</b></p><p><b>  if(k!=i)</b></p><p><b>  {</b></p><p><b>  t=s

108、tu[k];</b></p><p>  stu[k]=stu[i];</p><p><b>  stu[i]=t;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>

109、  }</b></p><p><b>  /*按姓名降序*/</b></p><p>  void name(void)</p><p><b>  { </b></p><p>  int i,j,k;MESSA t;</p><p>  for(i=0;

110、i<S;i++)</p><p><b>  { </b></p><p><b>  k=i;</b></p><p>  for(j=i+1;j<=S;j++)</p><p>  if(strcmp(stu[k].name,stu[j].name)<0)</p>

111、<p><b>  k=j;</b></p><p><b>  if(k!=i)</b></p><p><b>  {</b></p><p><b>  t=stu[k];</b></p><p>  stu[k]=stu[i];<

112、/p><p><b>  stu[i]=t;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  /*優(yōu)秀率*/</

113、b></p><p>  void excellent(void)</p><p><b>  {</b></p><p>  int i,j,k,w,flag=0;float m;FILE *fp;</p><p>  char head2[3][10]={"數(shù)學(xué)","語文"

114、;,"英語"};</p><p>  if((fp=fopen("D:\\score.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("\t對不起,你無法輸入任何信息! 找不到該表單!\n\n\n");&

115、lt;/p><p>  printf("\t輸入任意鍵回到主菜單!!\n");</p><p>  getchar();</p><p>  getchar();</p><p><b>  menu();</b></p><p><b>  choose();</

116、b></p><p><b>  }</b></p><p>  for(i=0;i<=S;i++)</p><p>  fread(&stu[i],sizeof(struct students),1,fp);</p><p>  fclose(fp);</p><p>  s

117、ystem("CLS");</p><p>  for(i=0;i<M;i++)</p><p><b>  {</b></p><p>  printf("\tThe excellent students in %s is following:\n",head2[i]);</p>&

118、lt;p>  for(j=0,k=0;j<=S;j++)</p><p>  if(stu[j].score[i]>=85.00)</p><p><b>  { k++;</b></p><p>  printf("\t%s\t%s",stu[j].num,stu[j].name);</p>

119、;<p>  printf("\t%.2f\n",stu[j].score[i]);</p><p><b>  }</b></p><p>  m=(k*1.0/(S+1))*100;</p><p>  printf("\tThe excellent rate is %.2f%%\n",

120、m);</p><p><b>  }</b></p><p>  printf("\n\n");</p><p>  puts("\t你想要繼續(xù)操作么?\n");</p><p>  printf("\t1.離開系統(tǒng)!\n");</p><

121、p>  printf("\t2.回到主菜單!\n");</p><p>  printf("\t3.回到第二個菜單!\n");</p><p>  puts("\t請選擇:\n");</p><p>  while(flag==0)</p><p><b>  {

122、 </b></p><p>  fflush(stdin);</p><p>  scanf("%d",&w);</p><p>  getchar();</p><p><b>  switch(w)</b></p><p>  { case 1:

123、Exit();flag=1;</p><p>  case 2:menu();choose();flag=1;break;</p><p>  case 3:choosec();flag=1;break;</p><p>  default:printf("\t對不起,操作無法進(jìn)行! 請重新選擇!\n"); </p><p&

124、gt;<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  /*及格率*/</b></p><p>  void passing(void)</p><p&g

125、t;<b>  {</b></p><p>  int i,j,k,w,flag=0;float m;FILE *fp;</p><p>  char head2[3][10]={"數(shù)學(xué)","語文","英語"};</p><p>  if((fp=fopen("D:\\sco

126、re.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("\t對不起,你不能輸入任何信息! 無法找到該表單!\n\n\n");</p><p>  printf("\t輸入任意鍵回到主菜單!!\n");</p&

127、gt;<p>  getchar();</p><p>  getchar();</p><p><b>  menu();</b></p><p><b>  choose();</b></p><p><b>  }</b></p><p&

128、gt;  for(i=0;i<=S;i++)</p><p>  fread(&stu[i],sizeof(struct students),1,fp);</p><p>  fclose(fp);</p><p>  system("CLS");</p><p>  for(i=0;i<M;i++)&

129、lt;/p><p><b>  {</b></p><p>  printf("\tThe passing students in %s is following:\n",head2[i]);</p><p>  for(j=0,k=0;j<=S;j++)</p><p>  if(stu[j].s

130、core[i]>=60.0)</p><p><b>  { k++;</b></p><p>  printf("\t%s\t%s",stu[j].num,stu[j].name);</p><p>  printf("\t%.2f\n",stu[j].score[i]);</p>

131、<p><b>  }</b></p><p>  m=(k*1.0/(S+1))*100;</p><p>  printf("\tThe passing rate is %.2f%%\n",m);</p><p><b>  }</b></p><p>  pr

132、intf("\n\n");</p><p>  puts("\t是否繼續(xù)操作?\n");</p><p>  printf("\t1.離開系統(tǒng)!\n");</p><p>  printf("\t2.回到主菜單!\n");</p><p>  printf(&qu

133、ot;\t3.回到第二個菜單!\n");</p><p>  puts("\t請選擇:\n");</p><p>  while(flag==0)</p><p><b>  { </b></p><p>  fflush(stdin);</p><p>  sc

134、anf("%d",&w);</p><p>  getchar();</p><p><b>  switch(w)</b></p><p>  { case 1:Exit();flag=1;</p><p>  case 2:menu();choose();flag=1;break;

135、</p><p>  case 3:choosec();flag=1;break;</p><p>  default:printf("\t對不起,你的操作無法進(jìn)行! 請重新選擇!\n"); </p><p><b>  }</b></p><p><b>  }</b><

136、;/p><p><b>  }</b></p><p>  /*個人學(xué)生成績查詢*/</p><p>  void personal(void)</p><p><b>  {</b></p><p>  int i,j,f,w,flag=0;char b[10],a;FILE

137、*fp;</p><p>  char head3[7][10]={"學(xué)號","姓名","語文","數(shù)學(xué)","英語","總分","平均分"};</p><p>  if((fp=fopen("D:\\score.txt","

138、;r"))==NULL)</p><p><b>  {</b></p><p>  printf("\t對不起,無法輸入任何信息! 無法找到該表單!\n\n\n");</p><p>  printf("\t輸入任意鍵回到主菜單!!\n");</p><p>  get

139、char();</p><p>  getchar();</p><p><b>  menu();</b></p><p><b>  choose();</b></p><p><b>  }</b></p><p>  for(i=0;i<=

140、S;i++)</p><p>  fread(&stu[i],sizeof(struct students),1,fp);</p><p>  fclose(fp);</p><p>  puts("\t請輸入你想要搜索的學(xué)生成績信息:\n");</p><p>  puts("\t學(xué)生成績信息如下...

141、......\n");</p><p>  for(i=0;i<=S;i++)</p><p>  printf("\t%s",stu[i].name);</p><p>  puts("\t\nYour choose is :\n");</p><p><b>  while

142、(1)</b></p><p><b>  {</b></p><p>  fflush(stdin);</p><p><b>  gets(b);</b></p><p>  for(i=0;i<=S;i++)</p><p>  if(strcmp(b

143、,stu[i].name)==0)</p><p><b>  {</b></p><p>  printf("\t該生學(xué)生成績信息%s?(Y/N)\n",stu[i].name);</p><p><b>  f=i;</b></p><p><b>  }</

144、b></p><p>  fflush(stdin);</p><p>  scanf("%c",&a);</p><p>  if(a=='Y')</p><p><b>  { </b></p><p>  system("CLS&

145、quot;);</p><p>  puts("\t成績信息讀取中.................");</p><p>  printf("\n");</p><p>  printf("\t************************************************\n\n\t")

146、;</p><p>  for(i=0;i<7;i++)</p><p>  printf("%-10s",head3[i]);</p><p>  printf("\n\t");</p><p>  printf("%-10s%-10s",stu[f].num,stu[f].

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論