Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МИИ_МО_417_ЛР2_Шакиров_Ибрагимова_Рахимова_Степанова.docx
Скачиваний:
92
Добавлен:
28.08.2022
Размер:
301 Кб
Скачать
☆

Руководство программиста

Программа разработана с помощью ЯП Java фреймворка JADE в среде IDEA.

Используемые классы:

Класс Auditorium

String name

Номер аудитории

long capacity

Вместимость аудитории

long type

Тип проводимых занятий, «Лекция» или «Практика»

ArrayList<ArrayList<OccupationItem>> timeTable

Расписание аудитории

Auditorium(String name, long capacity, long type);

Конструктор класса Auditorium

boolean isBusy(int day, int lesson)

Проверяет занята ли аудитория в переданный промежуток времени

String whatGroup(int day, int lesson)

Возвращает наименование группы занявшую аудиторию в данный момент времени

boolean canOccupation(long type, long capacity)

Проверка на возможность занятия аудитории

JSONArray getResultTimeTable()

Получить информацию о расписании

Класс MainReader

static ArrayList<Teacher> readTeacher(String file)

Чтение учителей из исходного файла

ArrayList<Auditorium> readAuditoriums(String file)

Чтение аудиторий из исходного файла

ArrayList<StudentGroup> readStudents(String file)

Чтение групп студентов из исходного файла

void writeCsvClient(JSONArray groups, String outFile)

Запись расписаний групп в файл в виде таблицы

void writeCsvServer(JSONObject obj, String outFile)

Запись расписаний преподавателей и аудиторий в файл в виде таблицы

Класс OccupationItem

String group

Номер группы

String teacher

ФИО преподавателя

String subject

Название предмета

long type

Тип проводимого занятия

String auditorium

Номер аудитории

Класс StudentGroup

String name

Номер группы

long students

Кол-во студентов в группе

ArrayList<Subject> subjects

Учебный план группы

ArrayList<ArrayList<OccupationItem>> timeTable

Расписание группы

int allLessons

Всего занятий в учебном плане

StudentGroup(String name, long students, ArrayList<Subject> subjects)

Конструктор класса StudentGroup

boolean isBusy(int day, int lesson)

Проверка на занятость группы студентов в данный момент времени

ArrayList<SimpleEntry<Integer, Integer>> getAvailableForTeacher(boolean force)

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

ArrayList<SimpleEntry<Integer, Integer>> getAvailableForAuditorium(boolean force)

Получить свободные ячейки времени для аудитории

JSONArray getResultTimeTable()

Получить информацию о расписании

Класс Subject

String name

Название предмета

long lections

Количество лекций предмета

long practics

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

Класс Lesson

String name

Название предмета

int type

Тип предмета

Класс MyMessage

Lesson subject

Контекст предмета

String group

Контекст группы

String teacherOrAuditorium

Контекст преподавателя/аудитории

SimpleEntry<Integer, Integer> targetLesson

Контекст ячейки времени

Serializable payload

Тело сообщения

Класс Teacher

String name

ФИО преподавателя

ArrayList<String> subjects

Предметы, которые ведет преподаватель

ArrayList<ArrayList<Long>> busy

Занятость преподавателя на неделе

ArrayList<ArrayList<OccupationItem>> timeTable

Расписание преподавателя

boolean isBusy(int day, int lesson)

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

String whatGroup(int day, int lesson)

Получить группу, которая зафиксирована на данную ячейку времени

ArrayList<AbstractMap.SimpleEntry<Integer, Integer>> getAvailable(boolean force)

Получить свободные ячейки времени

JSONArray getResultTimeTable()

Получить информацию о расписании

Приложение с исходными кодами будет в архиве.