- •Лабораторна робота 2. Тема: c#. Методи. Передача параметрів. Ref та out параметри. Методи з довільним числом параметрів. Методи- вирази.
- •Лабораторна робота 3. Тема: c#. Масиви. Одновимірні масиви. Клас Array. Випадкові числа.
- •Лабораторна робота 4. Тема: c#. Масиви: багатовимірні, масиви масивів(зубчасті).
- •Лабораторна робота 5. Рядки. Обробка рядків.
- •Лабораторна робота 6 - 7.
- •Лабораторна робота 8.
- •Лабораторна робота 9 Cамостійне опрацювання Анонімні класи. Часткові(partial) типи. Аналіз класу Object. Упаковка(boxing) та розпаковка(unboxing). Простори імен.
- •Поняття простору імен.
Лабораторна робота 6 - 7.
Тема: C#. Класи. Визначення класу. Специфікатори доступу. Конструктори класу. Властивості. Автоматичні властивості. Readonly - поля. Ключове слово this.
Контрольні запитання:
Порівняйте процедурний та ОО стиль програмування.
Назвіть основні приципи ООП.
Що таке клас? Що називають об’єктом ?
Визначення класу.
Створення об’єктів класу.
Ініціалізація об’єктів класу при створенні.
Визначення поля, методу класу. Виклик методу.
Специфікатори видимості класу у C#.
Доступ до полів та методів класу. Порівняти різні специфікатори доступу до полів(методів).
Конструктори класу. Визначення.
Конструктори – делегати.
Властивості.
Автоматичні властивості.
Ініціалізація автоматичних властивостей(C#6).
Модифікатор readonly.
Як створити властивість тільки для читання?
Реалізація властивостей як виразів(C#6).
Ключове слово this. Використання.
Знайдіть помилки у програмі.
using System;
class DumbBell;
{
int weight;
public void setWeight(int w)
{ weight = w;}
}
void Main()
{
DumbBell bar;
DumbBell(200);
Console.WriteLine("The weight is {0} ", bar.weight);
}
Завдання 1.
Вимоги до виконання: використати у методах ключове слово this.
Варіанти:
Створити клас Спортсмен(учасник лижних гонок). Визначити у класі:
Властивості : прізвище, час старту (години, хвилини, секунди) та час фінішу
Автоматичну властивість : команда
Властивість для читання час результату(різниця між часом фінішу та часом старту)
Методи: конструктори, редагування даних про спортсмена, вивід інформації про спортсмена
Валідація: прізвище не повинно містити інших символів, крім, букв; час фінішу повинен перевищувати час старту
Перевірити роботу класу.
Створити клас Книга. Визначити у класі:
Властивості автор , рік випуску, жанр(перелічувального типу)
Автоматичну властивість: назва
Комбіновану властивість для читання : властивість автор + назва книги
Методи: конструктори, редагування даних про книгу, вивід інформації про книгу
Валідація: прізвище не повинно містити інших символів, крім, букв; рік випуску більший 1950 року
Перевірити роботу класу.
Створити клас Студент. Визначити у класі:
Поля: прізвище, ім’я, масив оцінок
Комбіновану властивість : прізвище та ім’я
Властивість для читання:: середній бал студента
Автоматичну властивість : команда
Методи: конструктори, редагування даних про студента, виставлення оцінки, вивід інформації про студента
Валідація: прізвище та ім’я не повинно містити інших символів, крім, букв; оцінка повинна бути у 100 бальній системі
Перевірити роботу класу.
Створити клас Фільм. Визначити у класі:
Поля: жанр(перелічувального типу), актори, рік випуску
Властивості рік випуску, жанр
Автоматичну властивість: назва
Комбіновану властивість для читання : властивість жанр + назва фільму
Методи: конструктори, редагування даних про фільм, вивід інформації про фільм
Валідація: рік випуску більший 1930 року
Перевірити роботу класу.
Створити клас Медикамент. Визначити у класі:
Поля: категорія(перелічувального типу), ціна, виробник
Властивості: виробник, категорія
Автоматичну властивість: назва
Комбіновану властивість для читання : властивість жанр + назва фільму
Методи: конструктори, редагування даних про ліки, вивід інформації про ліки
Валідація: ціна >0
Перевірити роботу класу.
Створити клас Екзамен. Визначити у класі:
Поля: назва предмету, кількість годин, кількість кредитів(дробове)
Автоматичну властивість: дата екзамену(DateTime)
Комбіновану властивість для читання : предмет + дата
Властивості доступу до оцінок
Методи: конструктори, редагування даних про екзамен, вивід інформації про екзамен
Валідація: назва предмету не повинна містити інших символів, крім, букв; кількість годин не менше 24, кількість кредитів не менше 1
Перевірити роботу класу.
Створити клас Товариш. Визначити у класі:
Поля : прізвище, ім’я, поштова скринька, номер телефону
Комбіновану властивість : прізвище та ім’я
Автоматичну властивість: дата народження(DateTime)
Властивість для читання : знак зодіаку
Властивості доступу до полів
Методи: конструктори, редагування даних про товариша, вивід інформації про товариша
Валідація: поштова скринька повинна бути вірною, прізвище не повинно містити інших символів, крім, букв; телефон містить тільки цифри
Перевірити роботу класу.
Створити клас Персона. Визначити у класі:
Поля : прізвище, ім’я, рік народження. стать
Комбіновану властивість : прізвище + ім’я
Автоматичну властивість: захоплення
Властивість для читання : кількість повних років
Властивості доступу до полів
Методи: конструктори, редагування даних про персону, вивід інформації про персону
Валідація: прізвище та ім’я не повинно містити інших символів, крім, букв Перевірити роботу класу.
Створити клас Товар. Визначити у класі:
Поля: категорія(перелічувального типу), ціна, виробник, назва, кількість
Властивості: виробник, категорія
Автоматичну властивість: назва
Комбіновану властивість для читання : вартість товару(ціна * кількість) Методи: конструктори, редагування даних про товар, вивід інформації про товар
Валідація: ціна >0
Створити клас Поїзд. Визначити у класі:
Поля : номер поїзда, напрям, час відправлення та прибуття.
Комбіновану властивість :
Властивості: час відправлення та час прибуття
Властивість для читання : кількість годин у дорозі
Властивості доступу до полів
Методи: конструктори, редагування даних про поїзд, вивід інформації про поїзд
Валідація: час відправлення менший часу прибуття
Перевірити роботу класу.
Завдання 2.
Визначити клас Car(Авто) з наступними елементами – даними:
yearModel – рік випуску моделі авто;
brand – марка авто;
maxSpeed – максимальна швидкість авто;
speed – поточна швидкість авто
Клас повинен містити наступні функції елементи:
властивості доступу до полів класу
Accelerate – збільшення поточної швидкості на задане число(по замовчуванню 5);
Brake – зменшення поточної швидкості на задане число(по замовчуванню 5).
Перевірка (Input Validation): поточна швидкість не повинна перевищувати максимальну.
Протестувати роботу класу.
Завдання 3.
Скласти програму, використовуючи опис класу з завдання № 1.
Утворити клас Змагання, що міститиме інформацію про спортсменів(у вигляді масиву чи списку). Передбачити у класі додавання спортсменів. Вилучення, редагування даних про спортсменів, пошук трьох найкращих спортсменів. Організувати меню для демонстрації класу Змагання.
Утворити клас Бібліотека, що міститиме інформацію про книги(у вигляді масиву чи списку). Передбачити у класі додавання книг, вилучення, редагування даних про книги, пошук книг за назвою та автором. Організувати меню для демонстрації класу Бібліотека.
Утворити клас Група, що міститиме інформацію про результати сесії студентів певної групи(у вигляді масиву чи списку студентів). Передбачити у класі додавання студентів, вилучення, редагування даних про студента, пошук студента за прізвищем, знаходження середнього балу групи з предмету. Організувати меню для демонстрації класу Група.
Утворити клас Відеотека, що міститиме інформацію про фільми (у вигляді масиву чи списку фільмів). Передбачити у класі додавання фільмів, вилучення, редагування даних про фільми, пошук фільмів за жанром та акторами. Організувати меню для демонстрації класу Відеотека.
Утворити клас Аптека, що міститиме інформацію про ліки (у вигляді масиву чи списку ліків). Передбачити у класі додавання ліків, вилучення, редагування даних про ліки, пошук ліків за категоріями та назвою. Організувати меню для демонстрації класу Аптека.
Утворити клас Екзамени, що міститиме інформацію про екзамени (у вигляді масиву чи списку екзаменів). Передбачити у класі додавання екзаменів, вилучення, редагування даних про екзамени, пошук екзаменів за кількістю кредитів та назвою. Організувати меню для демонстрації класу Екзамени.
Утворити клас Друзі, що міститиме інформацію про друзів (у вигляді масиву чи списку друзів). Передбачити у класі додавання друзів, вилучення, редагування даних про друзів, пошук друзів за іменем, прізвищем, обчислення кількості друзів, що мають поштову скриньку на gmail.com . Організувати меню для демонстрації класу Друзі.
Утворити клас Персони, що міститиме інформацію про персон (у вигляді масиву чи списку персон). Передбачити у класі додавання персон, вилучення, редагування даних про персон, пошук осіб за іменем, статтю, віком. Організувати меню для демонстрації класу Персони.
Утворити клас Магазин, що міститиме інформацію про товари (у вигляді масиву чи списку товарів). Передбачити у класі додавання товарів, вилучення, редагування даних про товари, пошук товарів за категорією, за назвою та ціною, обчислення загальної вартості товарів певної категорії . Організувати меню для демонстрації класу Магазин.
Утворити клас Залізниця, що міститиме інформацію про товари (у вигляді масиву чи списку поїздів). Передбачити у класі додавання поїздів, вилучення, редагування даних про поїзди, пошук поїздів за напрямом категорією, за часом відправлення . Організувати меню для демонстрації класу Залізниця.
