Skip to content
This repository has been archived by the owner on Dec 14, 2017. It is now read-only.

Classes, override ToString(), Lists, Constructors

Notifications You must be signed in to change notification settings

university-projects-se-6050103/course02lab04oop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Requirements

Визначити клас Person, який має

  • закрите поле типу string, в якому зберігається ім'я;
  • закрите поле типу string, в якому зберігається прізвище;
  • закрите поле типу System.DateTime для дати народження.

У класі Person визначити конструктори:

  • конструктор c трьома параметрами типу string, string, DateTime для ініціалізації всіх полів класу;
  • конструктор без параметрів, ініціалізуючий всі поля класу деякими значеннями за замовчуванням.

У класі Person визначити властивості з методами get і set:

  • властивість типу string для доступу до поля з ім'ям;
  • властивість типу string для доступу до поля з прізвищем;
  • властивість типу DateTime для доступу до поля з датою народження;
  • властивість типу int з методами get і set для отримання інформації (get) і зміни (set) року народження в закритому полі типу DateTime, в якому зберігається дата народження.

У класі Person визначити

  • перевантажену (override) версію віртуального методу string ToString () для формування рядка зі значеннями всіх полів класу;
  • віртуальний метод string ToShortString (), який повертає рядок, що містить тільки ім'я і прізвище.

Зрівняйте час, необхідний для виконання операцій з елементами одновимірного, двовимірного прямокутного і двовимірного ступінчастого масивів з однаковим числом елементів.

Для цього в методі Main () створіть

  • одновимірний масив;
  • двовимірний прямокутний масив;
  • двовимірний ступінчастий масив.

Тип елементів масивів залежить від варіанту лабораторної роботи. Масиви повинні мати однакове число елементів. Якщо число рядків в двовимірному прямокутному масиві дорівнює nrow, а число стовпців ncolumn, то одновимірний масив повинен містити nrow * ncolumn елементів, в двовимірному ступінчастому масиві загальне число елементів також має дорівнювати nrow * ncolumn.

Значення nrow і ncolumn вводяться в процесі роботи програми у вигляді одного рядка з роздільниками. У запрошенні, яке отримує користувач, повинна бути інформація про те, які символи можна використовувати як роздільники, число роздільників повинно бути більше 1. За допомогою методу Split класу System.String додаток розбирає введений користувачем текстовий рядок з інформацією про число рядків і число стовпців двовимірного масиву і привласнює значення змінним, які містять значення nrow і ncolumn. У першій лабораторній роботі не потрібно обробляти помилки введення, передбачається, що користувач правильно ввів дані.

Додаток розподіляє пам'ять для всіх масивів і ініціалізує елементи масивів. Для ініціалізації елементів можна використовувати конструктор без параметрів.

Для всіх елементів масивів виконується одна і та ж операція, наприклад, присвоюється значення одному з властивостей, визначених для елементів масиву. У лабораторній роботі потрібно порівняти час виконання цієї операції для одновимірного, двовимірного прямокутного і двовимірного ступеневої масивів з однаковим числом елементів.

У блоці коду, для якого вимірюється час, не повинно бути операцій розподілу пам'яті для масивів, ініціалізації елементів масивів і операцій виведення даних на консоль. Блоки коду повинні містити тільки операції з елементами масиву.

Обчислені значення часу виконання операцій для трьох типів масивів, а також число рядків nrow і стовпців ncolumn виводяться на консоль. Висновок повинен бути підписаний, тобто висновок повинен містити інформацію про те, якого типу масиву відповідає виведене значення.

Визначити тип Frequency - перерахування (enum) зі значеннями: Weekly, Monthly, Yearly.

Визначити клас Article, який має три відкритих властивості, що автореалізовуються, доступних для читання і запису:

  • властивість типу Person, в якому зберігаються дані автора статті;
  • властивість типу string для назви статті;
  • властивість типу double для рейтингу статті. У класі Article визначити:
  • конструктор c параметрами типу Person, string, double для ініціалізації всіх властивостей класу;
  • конструктор без параметрів, ініціалізовуючий всі властивості класу деякими значеннями за умовчанням;
  • перевантажену (override) версію віртуального методу string ToString () для формування рядка зі значеннями всіх властивостей класу.

Визначити клас Magazine, який має

  • закрите поле типу string c назвою журналу;
  • закрите поле типу Frequency з інформацією про періодичність виходу журналу;
  • закрите поле типу DateTime c датою виходу журналу;
  • закрите поле типу int з тиражем журналу;
  • закрите поле типу Article [] зі списком статей в журналі.

У класі Magazine визначити конструктори:

  • конструктор з параметрами типу string, Frequency, DateTime, int для ініціалізації відповідних полів класу;
  • конструктор без параметрів, ініціалізовуючий поля класу значеннями за замовчуванням.

У класі Magazine визначити властивості c методами get і set:

  • властивість типу string для доступу до поля з назвою журналу;
  • властивість типу Frequency для доступу до поля з інформацією про періодичність виходу журналу;
  • властивість типу DateTime для доступу до поля c датою виходу журналу;
  • властивість типу int для доступу до поля з тиражем журналу;
  • властивість типу Article [] для доступу до поля зі списком статей.

У класі Magazine визначити

  • властивість типу double (тільки з методом get), в якому обчислюється середнє значення рейтингу в списку статей;
  • індексатор булевого типу (тільки з методом get) з одним параметром типу Frequency; значення індексатора одно true, якщо значення поля типу Frequency збігається зі значенням індексу, і false у противному разі;
  • метод void AddArticles (params Article []) для додавання елементів в список статей в журналі;
  • перевантажену версію віртуального методу string ToString () для формування рядка зі значеннями всіх полів класу, включаючи список статей;
  • віртуальний метод string ToShortString (), який формує рядок зі значеннями всіх полів класу без списку статей, але зі значенням середнього рейтингу статей.

У методі Main ()

  • Створити один об'єкт типу Magazine, перетворити дані в текстовий вигляд за допомогою методу ToShortString () і вивести дані.
  • Вивести значення індексатора для значень індексу Frequency.Weekly, Frequency.Monthly і Frequency.Yearly.
  • Присвоїти значення всім визначеними в типі Magazine властивостям, перетворити дані в текстовий вигляд за допомогою методу ToString () і вивести дані.
  • З допомогою методу AddArticles (params Article []) додати елементи в список статей і вивести дані об'єкта Magazine, використовуючи метод ToString ().
  • Порівняти час виконання операцій з елементами одновимірного, двовимірного прямокутного і двовимірного ступінчастого масивів з однаковим числом елементів типу Article.

About

Classes, override ToString(), Lists, Constructors

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages