多科成绩单

来源:互联网 发布:php上传任意文件 编辑:程序博客网 时间:2024/06/10 01:17

上机内容:多科成绩,二维加函数

上机目的:学习

/* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * 作    者:刘杰  * 完成日期:2012 年12  月9  日 * 版 本 号:v1.0 * 输入描述:无* 问题描述:无* 程序输出:无* 问题分析:无* 算法设计:略 */  #include <iostream>  #include <string>  #include <cmath>  double get_max_score(double a[][5],int num,int j);  double get_min_score(double a[][5],int num,int j);  double get_avg_score(double a[][5],int num,int j);  double get_stdev_score(double a[][5],int num,int j);  output_score(double a[][5],int num);  using namespace std;  int main()  {  int i,j,m,n,num;  double score,a[1000][5];      string b[5]={"学号","高数","英语","c++","总成绩"};      cout<<"请输入学生数量:";      cin>>num;      for(i=0;i<num;i++)  {  cout<<"请依次输入学号为"<<i<<"学生的高数,英语,c++成绩:";  a[i][0]=i;  for(j=1;j<4;j++)   {              cin>>score;              a[i][j]=score;          }          a[i][4]=a[i][1]+a[i][2]+a[i][3];      }      cout<<b[0]<<'\t'<<b[1]<<'\t'<<b[2]<<'\t'<<b[3]<<'\t'<<b[4]<<"\n";      for(n=0;n<num;n++) {          cout<<"\n";  for(m=0;m<5;m++){              cout<<a[n][m]<<'\t';          }  }      cout<<"\n";  for(i=1;i<4;i++)  {  cout<<b[i]<<"的最高成绩"<<get_max_score(a,num,i)<<",";  cout<<"最低成绩是"<<get_min_score(a,num,i)<<", ";    cout<<"平均成绩是"<<get_avg_score(a,num,i)<<", ";            cout<<"成绩的标准偏差是"<<get_stdev_score(a,num,i)<<endl;      }      output_score(a,num);      cout<<"\n";  return 0;  }  double get_max_score(double a[][5],int num,int j)  {  int i;  double max;      max=-1;      for(i=0;i<num;i++)  {          if(a[i][j]>max)  {              max=a[i][j];  }    }      return max;  }  double get_min_score(double a[][5],int num,int j)  {      int i;      double min=100000;         for(i=0;i<num;i++)  {          if(a[i][j]<min)  {              min=a[i][j];          }      }  return min;  }  double get_avg_score(double a[][5],int num,int j)  {      int sum=0,i;      for(i=0;i<num;i++)  {          sum+=a[i][j];      } return sum/num;} double get_stdev_score(double a[][5],int num,int j)  {  int i;      double b,x,sum=0;        b=get_avg_score(a,num,j);      for( i=0;i<num;i++)      {              x=a[i][j]-b;              sum+=x*x;      }          return sqrt(sum/(num-1));  }  output_score(double a[][5],int num)    {        double max=get_max_score(a,num,4);        int i,c=0;        bool first=true;        cout<<"总分最高分为"<<max;        for(i=0;i<num;++i)    {            if(a[i][4]==max)                 ++c;        }    cout<<",有"<<c<<"人达到最高分,学号是:";        for(i=0;i<num;++i)    {    if(a[i][4]==max)                if(first)    {                    cout<<i;                    first=false;                }    else    {                    cout<<"、"<<i;                }    }        cout<<endl;         double min=get_min_score(a,num,4);        c=0;        first=true;        cout<<"总分最低分为"<<min;        for(i=0;i<num;++i)    {            if(a[i][4]==min)                 ++c;    }        cout<<",有"<<c<<"人达到最低分,他们的学号是:";        for(i=0;i<num;++i) {    if(a[i][4]==min)    if(first)    {                    cout<<i;                    first=false;    }                else    {   cout<<"、"<<i;                }        }    cout<<endl;    }    


运行结果: