Материал: Розроблення бібліотеки класів для подання інформації про тарифікацію викладачів коледжа

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Розглянемо тепер зміст, що його матиме поняття “викладач” з точки зору потреб тарифікації. Головне призначення цього поняття полягає в тім, щоб абстрагувати декілька різнорідних груп даних про викладача. До першої групи відносяться дані, що описують викладача як особу (Рис. 1).

Абстрагуватимемо цю групу даних поняттям “особа”. Основні властивості цього поняття такі: «прізвище», «ім’я», «по-батькові», «стать», «дата народження», «адреса», «контакт», «фото». Окрім цих властивостей доцільно ввести й похідні, як то: «вік на дату», «прізвище та ініціали», «ПІБ». Має існувати можливість перевіряти примірники цього поняття на рівність та зберігати і завантажувати їх стан.

Інша група даних про викладача характеризує його освіту, тому її природно назвати “дані про освіту”. Основна особливість цього поняття полягає в тім, що його змістом є сукупності записів про закінчені навчальні заклади. Ці записи називатимемо “запис про освіту”. Характеристичними атрибутами цього поняття є: «назва (навчального) закладу», «рік закінчення (закладу)», «спеціальність», «кваліфікація».

Рис. 1. Структура базової інформації про особу

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

В основі процедури реєстрації лежать два поняття: “картка викладача” та “картотека викладачів”. Завданням картотеки викладачів є надання кожній картці викладача унікального номера (ідентифікатора), зберігання усіх ідентифікованих карток та забезпечення доступу до картки за її номером. Зауважимо, що в межах системи має існувати лише один об’єкт “картотека викладачів” і кожному викладачеві коледжу має відповідати одна і лише одна картка викладача.

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

З огляду на зміст поняття “картка викладача” можемо тепер конкретизувати і зміст поняття “викладач”. Примірники цього поняття повинні мати три основних характеристичних властивості, а саме:

·  «номер» - за цією властивістю отримується номер картки викладача, за яким кожний викладач відрізнятиметься один від одного;

·        «картка» - за цією властивістю отримується доступ до інформації про викладача, тобто доступ до примірника “картка викладача” з колекції “картотека викладачів”;

·        можливість перевіряти рівність примірників “викладач”.

Рис. 2. Структура інформації у картці викладача

Як бачимо, примірники “викладач” фактично відіграють роль посилань на відповідні елементи-картки об’єкта “картотека викладачів”, причому кожному примірнику “викладач” відповідає один і лише один примірник “картка викладача” з колекції “картотека викладачів”.

Завершуючи аналіз предметної області, наведемо зведену таблицю, що подає словник ідентифікованих ключових понять та відповідних їм класів.

Таблиця 1

Поняття

Клас або інтерфейс

Пояснення

“особа”

Особа

Абстрагує дані, що властиві викладачу як особі.

“дані про освіту”

ДаніПроОсвіту

Абстрагує дані, що описують отриману викладачем освіту.

“картка викладача”

КарткаВикладача

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

“картотека викладачів”

КартотекаВикладачів

Множина примірників “картка викладача”, що ідентифікуються своїми номерами.

“викладач”

Викладач

Абстракція, що подає викладача.

“посилання на дисципліну”

ПосиланняНаДисципліну

Абстракція, що на взаємно-однозначній основі репрезентує примірники поняття “дисципліна”.

“дисципліна”

ІДисциплінаТарифікації

Інтерфейс, що визначає потрібні з точки зору тарифікації властивості дисципліни.

“елемент тарифікації”

ЕлементТарифікації

Абстрагує пару (викладач, дисципліна) для подання у колекції тарифікація.

“тарифікація”

Тарифікація

Множина примірників “елемент тарифікації”.



2. ПРОЕКТУВАННЯ ТА ВТІЛЕННЯ КЛАСІВ

.1 Проектування класів

У попередніх розділах було встановлено, що у розроблюваній ІДС «Розклад занять коледжу» може існувати лише по одному примірнику об’єктів класів КартотекаВикладача та Тарифікація. Цей факт вимагає застосувати для їх втілення шаблон проектування класу-одинака (singleton). Клас, побудований за цим шаблоном забезпечує глобальну точку доступу до єдиного примірника класу. Цей доступ здійснюється за допомогою спільного (shared) метода класу, що його зазвичай називають «примірник». Існування єдиного примірника означає також, що конструктор класу виконується лише один раз, а саме з метою створення цього єдиного примірника.

