第14周项目3-多科成绩单-(3)

来源:互联网 发布:好听的歌曲推荐 知乎 编辑:程序博客网 时间:2024/06/05 11:20
/* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:C++.cpp *作    者:王一锟 *完成日期:2014年11月29日 *版 本 号:v1.0 * *问题描述:统计多科成绩单 *输入描述: *输出描述: 成绩单,每科最高/低/平均成绩 */#include<iostream>#include<string>#include<cmath>using namespace std;void input(double s[][4],string name[],int n); void output(double s[][4],string name[],int n);double max(double s[][4],int n,int i); double min(double s[][4],int n,int i); double avg(double s[][4],int n,int i); void maxscore(double s[][4],string name[], int n, int i, double si);int main(){    int i,num;    string temp;    string name[100];    double score[100][4];     string course[4]= {"高等数学","英语","C++","总分"};    cout<<"输入学生人数:";    cin>>num;    input(score,name,num);    output(score,name,num);    for(i=0; i<4; ++i)    {        cout<<course[i]<<"的最高成绩是"<<max(score,num,i)<<", ";        cout<<"最低成绩是"<<min(score,num,i)<<", ";        cout<<"平均成绩是"<<avg(score,num,i)<<", ";        cout<<endl;    }    for(i=0; i<4; ++i)    {        cout<<course[i]<<"的最高成绩获得者是:";       maxscore(score,name,num,i,max(score,num,i));        cout<<endl;    }    return 0;}void input(double s[][4],string name[],int n){    int i;    cout<<"请依次输入(姓名、高数、英语、C++):"<<endl;    for(i=0; i<n; ++i)    {        cout<<"第"<<i+1<<"个学生:";        cin>>name[i]>>s[i][0]>>s[i][1]>>s[i][2];        s[i][3]=s[i][0]+s[i][1]+s[i][2];    }}void output(double s[][4],string name[],int n){    int i;    cout<<"统计后成绩为:"<<endl;    cout<<"学生"<<'\t'<<"高数"<<'\t'<<"英语"<<'\t'<<"C++"<<'\t'<<"总分"<<endl;    for(i=0; i<n; ++i)        cout<<i<<name[i]<<'\t'<<s[i][0]<<'\t'<<s[i][1]<<'\t'<<s[i][2]<<'\t'<<s[i][3]<<endl;    cout<<endl;}double max(double s[][4],int n,int j){    double x=s[0][j];    for(int i=1; i<n; ++i)        if (x<s[i][j])            x=s[i][j];    return x;}double min(double s[][4],int n,int j){    double min=s[0][j];    for(int i=1; i<n; ++i)        if (min>s[i][j])            min=s[i][j];    return min;}double avg(double s[][4],int n,int j){    double sum=0,ave;    for(int i=0; i<n; ++i)        sum+=s[i][j];        ave=sum/n;    return ave;}void maxscore(double s[][4],string name[], int n, int i, double max){    for(int j=0; j<n; ++j)    {        if(abs(s[j][i]-max)<1e-5)            cout<<name[j]<<" ";   }    return;}


运行结果:




这个项目中需要注意double数的比较   abs(s[j][i])-max)<1e-5 

0 0
原创粉丝点击