Евгений Колесников 10 ay önce
ebeveyn
işleme
bad9f2d7a7
1 değiştirilmiş dosya ile 38 ekleme ve 16 silme
  1. 38 16
      articles/exam.md

+ 38 - 16
articles/exam.md

@@ -2,51 +2,73 @@
 
 >Состав и критерии оценок могут измениться
 
-Написать **РАБОЧЕЕ** (то есть приложение собирается и запускается) оконное приложение, отображающее список данные (**ListBox**), с возможностью фильтрации, поиска и сортировки данных:
+Написать **РАБОЧЕЕ** (то есть приложение собирается и запускается) оконное приложение, отображающее список данных, с возможностью фильтрации, поиска и сортировки данных:
 
 Проверяются **только результаты, опубликованные в репозитории**
 
-Предметная область, тип фильтрации и вид списка определяются перед экзаменом генератором случайных чисел
+Каждому выдаётся набор персональных условий:
 
-1. Создать модель (класс) по заданной предметной области. **Обязательно** использовать типы: _целое_, _вещественное_, _дата_, _строка_, _логическое_. Одно из строковых полей должно быть словарным - `1` балл <!-- 1 -->
+- предметная область
+- тип поставщика данных (**CSV**, **JSON**)
+- тип шаблона для **ListBox** (_список_, _плитка_)
+- тип фильтрации (_по словарю_, _по условию_)
+
+## Задание
+
+1. Создать модель (класс) по заданной предметной области. **Обязательно** использовать типы: _целое_, _вещественное_, _дата_, _строка_, _логическое_. Одно из полей должно быть словарным (свой тип данных, как породы в "кошках") - `1` балл <!-- 1 -->
 
     - несоответствие полей модели предметной области: штраф `0,2` балла
-    - отсутствие типа данных: штраф `0,2` балла
+    - отсутствие обязательного типа данных: штраф `0,2` балла
 
 1. Создать набор данных (10 записей) для модели в заданном формате и написать класс поставщика данных **LocalDataProvider**, **CSVDataProvider** или **JSONDataProvider**: до `1.5` баллов <!-- 2.5 -->
 
-    - **программный список** (определен в дата провайдере): `0,5` баллов
-    - **CSV** (загрузка из внешнего файла): `1` балл
+    - **программный список** (определен в **LocalDataProvider**): `0,5` баллов
+    - **CSV** (загрузка из внешнего файла): `1,5` балла
     - **JSON** (загрузка из внешнего файла): `1,5` балла
 
+    т.е. вы можете не заморачиваться с загрузкой из внешнего файла и реализовать **LocalDataProvider**
+
 1. вывести логотип компании - `0,5` балла (доступа в интернет при выполнении задания не будет, в качестве логотипа можно использовать любую загогулину, нарисованную в `paint`) <!-- 3 -->
 
 1. вывести на экран список (**ListBox**) с набором данных из поставщика данных (тип списка **StackPanel** или **WrapPanel** выбирает преподаватель) - `1` балл <!-- 4 -->
 
+    Если не можете вывести в **ListBox**, то можно использовать **DataGrid** (за него `0,5` баллов)
+
 1. реализовать поиск по текcтовому полю - `1` балл <!-- 5 -->
 
+    не защитывается, если не реализован интерфейс **INotifyPropertyChanged**
+
 1. сделать сортировку по полю - `1` балл <!-- 6 -->
 
-1. сделать фильтрацию по словарному полю или по условию (определяется преподавателем перед началом экзамена) - `1` балл <!-- 7 -->
+    не защитывается, если не реализован интерфейс **INotifyPropertyChanged**
 
-1. Написать пояснительную записку в **README.MD** (название предметной области, **скриншот**, **набор данных, оформленный как `код`**) - `0,5` балла <!-- 7.5 -->
+1. сделать фильтрацию _по словарному_ полю или _по условию_ (определяется преподавателем перед началом экзамена) - `1` балл <!-- 7 -->
 
-    Штраф за отсутствующий элемент `0,2` балла
+    не защитывается, если не реализован интерфейс **INotifyPropertyChanged**
 
-1. Единый стиль переменных во всём приложении (**CamelCase** или **camelCase**): `0.5` балла <!-- 8 -->
+1. Написать пояснительную записку в **README.MD**  - `0,5` балла <!-- 7.5 -->
 
-1. Самоочевидные названия переменных и названий визуальных объектов: `0.5` балла <!-- 8.5 -->
+    - Добавить скриншот 
+    - набор данных, оформленный как `код`
+
+    Штраф за отсутствующий элемент `0,2` балла
+
+    >Критерий учитывается только при наличии рабочего приложения со списком
 
 1. Файловая структура проекта (_для каждого класса свой файл_, _название файла соответствует классу_, _классы модели в отдельном каталоге_): `0.5` балла <!-- 9 -->
 
     Штраф `0,2` балла за критерий
 
-Итого `9` баллов:
+    >Критерий учитывается только при наличии рабочего приложения со списком
+
+## Оценка
+
+Итого `8` баллов:
 
-- менее `2`-х баллов, оценка "2"
-- `2 ... 3,9` балла, оценка "3"
-- `4 ... 5,9` баллов, оценка "4"
-- `6` и более баллов, оценка "5"
+- менее `1,6`-х баллов, оценка "2"
+- `1,6 ... 3,1` балла, оценка "3"
+- `3,2 ... 5,5` баллов, оценка "4"
+- `5,6` и более баллов, оценка "5"
 
 <!--