# Лабораторная работа №6.1. ООП. Основы. >Реализовать **одно** задание, номер которого выдаст преподаватель Разработать класс для объекта. Сформировать набор данных и реализовать выборки с помощью LINQ-запросов. Список полей и выборок приведён примерный - во всех заданиях должны быть реализованы свойства с типами **int**, **double**, **DateTime** или **TimeSpan**, **string**, **boolean** и выборки с использованием этих свойств. >Тип **TimeSpan** хранит *часы*, *минуты*, *секунды* - обычно используется для хранения результата вычитания двух дат, но можно использовать и сам по себе. В разных выборках, кроме собственно выборки данных, использовать дополнительные методы LINQ-запросов (сортировка, лимит и т.д.) Если работу с CSV ещё не проходили, то сформировать список исходных данных программно (не менее 5-ти элементов), например: ```cs var Users = new List { new User {Name="Том", Age=23}, new User {Name="Боб", Age=25}, ... }; ``` Переменные с типом **DateTime** и **TimeSpan** создаются с помощью конструкторов: ```cs var BirthDay = new DateTime(2002, 1, 31); var DateDiff = new TimeSpan(33, 0, 0); ``` Напоминаю структуру проекта: ```cs namespace HelloApp { // описываем новый класс в пространстве имен (namespace) class Person { // используем CamelCase - все слова (в переменных и методах) с большой буквы public string FirstName; public DateTime BirthDay; } // существующий класс не трогаем class Program { static void Main(string[] args) { // формируем набор данных (список объектов вашего типа) var Users = new List { new Person {FirstName="Том", BirthDay=new DateTime(2002,1,31)}, new Person {FirstName="Боб", BirthDay=new DateTime(2004,12,1)} }; // дальше LINQ-запросы } } } ``` 1. **Student**: Фамилия, Имя, Отчество, Дата рождения, Адрес, Телефон, Факультет, Курс. Данные загрузить из CSV-файла. Вывести: * список студентов заданного факультета; * списки студентов для каждого факультета и курса; * список студентов, родившихся после заданного года. 2. **Abiturient**: Фамилия, Имя, Отчество, Адрес, Оценки, Дата. Данные загрузить из CSV-файла. Вывести: * список абитуриентов, имеющих неудовлетворительные оценки; * список абитуриентов, сумма баллов у которых не меньше заданной; * выбрать N абитуриентов, имеющих самую высокую сумму баллов, и список абитуриентов, имеющих полупроходной балл. 3. **Aeroflot**: Пункт назначения, Номер рейса, Тип самолета, Время вылета, Дни недели. Данные загрузить из CSV-файла. Вывести: * список рейсов для заданного пункта назначения; * список рейсов для заданного дня недели; * список рейсов для заданного дня недели, время вылета для которых больше заданного. 4. **Book**: Автор, Название, Издательство, Год, Количество страниц. Данные загрузить из CSV-файла. Вывести: * список книг заданного автора; * список книг, выпущенных заданным издательством; * список книг, выпущенных после заданного года. 5. **Worker**: Фамилия и инициалы, Должность, Год поступления на работу, Зарплата. Данные загрузить из CSV-файла. Вывести: * список работников, стаж работы которых на данном предприятии превышает заданное число лет; * список работников, зарплата которых больше заданной; * список работников, занимающих заданную должность. 6. **Train**: Пункт назначения, Номер поезда, Время отправления, Число общих мест, Купейных, Плацкартных. Данные загрузить из JSON-файла. Вывести: * список поездов, следующих до заданного пункта назначения; * список поездов, следующих до заданного пункта назначения и отправляющихся после заданного часа; * список поездов, отправляющихся до заданного пункта назначения и имеющих общие места. 7. **Product**: Наименование, Производитель, Цена, Срок хранения, Количество. Данные загрузить из JSON-файла. Вывести: * список товаров для заданного наименования; * список товаров для заданного наименования, цена которых не превышает указанной; * список товаров, срок хранения которых больше заданного. 8. **Patient**: Фамилия, Имя, Отчество, Адрес, Номер медицинской карты, Диагноз. Данные загрузить из JSON-файла. Вывести: * список пациентов, имеющих данный диагноз; * список пациентов, номер медицинской карты которых находится в заданном интервале. 9. **Bus**: Фамилия и инициалы водителя, Номер автобуса, Номер маршрута, Марка, Год начала эксплуатации, Пробег. Данные загрузить из JSON-файла. Вывести: * список автобусов для заданного номера маршрута; * список автобусов, которые эксплуатируются больше 10 лет; * список автобусов, пробег у которых больше 10 000 км. 10. **Customer**: Фамилия, Имя, Отчество, Адрес, Телефон, Номер кредитной карточки, Номер банковского счета. Данные загрузить из JSON-файла. Вывести: * список покупателей в алфавитном порядке; * список покупателей, номер кредитной карточки которых находится в заданном интервале. 11. **Процедурный кабинет**: забор различных анализов 12. **Автосалон**