Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Poyasnitelnaya_zapiska(Исправлено_).doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
784.9 Кб
Скачать

2 Обоснование выбранных методов и алгоритмов

ППрямоугольник 20 Прямая со стрелкой 23 Прямая со стрелкой 26 ри создании приложения использовалась работа с файлами средствами C с неформатированным вводом-выводом, т.е. чтение и запись данных в файл происходит в виде бинарной информации. Для хранения данных в памяти был использован динамический двунаправленный список, при добавлении нового элемента, он размещается в конец списка. Одновременно во время выполнения программы существуют указатели на начало и на конец списка.

H H … H

Рисунок 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

Поле

Тип

Описание

Addr

wchar_t

Адрес

Square

wchar_t

Площадь

Price

wchar_t

Цена

IsTel

bool

Флаг телефона

F

FILE *

Указатель на файл

Таблица 3.2 Методы класса FlatBase

Метод класса

Тип

Описание

uninit()

Void

Снимает привязку к файлу

virtual Size() = 0

Long

Чисто виртуальный метод вывода количества записей в файле

virtualinput(int i, DataGridView^ dgv) = 0

Void

Чисто виртуальный метод ввода данных

virtualSaveToF() = 0

Void

Чисто виртуальный метод сохранения в файл

virtual ReadFromF(int i) = 0

Bool

Чисто виртуальный метод чтения из файла i-й записи

virtual view(int i, DataGridView^ dgv) = 0

Void

Чисто виртуальный метод просмотра данных

virtualinit(char f = 'r') = 0

Void

Чисто виртуальный метод привязки к файлу

3.2 Класс Flat : public FlatBase–класс квартир

Таблица 3.3 Поля класса Flat

Поле

Тип

Описание

NumOfRoom

wchar_t

Количество комнат

Floor

wchar_t

Этаж

nalichremonta

bool

Наличие ремонта

IsEmpty

bool

Пустая или жилая квартира

Таблица 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

Поле

Тип

Описание

NumOfFloors

wchar_t

Количество этажей

TypeOfHeat

wchar_t

Тип отопления

NumOfFlats

wchar_t

Количество квартир

NumOfRooms

wchar_t

Количество комнат

Sewers

bool

Наличие канализации

Таблица 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

Виртуальный метод привязки к файлу

3.4 Класс Commercial : publicFlatBase. Класс комерческих зданий

Таблица 3.7 Поля класса Commercial

Поле

Тип

Описание

NumOfFloors

wchar_t

Количество этажей

Таблица 3.8 Методы класса Commercial

Метод класса

Тип

Описание

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.5 КлассHuman. Класс клиентов

Таблица 3.9 Поля класса Human

Поле

Тип

Описание

FIO

wchar_t

ФИО

Tel

wchar_t

Телефон

Addr

wchar_t

Адрес

F

FILE *

Указатель на файл

Таблица 3.10 Методы класса Human

Метод класса

Тип

Описание

Size()

Long

Метод вывода количества записей в файле

SaveToF()

Void

Метод сохранения в файл

ReadFromF(int i)

Bool

Метод чтения из файла i-й записи

init(char f = 'r')

Void

Метод привязки к файлу

uninit()

Void

Метод снятия привязки с файла

Input(String^ fio, String^ tel, String^ adr)

Void

Метод ввода данных в объект

OutFIO()

String^

Метод вывода фамилии

OutTel()

String^

Метод вывода телефона

OutAddr()

String^

Метод вывода адреса

3.6 Класс-контейнер ContH. Класс список клиентов

Таблица 3.11 Поля класса-контейнера ContH

Поле

Тип

Описание

Next

ContH *

Указатель на следующий элемент списка клиентов

Prev

ContH *

Указатель на предыдущий элемент списка клиентов

H

Human *

Указатель на объект клиента

Таблица 3.12 Методы класса-контейнера ContH

Метод класса

Тип

Описание

ContH()

-

Конструктор класса контейнера

Add(Human * h)

ContH *

Добавление элемента в список и возврат указателя на последний элемент

Del()

ContH *

Удаление последнего элемента списка и возврат указателя на предпоследний

Next()

ContH *

Переход на следующий элемент списка

Prev()

ContH *

Переход на предыдущий элемент списка

Value()

Human *

Возвращает указатель на объект класса клиента

Item(int i, ContH * B)

ContH *

Возвращает i-й указатель на объект списка относительноуказателя B

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]