c語言課程設(shè)計(jì)--班級(jí)成績分析系統(tǒng)_第1頁
已閱讀1頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  計(jì)算機(jī)程序設(shè)計(jì)(c語言)</p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  題目:班級(jí)成績分析系統(tǒng)</p><p><b>  學(xué)院:紡織服裝學(xué)院</b></p><p><b>  專業(yè):紡織工程</b></p><

2、;p><b>  班級(jí): </b></p><p><b>  姓名: </b></p><p><b>  指導(dǎo)教師: </b></p><p>  答辯日期:2012年 7月 7日</p><p>  一、 設(shè)計(jì)背景介紹 </p><p>

3、  1.為了熟悉c語言的應(yīng)用,將理論轉(zhuǎn)化為實(shí)踐,在老師的幫助下我設(shè)計(jì)了這個(gè)簡單的程序。</p><p>  2.對于普通的成績表無法快速的了解班級(jí)成績情況,為了方便老師對班級(jí)成績的了解,本程序采用了各種角度對班級(jí)成績進(jìn)行全面的分析。</p><p>  二、 任務(wù)概述和主體部分</p><p>  由于初次編程,且對c語言的知識(shí)了解程度不深,很多知識(shí)點(diǎn)無法靈活運(yùn)用,

4、所以大部分內(nèi)容采用c語言的基本知識(shí)。</p><p>  主要任務(wù)是對輸入的班級(jí)成績信息進(jìn)行分析后輸出,關(guān)鍵在于采用方法對數(shù)據(jù)處理和輸出,能保證輸出的信息簡潔明了。</p><p>  我設(shè)計(jì)的這個(gè)為一個(gè)簡單的成績分析程序。其中主要功能有</p><p>  1.經(jīng)過輸入班級(jí)信息對班級(jí)成績情況制表</p><p>  2.統(tǒng)計(jì)出各科成績的最高

5、分</p><p><b>  3.計(jì)算出平均分</b></p><p><b>  4.對各分?jǐn)?shù)段統(tǒng)計(jì)</b></p><p><b>  5.學(xué)分績點(diǎn)計(jì)算</b></p><p>  首先是定義了一個(gè)結(jié)構(gòu)體,定義了一個(gè)結(jié)構(gòu)體變量數(shù)組。用于存放輸入的班級(jí)學(xué)生信息。</p

6、><p>  本程序主體框架為一個(gè)switch選擇語句,這樣就可以對各種分析結(jié)果進(jìn)行選擇性輸出,可以根據(jù)用戶的需求輸出。</p><p>  對數(shù)據(jù)的處理和輸出主要采用了for while等循環(huán)結(jié)構(gòu),這樣可以大大的簡化程序,使程序看起來清楚明了,更便于修改完善。</p><p><b>  三、 設(shè)計(jì)流程</b></p><p

