Написать функцию преобразования целового числа в строку прописью.
Прототип функции 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
Спроектировать схему базы данных, предназначенной для составления расписания занятий в ВУЗе, в общих чертах. Изобразите таблицы, связи между ними, минимально необходимый набор полей и возможно, какие-то жизнено важные индексы.
Общие правила, которые применялись при проектировании схемы:
- Каждый студент является частью одной группы
- Каждая группа имеет свое направление (специальность) и соответственно программу обучения
- При проведении занятия может участвовать одна или несколько групп
- У каждого проводимого занятия может быть только один лектор
- В зависимости от курса программа обучения может иметь различный набор занятий
Возможные запросы к БД с такой структурой
Также имеется скрипт на поднятие БД с тестовым набором данных
- Draw io