1080. MOOC期终成绩 (25)

该程序实现了一个学生成绩管理系统,能够录入学生的高考预估分、数学和外语成绩,并根据一定规则筛选和排序输出合格的学生名单。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <bits/stdc++.h>
using namespace std;
struct Score
{
    string name;
    int gp,gm,gf,ga;
    Score(string nm="",int p=-1,int m=-1,int f=-1,int a=0):name(nm),gp(p),gm(m),gf(f),ga(a){}
};
map<string,Score> mp;
vector<Score> v;
bool cmp(const Score &a,const Score &b)
{
    return a.ga==b.ga?a.name<b.name:a.ga>b.ga;
}
int main()
{
    int p,m,n;
    string str;
    int grade;
    cin>>p>>m>>n;
    for(int i=0;i<p;++i)
    {
        cin>>str>>grade;
        mp[str]=Score(str,grade,-1,-1,0);
    }
    for(int i=0;i<m;++i)
    {
        cin>>str>>grade;
        if(mp.count(str))
            mp[str].gm=grade;
        else
            mp[str]=Score(str,-1,grade,-1,0);
    }
    for(int i=0;i<n;++i)
    {
        cin>>str>>grade;
        if(mp.count(str))
            mp[str].gf=grade;
        else
            mp[str]=Score(str,-1,-1,grade,0);
    }
    for(auto &w:mp)
    {
        auto &x=w.second;
        if(x.gp<200)continue;
        x.ga=(x.gm>x.gf)?int(x.gm*0.4+x.gf*0.6+0.5):x.gf;
        if(x.ga>=60)
            v.push_back(x);
    }
    sort(v.begin(),v.end(),cmp);
    for(auto &x:v)
        cout<<x.name<<" "<<x.gp<<" "<<x.gm<<" "<<x.gf<<" "<<x.ga<<endl;
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值