注册 登录
编程论坛 C++教室

编程小白,请问各位大佬下面这个用c++怎么编,谢谢

a1810439 发布于 2018-11-30 17:00, 1198 次点击

已知某班有N名学生,每名学生有学号,姓名和3门课程成绩等信息,统计有不及格课程的学生的人数以及这些学生的信息
1 回复
#2
rohalloway2018-11-30 18:13
你的程序要求写的不够明确,下面是一种实现,提供给你一个思路
你根据自己需求改进

程序代码:

#include <iostream>
#include <string>
#include <vector>

using namespace std;

//用于存储学生信息的结构体
struct Student
{
    int  sNumber;
    string sName;
    int sProfessionalA;
    int sProfessionalB;
    int sProfessionalC;
};

//此 >> 的重载实现从控制台直接将数据cin到结构体内
istream & operator >> (istream& in, Student &s){
     in
         >> s.sNumber
         >> s.sName
         >> s.sProfessionalA
         >> s.sProfessionalB
         >> s.sProfessionalC;

    return in;
}

int main()
{
    //使用vector存储所有学生的结构体,方便统计
    vector<Student> v;

    //声明结构体变量sd用于临时存放控制台传入的学生信息
    Student sd;

    int n = 0;

    cout << "输入学生信息的数量:" << endl;
    cin >> n;

    //也可以使用比如:
   
//cin >> sd.sNumber << sd.sName << sd.sProfessionalA... 的形式
    cout << "输入学生信息:" << endl;
    while (cin >> sd)
    {
        v.push_back(sd);
        n--;

        //信息读完后结束while循环
        if (n == 0)
            break;
    }

    int resultA = 0, resultB = 0, resultC = 0;

    //遍历不及格的人数
    for (Student c : v)
    {
        if (c.sProfessionalA < 60)
            resultA++;

        if (c.sProfessionalB < 60)
            resultB++;

        if (c.sProfessionalC < 60)
            resultC++;
    }

    cout
        << "ProfessionalA 不及格人数为:" << resultA << endl
        << "ProfessionalB 不及格人数为:" << resultB << endl
        << "ProfessionalC 不及格人数为:" << resultC << endl;

    system("pause");
    return 0;
}


[此贴子已经被作者于2018-11-30 19:05编辑过]

1