填空:爱心汇聚
时间: 1ms 内存:128M
描述:
为支援灾区重建,同学们作为志愿者,分头到各个地方收集募捐善款。在下面给出的程序中,定义了志愿者类,在main函数中根据输入志愿者人数及相关信息,将输出捐款笔数,以及总的捐款金额。
在下面的程序段基础上完成设计,只提交begin到end部分的代码
#include <iostream>
#include <string>
using namespace std;
class Volunteer
{
private:
string name; //志愿者姓名
int number; //志愿者收集捐款的笔数
int balance; //志愿者收集到的捐款金额
static int count; //静态成员,记录总的捐款笔数
static int sum; //静态成员,记录总的捐款金额
public:
Volunteer(string,int,int); //构造函数
static int get_count(); //静态成员函数,获取count的值
static int get_sum(); //静态成员函数,获取sum的值
};//将程序需要的成份写下来,只提交begin到end部分的代码
//******************** begin ********************
________(1)_______;
int Volunteer::sum=0;
________(2)___________
{
name=nam;
number=num;
balance=bal;
count+=num;
______(3)_______;
}
int Volunteer::get_count()
{
______(4)_______;
}
int Volunteer::get_sum()
{
______(5)______;
}
//********************* end ********************
int main( )
{
string name;
int num;
int balance;
int n;
cin>>n; //输入志愿者人数
while(n--)
{
cin>>name>>num>>balance;
new Volunteer(name,num,balance);
}
cout<<"count: "<<Volunteer::get_count()<<endl;
cout<<"sum: "<<Volunteer::get_sum()<<endl;
return 0;
}
输入:
志愿者人数
志愿者及收集募捐善款信息(志愿者姓名 志愿者收集到的捐款笔数 收集到的捐款金额)
输出:
所有志愿者收集到的捐款总笔数
所有志愿者收集到的捐款总金额
示例输入:
4
zhao 21 98
qian 18 60
sun 22 87
li 17 67
示例输出:
count: 78
sum: 312
提示:
参考答案(内存最优[1092]):
#include<stdio.h>
int main()
{
int a,b,m,n,i,yi=0,ge=0;
char num[1000];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",num);
scanf("%d",&a);
scanf("%d",&b);
yi=yi+a;
ge=ge+b;
}
printf("count: %d\n",yi);
printf("sum: %d\n",ge);
}
参考答案(时间最优[0]):
#include <iostream>
#include <string>
using namespace std;
class Volunteer
{
private:
string name; //志愿者姓名
int number; //志愿者收集捐款的笔数
int balance; //志愿者收集到的捐款金额
static int count; //静态成员,记录总的捐款笔数
static int sum; //静态成员,记录总的捐款金额
public:
Volunteer(string,int,int); //构造函数
static int get_count(); //静态成员函数,获取count的值
static int get_sum(); //静态成员函数,获取sum的值
};int Volunteer::count=0; //________(1)_______;
int Volunteer::sum=0;
Volunteer::Volunteer(string nam, int num, int bal) //________(2)___________
{
name=nam;
number=num;
balance=bal;
count+=num;
sum+=bal; //______(3)_______;
}
int Volunteer::get_count()
{
return count; //______(4)_______;
}
int Volunteer::get_sum()
{
return sum; //______(5)______;
}
int main( )
{
string name;
int num;
int balance;
int n;
cin>>n; //输入志愿者人数
while(n--)
{
cin>>name>>num>>balance;
new Volunteer(name,num,balance);
}
cout<<"count: "<<Volunteer::get_count()<<endl;
cout<<"sum: "<<Volunteer::get_sum()<<endl;
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。