Курсова робота
За об'єктно-орієнтованому програмуванню
На тему:
Об'єктна реалізація поліморфного контейнера на основі лінійного списку
Зміст
Введення
1. Теоретичний опис лінійного списку з алгоритмами реалізації основних операцій
2. Опис основних понять і механізмів ООП
Історія
Головні поняття і різновиди
Основні поняття
Абстракція даних
Інкапсуляція
Приховування даних
Спадкування
Поліморфізм
Визначення ООП
Концепції
Особливості реалізації
Поля даних
Методи
3. Опис всіх розроблених класів
4. Опис демонстраційного модуля з характеристикою використаних стандартних компонентів
Перелік використаних компонентів
Опис використаних компонентів
5. Опис структури програми
Висновок
Список використаної літератури
Введення
Мета роботи: отримання навичок розробки об'єктних програм, включаючи створення набору власних взаємопов'язаних класів для об'єктної реалізації наступної інформаційної завдання:
База даних здатна зберігати користувачів трьох типів:
· Гість
· Користувач
· Адміністратор
Потрібно створити програму для виведення інформації про користувачів
Для реалізації завдання потрібно створити об'єкт контейнер користувачів, який реалізує наступні можливості:
· Додавання користувача
· Видалення користувача
· Виведення інформації про користувача
· Збереження інформації в зовнішньому файлі
· Завантаження збережених даних з файлу
Контейнер повинен бути реалізований на основі лінійного списку із заголовком.
1. Теоретичний опис лінійного списку з алгоритмами реалізації основних операцій
Динамічна реалізація лінійного списку, також як стека і черги, заснована на динамічному виділенні і звільненні пам'яті для елементів списку. Логічна послідовність елементів списку створюється посилальними змінними з адресами подальших елементів (останній елемент має порожню посилання nil ).
Знову ж для зручності реалізації будемо вважати, що список ЗАВЖДИ містить хоча б один елемент-заголовок з адресою першого реального елемента списку. Це дозволяє уніфікувати процедури додавання і видалення крайніх елементів і усунути деякі перевірки. Адреса елемента-заголовка задається змінною-покажчиком pHead. Ця змінна встановлюється при первісному створенні списку і надалі НЕ змінюється. Для реалізації основних дій використовуються допоміжні посилальні змінні.
Необхідні оголошення:
type pDinItem=^ TDinItem; {контрольний тип для адресації елементів списку}
TDinItem= record
{базовий тип, що визначає структуру елементу списку}
inf: lt; тип інформаційної частини gt ;;
next: pDinItem; {адреса наступного елемента}
end ;
var pHead: pDinItem;
Створення порожнього списку включає:
· виділення пам'яті під заголовок: new (pHead);
· установку порожній посилальної частини заголовка: pHead ^. next:= nil ;
Прохід за списком від першого елемента до останнього практично не відрізняється від проходу по черзі.
Пошук заданого елемента включає:
· установку допоміжного покажчика на адресу першого елементу списку
· організацію циклу проходу за списком із завершенням або за збігом інформаційної частини елемента із заданим значенням, або по досягненню кінця списку
· після завершення циклу перевірити значення допоміжного покажчика і зробити висновок про успішність пошуку
pCurrent:=pHead ^. next;