Задан заголовочный файл:
const int Len = 40;
struct golf {
char fullname[Len];
int handicap;
};
// функция требует от пользователя сообщить ей имя и гандикап и присваивает элементам g
// введенные значения - возвращает 1, если введено имя, и 0, если введена пустая строка
int setgolf(golf & g) ;
// Функция вводит в структуру golf полученное имя и гандикап переданные
// значения используются как аргументы функции
void setgolf(golf & g, const char * name, int hc) ;
// функция устанавливает новое значение гандикапа
void handicap (golf & g, int hc) ;
// функция отображает содержимое структуры golf
void showgolf(const golf & g) ;
Скомпилируйте несколько программ на базе этого заголовочного файла. Один файл с именем golf.cpp должен обеспечить подходящие определения функций, которые будут соответствовать прототипам, содержащимся в заголовке файла. Второй файл должен содержать main() и обеспечивать реализацию всех свойств прототипированных функций. Например, цикл должен потребовать ввода массива структур golf и прекращать ввод, когда массив будет заполнен, либо когда вместо имени игрока в гольф пользователь вводит пустую строку. Чтобы получить доступ к структуре golf, функция main() должна использовать только прототипированные функции. -----------------------------------------------------------------------------------------------------
golf.h
// golf.h
const int Len = 40;
struct golf {
char fullname[Len];
int handicap;
};
int setgolf(golf & g) ;
void setgolf(golf & g, const char * name, int hc) ;
void handicap (golf & g, int hc) ;
void showgolf(const golf & g) ;
up.8-4-1.cpp
//up.8-4-1.cpp
#include <iostream.h>
#include <cstring>
#include "golf.h"
int setgolf(golf & g)
{
cout << "Vvedite imja igroka : ";
cin.getline(g.fullname, Len);
cout << "Vvedite handicap : ";
cin >> g.handicap;
cin.get();
if (strlen(g.fullname) != 0)
return 1;
else return 0;
}
void setgolf(golf & g, const char * name, int hc)
{
strcpy(g.fullname, name);
g.handicap = hc;
}
void handicap (golf & g, int hc)
{
g.handicap = hc;
}
void showgolf(const golf & g)
{
cout << "name: " << g.fullname << " handicap: " << g.handicap << endl;
}
up.8-4-2.cpp
//up.8-4-2
#include <iostream.h>
#include <cstring>
#include "golf.h"
const int f = 4;
void main ()
{
int nomer,ihc ;
char chName[Len], ch[5];
golf players[f];
cout << " SNACHALA VVEDITE DANNYE O IGROKAX " << endl;
for (int i = 0; i < f; i++)
{
cout << "igrok #" << i+1 << endl;
if (setgolf(players[i])== 0)
break;
}
cout << "\n\nvyberite 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\n";
while (cin.getline(ch, 5))
{
if (ch[0]== 'q') // если q то выход
{
cout <<"Bye!\n";
break;
}
if (strlen(ch) == 1) // проверка ввода лишь одного символа
switch (ch[0])
{
case 'a' : cout << "Izmenit' dannye igroka pod nomerom #: ";
(cin >> nomer).get();
cout << "name: ";
cin.getline (chName, Len);
cout << "handicap: ";
(cin >> ihc).get();
setgolf(players[nomer-1], chName, ihc);
break;
case 'b' : cout << "Izmenit' handicap igroka pod nomerom #: ";
(cin >> nomer).get();
cout << "handicap: ";
(cin >> ihc).get();
handicap(players[nomer-1], ihc);
break;
case 'c' : for (nomer=0; nomer<f; nomer++)
showgolf(players[nomer]);
break;
default : cout << "vy vveli ne vernyj simvol, povtorite vvod\n";
}
else cout << "vy vveli neskolko simvolov, povtorite vvod\n";
}
}
Комментариев нет:
Отправить комментарий