
Среда программирования: Visual С# .NET 2019
Название работы: Методы расширения: для вычисления медианы и для вычисления списка биграмм. Анализ статистики посещения слайдов этого курса студентами. Реализовать метод GetMedianTimePerSlide.
Тематика работы: Математика, Работа с текстом, Структуры, Прочие
Объем программы: 6 (по десятибалльной шкале)
Уровень сложности: 8 (по десятибалльной шкале)
Разработчик (автор):
Программист сайта kursovik.com
(письмо автору)
Данная работа написана ЧЕЛОВЕКОМ без использования ИИ
Ключевые слова: Методы расширения, вычисление медианы, вычисления списка биграмм, список биграмм, анализ статистики посещения, посещение слайдов, метод GetMedianTimePerSlide, метод Bigrams, метод Median, файл StatisticsTask, метод GetMedianTimePerSlide, класс ParsingTask, методы чтения файлов, не используйте циклы в решении, используйте LINQ, файл visits, slide
Функции программы:
Разработать программу на C# в соответствии с заданиями:
Задание 1.
В файле ExtensionsTask реализуйте два метода расширения: для вычисления медианы и для вычисления списка биграмм.
Эти методы пригодятся в будущем. Вы сможете их использовать на ряду и в перемешку с остальными методами LINQ.
Есть важное замечание по деталям реализации.
Создавая методы, работающие с IEnumerable стоит придерживаться следующих рекомендаций:
Если это возможно, не перечисляйте входной IEnumerable до конца. Потому что IEnumerable может теоретически быть бесконечным.
Не перечисляйте больше элементов, чем нужно для работы IEnumerable. Возможно, при перечислении лишнего элемента случится ошибка или другой нежелательный побочный эффект.
Не полагайтесь на то, что IEnumerable можно будет перечислить дважды. Этого никто не гарантирует. Кстати, некоторые IDE, автоматически находят нарушение этого пункта.
Например, подобные предупреждения умеют показывать JetBrains Rider и Visual Studio с установленным Resharper.
Лучше использовать foreach, а не явные вызовы MoveNext и Current. Это лучше читается и сложнее допустить ошибку.
Задание 2.
В этой серии задач вам нужно будет проанализировать статистику посещения слайдов этого курса студентами.
Исходные данные содержатся в двух файлах:
1. slide.txt содержит информацию про каждый из слайдов — идентификатор, тип слайда (теория, задача или тест), и тема соответствующей недели.
Пример файла slides.txt:
SlideId;SlideType;UnitTitle
0;theory;Первое знакомство с C#
1;quiz;Первое знакомство с C#
2;theory;Первое знакомство с C#
3;exercise;Первое знакомство с C#
2. visits.txt содержит по одной записи на первое посещение слайда каждым пользователем. Запись состоит из идентификатора пользователя,
идентификатора слайда, даты и времени посещения этим пользователем этого слайда. Пример файла visits.txt:
UserId;SlideId;Date;Time
0;5;2014-09-03;12:20:28
1;6;2014-09-03;12:25:09
1;4;2014-09-03;12:25:24
В этой задаче в классе ParsingTask нужно реализовать методы чтения этих файлов.
Не используйте циклы в решении. Вместо этого используйте LINQ.
Обратите внимание, что в разных методах предлагается реализовать разную реакцию на некорректные строки файлов:
в одном случае — игнорировать их, а в другом — выбрасывать исключение на первой же ошибочной строке.
Это сделано исключительно в учебных целях — в реальных проектах стоит, конечно, придерживаться какой-то одной выбранной стратегии.
Задание 3.
В файле StatisticsTask реализуйте метод GetMedianTimePerSlide. Он должен работать так.
Обозначим T(U, S) время между посещением пользователем U слайда S и ближайшим следующим посещением тем же пользователем U какого-то другого слайда S2 != S.
T(U, S) можно считать примерной оценкой того, сколько времени пользователь U провел на слайде S.
Метод должен для указанного типа слайда, считать медиану значений T(U, S) по всем пользователям и всем слайдам этого типа.
Нужно игнорировать значения меньшие 1 минуты и большие 2 часов при расчете медианы.
Гарантируется, что в тестах и реальных данных отсутствуют записи, когда определенный пользователь заходит на один и тот же слайд более одного раза.
Время нужно возвращать в минутах.
Воспользуйтесь реализованными ранее методами Bigrams и Median.
Описание (отчет): Нет, но можно заказать его написание
Пояснения к компиляции и запуску программы:
Для работы с программой нужно запустить файл "linq-slideviews.exe".
Пояснения к запуску программы:
Для работы с программой нужно запустить файл "linq-slideviews.exe".
исходники
bin
Debug
linq-slideviews
nunit.framework
slides
visits
ExtensionsTask
ExtensionsTests
linq-slideviews
nunit.framework
ParsingTask
ParsingTests
Program
Properties
AssemblyInfo
SlideRecord
slides
SlideType
StatisticsTask
StatisticsTests
VisitRecord
visits|
Стоимость ИСХОДНОГО ТЕКСТА программы составляет 1700 руб РФ Продажа каждой работы строго учитывается, у каждой работы есть своя история продаж. |