标题:编程小白,请问各位大佬下面这个用c++怎么编,谢谢
只看楼主
a1810439
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2018-11-30
结帖率:100%
已结贴  问题点数:20 回复次数:1 
编程小白,请问各位大佬下面这个用c++怎么编,谢谢

已知某班有N名学生,每名学生有学号,姓名和3门课程成绩等信息,统计有不及格课程的学生的人数以及这些学生的信息
搜索更多相关主题的帖子: 编程 c++ 学生 课程 信息 
2018-11-30 17:00
rohalloway
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:97
专家分:405
注 册:2018-9-28
得分:20 
你的程序要求写的不够明确,下面是一种实现,提供给你一个思路
你根据自己需求改进

程序代码:
#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编辑过]

2018-11-30 18:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-491698-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.228830 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved