Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Primer_oformlenia.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
565 Кб
Скачать
☆

3 Разработка алгоритма программного средства

ОПРЕДЕЛЕНИЯ ОТНОШЕНИЙ МЕЖДУ СОТРУДНИКАМИ КОМПАНИИ

Согласно требованиям, представленным в постановке задачи, задача определения отношений между сотрудниками должна реализовывать два основных алгоритма, один из которых позволяет находить всех сотрудников, которые являются друзьями, но при этом не находятся в родственных связях, а второй – определяет связь между двумя отдельными сотрудниками.

Первый алгоритм направлен на нахождение разности множеств «является другом» и «является родственником». В нашей задаче родственник не обязательно является другом, поскольку друзьями будем считать сотрудников, которые близко общаются вне рабочего времени и находятся в доверительных отношениях. Схема алгоритма, позволяющего находить всех сотрудников, которые являются друзьями, но при этом не находятся в родственных связях, представлен на рисунке 3.1.

Второй алгоритм направлен на выявление всевозможных связей между сотрудниками, а именно знакомы ли они, если да, то являются ли они друзьями или родственниками и друзьями при этом. Схема данного алгоритма наглядно отображена на рисунке 3.2.

В программе алгоритму нахождения разности множеств «является другом» и «является родственником» будет соответствовать функция foundFriends, принимающая в качестве параметров массив сотрудников и его размерность.

Рисунок 3.1 – Схема алгоритма нахождения разности множеств «является другом» и «является родственником»

Рисунок 3.2 – Схема алгоритма для определения отношений между сотрудниками по запросу пользователя

Рисунок 3.3 – Продолжение схемы алгоритма

В программе данному алгоритму будет соответствовать функция foundRelationship, принимающая в качестве параметров ссылки на сотрудников, об отношениях которых нужно узнать.

  1. Структурная схема программного средства

4.1 Модули программного средства

С целью реализации универсального программного средства, которое можно легко модифицировать и оптимизировать – необходимо использовать модульный подход.

Суть данного подхода состоит в выделении функций программы и группировку их в виде независимых модулей.

Для рассматриваемой задачи общую структурную схему программы можно представить в следующем виде (рис. 4.1):

Рисунок 4.1 – Структурная схема программы

Модуль работы с данными отвечает за …………………

……..

Расписать каждый блок и его функции

4.2 Структура классов программного средства

Программное средство для реализации задачи определения отношений между сотрудниками ИТ-компании было разработано на языке С++ в среде

Microsoft Visual Studio.

При разработке приложения средства был создан класс Employee, описывающий сотрудников. Данный класс содержит поля, хранящие информацию об отделе, в котором работает сотрудник, его имя, списки его друзей и родственников, работающих в компании.

Основная функциональность программы, требуемая при постановке задачи, выполняется с помощью функций foundFriends и foundRelationship, описание и схема алгоритма которых приведены в разделе 3.

Помимо класса Employee и основных функций, в программном средстве описаны вспомогательные функции и функция main – это начальная точка выполнения для всех программ на языках С++. Код программы приведѐн в приложении А.

4.3 Формат хранения данных

Данные о сотрудниках, а именно имя и отдел, в котором они работают, списки их друзей и родственников, являющиеся входным документом задачи и используемые определения отношений, должны храниться в файле in.txt.

Пример записи данных в файл приведѐн на рисунке 4.1.

Рисунок 4.2 – Пример входного документа

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

Подобный документ может быть легко сформирован функциональной задачей, например, учёта сотрудников автоматизированной информационной системы ИТ-компании.