您的位置:首页 > 编程语言 > C语言/C++

C++ Primer Plus第六版编程练习10.3解答

2015-04-07 23:46 369 查看
Golf.h

#ifndef GOLF_H_INCLUDED
#define GOLF_H_INCLUDED

class Golf
{
private:
static const int Len=40;
char fullname[Len];
int handicap;
public:
Golf(char * fn="no name",int hc=0);
~Golf() {};
int setGolf();
void showGolf() const;
void resetHandicap(int hc=0);
char * returnFullname();
};

#endif // GOLF_H_INCLUDED


Golf.cpp
#include "Golf.h"
#include <iostream>
#include <cstring> //for strcmp, strcpy

Golf::Golf(char * fn,int hc)
{
strcpy(fullname,fn);
handicap=hc;
}

int Golf::setGolf()
{
std::cout<<"Please enter fullname and handicap:\n";
char fn[Len];
int hc;
std::cin.getline(fn,Len);
if(strcmp(fn,"")==0) //当输入名字为空则结束
return 0;
std::cin>>hc;
std::cin.get();
*this=Golf(fn,hc); //调用构造函数来创建一个临时对象,再把值赋给调用对象
return 1;
}

void Golf::showGolf() const
{
std::cout<<"fullname: "<<fullname<<std::endl;
std::cout<<"handicap: "<<handicap<<std::endl;
std::cout<<std::endl;
}

void Golf::resetHandicap(int hc)
{
handicap=hc;
}

char * Golf::returnFullname()
{
return fullname;
}


main.cpp
#include "Golf.h"
#include <iostream>
#include <cstring>

const int ArSize=4;

int main()
{
using namespace std;

Golf ann("Ann Birdfree",24);
ann.showGolf();
ann.resetHandicap(355);
ann.showGolf();

Golf team[ArSize];
int i=0;
while(i<ArSize && team[i].setGolf())
i++;

//输出team数组的内容
cout<<endl;
for(i=0; i<ArSize && strcmp(team[i].returnFullname(),"no name")!=0; i++)
team[i].showGolf();

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: