6_55.cpp
上传用户:zipjojo
上传日期:2009-07-20
资源大小:70k
文件大小:2k
源码类别:

文章/文档

开发平台:

C/C++

  1. #include<string.h>
  2. #include<iostream.h>
  3. #define N 10
  4. class std
  5. {
  6. int No;
  7. char name[10];
  8. float Eng;
  9. float Chi;
  10. float Mat;
  11. float total;
  12. public:
  13. void setname(char na[]){strcpy(name,na);};
  14. void setNo(int n){No=n;};
  15. void setEng(float e){Eng=e;};
  16. void setChi(float c){Chi=c;};
  17. void setMat(float m){Mat=m;};
  18. void settotal(float t){total=t;};
  19. char* getname(){return name;};
  20. int getNo(){return No;};
  21. float getEng(){return Eng;};
  22. float getChi(){return Chi;};
  23. float getMat(){return Mat;};
  24. float gettotal(){ return total;};
  25. };
  26. class compute
  27. {
  28. int ns;
  29. std na[N];
  30. static float sumEng;
  31. static float sumChi;
  32. static float sumMat;
  33. public:
  34. void getdata();
  35. void sort();
  36. void disp();
  37.     float aveEng()
  38. {
  39. return sumEng/ns;
  40. }
  41.     float aveChi()
  42. {
  43. return sumChi/ns;
  44. }
  45.     float aveMat()
  46. {
  47. return sumMat/ns;
  48. }
  49. };
  50. float compute::sumEng=0.0;
  51. float compute::sumChi=0.0;
  52. float compute::sumMat=0.0;
  53. void compute::getdata()
  54. {
  55. int i,sno;
  56. float En,Ch,Ma,Tol;
  57. char tname[10];
  58. cout<<"Please input the amounts of students!";
  59. cin>>ns;
  60. for(i=0;i<ns;i++)
  61. {
  62. cout<<"Input the student's NO.:";
  63. cin>>sno;
  64. na[i].setNo(sno);
  65. cout<<"Input the student's name.:";
  66. cin>>tname;
  67. na[i].setname(tname);
  68. cout<<"Input the student's English score:";
  69. cin>>En;
  70.     sumEng=sumEng+En;
  71. na[i].setEng(En);
  72. cout<<"Input the student's Chinese score:";
  73. cin>>Ch;
  74.     sumChi=sumChi+Ch;
  75. na[i].setChi(Ch);
  76. cout<<"Input the student's Maths score:";
  77. cin>>Ma;
  78. sumMat=sumMat+Ma;
  79. na[i].setMat(Ma);
  80. Tol=En+Ch+Ma;
  81. na[i].settotal(Tol);
  82. }
  83. }
  84. void compute::sort()  //直接选择排序
  85. {
  86. int i,j,pick;
  87. std temp;
  88. for(i=0;i<ns-1;i++)
  89. {
  90. pick=i;
  91. for(j=i+1;j<ns;j++)
  92. {
  93. if(na[j].gettotal()>na[pick].gettotal())
  94. pick=j;
  95. }
  96. temp=na[i];
  97. na[i]=na[pick];
  98. na[pick]=temp;
  99. }
  100. }
  101. void compute::disp()
  102. {
  103. cout<<"List"<<"  NO"<<"  Name"<<"  English"<<"  Chinese"<<"  Maths"<<"  Total "<<endl;
  104. for(int i=0;i<ns;i++)
  105. {
  106. cout<<i+1<<"     "<<na[i].getNo()<<"    "<<na[i].getname()<<"      "<<na[i].getEng()<<"       "
  107. <<na[i].getChi()<<"      "<<na[i].getMat()<<"    "<<na[i].gettotal()<<endl;
  108. }
  109. }
  110. void main()
  111. {
  112. compute obj;
  113. obj.getdata();
  114. obj.sort();
  115. obj.disp();
  116.     cout<<"The average score of English is:"<<obj.aveEng()<<endl;
  117. cout<<"The average score of Chinese is:"<<obj.aveChi()<<endl;
  118. cout<<"The average score of Maths is:"<<obj.aveMat()<<endl;
  119. }