"> # include lt; string gt;
# include lt; iostream gt;
# include lt; fstream gt;
using namespace std; namespace Kurs;
//конструктор: Internet () {= 0;=0;
};
//деструктор: ~ Internet () {
};
//функція оплатиint Internet: pay (char * filename, int id_pay, int balance_pay, string name_pay)
{int flag; str=»»; temp=0; id2=- 1; {: ifstream file (filename, std: ios: app); (temp!=1) { gt; gt ; id; gt; gt; balance; (id == id_pay)
{= 1; (id); (balance); (balance gt;=balance_pay)
{= balance - balance_pay; {: ifstream file2 (filename, std: ios: app); id1=0; balance1=0; (! file2.eof ())
{ gt; gt; id1; (id1 == id_pay)
{ gt; gt; balance1;=balance;
} gt; gt; balance1;
if (id1!=id2)=str + std: to_string (id1) + »« + std: to_string (balance1) + »»;=id1;
}. close ();
} (...) {= 200 ;;
}: ofstream in (filename, ios_base: trunc) ;. close (); {: ofstream fileout2 (filename, std: ios: app) ;. write (str.c_str (), str. size ()) ;. close () ;. close ();
} (...) {= 200 ;;
}=1;
}
{= 300;
}
}
{= 1;=900;
}
}
} (...) {= 200 ;;
}
return flag;
};
.2 Опис структур даних і функцій
Нижче представлені опису функцій-членів класу Internet.
1) Метод Internet: Internet () є конструктором класу Internet. У таблиці 5 представлені структури даних, використовувані в даному методі.
Таблиця 5 - Структури даних, використовувані в методі Internet
ІмяТіпПредназначеніеЛокальние змінні id intНомер счетаbalanceintБаланс
2) Метод unsigned int Internet: pay (char * filename, int id_pay, int balance_pay, string name_pay) призначений для оплати послуг інтернету. У таблиці 6 представлені структури даних, використовувані в методі.
Таблиця 6 - Структури даних, використовувані в методі pay
ІмяТіпПредназначеніеФормальние змінні filename * charФайловая переменнаяid_payintНомер оплатиbalance_payintСумма оплатиЛокальние переменниеflagunsigned intПеременная виникнення ошібкіstrstringВспомогательная рядок для перезапису файлаid1intВспомогательная переменнаяbalance1intВспомогательная переменнаяtempintПеременная перевірки
4.3 Інструкція програмісту
Даний клас є спадкоємцем абстрактного базового класу System_Term. Це дозволило побудувати опис цього класу на основі існуючого абстрактного базового класу. Щоб клас - спадкоємець не став абстрактним, необхідно було перевантажити чисту віртуальну функцію базового класу unsigned int Internet: pay (char * filename, int id_pay, int balance_pay, string name_pay), яка в даному випадку призначена для оплати послуг інтернету. Тип успадкування в даному випадку public, це дозволяє класу-нащадку Internet мати доступ до полів базового класу System_Term. Так як похідні класи мають спільні поля і функції (наприклад, поле «id», «balance»), то ці члени класу описані в базовому класі.
5. Структура класу TV
.1 Формальний опис класу
Нижче представлений код класу TV з заголовного файлу tv.h., які класом - спадкоємцем базового класу даної програми.
# define _CRT_SECURE_NO_WARNINGS
# include «System.h»
# pragma once
TV: public System_Term
{:( void);
~ TV (); unsigned int pay (char * filename, int id_pay, int balance_pay, string name_pay);
};
Нижче представлена ??реалізація методів класу TV з файлу tv.cpp. Даний метод є перевантаженою віртуальної функцією базового класу.
# include «stdafx.h»
# include «tv.h»
# include «Form1.h»
# include lt; string gt;
# include lt; iostream gt;
# include lt; fstre...