Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Кафедра АСУ
Лабораторна робота №5
з дисципліни ООП
“ Шаблонні класи С++”
Мета: ознайомитись зі структурою, синтаксисом та семантикою шаблонних класів С++, навчитись їх застосовувати при будові програмних систем.
Послідовність роботи:
Ознайомитись з теоретичним матеріалом про шаблонні класи.
Проаналізувати результат роботи прикладу програми з використанням шаблонного класу для роботи з векторами елементів визначених типів.
Виконати програму для інших значень параметрів шаблонного класу.
Для заданого варіанта завдання написати з використанням шаблонних класів.
Оформити звіт про роботу за такою структурою:
Назва роботи;
Мета роботи;
Послідовність роботи;
Індивідуальне завдання;
Текст програми;
Контрольний приклад та результати роботи програми;
Висновки;
Індивідуальне завдання: створити шаблонний клас – однозв’язний кільцевий список у динамічній пам’яті. Тип елементів черги визначається параметром шаблона. Передбачити функції для виконання таких операцій: занесення заданого елемента до списку, пошук мінімального та максимального елементів, виведення елементів списку на екран.
Лістинг програми (код програми):
#include <iostream>
#include <conio.h>
using namespace std;
template <typename X>
class list {
private:
struct A{
A *next;
X data;
};
A *head;
A *last;
public:
list(){ head=NULL;
last=NULL;
}
~list(){}
void add(X x){
if(!head){
A *tmp=new A;
tmp->data=x;
tmp->next=head;
head=tmp;
last=tmp;
} else {
A *tmp=new A;
tmp->data=x;
last->next=tmp;
last=tmp;
last->next=head;
}
}
X list::FindMax() {
X max=head->data;
for(A *tmp=head; tmp!=last; tmp=tmp->next) {
if (tmp->data>max) max=tmp->data;
}
return max;
}
X list::FindMin() {
X min=head->data;
for(A *tmp=head; tmp!=last; tmp=tmp->next) {
if (tmp->data<min) min=tmp->data;
}
return min;
}
void OutList() {
for(A *tmp=head ; tmp!=last; tmp=tmp->next) {
cout<<tmp->data<<" ";
}
cout<<endl;
}
};
int main() {
list<int> My;
My.add(3);
My.add(5);
My.add(17);
My.add(2);
My.add(0); // last element zero
My.OutList();
cout<<"Max="<<My.FindMax()<<endl;
cout<<"Min="<<My.FindMin()<<endl;
_getch();
return 0;
}
Скріншот виконання програми:
Висновок: виконуючи дану лабораторну роботу, я ознайомився зі структурою, синтаксисом та семантикою шаблонних класів С++, навчився їх застосовувати при будові програмних систем.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!