Skip to content

SergeiTsikhan/TeachMeSkills-DotNet-Essential

 
 

Repository files navigation

TeachMeSkills DotNet Essential

Для того, чтобы отметить выполненое задание используйте 'x':
- [ ] Невыполненное задание
- [x] Выполненое задание
  • Задание 0
  • Задание 1
  • Задание 2
  • Задание 3
  • Задание 4
  • Задание 5
  • Задание 6
  • Задание 7
  • Задание 8
  • [?] Задание 9
  • Задание 10
  • Задание 11
  • [?] Задание 12
  • [?] Задание 13
  • Задание 14
  • Задание 15
  • [?] Задание 16
  • Задание 17
  • Задание 18
  • Задание 19
  • Задание 20
  • Задание 21
  • Задание 22
  • Задание 23
  • Задание 24
  • Задание 25
  • Задание 26
  • Задание 27
  • Задание 28
  • Задание 29
  • Задание 30
  • Задание 31
  • Задание 32
  • Задание 33
  • Задание 34
  • Задание 35
  • Задание 36
  • Задание 37
  • Задание 38
  • Задание 39
  • Задание 40
  • Задание 41
  • Задание 42
  • Задание 43
  • Задание 44
  • Задание 45
  • Задание 46
  • Задание 47

Задание 1

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: Создать класс с именем Rectangle.
В теле класса создать два поля, описывающие длины сторон double side1, side2.
Создать пользовательский конструктор Rectangle(double side1, double side2), в теле которого поля side1 и side2 инициализируются значениями аргументов.
Создать два метода, вычисляющие площадь прямоугольника - double AreaCalculator() и периметр прямоугольника - double PerimeterCalculator().
Создать два свойства double Area и double Perimeter с одним методом доступа get.
Написать программу, которая принимает от пользователя длины двух сторон прямоугольника и выводит на экран периметр и площадь.

Задание 2

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: Создать класс Book. Создать классы Title, Author и Content, каждый из которых должен содержать одно строковое поле и метод void Show().
Реализуйте возможность добавления в книгу названия книги, имени автора и содержания.
Выведите на экран разными цветами при помощи метода Show() название книги, имя автора и содержание.

Задание 3

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: Создать классы Point и Figure.
Класс Point должен содержать два целочисленных поля и одно строковое поле.
Создать три свойства с одним методом доступа get.
Создать пользовательский конструктор, в теле которого проинициализируйте поля значениями аргументов.
Класс Figure должен содержать конструкторы, которые принимают от 3-х до 5-ти аргументов типа Point.
Создать два метода: double LengthSide(Point A, Point B), который рассчитывает длину стороны многоугольника; void PerimeterCalculator(), который рассчитывает периметр многоугольника.
Написать программу, которая выводит на экран название и периметр многоугольника.

Задание 4

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: Создать класс с именем Address.
В теле класса требуется создать поля: index, country, city, street, house, apartment.
Для каждого поля, создать свойство с двумя методами доступа.
Создать экземпляр класса Address.
В поля экземпляра записать информацию о почтовом адресе.
Выведите на экран значения полей, описывающих адрес.

Задание 5

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: Создать класс Converter.
В теле класса создать пользовательский конструктор, который принимает три вещественных аргумента, и инициализирует поля соответствующие курсу 3-х основных валют, по отношению к BYN – public Converter(double usd, double eur, double rub).
Написать программу, которая будет выполнять конвертацию из BYN в одну из указанных валют, также программа должна производить конвертацию из указанных валют в BYN.

Задание 6

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: Создать класс Employee.
В теле класса создать пользовательский конструктор, который принимает два строковых аргумента, и инициализирует поля, соответствующие фамилии и имени сотрудника.
Создать метод рассчитывающий оклад сотрудника (в зависимости от должности и стажа) и налоговый сбор.
Написать программу, которая выводит на экран информацию о сотруднике (фамилия, имя, должность), оклад и налоговый сбор.

Задание 7

Используя Visual Studio, создайте проект по шаблону Console Application
Требуется: Создать класс Invoice.
В теле класса создать три поля int account, string customer, string provider, которые должны быть проинициализированы один раз (при создании экземпляра данного класса) без возможности их дальнейшего изменения.
В теле класса создать два закрытых поля string article, int quantity
Создать метод расчета стоимости заказа с НДС и без НДС.
Написать программу, которая выводит на экран сумму оплаты заказанного товара с НДС или без НДС.

Задание 8

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: Создать класс User, содержащий информацию о пользователе (логин, имя, фамилия, возраст, дата заполнения анкеты).
Поле дата заполнения анкеты должно быть проинициализировано только один раз (при создании экземпляра данного класса) без возможности его дальнейшего изменения.
Реализуйте вывод на экран информации о пользователе.

