Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РПЗ САФИН.docx
Скачиваний:
78
Добавлен:
23.03.2016
Размер:
2.28 Mб
Скачать
    1. Диаграмма классов

Диаграмма классов с указанием уровней логики представлена на рис. .

Рисунок 6. Диаграмма классов

    1. Спецификация основных классов

Таблица 3. Класс «ClientsDistribution»

Класс «ClientsDistribution»

Имя члена/метода

Модификатор доступа

Описание

Client[] clients

+

Массив записей клиентов на курсы (хранится пара ID клиента и ID курса)

Course[] courses

+

Список курсов

EducationCenter[] centers

+

Список ОЦ

Relation[][] distribution

+

Массив возможных распределений (для каждого клиента хранятся ближайшие ОЦ, в которых он может учиться)

bool DataLoaded

-

True, если данные загружены

bool InitialDistributionMade

-

True, если создано начальное распределение

double relatedDistance

-

Максимально допустимое расстояние от ОЦ до места жительства клиента, в метрах

int numOfRelatedCenters

-

Количество центров, в которых может обучаться каждый клиент. Служит для ускорения работы алгоритма. Все равно клиент не будет учиться в удаленных ОЦ

LoadData()

+

Загрузить данные из базы

MakeInitialDistribution()

+

Создать начальное распределение

GetCurrentDistribution()

+

Получить текущее распределение (для дальнейшего его отображения на карте Москвы)

GetClientsCoordinates

+

Возвращает координаты клиента по его ID

GetCurrentIncome()

+

Подсчитывает прогнозируемую прибыль для текущего распределения

FindOptDistribution()

+

Запускает алгоритм поиска “оптимального” распределения

Таблица 4. Класс «MoscowMap»

Класс «MoscowMap»

Имя члена/метода

Модификатор доступа

Описание

double dolgota1, shirota1, dolgota2, shirota2

-

Координаты GPS левого верхнего и правого нижнего углов карты Москвы. Нужны для масштабирования карты и аппроксимации местоположения

int Width

+

Ширина карты, в пикселях

int Height

+

Высота карты, в пикселях

getCurrentCoordinates()

+

Получает gps координаты по координатам пикселя

GetCurrentDistribution()

+

Возвращает изображение с текущим распределением клиентов

GetIntCoordinates()

-

Получает координаты пикселя по gps-координатам

GetEmptyMap()

+

Возвращает пустую карту

Таблица 5. Класс «GPS»

Класс «GPS»

Имя члена/метода

Модификатор доступа

Описание

ConvertToRadians()

-

Конвертирует значение из градусов в радианы

get_fi()

-

Вычисляет угол, который вдальнейшем используется для нахождения расстояния между двумя точками по их gps координатам

get_S_yandex()

+

Вычисляет расстояние по gps координатам

Таблица 6. Класс «Client»

Класс «Client»

Имя члена/метода

Модификатор доступа

Описание

Int32 ID

+

ID клиента

double Dolgota

+

GPS координаты долготы

double Shirota

+

GPS координаты широты

Int32 CourseID

+

ID курса, к которому относится данная запись

Таблица 7. Класс «Course»

Класс «Course»

Имя члена/метода

Модификатор доступа

Описание

Int32 ID

+

ID курса

Double Cost

+

Стоимость курса

Int32 MinGroupSize

+

Минимальный размер группы по данному курсу

Int32 MaxGroupSize

+

Максимальный размер группы по данному курсу

Таблица 8. Класс «EducationCenter»

Класс «EducationCenter»

Имя члена/метода

Модификатор доступа

Описание

Int32 ID

+

ID образовательного центра

double Dolgota

+

GPS координаты долготы

double Shirota

+

GPS координаты широты

Таблица 9. Класс «OneClientDistribution»

Класс «OneClientDistribution»

Имя члена/метода

Модификатор доступа

Описание

Int32 ClientID

+

ID клиента

Int32 CenterID

+

ID образовательного центра, к которому он относится

Int32 CourseID

+

ID курса, на который записан

bool isDistributed

+

True, если клиент уже распределен в какую-то группу

Int32 relatedCenter

+

Коэффициент, который позволяет учитывать учащихся, которые вносят корреляцию

Таблица 10. Класс «Relation»

Класс «Relation»

Имя члена/метода

Модификатор доступа

Описание

Int32 ID

+

ID ОЦ в списке связанных для данного клиента ОЦ

Double S

+

Расстояние для данного ОЦ

Double P

+

Весовой коэффициент – вероятность того, что клиент будет ходить именно в этот ОЦ

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