include stdafx include iostream include conio include string using nam

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "string.h"
using namespace std;
struct Abonent
{
char fio[40];
char address[40];
int phone;
};
int first_num(int num)
{
int res = 0;
while (num)
{
res = num % 10;
num /= 10;
}
return res;
}
class n_abonent
{
private:
Abonent Danye[5];
public:
n_abonent()
{
Abonent a = {"Zorina.A.A","ul.Juzhnaja d.1 kv-1",243543};
Danye [0] = a;
Abonent b = {"Petrov.I.S","ul.Juzhnaja d.2 kv-2",143565};
Danye [1] = b;
Abonent c = {"Ivanov.V.E","ul.Juzhnaja d.3 kv-3",235412};
Danye [2] = c;
}
// в нашем конструкторе будет происходить заполнение 1х 3 пользователей элемента массива, т.е при создани класса будут иметься в массиве 3 сформированные записи
void reg_abonent(int i) // заполняем остальных пользователей
{
Abonent a;
char c;
cout << endl << "Vvedite abonenta " << i+1 << " \n";
cout << " fio: ";
cin.getline(a.fio, 40);
cout << " address: ";
cin.getline(a.address, 40);
cout << " phone: ";
cin >> a.phone;
cin.get(c);
Danye[i]= a;
}
void vivod_abon ()
{
// выводим список абонентов
printf("----------------------------------------------------------------\n");
printf("|%20s|%20s|%20s|\n","fio","address","phone");
printf("----------------------------------------------------------------\n");
for (int i = 0; i < 5; i++)
{
Abonent *tekysh = &Danye[i];
if (strlen(tekysh->fio) == 0)
{ //возвращает в байтах длину строки
continue;
}
printf("|%20s|%20s|%20d|\n", tekysh->fio, tekysh->address, tekysh->phone);
}
printf("----------------------------------------------------------------\n");
}
void svivod_abon()
{
int n = 5;
cout <<"Skorrektirovannyj spisok abonentov" <<endl;
printf("----------------------------------------------------------------\n");
printf("|%20s|%20s|%20s|\n","fio","address","phone");
printf("----------------------------------------------------------------\n");
for (int i = 0; i < n ; i++)
{
if (first_num(Danye[i].phone)==3)
{
for (int j= i; j < n - 1 ; j++)
Danye[j]=Danye[j+1];
i--;n--;
}
}
for (int i = 0; i < n ; i++)
printf("|%20s|%20s|%20d|\n", Danye[i].fio, Danye[i].address, Danye[i].phone);
printf("----------------------------------------------------------------\n");
}
};
int main()
{
n_abonent n_a;
for (int i = 3; i < 5; i++)
{
n_a.reg_abonent(i);
}
n_a.vivod_abon();
n_a.svivod_abon();
_getch();
return 0;
}