7、><b>  四、 程序代碼清單</b></p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p><p>  struct stu</p><p>  {int num;</p><p>  cha

8、r name[20];</p><p><b>  int age;</b></p><p>  int score[4];</p><p>  }stu[150];/*結(jié)構(gòu)體及結(jié)構(gòu)體變量定義*/</p><p><b>  main()</b></p><p>  {/*變

9、量和數(shù)組的定義及數(shù)組元素初始化*/</p><p>  int a,b,max,i,n,xx;</p><p>  int k[4][4]={0};</p><p>  float j,f[4]={0};</p><p>  float h[4]={0};</p><p>  printf("========

10、====================================================\n");/*標(biāo)題*/</p><p>  printf("歡迎使用成績管理系統(tǒng)\n");</p><p>  printf("\t\t\t\t\t作者:王鵬\n");</p><p>  printf("

11、;============================================================");</p><p>  printf("\n\n\n");</p><p>  printf("請輸入班級(jí)人數(shù):");/*接收班級(jí)人數(shù)*/</p><p>  scanf("%d&q

12、uot;,&a);</p><p>  printf("\n");/*接收班級(jí)學(xué)生信息*/</p><p>  for(b=0;b<a;b++)</p><p>  {printf("請輸入學(xué)號(hào):");</p><p>  scanf("%d",&stu[b].

13、num);</p><p>  printf("請輸入姓名:");</p><p>  scanf("%s",stu[b].name);</p><p>  printf("請輸入年齡:");</p><p>  scanf("%d",&stu[b].ag

14、e);</p><p>  printf("請輸入計(jì)算機(jī)成績:");</p><p>  scanf("%d",&stu[b].score[0]);</p><p>  printf("請輸入數(shù)學(xué)成績:");</p><p>  scanf("%d",&a

15、mp;stu[b].score[1]);</p><p>  printf("請輸入物理成績:");</p><p>  scanf("%d",&stu[b].score[2]);</p><p>  printf("請輸入外語成績:");</p><p>  scanf(&

16、quot;%d",&stu[b].score[3]);</p><p>  printf("\n");</p><p><b>  }</b></p><p><b>  kaishi: </b></p><p>  printf("\n\n\n&qu

17、ot;);</p><p>  printf("*****************************************************\n");/*菜單*/</p><p>  printf("成績表請輸入1\n");</p><p>  printf("各科最高分請輸入2\n");&l

18、t;/p><p>  printf("各科平均分請輸入3\n");</p><p>  printf("各科成績統(tǒng)計(jì)情況請輸入4\n");</p><p>  printf("學(xué)分績點(diǎn)請輸入5\n");</p><p>  printf("結(jié)束請輸入0\n");<

19、;/p><p>  printf("******************************************************\n");</p><p>  scanf("%d",&xx);/*接收選項(xiàng)*/</p><p>  system("cls");</p><

20、;p>  switch(xx)/*判斷接收的選項(xiàng)*/</p><p><b>  {</b></p><p>  case 1:{/*成績表*/</p><p>  printf("學(xué)號(hào)\t");</p><p>  printf("姓名\t");</p>&l

21、t;p>  printf("年齡\t");</p><p>  printf("計(jì)算機(jī)成績\t");</p><p>  printf("數(shù)學(xué)成績\t");</p><p>  printf("物理成績\t");</p><p>  printf("

22、;外語成績\n");</p><p>  for(b=0;b<a;b++)</p><p>  {printf("%d\t",stu[b].num);</p><p>  printf("%s\t",stu[b].name);</p><p>  printf("%d\t&qu

23、ot;,stu[b].age);</p><p>  printf("%d \t",stu[b].score[0]);</p><p>  printf("%d \t",stu[b].score[1]);</p><p>  printf("%d \t",stu[b].s

24、core[2]);</p><p>  printf("%d\n",stu[b].score[3]);</p><p><b>  }</b></p><p>  printf("\n\n");</p><p>  printf("\n\n\n\n\n\n\n\n繼續(xù)輸入

25、");</p><p>  goto kaishi;}</p><p>  case 2:{/*最高分計(jì)算和輸出*/</p><p>  max=stu[0].score[0];</p><p>  for(b=1;b<a;b++)</p><p>  {if(max<stu[b].score[0

26、])</p><p>  max=stu[b].score[0];</p><p>  }printf("計(jì)算機(jī)成績最高分:");</p><p>  printf("%d\n",max);</p><p>  max=stu[0].score[1];</p><p>  for

27、(b=1;b<a;b++)</p><p>  {if(max<stu[b].score[1])</p><p>  max=stu[b].score[1];</p><p>  }printf("數(shù)學(xué)成績最高分:");</p><p>  printf("%d\n",max);</p

28、><p>  max=stu[0].score[2];</p><p>  for(b=1;b<a;b++)</p><p>  {if(max<stu[b].score[2])</p><p>  max=stu[b].score[2];</p><p>  }printf("物理成績最高分:&qu

29、ot;);</p><p>  printf("%d\n",max);</p><p>  max=stu[0].score[3];</p><p>  for(b=1;b<a;b++)</p><p>  {if(max<stu[b].score[3])</p><p>  max=s

30、tu[b].score[3];</p><p>  }printf("外語成績最高分:");</p><p>  printf("%d\n",max);</p><p>  printf("\n\n\n\n\n繼續(xù)輸入");</p><p>  goto kaishi; }&l

