Доброго времени суток. Дали мне код и говорят разберись
Задача заключается в описании что к чему и если есть ошибки указать и по возможности исправить
Зарание благодарен за Ваше внимание и помощь
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
#include <fstream.h>
#include <conio.h>
#include <iomanip.h>
enum dop_sr
{ faks_modem = 0,
faks = 1,
modem = 2,
otsut = 3 };
class abonenti
{
public:
abonenti () {
memset(this -> familiya, 0, 10);
this -> oplata = 0;
this -> nomer = 0;
}
char *viv_fam()
{ return this -> familiya; }
void vv_fam(char familiya[10])
{ strcpy(this -> familiya, familiya); }
float viv_nomer()
{ return this -> nomer; }
void vv_nomer(int nom)
{ this -> nomer = nom; }
int viv_oplata()
{ return this -> oplata; }
void vv_oplata(int oplata)
{ this -> oplata = oplata; }
private:
char familiya[10];
float oplata;
int nomer;
int Vvod();
};
class ATS : private abonenti
{
private:
enum dop_sr dopolnitelno;
public:
/*obrabotka dopolnitelnih ustroistv*/
void Vvod_dop(char dopolnitelno[100] = "")
{
char temp[100];
if (!strcmp(dopolnitelno, ""))
{
cin >> temp;
}
else
{
strcpy(temp, dopolnitelno);
}
if (!strcmp(temp, "faks_modem"))
{
this -> dopolnitelno = faks_modem;
}
else
{
if (!strcmp(temp, "faks"))
{
this -> dopolnitelno = faks;
}
else
{
if (!strcmp(temp, "modem"))
{
this -> dopolnitelno = modem;
}
else
{
if (!strcmp(temp, "otsut"))
{
this ->dopolnitelno = otsut;
}
else
{
this -> dopolnitelno = faks_modem;
}
}
}
}
}
/*funkciya vivod dopolnitelnih ustroistv*/
void viv_dop()
{
if (this -> dopolnitelno == faks_modem) { cout << "faks_modem"; }
if (this -> dopolnitelno == faks) { cout << "faks"; }
if (this -> dopolnitelno == modem) { cout << "modem"; }
if (this -> dopolnitelno == otsut) { cout << "otsut"; }
}
/*funkciya vvod dannih*/
void Vvod()
{
char familiya[10];
int nom;
int oplata;
char dopolnitelno[100];
cout << "Vvedite familiyu abonenta: ";
cin >> familiya; vv_fam(familiya);
cout << "Vvedite nomer abonenta: ";
cin >> nom; vv_nomer(nom);
cout << "Vvedite razmer oplati: ";
cin >> oplata; vv_oplata(oplata);
cout << "Vvedite dopolnitelnie sredstva:\n";
cout << "1-faks-modem, 2-faks, 3-modem, 4-otsutstvuet:";
cin >> dopolnitelno;Vvod_dop(dopolnitelno);
}
void Prosmotr(int id) {
cout << "\r\nі" << setw(4) << id+1;
cout << "і" << setw(10) << viv_fam();
cout << "і" << setw(13) << viv_nomer();
cout << "і" << setw(6) << viv_oplata();
cout << "і" << setw(13); viv_dop(); cout << "і";
}
void Sohranenie(char filename[255])
{
ofstream myfile;
myfile.open(filename, ios::ate);
myfile << this -> viv_fam() << ";"
<< this -> viv_nomer() << ";"
<< this -> viv_oplata() << ";"
<< this -> dopolnitelno << endl;
myfile.close();
}
void Zapis_mas(char line[255])
{
char temp[10] = "";
int familiya = 0;
int oplata = 0;
int nom = 0;
int j = 0;
for (int i = 0; i < 255; i++)
{
if (line[i] != ';' && line[i] != '\x0')
{
temp[j] = line[i]; j++;
}
else
{
if (familiya == 0) {
vv_fam(temp);
familiya++;
memset(temp, 0, 10);
j = 0;
}
else
{
if (nom == 0) {
vv_nomer(atoi(temp));
nom++;
memset(temp, 0, 10);
j = 0;
}
else
{
if (oplata == 0) {
vv_oplata(atoi(temp));
oplata++;
memset(temp, 0, 10);
j = 0;
}
else
{
switch(atoi(temp)) {
case 0: Vvod_dop("faks_modem"); break;
case 1: Vvod_dop("faks"); break;
case 2: Vvod_dop("modem"); break;
case 3: Vvod_dop("otsut"); break;
}
break;
}
}
}
}//if
}//for
}
int p_fam(char familiya[10]) {
if (!strcmp(familiya, viv_fam()))
{
return 1;
}
return 0;
}