xt6-15.cpp
上传用户:liubin
上传日期:2022-06-13
资源大小:85k
文件大小:3k
源码类别:

书籍源码

开发平台:

Visual C++

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {void avsco(float *,float *);
  5.  void avcour1(char (*)[10],float *);
  6.  void fali2(char course[5][10],int num[],float *pscore,float aver[4]);
  7.  void good(char course[5][10],int num[4],float *pscore,float aver[4]);
  8.  int i,j,*pnum,num[4];
  9.  float score[4][5],aver[4],*pscore,*paver;
  10.  char course[5][10],(*pcourse)[10];
  11.  cout<<"input course:"<<endl;
  12.  pcourse=course;
  13.  for (i=0;i<5;i++)
  14.    cin>>course[i];
  15.  cout<<"input NO. and scores:"<<endl;
  16.  cout<<"NO.";
  17.  for (i=0;i<5;i++)
  18.    cout<<","<<course[i];
  19.  cout<<endl;
  20.  pscore=&score[0][0];
  21.  pnum=&num[0];
  22.  for (i=0;i<4;i++)
  23.  {cin>>*(pnum+i);
  24.   for (j=0;j<5;j++)
  25.     cin>>*(pscore+5*i+j);
  26.  }
  27.  paver=&aver[0];
  28.  cout<<endl<<endl;              
  29.  avsco(pscore,paver);                  // 求出每个学生的平均成绩 
  30.  avcour1(pcourse,pscore);                // 求出第一门课的平均成绩 
  31.  cout<<endl<<endl;
  32.  fali2(pcourse,pnum,pscore,paver);       // 找出两门课不及格的学生 
  33.  cout<<endl<<endl;
  34.  good(pcourse,pnum,pscore,paver);        // 找出成绩好的学生 
  35.  return 0;
  36. }
  37. void avsco(float *pscore,float *paver)  // 求每个学生的平均成绩的函数
  38.  {int i,j;
  39.   float sum,average;
  40.   for (i=0;i<4;i++)
  41.    {sum=0.0;
  42.     for (j=0;j<5;j++)
  43.       sum=sum+(*(pscore+5*i+j));       //累计每个学生的各科成绩
  44.     average=sum/5;                   //计算平均成绩
  45.     *(paver+i)=average;
  46.    }
  47. }
  48. void avcour1(char (*pcourse)[10],float *pscore)      // 求第一课程的平均成绩的函数 
  49.  {int i;
  50.   float sum,average1;
  51.   sum=0.0;
  52.   for (i=0;i<4;i++)
  53.     sum=sum+(*(pscore+5*i));               //累计每个学生的得分
  54.   average1=sum/4;                        //计算平均成绩
  55.   cout<<"course 1: "<<*pcourse<<",average score:"<<average1<<endl;
  56. }
  57. void fail2(char course[5][10],int num[],float *pscore,float aver[4])  
  58.            // 找两门以上课程不及格的学生的函数 
  59.  {int i,j,k,labe1;
  60.   cout<<"   ==========Student who failed in two courses =======  "<<endl;
  61.   cout<<"NO.   ";
  62.   for (i=0;i<5;i++)
  63.     cout<<course[i]<<"  ";
  64.   cout<<"  average"<<endl;
  65.   for (i=0;i<4;i++)
  66.   {labe1=0;
  67.    for (j=0;j<5;j++)
  68.      if (*(pscore+5*i+j)<60.0) labe1++;
  69.    if (labe1>=2)
  70.     {cout<<num[i]<<"      ";
  71.      for (k=0;k<5;k++)
  72.        cout<<*(pscore+5*i+k)<<"      ";
  73.      cout<<"    "<<aver[i]<<endl;
  74.     }
  75.   }
  76. }
  77. void good(char course[5][10],int num[4],float *pscore,float aver[4])
  78.    // 找成绩优秀学生(全部课程成绩在85分以上或平均成绩在90分以上)的函数 
  79.  {int i,j,k,n;
  80.   cout<<"    ======Students whose score is good======"<<endl;
  81.   cout<<"NO.   ";
  82.   for (i=0;i<5;i++)
  83.     cout<<course[i]<<"  ";
  84.   cout<<"  average"<<endl;
  85.   for (i=0;i<4;i++)
  86.    {n=0;
  87.     for (j=0;j<5;j++)
  88.       if (*(pscore+5*i+j)>85.0) n++;
  89.     if ((n==5)||(aver[i]>=90))
  90.      {cout<<num[i]<<"      ";
  91.       for (k=0;k<5;k++)
  92.         cout<<*(pscore+5*i+k)<<"      ";
  93.       cout<<"    "<<aver[i]<<endl;
  94.      }
  95.  }
  96. }