6-1 기부금 총량 계산(10점)

13316 단어
//편집자 주: 시험 문제의 판권은 판권자에게 귀속되고 답안 코드의 판권은 편집자에게 귀속되므로 몰래 도용하지 마십시오.이 코드는 참고로 제공될 뿐이니 독자 여러분의 아낌없는 가르침을 바랍니다.
여기에는 기부자인 Donator와 관련된 함수 getMaxName () 을 설계해야 합니다. Donator 클래스에는 기부자의 이름과 기부액이 포함되어 있으며, 일부 코드는 다음과 같습니다.
class Donator{
	private:
		string name; //     
		float money; //    ,  : 	    
	public:
		void setName(string _name);
		void setMoney(float _money);
		string getName(){return name;}
		float getMoney(){return money;}
		

제목에 따라 코드를 완전하게 보충하여 기부자들이 온 전후의 기부금 총 금액과 이번 기부자 중 기부금이 가장 많은 사람의 이름을 출력하여 기부자 수가 1명보다 적지 않도록 보증하십시오.
심판 테스트 프로그램의 예:
#include 
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;}
		
/*             */

//  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;	 
} 

예시: 첫 번째 행위의 기부자 수와 현재의 기부금 총액을 입력하고 두 번째 줄은 모든 행위의 기부자의 이름과 개인 기부금 금액을 시작한다.
3 28.5
Xiaoyu 12
Mike 81.5
Joey  50

수출 사례: 이번 기부자의 도착 전후 기부 총액과 이번 기부 금액 중 기부가 가장 높은 사람의 성명을 출력한다.
total:28.5
total:172
Mike

응답 코드
friend string getMaxName(Donator *dt,int n);
    friend  void read(Donator dt[],int n);
    static float totalMoney;
    static void printTotal(){cout<<"total:"<<totalMoney<<endl;}
};
float Donator::totalMoney=0;
void Donator::setName(string _name)
{
    name=_name;
}

void Donator::setMoney(float _money)
{
    money=_money;
    totalMoney+=_money;
}

string getMaxName(Donator *dt,int n)
{
    float max=0;
    Donator *Max=dt;
    for(int i=0;i<n;i++,dt++)
    {
        if(max<dt->getMoney())
        {
            max=dt->getMoney();
            Max=dt;
        }
    }
    return Max->getName();
}

좋은 웹페이지 즐겨찾기