На рис.3 показано спроектовану діаграму класів, що зв’язує класи ЕлементТарифікації та Тарифікація відношенням наповнення.

Рис. 3. Відношення між класуми КарткаВикладача та Картотека Викладачів також є відношенням наповнення

Взаємозв’язок цих класів показано на рис. 4. Зауважимо, що для класу Тарифікація у якості базового використано клас родовий клас List(Of TItem), який є складовою середовища програмування і подає строго типізований список. Класи КлючованаКолекція та КлючованийЕлемент - це класи, що їх було розроблено у рамках ІДС «Розклад занять коледжу». Вони забезпечують ведення колекцій з елементами, що мають змінювані ключі.

На обох рисунках показано також класи, що подають складові класів ЕлементТарифікації та КарткаВикладача.

Рис. 4

.2 Опис втілення класів

Далі наводиться опис втілених класів. Описуються складові класів, які доступні для використання ззовні. Загалом опис кожного класу містить проголошення та використання (якщо клас не є абстрактним), опис доступних конструкторів, властивостей, методів та подій, якщо такі визначено у класі. Поряд з власними властивостями та методами у опис класу включено й опис успадкованих властивостей та методів.

.2.1 Клас Особа

.2.1.1 Призначення

Клас Особа призначено для подання інформації, яка має особістісний характер і властива викладачу як людині. У класі визначено перелік Стать, що має значення Чол та Жін.

.2.1.2. Синтаксис

Проголошення:Class Особа

Використання:примірник As Особа

.2.1.3 Конструктори

Назва

Опис

Особа(Стать)

Створює та ініціалізує новий примірник класу Особа з заданим значенням статі.

Особа(BinaryReader)

Створює та ініціалізує новий примірник класу Особа даними з файла.


.2.1.3 Властивості

Назва

Опис

Стать()

Надає значення статі, що його має цей примірник. Використання: Dim знач As Стать Dim прим As Особа знач = прим.Стать

Батьківське(String)

Надає/встановлює значення по-батькові. Використання: Dim знач As String Dim прим As Особа знач = прим.Батьківське прим.Батьківське = знач

Імення(String)

Надає/встановлює значення імені. Використання: Dim знач As String Dim прим As Особа знач = прим.Імення прим.Імення = знач

Прізвище(String)

Надає/встановлює значення прізвища. Використання: Dim знач As String Dim прим As Особа знач = прим.Прізвище прим.Прізвище = знач

ДатаНародження(Date)

Надає/встановлює значення дати народження. Використання: Dim знач As Date Dim прим As Особа знач = прим.ДатаНародження прим.ДатаНародження = знач


.2.1.3 Методи

Назва

Опис

ПІБ()

Повертає стрічку з прізвищем, іменем та по-батькові. Використання: Dim знач As String Dim прим As Особа знач = прим.ПІБ

ПрізвищеІніціали()

Повертає стрічку з прізвищем та ініціалами. Використання: Dim знач As String Dim прим As Особа знач = прим.ПрізвищеІніціали

Вік(Date)

Повертає вік, як повне число років викладача на задану дату. Використання: Dim знач As Integer Dim дата As Date Dim прим As Особа знач = прим.Вік(дата)

зберегтиУ(BinaryWriter)

Записує стан цього примірника у файл.

Equals(Object)

Перевизначено. Повертає True, якщо цей примірник рівний заданому, інакше повертає False. Використання: Dim знач As Boolean Dim прим1 As Особа Dim прим2 As Object знач = прим1.Equals(прим2)

ToString()

Перевизначено. Повертає стрічку з прізвищем, ім’ям, батьківськи та датою народження.


.2.2 Клас Тарифікація

.2.2.1 Призначення

Клас Тарифікація подає список примірників класу ЕлементТарифікації. Забезпечує глобальну точку доступу до єдиного примірника цього класу.

.2.2.2 Синтаксис

Проголошення:Class ТарифікаціяList(Of ЕлементТарифікації)

Використання:

