/TestTask

Решение тестового задания

Primary LanguageC#

Тестовое задание #1

Написать функцию преобразования целового числа в строку прописью.

Прототип функции string sumProp(int nSum, string sGender, string sCase), где

  • nSum - целое число менее триллиона (максимум 999 999 999 999)
  • sGender - род ("М" - мужской, "Ж" - женский, "С" - средний)
  • sCase - падеж ("И" - именительный, ..., "П" - предложный)
Пример вызова функции Результат
sumProp(31, "М", "Р") тридцати одного
sumProp(22, "С", "Т") двадцатью двумя
sumProp(154323, "М", "И") сто пятьдесят четыре тысячи триста двадцать три
sumProp(154323, "М", "Т") ста пятьюдесятью четырьмя тысячами тремястами двадцатью тремя

О решении

В решении применяется способ формирования прописной строки на основнии заранее подготовленных словарей с возможными вариантами.

Основная идея решения задачи: разбить число на группы числовых классов (единицы, тысячи и т.д), а после сформировать для данной группы строковое представление и при необходимости подставить в конец наименование числовой группы. В результате все числовые группы объединяются в единую строку.

Использование библиотеки

В классе Converter имеется единственная публичная функция для преобразования числа в строковое представление

Converter.ConvertNumToWord(num, case, gender)

Используемый инструментарий

  • .NET 7, C# 11
  • XUnit + Fluent Assertion
  • Rider 2023.1

Тестовое задание #2

Спроектировать схему базы данных, предназначенной для составления расписания занятий в ВУЗе, в общих чертах. Изобразите таблицы, связи между ними, минимально необходимый набор полей и возможно, какие-то жизнено важные индексы.

ER диаграмма

ER Diagram

О решении

Общие правила, которые применялись при проектировании схемы:

  1. Каждый студент является частью одной группы
  2. Каждая группа имеет свое направление (специальность) и соответственно программу обучения
  3. При проведении занятия может участвовать одна или несколько групп
  4. У каждого проводимого занятия может быть только один лектор
  5. В зависимости от курса программа обучения может иметь различный набор занятий

Возможные запросы к БД с такой структурой

  1. Вывод списка занятий (скрипт)
  2. Вывод возможных лекторов для занятия (скрипт)

Также имеется скрипт на поднятие БД с тестовым набором данных

Используемый инструментарий

  • Draw io