Задание 9

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: Создать класс, представляющий учебный класс ClassRoom.
Создайте класс ученик Pupil. 
В теле класса создайте методы void Study(), void Read(), void Write(), void Relax().
Создайте 3 производных класса ExcelentPupil, GoodPupil, BadPupil от класса базового класса Pupil и переопределите каждый из методов, в зависимости от успеваемости ученика.
Конструктор класса ClassRoom принимает аргументы типа Pupil, класс должен состоять из 4 учеников.
Предусмотрите возможность того, что пользователь может передать 2 или 3 аргумента.
Выведите информацию о том, как все ученики экземпляра класса ClassRoom умеют учиться, читать, писать, отдыхать.

Задание 10

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: Создать класс Vehicle.
В теле класса создайте поля: координаты и параметры средств передвижения (цена, скорость, год выпуска).
Создайте 3 производных класса Plane, Саг и Ship.
Для класса Plane должна быть определена высота и количество пассажиров.
Для класса Ship — количество пассажиров и порт приписки.
Написать программу, которая выводит на экран информацию о каждом средстве передвижения.

Задание 11

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: Создайте класс DocumentWorker.
В теле класса создайте три метода OpenDocument(), EditDocument(), SaveDocument().
Тело каждого из методов добавьте вывод на экран соответствующих строк: "Документ открыт", "Редактирование документа доступно в версии Про", "Сохранение документа доступно в версии Про".
Создайте производный класс ProDocumentWorker.
Переопределите соответствующие методы, при переопределении методов выводите следующие строки: "Документ отредактирован", "Документ сохранен в старом формате, сохранение в остальных форматах доступно в версии Эксперт".
Создайте производный класс ExpertDocumentWorker от базового класса ProDocumentWorker.
Переопределите соответствующий метод. При вызове данного метода необходимо выводить на экран "Документ сохранен в новом формате".
В теле метода Main() реализуйте возможность приема от пользователя номера ключа доступа pro и exp.
Если пользователь не вводит ключ, он может пользоваться только бесплатной версией (создается экземпляр базового класса), если пользователь ввел номера ключа доступа pro и exp, то должен создаться экземпляр соответствующей версии класса, приведенный к базовому – DocumentWorker.

Задание 12

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: Создайте класс Printer.
В теле класса создайте метод void Print(string value), который выводит на экран значение аргумента.
Реализуйте возможность того, чтобы в случае наследования от данного класса других классов, и вызове соответствующего метода их экземпляра, строки, переданные в качестве аргументов методов, выводились разными цветами.
Обязательно используйте приведение типов.

Задание 13

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: Создайте класс AbstractHandler.
В теле класса создать методы void Open(), void Create(), void Chenge(), void Save().
Создать производные классы XMLHandler, TXTHandler, DOCHandler от базового класса AbstractHandler.
Написать программу, которая будет выполнять определение документа и для каждого формата должны быть методы открытия, создания, редактирования, сохранения определенного формата документа.

Задание 14

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: Создайте 2 интерфейса IPlayable и IRecodable. 
В каждом из интерфейсов создайте по 3 метода void Play() / void Pause() / void Stop() и void Record() / void Pause() / void Stop() соответственно.
Создайте производный класс Player от базовых интерфейсов IPlayable и IRecodable.
Написать программу, которая выполняет проигрывание и запись.

Задание 15

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: Создать массив размерностью N элементов, заполнить его произвольными целыми значениями.
Вывести наибольшее значение массива, наименьшее значение массива, общую сумму элементов, среднее арифметическое всех элементов, вывести все нечетные значения.

Задание 16

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: Создать класс MyMatrix, обеспечивающий представление матрицы произвольного размера с возможностью изменения числа строк и столбцов.
Написать программу, которая выводит на экран матрицу и производные от нее матрицы разных порядков.

Задание 17

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется:
Создать класс Article, содержащий следующие закрытые поля: название товара; название магазина, в котором продается товар; стоимость товара в BYN.
Создать класс Store, содержащий закрытый массив элементов типа Article.
Обеспечить следующие возможности: вывод информации о товаре по номеру с помощью индекса; вывод на экран информации о товаре, название которого введено с клавиатуры, если таких товаров нет, выдать соответствующее сообщение;
Написать программу, вывода на экран информацию о товаре.

Задание 18

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: создать метод расширения для целочисленного массива, который сортирует элементымассива по возрастанию.

