谁拿了最多奖学金——NOIP 2005 提高组

 输入样例:

4
YaoLin 87 82 Y N 0
ChenRuiyi 88 78 N Y 1
LiXin 92 88 N N 0
ZhangQin 83 87 Y N 1

输出样例:

ChenRuiyi
9000
28700

   

这道题用结构体做对吧

#include <bits/stdc++.h>
using namespace std;
class student{
    public:
        string name;
        int FG_average,  CReview_results;
        char SCadre, Swest;
        int paper, num;
        int money = 0;
};
class __Final__ : public student{ // 如果不知道可以关注博客在“类与结构体6”详细讲了关于继承的知识点
    public:
        void getstudent(string Tname,int TFG_average,int TCReview_results,char TSCadre,char TSwest,int Tpaper, int Tnum){
            name=Tname,FG_average=TFG_average,CReview_results=TCReview_results,SCadre=TSCadre,Swest=TSwest,paper=Tpaper,num=Tnum;
        }
        void getLevel1(__Final__ &Student){
            if(Student.FG_average > 80 && Student.paper >= 1) Student.money += 8000;
        }
        void getLevel2(__Final__ &Student){
            if(Student.FG_average > 85 && Student.CReview_results > 80) Student.money += 4000;
        }
        void getLevel3(__Final__ &Student){
            if(Student.FG_average > 90) Student.money += 2000;
        }
        void getLevel4(__Final__ &Student){
            if(Student.Swest == 'Y' && Student.FG_average > 85) Student.money += 1000;
        }
        void getLevel5(__Final__ &Student){
            if(Student.SCadre == 'Y' && Student.CReview_results > 80) Student.money += 850;
        }
        void get_money(__Final__ &Student){
            getLevel1(Student);
            getLevel2(Student);
            getLevel3(Student);
            getLevel4(Student);
            getLevel5(Student);
        }
        int getMoney(__Final__ &Student) {
            return Student.money;
        } 
        string getName(__Final__ &Student){
            return Student.name;
        }
        bool operator< (const __Final__ &Student)const{
            if(Student.money != money) return Student.money > money;
            else return Student.num < num;
        }
        friend void CPU(); // 如果不知道可以在类与结构体中找一下,有关于友元函数的详细解释
};
void CPU(){
	int n;
    cin >> n;
    vector<__Final__> Student(n);
    for(int i = 0; i < n; i++){
        string Tname;
        int TFG_average,TCReview_results;
        char TSCadre,TSwest;
        int Tpaper,Tnum = i + 1;
        cin >> Tname >> TFG_average >> TCReview_results >> TSCadre >> TSwest >> Tpaper;
        Student[i].getstudent(Tname,TFG_average,TCReview_results,TSCadre,TSwest,Tpaper,Tnum);
        Student[i].get_money(Student[i]);
    }
    sort(Student.begin(),Student.end());
    cout<<Student[n-1].getName(Student[n-1])<<'\n'<<Student[n-1].getMoney(Student[n-1])<<'\n';
    long long ans = 0;
    for(int i = 0; i < n; i++){
        ans += (long long)Student[i].getMoney(Student[i]);
    }
    cout<<ans;
}
int main(){
    CPU();
    return 0;
}

如果觉得这个版本太难了,就看一下下面这个↓

#include <bits/stdc++.h>
using namespace std;
class student{
    private:
        string name;
        int FG_average,  CReview_results;
        char SCadre, Swest;
        int paper, num;
        int money = 0;
    public:
        void getstudent(string Tname,int TFG_average,int TCReview_results,char TSCadre,char TSwest,int Tpaper, int Tnum){
            name=Tname,FG_average=TFG_average,CReview_results=TCReview_results,SCadre=TSCadre,Swest=TSwest,paper=Tpaper,num=Tnum;
        }
        void getLevel1(student &Student){
            if(Student.FG_average > 80 && Student.paper >= 1) Student.money += 8000;
        }
        void getLevel2(student &Student){
            if(Student.FG_average > 85 && Student.CReview_results > 80) Student.money += 4000;
        }
        void getLevel3(student &Student){
            if(Student.FG_average > 90) Student.money += 2000;
        }
        void getLevel4(student &Student){
            if(Student.Swest == 'Y' && Student.FG_average > 85) Student.money += 1000;
        }
        void getLevel5(student &Student){
            if(Student.SCadre == 'Y' && Student.CReview_results > 80) Student.money += 850;
        }
        void get_money(student &Student){
            getLevel1(Student);
            getLevel2(Student);
            getLevel3(Student);
            getLevel4(Student);
            getLevel5(Student);
        }
        int getMoney(student &Student) {
            return Student.money;
        } 
        string getName(student &Student){
            return Student.name;
        }
        bool operator< (const student &Student)const{
            if(Student.money != money) return Student.money > money;
            else return Student.num < num;
        }
};
int main(){
    int n;
    cin >> n;
    vector<student> Student(n);
    for(int i = 0; i < n; i++){
        string Tname;int TFG_average,TCReview_results;char TSCadre,TSwest;int Tpaper,Tnum = i + 1;
        cin >> Tname >> TFG_average >> TCReview_results >> TSCadre >> TSwest >> Tpaper;
        Student[i].getstudent(Tname,TFG_average,TCReview_results,TSCadre,TSwest,Tpaper,Tnum);
        Student[i].get_money(Student[i]);
    }
    sort(Student.begin(),Student.end());
    cout<<Student[n-1].getName(Student[n-1])<<'\n'<<Student[n-1].getMoney(Student[n-1])<<'\n';
    long long ans = 0;
    for(int i = 0; i < n; i++){
        ans += (long long)Student[i].getMoney(Student[i]);
    }
    cout<<ans;
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/389869.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Springboot+vue的大学生智能消费记账系统的设计与实现(有报告)。Javaee项目,springboot vue前后端分离项目

演示视频&#xff1a; Springbootvue的大学生智能消费记账系统的设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的大学生智能消费记账系统的设计与实现&#xff0c;采…

Midjourney绘图欣赏系列(三)

Midjourney介绍 Midjourney 是生成式人工智能的一个很好的例子&#xff0c;它根据文本提示创建图像。它与 Dall-E 和 Stable Diffusion 一起成为最流行的 AI 艺术创作工具之一。与竞争对手不同&#xff0c;Midjourney 是自筹资金且闭源的&#xff0c;因此确切了解其幕后内容尚不…

platformio 提示 fatal error: TimeLib.h: No such file or directory 的解决方案

在platformio编译arduino项目的时候&#xff0c;如果提示fatal error: TimeLib.h: No such file or directory&#xff0c;解决方法有2&#xff1a; 方法1&#xff1a; 在项目的platformio.ini文件中&#xff0c;添加 lib_deps # Using library Id44方法2&#xff1a; 通过…

C++ 模板进阶

C 模板进阶 一.非类型模板参数1.概念2.实例3.注意事项 二.模板的特化1.引出2.函数模板的特化1.语法和使用2.建议 3.类模板的特化1.全特化2.偏特化1.部分特化2.对参数进行进一步的限制 4.匹配顺序 三.模板的分离编译1.什么是分离编译2.模板的分离编译3.解决方法1.显式实例化(不推…

C++中的拷贝构造函数

一、拷贝构造函数的概念 拷贝构造函数用于创建一个与已有对象相同的对象&#xff0c;本质上也是构造函数的重载 拷贝构造函数只有一个类型为 const 类类型引用的形参&#xff0c;当我们要创建一个与已存在对象相同的对象时&#xff0c;由编译器自动调用拷贝构造函数。 clas…

MySQL运行错误:‘mysql‘不是内部或外部命令,也不是可运行程序或批处理文

主要原因是&#xff1a;没有将mysql安装目录下的bin目录&#xff0c;添加到系统变量中 编辑系统环境变量 双击Path即可 下一步 记得每一步点击确定就好啦。 下面验证一下是否成功呢&#xff1f; 输入命令符(V是大写的哦~&#xff09; mysql -V 以上就是成功啦&#xff01…

Flink理论—容错之状态

Flink理论—容错之状态 在 Flink 的框架中&#xff0c;进行有状态的计算是 Flink 最重要的特性之一。所谓的状态&#xff0c;其实指的是 Flink 程序的中间计算结果。Flink 支持了不同类型的状态&#xff0c;并且针对状态的持久化还提供了专门的机制和状态管理器。 Flink 使用…

一周学会Django5 Python Web开发-项目配置settings.py文件-模版配置

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计17条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

OpenAI突然发布首款文生视频模型——Sora;谷歌发布Gemini 1.5,迈向多模态大模型新时代

&#x1f989; AI新闻 &#x1f680; OpenAI突然发布首款文生视频模型——Sora 摘要&#xff1a;OpenAI发布了首个AI视频模型Sora&#xff0c;可以根据文字指令生成神级效果的长视频&#xff0c;引发了广泛关注和震惊。 Sora模型通过深入理解语言和图像&#xff0c;能够创造出…

阿里云香港服务器多少钱一年?288元

阿里云香港服务器2核1G、30M带宽、40GB ESSD系统盘优惠价格24元/月&#xff0c;288元一年&#xff0c;每月流量1024GB&#xff0c;多配置可选&#xff0c;官方优惠活动入口 https://t.aliyun.com/U/bLynLC 阿里云服务器网aliyunfuwuqi.com分享阿里云香港服务器优惠活动、详细配…

前端工程化面试题 | 10.精选前端工程化高频面试题

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【算法设计与分析】搜索旋转排序数组

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;算法分析与设计 ⛺️稳中求进&#xff0c;晒太阳 题目 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff…

Covalent Network(CQT)与卡尔加里大学建立合作,共同推动区块链技术创新

Covalent Network&#xff08;CQT&#xff09;作为领先的 Web3 数据索引器和提供者&#xff0c;宣布已经与卡尔加里大学达成了具备开创性意义的合作&#xff0c;此次合作标志着推动区块链数据研究和可访问性的重要里程碑。卡尔加里大学是首个以验证者的身份加入 Covalent Netwo…

程序全家桶 | 机器学习之心【Python机器学习/深度学习程序全家桶】

理论背景 机器学习&#xff08;Machine Learning&#xff09;是一种人工智能&#xff08;Artificial Intelligence&#xff09;领域的技术和方法&#xff0c;通过使用数据和统计模型&#xff0c;使计算机系统能够自动学习和改进&#xff0c;而无需明确地进行编程。机器学习使计…

RUST入门:如何用vscode调试rust程序

RUST已经流行一阵子了&#xff0c;但是比较系统的IDE介绍还是比较少&#xff0c;这里我简单介绍 一下如何用vscode实现单步调试rust程序&#xff0c;就像我们平时调试c程序一样。 学习资料网站 首先&#xff0c;介绍几个学习rust的好网站&#xff0c; Rust程序设计语言Rust语…

html从零开始8:css3新特性、动画、媒体查询、雪碧图、字体图标【搬代码】

css3新特性 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, …

分布式事务详解

概述 随着互联网的发展,软件系统由原来的单体应用转变为分布式应用。分布式系统把一个单体应用拆分为可独立部署的多个服务,因此需要服务与服务之间远程协作才能完成事务操作。这种分布式系统下不同服务之间通过远程协作完成的事务称之为分布式事务,例如用户注册送积分事务…

一、部署Oracle

部署Oracle 一、Docker部署1.Oracle11g1.1 测试环境1.1.1 拉取镜像1.1.2 启动容器1.1.3 配置容器环境变量1.1.4 修改sys、system用户密码1.1.5 创建表空间1.1.6 创建用户并授权1.1.5 使用DBeaver测试连接 二、安装包部署 一、Docker部署 1.Oracle11g 1.1 测试环境 当前只能用…

MATLAB知识点:perms函数(★★★☆☆)用来返回向量v中各元素所有可能的排列情况

讲解视频&#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇&#xff08;数学建模清风主讲&#xff0c;适合零基础同学观看&#xff09;_哔哩哔哩_bilibili 节选自第3章&#xff1a;课后习题讲解中拓展的函数 在讲解第三…

适用于电脑和手机的照片恢复工具指南

这是适用于 Android、iPhone、Mac 和 Windows 的最佳照片恢复应用程序的指南。 如果您不小心删除了一堆珍贵的照片&#xff0c;请不要担心&#xff01; 恢复丢失的照片和数据实际上比您想象的要容易得多。 通过使用照片恢复应用程序&#xff0c;您可以“解锁”存储卡或硬盘驱…