am gt;
namespace std; namespace Kurs;
//конструткор: TV () {= 0;=0;
};
//деструктор: ~ TV () {
};
//функція оплатиint TV: pay (char * filename, int id_pay, int balance_pay, string name_pay)
{int flag=0; 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; (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 ;;
} flag;
};
5.2 Опис структур даних і функцій
Нижче представлені опису функцій-членів класу TV.
1) Метод TV: TV (ii) є конструктором класу TV. У таблиці 7 представлені структури даних, використовувані в даному методі.
Таблиця 7 - Структури даних, використовувані в методі TV
ІмяТіпПредназначеніеЛокальние змінні id intНомер счетаbalanceintБаланс
2) Метод unsigned int TV: pay (char * filename, int id_pay, int balance_pay, string name_pay) призначений для оплати послуг телебачення. У таблиці 8 представлені структури даних, використовувані в методі.
Таблиця 8 - Структури даних, використовувані в методі pay
ІмяТіпПредназначеніеФормальние змінні filename * charФайловая переменнаяid_payintНомер оплатиbalance_payintСумма оплатиЛокальние переменниеflagunsigned intПеременная виникнення ошібкіstrstringВспомогательная рядок для перезапису файлаid1intВспомогательная переменнаяbalance1intВспомогательная переменнаяtempintПеременная перевірки
5.3 Інструкція програмісту
Даний клас є спадкоємцем абстрактного базового класу System_Term. Це дозволило побудувати опис цього класу на основі існуючого абстрактного базового класу. Щоб клас - спадкоємець не став абстрактним, необхідно було перевантажити чисту віртуальну функцію базового класу unsigned int TV: pay (char * filename, int id_pay, int balance_pay, string name_pay), яка в даному випадку призначена для оплати послуг телебачення. Тип успадкування в даному випадку public, це дозволяє класу-нащадку TV мати доступ до полів базового класу System_Term. Так як похідні класи мають спільні поля і функції (наприклад, поле «id», «balance»), то ці члени класу описані в базовому класі.
6. Структура класу mobile
.1 Формальний опис класу
Даний клас є спадкоємцем абстрактного базового класу System_Term.
Нижче представлений код класу mobile з заголовного файлу mobile.h., який є класом - спадкоємцем базового класу даної програми.
# define _CRT_SECURE_NO_WARNINGS
# include «System.h»
# pragma once
mobile: public System_Term
{:( void);
~ mobile (); unsigned int pay (char * filename, int id_pay, int balance_pay, string name_pay);
};
Нижче представлена ??реалізація методів класу mobile з файлу mobilem.cpp. Даний метод є перевантаженою віртуальної функцією базового класу.
# include «stdafx.h»
# include «mobile.h»
# include «Form1.h»
# include lt; string gt;
# include lt; iostream gt;
# include lt; fstream gt;
namespace std; namespace Kurs;
//конструктор класу: mobile (void) {= 0;=0;=«»;...