Задание 19

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: Создать статический класс Calculator, с методами для выполнения основных арифметических операций.
Написать программу, которая выводит на экран основные арифметические операции.

Задание 20

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: Описать структуру с именем Train, содержащую следующие поля: название пункта назначения, номер поезда, время отправления.
Написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив, состоящий из восьми элементов типа Train (записи должны быть упорядочены по номерам поездов); вывод на экран информации о поезде, номер которого введен с клавиатуры (если таких поездов нет, вывести соответствующее сообщение).

Задание 21

Создайте класс MyClass и структуру MyStruct, которые содержат в себе поля public string change.
В классе Program создайте два метода:
- static void ClassTaker(MyClass myClass), который присваивает полю change экземпляра myClass значение «изменено».
- static void StruktTaker(MyStruct myStruct), который присваивает полю change экземпляра myStruct значение «изменено».
Продемонстрируйте разницу в использовании классов и структур, создав в методе Main() экземпляры структуры и класса. Измените, значения полей экземпляров на «не изменено», а затем вызовите методы ClassTaker и StruktTaker. Выведите на экран значения полей экземпляров.
Проанализируйте полученные результаты.

Задание 22

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте структуру с именем - Notebook.
Поля структуры: модель, производитель, цена.
В структуре должен быть реализован конструктор для инициализации полей и метод для вывода содержимого полей на экран.

Задание 23

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте статический класс с методом void Print (string stroka, int color), который выводит на экран строку заданным цветом.
Используя перечисление, создайте набор цветов, доступных пользователю.
Ввод строки и выбор цвета предоставьте пользователю.

Задание 24

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте перечисление, в котором будут содержаться должности сотрудников как имена констант.
Присвойте каждой константе значение, задающее количество часов, которые должен отработать сотрудник за месяц.
Создайте класс Accauntant с методом bool AskForBonus(Post worker, int hours), отражающее давать или нет сотруднику премию.
Если сотрудник отработал больше положеных часов в месяц, то ему положена премия.

Задание 25

Используя Visual Studio, создайте проект по шаблону Console Application.
Реализуйте программу, которая будет принимать от пользователя дату его рождения и выводить количество дней до его следующего дня рождения.

Задание 26

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте четыре лямбда оператора для выполнения арифметических действий: (Add – сложение, Sub – вычитание, Mul – умножение, Div – деление).
Каждый лямбда оператор должен принимать два аргумента и возвращать результат вычисления.
Лямбда оператор деления должен делать проверку деления на ноль.
Написать программу, которая будет выполнять арифметические действия, указанные пользователем.

Задание 27

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте анонимный метод, который принимает в качестве аргумента массив делегатов и возвращает среднее арифметическое возвращаемых значений методов, сообщенных с делегатами в массиве.
Методы, сообщенные с делегатами из массива, возвращают случайное значение типа int.

Задание 28

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте анонимный метод, который принимает в качестве параметров три целочисленных аргумента и возвращает среднее арифметическое этих аргументов.

Задание 29

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте класс MyList<T>.
Реализуйте в простейшем приближении возможность использования его экземпляра аналогично экземпляру класса List<T>.
Минимально требуемый интерфейс взаимодействия с экземпляром, должен включать метод добавления элемента, индексатор для получения значения элемента по указанному индексу и свойство только для чтения для получения общего количества элементов.

Задание 30

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте класс MyClass<T>, содержащий статический фабричный метод – T FacrotyMethod(), который будет порождать экземпляры типа, указанного в качестве параметра типа (указателя места заполнения типом – Т).

Задание 31

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте класс CarCollection<T>.
Реализуйте в простейшем приближении возможность использования его экземпляра для создания парка машин.
Минимально требуемый интерфейс взаимодействия с экземпляром, должен включать метод добавления машин с названием машины и года ее выпуска, индексатор для получения значения элемента по указанному индексу и свойство только для чтения для получения общего количества элементов.
Создайте метод удаления всех машин автопарка.

Задание 32

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте класс Dictionary<TKey,TValue>.
Реализуйте в простейшем приближении возможность использования его экземпляра аналогично экземпляру класса Dictionary из пространства имен System.Collections.Generic.
Минимально требуемый интерфейс взаимодействия с экземпляром, должен включать метод добавления пар элементов, индексатор для получения значения элемента по указанному индексу и свойство только для чтения для получения общего количества пар элементов.

Задание 33

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте класс ArrayList.
Реализуйте в простейшем приближении возможность использования его экземпляра аналогично экземпляру класса ArrayList из пространства имен System.Collections.

Задание 34

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте программу, которая будет выводить на экран цепочки падающих символов.
Длина каждой цепочки задается случайно (как в фильме Матрица).

