Файловий введення-виведення з використанням потоків
Бібліотека потокового введення-виведення #include lt; fstream gt;
Зв'язок файлу з потоком виводаімя логічного файлу;
Зв'язок файлу з потоком вводаімя логічного файлу;
Відкриття файлу
ім'я логічного файла.open (ім'я фізичної файлу);
Закриття файлу
ім'я логічного файла.close ();
2. Обгрунтування вибраних методів і алгоритмів
При створенні програми використовувалася робота з файлами засобами C з неформатований введенням-виводом, тобто читання і запис даних у файл відбувається у вигляді бінарної інформації. Для зберігання даних в пам'яті був використаний динамічний двонаправлений список, при додаванні нового елемента, він розміщується в кінець списку. Одночасно під час виконання програми існують покажчики на початок і на кінець списку.
Малюнок 2.1 Структура використовуваного списку.
При запуску програми завантажуються наступні файли:
· Database Commercial.cm
· Database Flats.f
· Database Houses.hs
· Database Humans.hm
Дані про квартирах, приватних будинках і комерційних будівель при запуску програми завантажуються в компонент DataGridView. Дані про клієнтів завантажуються в список. Список має структуру показану на малюнку 2.1. Дані зберігаються в DataGridView і в списку на всьому протязі роботи програми. Збереження даних з DataGridView і списку відбувається після натискання відповідного пункту меню.
3. Опис програми для програміста
Малюнок 3.1 Діаграма класів
3.1 Клас FlatBase- базовий абстрактний клас приміщень
Таблиця 3.1 Поля класу FlatBase
ПолеТипОписаниеAddrwchar_tАдресSquarewchar_tПлощадьPricewchar_tЦенаIsTelboolФлаг телефонаFFILE * Покажчик на файл
Таблиця 3.2 Методи класу FlatBase
Метод классаТіпОпісаніеuninit () VoidСнімает прив'язку до файлуvirtual Size ()=0LongЧісто віртуальний метод виведення кількості записів у файлеvirtualinput (int i, DataGridView ^ dgv)=0VoidЧісто віртуальний метод введення даннихvirtualSaveToF ()=0VoidЧісто віртуальний метод збереження в файлvirtual ReadFromF (int i)=0BoolЧісто віртуальний метод читання з файлу i-й запісіvirtual view (int i, DataGridView ^ dgv)=0VoidЧісто віртуальний метод перегляду даннихvirtualinit (char f= r )=0VoidЧісто віртуальний метод прив'язки до файлу
. 2 Клас Flat: public FlatBase-клас квартир
Таблиця 3.3 Поля класу Flat
ПолеТіпОпісаніеNumOfRoomwchar_tКолічество комнатFloorwchar_tЕтажnalichremontaboolНалічіе ремонтаIsEmptyboolПустая або житлова квартира
Таблиця 3.4 Методи класу Flat
Метод классаТіпОпісаніеvirtual Size () LongВіртуальний метод виведення кількості записів у файлеvirtualinput (int i, DataGridView ^ dgv) VoidВіртуальний метод введення даннихvirtualSaveToF () VoidВіртуальний метод збереження в файлvirtual ReadFromF (int i) BoolВіртуальний метод читання з файлу i-й запісіvirtual view (int i, DataGridView ^ dgv) VoidВіртуальний метод перегляду даннихvirtual init (char f= r ) VoidВіртуальний метод прив'язки до файлу
3.3 Клас House: public FlatBase. Клас приватних будинків
Таблиця 3.5 Поля класу House
ПолеТіпОпісаніеNumOfFloorswchar_tКолічество етажейTypeOfHeatwchar_tТіп отопленіяNumOfFlatswchar_tКолічество квартірNumOfRoomswchar_tКолічество комнатSewersboolНалічіе каналізації
Таблиця 3.6 Методи класу House
Метод классаТіпОпісаніеvirtual Size () LongВіртуальний метод виведення кількості записів у файлеvirtualinput (int i, DataGridView ^ dgv) VoidВіртуальний метод введення даннихvirtualSaveToF () VoidВіртуальний метод збереження в файлvirtual ReadFromF (int i) BoolВіртуальний метод читання з файлу i-й запісіvirtual view (int i, DataGridView ^ dgv) VoidВіртуальний метод перегляду даннихvirtual init (char f= r ) VoidВіртуальний метод прив'язки до файлу
. 4 Клас Commercial: publicFlatBase. Клас комерческих будівель
Таблиця 3.7 Поля класу Commercial
ПолеТіпОпісаніеNumOfFloorswchar_tКолічество поверхів
Таблиця 3.8 Методи класу Commercial
Метод классаТіпОпісаніеvirtual Size () LongВіртуальний метод вивед...