31、t;/p><p>  case 3:{/*平均分計(jì)算和輸出*/</p><p><b>  b=0;</b></p><p>  while(b<a)</p><p>  {h[0]+=stu[b].score[0];h[1]+=stu[b].score[1];h[2]+=stu[b].score[2];h[3]+=s

32、tu[b].score[3];</p><p><b>  b++;</b></p><p><b>  }</b></p><p>  f[0]=h[0]/a;</p><p>  f[1]=h[1]/a;</p><p>  f[2]=h[2]/a;</p>

33、<p>  f[3]=h[3]/a;</p><p>  printf("計(jì)算機(jī)成績平均分:");</p><p>  printf("%f\n",f[0]);</p><p>  printf("數(shù)學(xué)成績平均分:");</p><p>  printf("%f

34、\n",f[1]);</p><p>  printf("物理成績平均分:");</p><p>  printf("%f\n",f[2]);</p><p>  printf("外語成績平均分:");</p><p>  printf("%f\n",f

35、[3]);</p><p>  printf("\n\n\n\n\n\n\n\n繼續(xù)輸入");</p><p>  goto kaishi; }</p><p>  case 4:{/*班級(jí)成績統(tǒng)計(jì)分析*/</p><p><b>  b=0;</b></p><p> 

36、 while(b<a)</p><p>  {for(i=1;i<=4;i++)</p><p>  {if(stu[b].score[i]<60)k[0][i]++;</p><p>  if(stu[b].score[i]>=80)k[3][i]++;</p><p>  if(stu[b].score[i]>

37、;=70&&stu[b].score[i]<80)k[2][i]++;</p><p>  if(stu[b].score[i]>=60&&stu[b].score[i]<70)k[1][i]++;</p><p><b>  }</b></p><p><b>  b++;</

38、b></p><p><b>  }</b></p><p>  for(i=0;i<4;i++)</p><p><b>  {</b></p><p>  if(i==0)printf("計(jì)算機(jī)成績分布情況");</p><p>  if(

39、i==1)printf("數(shù)學(xué)成績分布情況");</p><p>  if(i==2)printf("物理成績分布情況");</p><p>  if(i==3)printf("外語成績分布情況");</p><p>  printf("成績不及格人數(shù):");</p>&l

40、t;p>  printf("%d\n",k[0][i]);</p><p>  printf("成績中人數(shù):");</p><p>  printf("%d\n",k[1][i]);</p><p>  printf("成績良好人數(shù):");</p><p>

41、  printf("%d\n",k[2][i]);</p><p>  printf("成績優(yōu)秀人數(shù):");</p><p>  printf("%d\n\n",k[3][i]);</p><p><b>  }</b></p><p>  printf(&qu

42、ot;計(jì)算機(jī)成績不及格的同學(xué)名字及考分:\n");</p><p>  for(b=0;b<a;b++)</p><p>  {if(stu[b].score[0]<60)</p><p>  printf("%s\t%d\n",stu[b].name,stu[b].score[0]);}</p><p&

43、gt;  printf("\n\n");</p><p>  printf("計(jì)算機(jī)成績中的同學(xué)名字及考分:\n");</p><p>  for(b=0;b<a;b++)</p><p>  {if(stu[b].score[0]>=60&&stu[b].score[0]<70)</p

44、><p>  printf("%s\t%d\n",stu[b].name,stu[b].score[0]);</p><p>  }printf("\n\n");</p><p>  printf("計(jì)算機(jī)成績良好的同學(xué)名字及考分:\n");</p><p>  for(b=0;b<

45、;a;b++)</p><p>  {if(stu[b].score[0]>=70&&stu[b].score[0]<80)</p><p>  printf("%s\t%d\n",stu[b].name,stu[b].score[0]);}</p><p>  printf("\n\n");<

46、;/p><p>  printf("計(jì)算機(jī)成績優(yōu)秀的同學(xué)名字及考分:\n");</p><p>  for(b=0;b<a;b++)</p><p>  {if(stu[b].score[0]>=80)</p><p>  printf("%s\t%d\n",stu[b].name,stu[b]

47、.score[0]);}</p><p>  printf("\n\n\n\n");</p><p>  printf("數(shù)學(xué)成績不及格的同學(xué)名字及考分:\n");</p><p>  for(b=0;b<a;b++)</p><p>  {if(stu[b].score[1]<60)<

48、;/p><p>  printf("%s\t%d\n",stu[b].name,stu[b].score[1]);}</p><p>  printf("\n\n");</p><p>  printf("數(shù)學(xué)成績中的同學(xué)名字及考分:\n");</p><p>  for(b=0;b&l

49、t;a;b++)</p><p>  {if(stu[b].score[1]>=60&&stu[b].score[1]<70)</p><p>  printf("%s\t%d\n",stu[b].name,stu[b].score[1]);</p><p>  }printf("\n\n");&l

50、t;/p><p>  printf("數(shù)學(xué)成績良好的同學(xué)名字及考分:\n");</p><p>  for(b=0;b<a;b++)</p><p>  {if(stu[b].score[1]>=70&&stu[b].score[1]<80)</p><p>  printf("%s

51、\t%d\n",stu[b].name,stu[b].score[1]);}</p><p>  printf("\n\n");</p><p>  printf("數(shù)學(xué)成績優(yōu)秀的同學(xué)名字及考分:\n");</p><p>  for(b=0;b<a;b++)</p><p>  {if

52、(stu[b].score[1]>=80)</p><p>  printf("%s\t%d\n",stu[b].name,stu[b].score[1]);}</p><p>  printf("\n\n\n\n");</p><p>  printf("物理成績不及格的同學(xué)名字及考分:\n");&

53、lt;/p><p>  for(b=0;b<a;b++)</p><p>  {if(stu[b].score[2]<60)</p><p>  printf("%s\t%d\n",stu[b].name,stu[b].score[2]);}</p><p>  printf("\n\n");&

54、lt;/p><p>  printf("物理成績中的同學(xué)名字及考分:\n");</p><p>  for(b=0;b<a;b++)</p><p>  {if(stu[b].score[2]>=60&&stu[b].score[2]<70)</p><p>  printf("%s

55、\t%d\n",stu[b].name,stu[b].score[2]);</p><p>  }printf("\n\n");</p><p>  printf("物理成績良好的同學(xué)名字及考分:\n");</p><p>  for(b=0;b<a;b++)</p><p>  {if

56、(stu[b].score[2]>=70&&stu[b].score[2]<80)</p><p>  printf("%s\t%d\n",stu[b].name,stu[b].score[2]);}</p><p>  printf("\n\n");</p><p>  printf("

57、物理成績優(yōu)秀的同學(xué)名字及考分:\n");</p><p>  for(b=0;b<a;b++)</p><p>  {if(stu[b].score[2]>=80)</p><p>  printf("%s\t%d\n",stu[b].name,stu[b].score[2]);}</p><p> 

58、 printf("\n\n\n\n");</p><p>  printf("外語成績不及格的同學(xué)名字及考分:\n");</p><p>  for(b=0;b<a;b++)</p><p>  {if(stu[b].score[3]<60)</p><p>  printf("%

59、s\t%d\n",stu[b].name,stu[b].score[3]);}</p><p>  printf("\n\n");</p><p>  printf("外語成績中的同學(xué)名字及考分:\n");</p><p>  for(b=0;b<a;b++)</p><p>  {if

60、(stu[b].score[3]>=60&&stu[b].score[3]<70)</p><p>  printf("%s\t%d\n",stu[b].name,stu[b].score[3]);</p><p>  }printf("\n\n");</p><p>  printf("

61、外語成績良好的同學(xué)名字及考分:\n");</p><p>  for(b=0;b<a;b++)</p><p>  {if(stu[b].score[3]>=70&&stu[b].score[3]<80)</p><p>  printf("%s\t%d\n",stu[b].name,stu[b].sc

62、ore[3]);}</p><p>  printf("\n\n");</p><p>  printf("外語成績優(yōu)秀的同學(xué)名字及考分:\n");</p><p>  for(b=0;b<a;b++)</p><p>  {if(stu[b].score[3]>=80)</p>

63、<p>  printf("%s\t%d\n",stu[b].name,stu[b].score[3]);}</p><p>  printf("\n\n\n\n\n\n\n\n繼續(xù)輸入");</p><p>  goto kaishi;}</p><p>  case 5:{/*班級(jí)學(xué)生學(xué)分績點(diǎn)計(jì)算和輸出*/&

64、lt;/p><p>  printf("班級(jí)學(xué)生學(xué)分績點(diǎn)情況\n");</p><p>  for(b=0;b<a;b++)</p><p><b>  {j=0;</b></p><p>  for(i=0;i<4;i++)</p><p>  {if(i==0||i

65、==3)n=4; if(i==1||i==2)n=6;</p><p>  if(stu[b].score[i]>=90) j+=(float)(4.0*n);</p><p>  if(stu[b].score[i]<90&&stu[b].score[i]>=85) j+=(float)(3.7*n);</p><p>  if(

66、stu[b].score[i]<85&&stu[b].score[i]>=82) j+=(float)(3.3*n);</p><p>  if(stu[b].score[i]<82&&stu[b].score[i]>=78) j+=(float)(3.0*n);</p><p>  if(stu[b].score[i]<78&

67、amp;&stu[b].score[i]>=75) j+=(float)(2.7*n);</p><p>  if(stu[b].score[i]<75&&stu[b].score[i]>=72) j+=(float)(2.3*n);</p><p>  if(stu[b].score[i]<72&&stu[b].score[

68、i]>=68) j+=(float)(2.0*n);</p><p>  if(stu[b].score[i]<68&&stu[b].score[i]>=64) j+=(float)(1.5*n);</p><p>  if(stu[b].score[i]<64&&stu[b].score[i]>=60) j+=(float)(

69、1.0*n);</p><p>  if(stu[b].score[i]<60)j+=0*n;</p><p><b>  }</b></p><p><b>  j=j/20;</b></p><p>  printf("%s:%f",stu[b].name,j);<

70、;/p><p>  printf("\n\n");</p><p><b>  }</b></p><p>  printf("\n\n\n\n\n\n\n\n繼續(xù)輸入");</p><p>  goto kaishi; }</p><p>  case

71、0:{/*結(jié)束*/</p><p>  printf("謝謝使用!\n");</p><p>  printf("祝全班同學(xué)期末考試都過!\n");</p><p><b>  break;}</b></p><p>  default:{printf("輸入有誤,請重輸

72、入\n"); </p><p>  printf("\n\n\n\n\n\n\n\n繼續(xù)輸入");</p><p>  goto kaishi; }</p><p><b>  }</b></p><p><b>  }</b></p><p>

73、  五、遇見問題及解決方案</p><p>  1.問題:運(yùn)行結(jié)果無法對應(yīng)對齊。</p><p>  解決方案:適當(dāng)采用轉(zhuǎn)義字符或空格是內(nèi)容對齊。 </p><p>  問題:運(yùn)行結(jié)果數(shù)值出現(xiàn)錯(cuò)誤。</p><p>  解決方案:變量忘記賦初值了,給變量賦初值0。 </p><p><b>  問題:分號(hào)不對

74、。</b></p><p>  解決方案:由于輸入法的問題導(dǎo)致分號(hào)不正確,換成英語輸入后重新輸入。</p><p>  六、 設(shè)計(jì)完成情況及需進(jìn)一步完善的地方</p><p>  本程序基本完整,各個(gè)部分基本也比較完善。主要分為兩個(gè)部分,前一部分主要是數(shù)據(jù)的輸入,后一部分是數(shù)據(jù)的分析處理和輸出。</p><p>  缺點(diǎn)是數(shù)據(jù)的接

75、收過于繁瑣,并且對錯(cuò)誤數(shù)據(jù)的鑒別能力基本沒有。</p><p>  七、 設(shè)計(jì)調(diào)試和結(jié)果</p><p>  八、 個(gè)人收獲和總結(jié)</p><p>  在這次課程設(shè)計(jì)過程中,遇到了種種問題和麻煩。但最終在老師和同學(xué)們的幫助下我克服了重重困難一一解決了所有的問題,設(shè)計(jì)出了我的第一個(gè)C語言程序。</p><p>  通過這次c語言課程設(shè)計(jì),我的意

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論