Задание 35

Используя Visual Studio 2010, создайте проект по шаблону Console Application.
Напишите программу, в которой метод будет вызываться рекурсивною.
Каждый новый вызов метода выполняется в отдельном потоке.

Задание 36

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте коллекцию MyList<T>.
Реализуйте в простейшем приближении возможность использования ее экземпляра аналогично экземпляру класса List<T>.
Минимально требуемый интерфейс взаимодействия с экземпляром, должен включать метод добавления элемента, индексатор для получения значения элемента по указанному индексу и свойство только для чтения для получения общего количества элементов.
Реализуйте возможность перебора элементов коллекции в цикле foreach.

Задание 37

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте коллекцию MyDictionary<TKey,TValue>.
Реализуйте в простейшем приближении возможность использования ее экземпляра аналогично экземпляру класса Dictionary<TKey,TValue>.
Минимально требуемый интерфейс взаимодействия с экземпляром, должен включать метод добавления элемента, индексатор для получения значения элемента по указанному индексу и свойство только для чтения для получения общего количества элементов.
Реализуйте возможность перебора элементов коллекции в цикле foreach.

Задание 38

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте метод, который в качестве аргумента принимает массив целых чисел и возвращает коллекцию всех четных чисел массива.
Для формирования коллекции используйте оператор yield.

Задание 39

Требуется: Описать структуру с именем Worker, содержащую следующие поля: фамилия и инициалы работника; название занимаемой должности; год поступления на работу.
Написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив, состоящий из пяти элементов типа Worker (записи должны быть упорядочены по алфавиту);
1. если значение года введено не в соответствующем формате выдает исключение.
2. вывод на экран фамилии работника, стаж работы которого превышает введенное значение.

Задание 40

Используя Visual Studio, создайте проект по шаблону Console Application.
Требуется: Описать структуру с именем Price, содержащую следующие поля:
1. название товара;
2. название магазина, в котором продается товар;
3. стоимость товара в BYN.
Написать программу, выполняющую следующие действия:
1. ввод с клавиатуры данных в массив, состоящий из двух элементов типа Price (записи должны быть упорядочены в алфавитном порядке по названиям магазинов);
2. вывод на экран информации о товарах, продающихся в магазине, название которого введено с клавиатуры (если такого магазина нет, вывести исключение).

Задание 41

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте класс Calculator.
В теле класса создайте четыре метода для арифметических действий: (Add – сложение, Sub – вычитание, Mul – умножение, Div – деление).
Метод деления должен делать проверку деления на ноль, если проверка не проходит, сгенерировать исключение.
Пользователь вводит значения, над которыми хочет произвести операцию и выбрать саму операцию.
При возникновении ошибок должны выбрасываться исключения.

Задание 42

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте класс Block с 4-мя полями сторон, переопределите в нем методы:
1. Equals – способный сравнивать блоки между собой;
2. ToString – возвращающий информацию о полях блока.

Задание 43

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте класс House c двумя полями и свойствами.
Создайте два метода Clone() и DeepClone(), которые выполняют поверхностное и глубокое копирование соответственно.
Реализуйте простой способ проверки.

Интерфейс ICloneable поддерживает копирование, при котором создается новый экземпляр класса с тем же значением, что и у существующего экземпляра.
Реализовав интерфейс ICloneable, можно создать все условия для копирования объекта.
Интерфейс ICloneable содержит один член, Clone, предназначенный для поддержки копирования помимо выполняемого с помощью метода MemberwiseClone.

Задание 44

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте класс, который будет содержать информацию о дате (день, месяц, год).
С помощью механизма перегрузки операторов, определите операцию разности двух дат (результат в виде количества дней между датами), а также операцию увеличения даты на определенное количество дней.

Задание 45

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте структуру описывающую точку в трехмерной системе координат.
Организуйте возможность сложения двух точек, через использование перегрузки оператора +.

Задание 46

Используя Visual Studio, создайте проект по шаблону Console Application.
Представьте, что вы пишите приложение для Автостанции и вам необходимо создать простую mколлекцию автомобилей со следующими данными:
1. марка автомобиля;
2. модель;
3. год выпуска;
4. цвет. 
А также вторую коллекцию с моделью автомобиля, именем покупателя и его номером телефона.
Используя простейший LINQ запрос, выведите на экран информацию о покупателе одного из автомобилей и полную характеристику приобретенной ними модели.

Задание 47

Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте класс с методом помеченным модификатором доступа public. 
Докажите, что к данному методу можно обратиться не только из текущей сборки, но и из производного класса внешней сборки.

About

A set of tasks in C# at an essential level.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%