- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
case 2: //редактирование таблицы
do
{
for (i = 0; i < size; i++) //вывод таблицы, чтобы видно было, что нужно изменять
{
for (j = 0; j < 4; j++)
{
for (k = 0; k < 4; k++)
{
adres[k] = ((maska << (24 - 8 * k)) & bin_adres[i][j]) >> (24 - 8 * k);
}
cout << adres [0] << "." << adres [1] << "." << adres [2] << "." << adres [3] << "\t";
}
cout << endl;
}
cto ("Наберите необходимый адрес назначения" , s);
cout << s << endl;
for (j = 0; j < 4; j++)
{
cin >> adres [j];
if (adres[j] < 0 || adres[i] > 255) //проверка каждой введенной цифры на соответствие интервалу
{
cto ("Вы ввели неверное число. Введите число в диапазонe 0-255" , s);
cout << s << endl;
j--;
}
else
crv = (adres[0] << 24) + (adres[1] << 16) + (adres[2] << 8) + adres[3];
}
for (i = 0; i < size; i++) //перебор по строкам всего массива
{
if (crv == bin_adres[i][0]) //сравниваем первый элемент каждой строки, с введенным значением
{
temp = i; //получаем номер строки, которую необходимо редактировать
break;
}
}
cto ("Что необходимо изменить?\n Адрес назначения (нажмите 1)\n Адрес источника (нажмите 2)\n Шлюз(Нажмите 3)\n Маску(нажмите 4)\n", s);
cout << s << endl;
number = 0;
cin >> number; //получаем номер столбца для изменения
number--; //для правильного определения индекса элемента в массиве
cto ("Введите элемент", s);
cout << s << endl;
for (i = 0; i < 4; i++)
{
cin >> adres[i];
if (adres[i] < 0 || adres[i] > 255)
{
cto ("Вы выпали из диапазона 0-255. Введите нормальное число", s);
cout << s << endl;
i--;
}
}
bin_adres[temp][number] = (adres[0] << 24) + (adres[1] << 16) + (adres[2] << 8) + adres[3]; //записываем данный элемент в заданную строку
cto ("Для выхода из редактирования нажмите 1 (продолжить - любая цифра)", s);
cout << s << endl;
cin >> number;
}
while (number != 1);
system("cls"); //очиста окна командной строки
break;