学生成绩类c++

题目要求如下

【输入形式】

包含一组测试数据。第一行输入一个整数n(1<=n<=100)。

接下来n行。每行先输入一个整数op:

当op==1时,输入x, y, z。代表输入一位新同学i(i从1开始编号)的语文、数学、英语成绩,无需输出。

当op==2时,输入i,输出第i同学的总成绩。数据保证这位同学的成绩已经录入。

当op==3时,输入i,依次输出第i同学的语文数学英语成绩,成绩之间用空格隔开。

当op==4时,输出当前已经录入学生的总平均分,结果保留两位小数。

(1<=n<=100, 1<=id<=10, 1<=op<=3, 0<=x,y,z<=100,全部输入都为整型数)

【输出形式】

当op==2,3,4时,输出所求答案,每个答案占一行。

【样例输入和输出】

10

1 90 85 90

1 80 90 75

2 1

265(此行为输出内容)

3 2

80 90 75(此行为输出内容)

4

255.00(此行为输出内容)

1 80 80 85

1 50 60 65

1 30 90 75

3 5

30 90 75(此行为输出内容)

4

225.00(此行为输出内容)

注意:输入之间会有一些输出,但测试只看cout结果。

代码如下 

#include <iostream>

#include <cstdio>

#include <cstdlib>

#include <iomanip>

using namespace std;

class Score {

private:

    int Chinese, Math, English;

    static int TotalScore;

    static int TotalStudent;

public:

    Score() {}

    void setScore (int c, int m, int e) {

        Chinese=c; Math=m; English=e; 

        TotalScore+=(c+m+e);

        TotalStudent++;

    }

    int Sum() {

    return Math+Chinese+English;

    }

    void Show() {

       cout<<Chinese<<" "<<Math<<" "<<English<<endl;

    }

    double static getAve() {

       return TotalScore/TotalStudent;

    }

};

int Score::TotalScore=0;

int Score::TotalStudent=0;

int main() {

    int n, op, i, c, m, e;

    cin >> n;

    int id = 1;

    Score sco[11];

while(n--) 

{

        cin >> op;

        if(op == 1) {

            cin >> c >> m >> e;

            sco[id].setScore(c,m,e); id++;  } 

else if(op == 2) {

            cin >> i;

         cout<<sco[i].Sum()<<endl;    } 

else if(op == 3) {

            cin >> i;

            sco[i].Show();    } 

else {

cout<<fixed<<setprecision(2)<<Score::getAve()<<endl;}

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

将爱却晚秋-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值