Тестовое задание: C# (RIT Automation), задания 1-5
Вакансия
- Компания: RIT Automation
- Направление: C#
Задание 1
На языке C# необходимо разработать приложение Windows Forms (обязательно .NET Framework), которое на главной форме содержит карту из библиотеки GMap.NET, загружает из базы данных Microsoft SQL Server географические координаты условных единиц техники и отображает их на карте в виде маркеров.
Необходимо реализовать:
- перемещение маркеров с помощью мыши (
Drag&Drop, нажать на маркер и перенести в другую точку карты); - сохранение новых координат в базу данных, чтобы после перезапуска приложения маркеры были расположены так же, как и до закрытия приложения.
Выполненным заданием считается архив с проектом Visual Studio, а также SQL-скрипт для создания базы данных (полное создание БД с нуля + наполнение данными). В базе данных уже должны содержаться маркеры.
При работе с базой данных нельзя пользоваться фреймворками (EntityFramework и т.д.), необходимо использовать T-SQL.
Задание 2
Написать процедуры обхода бинарного дерева поиска:
- в глубину (
preorder); - в ширину.
Нужно реализовать только эти два обхода, без дополнительных видов.
Организовать функцию вставки значения в бинарное дерево.
Задание 3
Для типа «односвязанный неизменяемый список», определенного как:
class ListNode<T> {
public readonly T Value;
public readonly ListNode<T> Next;
...
}
Написать две функции:
- замены элемента в списке;
- объединения двух списков.
Задания 2 и 3 выполняются на C#. Необходимо создать проект в https://dotnetfiddle.net/, CodingGround, http://www.tutorialspoint.com/compile_csharp_online.php или другом онлайн-инструменте и прислать ссылку.
Приветствуется оформление в виде набора тестов.
Также требуется самостоятельно определить, сколько времени нужно на решение задач.
Задание 4
На языке C# необходимо разработать приложение Windows Forms, которое на главной форме содержит карту из библиотеки GMap.NET, загружает из базы данных Microsoft SQL Server географические координаты условных единиц техники и отображает их на карте в виде маркеров.
Ручное перемещение маркеров
Реализовать перемещение маркеров с помощью мыши (Drag&Drop) и сохранение новых координат в базу данных, чтобы после перезапуска приложения маркеры были расположены так же, как и до закрытия приложения.
Автоматическое перемещение маркеров
Реализовать парсинг сообщений с GPS-приемника, которые отвечают за координаты (GPGGA сообщение).
В приложение будут поступать данные в формате NMEA, обрабатываться, и по этим данным будут меняться координаты одной единицы техники.
Для работы с приемником можно использовать любой эмулятор из интернета или парсить данные из файла.
Скриптовые действия
При заезде/перемещении маркера в определенную зону (нарисовать любую зону на карте) должно происходить действие, выбираемое в приложении из списка:
- отображение диалогового окна с текстом;
- изменение цвета маркера на случайный;
- создание нового маркера в случайной точке, но только в видимой области карты.
Требования
- язык программирования: C#;
- библиотека карты:
GMap.NET; - база данных: Microsoft SQL Server 2012;
- работа с базой данных: любой вариант (
EntityFramework,T-SQLи т.д.); - парсинг координат с GPS необходимо писать самостоятельно;
- использование шаблонов проектирования.
Выполненным заданием считается архив с проектом Visual Studio, а также SQL-скрипт для создания базы данных и заполнения первичными данными. В базе данных уже должны содержаться маркеры.
Задание 5
Тестовое задание на ASP.NET Core (.NET 6):
Реализовать веб-службу REST API. В качестве БД использовать PostgreSQL + EntityFramework.
Есть несколько сущностей:
DrillBlock, поля:Id,Name,UpdateDate;Hole, поля:Id,Name,DrillBlockId,DEPTH;DrillBlockPoints, соединяются последовательно, являются географическим контуром блока обуривания. Поля:Id,DrillBlockId,Sequence,X,Y,Z;HolePoints— координаты скважин. Поля:Id,HoleId,X,Y,Z.