Выполните упражнение 4 из главы 8, но при этом замените программный код, приведенный там, на соответствующее объявление класса golf. Используйте конструктор с соответствующими аргументами для назначения начальных значений.
golf.h
#ifndef _GOLF_H_
#define _GOLF_H_
class Golf
{
private:
enum {Len = 40};
char fullname[Len];
int handicap;
public:
Golf();
~Golf();
int setgolf();// функция требует от пользователя сообщить ей имя и гандикап и присваивает элементам g введенные значения - возвращает 1, если введено имя, и 0, если введена пустая строка
void setgolf(const char * name, int hc);// Функция вводит в структуру golf полученное имя и гандикап переданные значения используются как аргументы функции
void hcap (int hc);// функция устанавливает новое значение гандикапа
void showgolf() ;// функция отображает содержимое
};
#endif
golf.cpp
#include <iostream>
#include <cstring>
#include "golf.h"
using namespace std;
Golf::Golf()
{
handicap = 0;
}
Golf::~Golf()
{
}
int Golf::setgolf()
{
cout << "Vvedite imja igroka : ";
cin.getline(fullname, Len);
cout << "Vvedite handicap : ";
cin >> handicap;
cin.get();
if (strlen(fullname) != 0)
return 1;
else return 0;
}
void Golf::setgolf(const char * name, int hc)
{
strcpy(fullname, name);
handicap = hc;
}
void Golf::hcap (int hc)
{
handicap = hc;
}
void Golf::showgolf()
{
cout << "name: " << fullname << " handicap: " << handicap << endl;
}
main.cpp
#include <iostream>
#include <cstring>
#include <cctype>
#include "golf.h"
using namespace std;
const int f = 4;
int main (int argc, char *argv[])
{
Golf players[f];
char c;
int nomer,ihc ;
char chName[40];
//cout << " SNACHALA VVEDITE DANNYE O IGROKAX \n";
for (int i = 0; i<f; i++)
{
cout << "igrok #" << i+1 << "\n";
if (players[i].setgolf() == 0)
break;
};
cout << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n";
cout << "+ vyberite nuzhnoe dejstvie: +\n";
cout << "+ a)izmenit' dannye b)izmenit' tol'ko handicap +\n";
cout << "+ c)posmotret' vse q)quit +\n";
cout << "+ dannye o igrokax +\n";
cout << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n";
while (cin >> c && toupper(c) != 'Q')
{
while (cin.get() != '\n')
continue;
if (!isalpha(c))
{
cout << '\a';
continue;
}
switch (c)
{
case 'A' :
case 'a' : cout << "Izmenit' dannye igroka pod nomerom #: ";
(cin >>; nomer).get();
cout << "name: ";
cin.getline (chName, 40);
cout << "handicap: ";
(cin >>; ihc).get();
players[nomer-1].setgolf(chName, ihc);
break;
case 'B' :
case 'b' : cout << "Izmenit' handicap igroka pod nomerom #: ";
(cin >> nomer).get();
cout << "handicap: ";
(cin >> ihc).get();
players[nomer-1].hcap(ihc);
break;
case 'C' :
case 'c' : for (nomer=0; nomer<f; nomer++)
players[nomer].showgolf ();
break;
default : cout << "vy vveli ne vernyj simvol, povtorite vvod\n";
}
cout << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n";
cout << "+ vyberite nuzhnoe dejstvie: +\n";
cout << "+ a)izmenit' dannye b)izmenit' tol'ko handicap +\n";
cout << "+ c)posmotret' vse q)quit +\n";
cout << "+ dannye o igrokax +\n";
cout << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n";
}
return 0;
}
Комментариев нет:
Отправить комментарий