Звертання до властивостей та методів єдиного примірника здійснюється за допомогою виклику Тарифікація.Примірник.прим As Тарифікація

прим = Тарифікація.Примірник

.2.2.2 Властивості

Назва

Опис

МаєПустеЗначення()

Надає True, якщо примірник є пустим списком. Використання: Dim знач As Boolean знач = _ Тарифікація.Примірник.МаєПустеЗначення

Тарифіковано(Викладач)

Перевантажено. Надає True, якщо для заданого викладача розподілено хоча б одну дисицпліну. Використання: Dim знач As Boolean Dim викладач As Викладач знач = Тарифікація.Примірник. _ Тарифіковано(викладач)

Тарифіковано(Посилання)

Перевантажено. Надає True, якщо для заданої посиланням дисципліни розподілено хоча б одного викладача. Використання: Dim знач As Boolean Dim посилання As ПосиланняНаДисицпліну знач = Тарифікація.Примірник. _ Тарифіковано(посилання)

Тарифіковано(Дисципліна)

Перевантажено. Надає True, якщо для заданої дисципліни розподілено хоча б одного викладача. Використання: Dim знач As Boolean Dim посилання As ПосиланняНаДисицпліну знач = Тарифікація.Примірник. _ Тарифіковано(посилання)

РівеньТарифікації _ (Викладач)

Перевантажено. Надає число дисицплін, що їх розподілено для заданого викладача. Використання: Dim знач As Integer Dim викладач As Викладач знач = Тарифікація.Примірник. _ РівеньТарифікації(викладач)

РівеньТарифікації _ (Посилання)

Перевантажено. Надає число викладачів, що їх призначено на задану посиланням дисципліну. Використання: Dim знач As Integer Dim посилання As ПосиланняНаДисицпліну знач = Тарифікація.Примірник. _ РівеньТарифікації(посилання)


.2.3 Клас Викладач

.2.3.1 Призначення

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

.2.3.2 Синтаксис

Проголошення:Class Викладач

.2.3.3 Конструктори

Назва

Опис

Викладач()

Створює та ініціалізує новий примірник класу Викладач у початковий стан.

Викладач(BinaryReader)

Створює та ініціалізує новий примірник класу Викладач даними з файла.


.2.3.4 Властивості

Назва

Опис

Номер()

Надає стрічку з назвою виду контроля. Має перекриватися у нащадках. Використання: Dim знач As String Dim прим As Викладач знач = прим.Номер

Картка()

Надає True, Dim знач As Boolean Dim прим As Викладач знач = прим.Картка


.2.3.5 Методи

Назва

Опис

завантажитиЗ(BinaryReader)

Завантажує новий стан цього примірника з файла.

зберегтиУ(BinaryWriter)

Записує стан цього примірника у файл.


.2.4 Клас КарткаВикладача

.2.4.1 Призначення

Абстрактний клас КарткаВикладача є класом, що наслідує. У класі визначаються спільні для усіх видів контролю властивості та методи. Клас не призначено для безпосереднього створення його примірників

2.2.4.2 Синтаксис

Проголошення:Class КарткаВикладача

.2.4.3 Конструктори

Назва

Опис

КарткаВикладача()

Створює та ініціалізує новий примірник класу КарткаВикладача у початковий стан.

КарткаВикладача(BinaryReader)

Створює та ініціалізує новий примірник класу КарткаВикладача даними з файла.


.2.4.4 Властивості

НазваОпис


Номер()

Надає стрічку з назвою виду контроля. Має перекриватися у нащадках. Використання: Dim знач As String Dim прим As КарткаВикладача знач = прим.Номер

Особа()

Надає стрічку з назвою виду контроля. Має перекриватися у нащадках Dim знач As String Dim прим As КарткаВикладача знач = прим.особа

ДаніПроОсвіту()

Надає стрічку з назвою виду контроля. Має перекриватися у нащадках Dim знач As String Dim прим As КарткаВикладача знач = прим.ДаніПроОсвіту

Категорія()

Надає стрічку з назвою виду контроля. Має перекриватися у нащадках Dim знач As String Dim прим As КарткаВикладача знач = прим.Категорія

ХідВикладання()

Надає стрічку з назвою виду контроля. Має перекриватися у нащадках