首页 > 编程语言 >C++每日打卡

C++每日打卡

时间:2023-04-26 21:37:43浏览次数:36  
标签:name money 每日 float C++ Donator 打卡 dt string

一个捐款人类Donator及一个相关函数getMaxName( ),Donator类中包含捐款人的姓名及其捐款额。输出一批捐款人来到前后的捐款总金额,以及本批次捐款人中捐款最高者的姓名。

 

#include <iostream>
using namespace std;

class Donator{
private:
string name;
float money; //单位:元
public:
void setName(string _name);
void setMoney(float _money);
string getName(){return name;}
float getMoney(){return money;}

static float totalMoney;
friend void read(Donator dt[],int n);
friend string getMaxName(Donator dt[],int n);
static void printTotal();
};//类

//成员函数,数据成员定义
float Donator::totalMoney=0;
void Donator::printTotal()
{
cout<<"total:"<<totalMoney<<endl;
}
void Donator::setName(string _name)
{
name=_name;
}
void Donator::setMoney(float _money)
{
money=_money;
totalMoney+=_money;
}
string getMaxName(Donator dt[],int n)
{
int i;
float max=0;
string maxname;
for(i=0;i<n;i++)
{
if(max<=dt[i].getMoney())
{
max=dt[i].getMoney();
maxname=dt[i].getName();
}
}
return maxname;
}

//读取n个捐款人的姓名和捐款额
void read(Donator dt[],int n){
string name;
float money;
for(int i=0;i<n;i++){
cin>>name>>money;
dt[i].setName(name);
dt[i].setMoney(money);
}
}

int main(){
int n;
cin>>n; ////输入本批次将参与的捐款人数
cin>>Donator::totalMoney; //输入目前已有的捐款总额
Donator::printTotal();
Donator d[n];
read(d,n);
Donator::printTotal();
cout<<getMaxName(d,n)<<endl;//输出本批次中捐款最高者姓名
return 0;
}

标签:name,money,每日,float,C++,Donator,打卡,dt,string
From: https://www.cnblogs.com/zh-ang-zhang/p/17357396.html

相关文章

  • 2023.4.26编程一小时打卡
    一、问题描述:有一元二次方程ax2+bx+c=0,其一般解为x1,2=(-b±b2-4ac)/2a,但若a=0或b2-4ac<0时,用此公式出错。编程序,从键盘输入a,b,c的值,求x1和x2。如果a=0或b2-4ac<0,输出出错信息。二、解题思路:首先,将定义a,b,c为浮点数,然后输入a,b,c,去判断二次项系数的大小是否符合,再去判断b*2......
  • 打卡2
    #include<iostream>usingnamespacestd;intmain(){inta,i,b,c;for(a=1;a<5;a++){for(b=1;b<5;b++){for(c=1;c<5;c++){if(a!=b&&a!=c&&b!=c){cout<<"a:"<<a<<"b:"<<b<<"c:"&l......
  • 每日打卡一维数组和二维数组传参的几种方式
    //一组数组传参//#include<stdio.h> //voidInputArray(intn[],inta);//voidOutputArray(intn[],inta);//intmain()//{// intm[3];// InputArray(m,3);// OutputArray(m,3);// return0;//}//voidInputArray(intm[],intn)//{// for(inti=0;i<n;i++)......
  • 4.26每日总结
       今天学习qtpython的内容      为了得到生成的py文件,新建文本,输入pyuic5-oHelloForm.pyHelloForm.ui,这里.ui文件是源文件,py文件是生成的python文件,保存为.bat批处理文件,双击运行,就会生成了python代码。将我们刚刚画好的GUI封装成了一个类,当我们实现这个类......
  • 每日记录
    今天学习了androidstudio的基础 1.认识目录以FirstActivity为例子,我们需要掌握的文件有:manifestjavadrawablelayoutvalues①manifest文件夹里面只有一个AndroidManifest.xml文件,在这个文件里,我们是对整个app进行一些设置,例如app的logo,app一进去的启动页面,app的名字... ......
  • 建民打卡日记4.26
    一、问题描述猜数字一群人坐在一起,每人猜一个100以内的数,谁的数字最接近大家平均数的一半就赢。本题就要求你找出其中的赢家。二、流程设计定义people结构体,包含姓名和报数;录入的同时计算总数;计算平均数/2,输出其整数部分;遍历寻找绝对值最小的人,输出名字。三、代码实现......
  • PTA1006 换个格式输出整数(C++)
    一、问题描述:让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过3位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有2个“百”、3个“十”、以及个位的4。输入格式:每个测试输入包含1个测......
  • 打卡11
    三色球问题#include<stdio.h>intmain(){ intm,n,number=0; printf("红球白球黑球\n"); printf("......................\n"); for(m=0;m<=3;m++){ for(n=0;n<=3;n++){ if((8-m-n)<=6){ printf("%2d:......
  • c++打卡练习(17)
    爱因斯坦数学题:一条长台阶,若每步2阶台阶,则最后剩1阶,若每步3阶台阶,则最后剩2阶,若每步5阶台阶,则最后剩4阶,若每步6阶台阶,则最后剩5阶,若每步7阶台阶,则最后剩6阶,问在1到N的范围内有多少个这样的阶梯数,他们分别是多少?流程图:伪代码:源代码:#include<iostream>usingnamespacestd;int......
  • 每日打卡一小时(第十七天)
    一.问题描述pta多态实验:1.定义一个整数加法器类Adder,对其重载运算符“+”、“++”,main(void)函数完成对其的测试。#include<iostream>usingnamespacestd;/*请在这里填写答案*///主函数intmain(void){intx;Addera1,a2(a1);cin>>x;(a1++).show......