Skip to content

nektonick/test-assignment-for-internship

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Описание репозитория

Данный репозиторий - выполненное тестовое задание для стажировки в одной из компаний.

Постановка задачи

  1. Необходимо реализовать схему взаимодействия процессов «читатели-писатели» под ОС Windows с использованием соответствующих системных вызовов WinAPI и многопоточности, используя thread, event, и mutex.

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

  2. Необходимо разработать приложение, отображающее список подразделений предприятия и его сотрудников в виде дерева. Список должен загружаться из файла формата xml (xml файл с данными приложен). Программа должна обеспечить возможность добавления, удаления, редактирования подразделений и сотрудников в них. Программа должна обеспечить возможность отмены и возврата изменений. При разработке необходимо использовать паттерны проектирования.

    Поля сотрудника:

    • ФИО;
    • должность;
    • зарплата (целое число).

    Поля подразделения:

    • наименование;
    • количество сотрудников;
    • средняя зарплата.

Решение

  • Задача 1

    Общая информация

    • Выбрана следующая модель поведения: Как только в очереди появляется хотя бы один писатель, не пускаем новых читателей.

    Пример(ы) работы:

    example

    Сборка и запуск

    • Для сборки и запуска рекомендуется использовать visual studio (sln файл проекта)
    • Альтернативно (не тестировалось):
      #(находясь в папке task_1)
      g++ -std=c++14 -o task_1.cpp task1
      ./task1  
  • Задача 2

    Общая информация

    • В решении используется библиотека TinyXML-2 для работы с .xml файлом. (Файлы TinyXML-2 включены в проект)
    • Для поддержки отмены/возврата изменений используется паттерн "команда".
    • В репозитории есть диаграмма, отражающая структуру программы и текущий прогресс в виде pdf, и исходника в формате xmind.
    • На windwos при вводе в консоли следует использовать только латиницу, по какой-то причине, кириллица считывается некорректно (побочный эффект использования utf-8) - пофиксить не удалось.

    Пример(ы) работы:

    example example example example example

    Сборка и запуск

    • Для сборки и запуска рекомендуется использовать visual studio (sln файл проекта)
    • Альтернативно (не тестировалось):
      #(находясь в папке task_2)
      g++ -std=c++14 -o task_2.cpp Application.cpp Database.cpp CommandHistory.cpp Commands.cpp Department.cpp Input_output.cpp Employment.cpp tinyxml2.cpp task2
      ./task2  

About

Тестовое задание на стажировку (C++)

Topics

Resources

License

Stars

Watchers

Forks

Languages