用string[]表示同学姓名

本文介绍了一个简单的学生成绩管理系统的设计与实现,系统采用C++语言编写,能够输入学生的姓名和成绩,输出每个学生的总分,并统计每门课程的最高分、最低分和平均分。
#include<iostream>  
#include<string>  
using namespace std;  
void input(double s[][4],string name[100],string course[4],int n); //输入成绩  
void output(double s[][4],string name [100],int n); //输出成绩  
double max(double s[][4],int n,int i); //求第i门课的最高成绩,i=3时是总分  
double min(double s[][4],int n,int i); //求第i门课的最低成绩  
double avg(double s[][4],int n,int i); //求第i门课的平均成绩  
  
int main()  
{  
    int i,j,num;  
    string temp;  
    double score[100][4]; //设一个班最多100人,实际按输入来  
    string course[4]= {"高等数学","英语","C++","总分"};  
    cout<<"输入学生人数:";  
    cin>>num;  
    string name[num];  
    cout<<"请输入学生们的姓名:";  
    for(i=0; i<num; i++)  
    {  
        cin>>name[i];  
    }  
    input(score,name,course,num);    //(1)输入成绩并求出总分  
    output(score,name,num);    //(2)输出成绩  
    //(3)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差;  
    for(i=0; i<4; i++)  
    {  
        cout<<course[i]<<"的最高成绩是"<<max(score,num,i)<<" \t";  
        cout<<"最低成绩是"<<min(score,num,i)<<" \t";  
        cout<<"平均成绩是"<<avg(score,num,i)<<" \n";  
        cout<<endl<<course[i]<<"得分最高的同学是:";  
        for(j=0; j<=num; j++)  
        {  
            if(score[j][i]==max(score,num,i))  
            {  
                cout<<name[j]<<endl;  
            }  
        }  
        cout<<endl;  
    }  
    return 0;  
}  
  
void input(double s[][4],string name[100],string course[4],int n)  
{  
    int i,j,psum=0;  
    for(i=0; i<n; i++)  
    {  
        psum=0;  
        cout<<endl<<name[i]<<endl;  
        for(j=0; j<3; j++)  
        {  
            cout<<course[j];  
            cin>>s[i][j];  
            psum=psum+s[i][j];  
        }  
        s[i][3]=psum;  
    }  
}  
  
void output(double s[][4],string name [100],int n)  
{  
    int i;  
    for(i=0; i<n; i++)  
    {  
        cout<<name [i]<<"总分:"<<s[i][3]<<"\t";  
    }  
    cout<<endl;  
}  
  
double max(double s[][4],int n,int i)  
{  
    int j,pmax;  
    pmax=s[0][i];  
    for(j=0; j<n; j++)  
    {  
        if(s[j][i]>pmax)  
            pmax=s[j][i];  
    }  
    return pmax;  
}  
  
double min(double s[][4],int n,int i)  
{  
    int j,min;  
    min=s[0][0];  
    for(j=0; j<n; j++)  
    {  
        if(s[j][i]<min)  
            min=s[j][i];  
    }  
    return min;  
}  
  
double avg(double s[][4],int n,int i)  
{  
    int j;  
    double sum=0,avg;  
    for(j=0; j<n; j++)  
    {  
        sum=sum+s[j][i];  
    }  
    avg=sum/n;  
    return avg;  
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值