第十四周 项目3.2 多科成绩处理

来源:互联网 发布:大宗商品期货软件 编辑:程序博客网 时间:2024/06/14 05:16
/**copyright (c) 2014.烟大计算机学院*All rights reserved.*文件名称:多科成绩单*作者:王争取*完成日期:2014.12.1*版 本 号:v1.0*问题描述:处理多个同学的成绩*输入描述:输入每位同学的各科成绩*程序输出:输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差;*/#include<iostream>#include<string>using namespace std;void input(double s[][5],int n,string course[5],string name[100]); //输入成绩void output(double s[][5],int n,string course[5],string name[100]); //输出成绩double max(double s[][5],int n,int i); //求第i门课的最高成绩,i=3时是总分double min(double s[][5],int n,int i); //求第i门课的最低成绩double avg(double s[][5],int n,int i); //求第i门课的平均成绩int main(){    int i,num;    string temp;    string name[100];    double score[100][5]; //设一个班最多100人,实际按输入来    string course[5]= {"0" ,"高等数学","英语","C++","总分"};    cout<<"输入学生人数:";    cin>>num;    //(1)输入成绩并求出总分    input(score,num,course,name);    //(2)输出成绩    output(score,num,course,name);    //(3)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差;    for(i=1; i<5; ++i)    {        cout<<endl<<course[i]<<"的最高成绩是"<<max(score,num,i)<<", ";        cout<<"最低成绩是"<<min(score,num,i)<<", ";        cout<<"平均成绩是"<<avg(score,num,i)<<", ";        cout<<endl;    }    for(int j=1; j<5; j++)    {        cout<<"获得"<<course[j]<<"最高成绩的人有";        for(int i=1; i<num+1; i++)            if(score[i][j]==max(score,num,j))                cout<<name[i]<<" ";        cout<<endl;    }    return 0;}void input(double s[][5],int n,string course[5],string name[100]){    int i=1,j,sum=0;    for(; i<n+1; i++)    {        cout<<"请输入";        cin>>name[i];        cout<<"的成绩"<<endl;        for(j=1; j<4; j++)        {            cout<<course[j]<<":";            cin>>s[i][j];        }    }    for(i=1; i<n+1; i++)    {        for(j=1; j<4; j++)            sum+=s[i][j];        s[i][4]=sum;    }}void output(double s[][5],int n,string course[5],string name[100]){    int j,i=1;    for(; i<n+1; i++)    {        cout<<endl<<name[i]<<"的成绩为:";        for(j=1; j<5; j++)            cout<<course[j]<<s[i][j]<<" ";    }}double max(double s[][5],int n,int i){    int max=-1;    for(int j=1; j<n+1; j++)        if(s[j][i]>max) max=s[j][i];    return max;}double min(double s[][5],int n,int i){    int min=1000;    for(int j=1; j<n+1; j++)        if(s[j][i]<min)min=s[j][i];    return min;}double avg(double s[][5],int n,int i){    int avg,sum=0;    for(int j=1; j<n+1; j++)        sum+=s[j][i];    avg=sum/n;    return avg;}

0 0
原创粉丝点击