Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

OOP / Лаб 3

.docx
Скачиваний:
32
Добавлен:
10.02.2016
Размер:
25 Кб
Скачать

Министерство образования и науки Украины

Одесский национальный политехнический университет

Кафедра системного программного обеспечения.

Протокол лабораторной работы № 3

По дисциплине:

Объектно-ориентированное программирование

Вариант 10

Выполнил

студент AC-121

Куценко Дмитрий Сергеевич

Преподаватель Левченко А.Ю

Одесса 2013 (год)

Лабораторная работа №3

Динамические экземпляры объектов.

Исходные данные для лабораторной работы

Класс1 содержит данные из следующего набора:

1.int

3.double

6.char *

Объекты Класса1 являются элементами списка, который также является классом.

Над списком могут быть выполнены следующие операции:

2.Добавление элемента в конец списка.

5.Удаление элемента в конце списка.

11.Распечатка списка.

Студент выбирает свой вариант задания в соответствии с приведенной ниже таблицей. Для каждого варианта определен набор данных для Класса1 и операции, предусмотренные для работы со списком. В каждом задании дополнительно должна бать реализована операция вывода на экран всего списка.

Вариант Данные Класса1 Операции со списком

10 1,3,6 2,5,11

Выполнение лабораторной работы

Создать Класс1, который должен содержать конструктор, деструктор, а также методы извлечения и установки данных.

Создать класс Список, где каждый элемент представляет собой объект Класса1

Elem 1 Elem 2 Elem n

Код программы

#include<iostream>

#include <string>

using namespace std;

class Element

{

private:

int i;

double d;

char s[7];

Element *next;

public:

Element( int im, double dm, char *sm)

{

i = im;

d = dm;

strcpy_s(s, sm);

next = NULL;

}

void setNext(Element *cur)

{

next = cur;

}

Element* getNext()

{

return next;

}

void print()

{

cout<<"I:"<< i <<" D:"<<d<<" S:"<<s<<endl;

}

~Element(){}

};

class Spisok

{

private:

Element *head, *tail;

public:

Spisok()

{

head = tail = NULL;

}

void add(int i, double d, char *s)

{

if (head == NULL)

{

head = tail = new Element(i, d, s);

}

else

{

Element *elem = new Element(i, d, s);

tail->setNext(elem);

tail = elem;

}

}

void deleteLast()

{

if (head == tail)

{

delete tail;

head = tail = NULL;

}

else

{

Element *cur = head;

while (cur->getNext() != tail)

{

cur = cur->getNext();

}

delete tail;

tail = cur;

tail->setNext(NULL);

}

}

void printAll()

{

Element *cur=head;

while(cur!=NULL)

{

cur->print();

cur = cur->getNext();

}

}

};

int main()

{

int i;double d;char s[7];

Spisok *spis = new Spisok();

setlocale( LC_ALL,"Russian" );

int j;

cout<<"Введите количество приборов:";

cin>>j;

for(int k=1; k<=j; k++){

cout<<"Введите данные:"<<k<<endl;

cout<<"Введите I:";cin>>i;cout<<"Введите D:"; cin>>d; cout<<"Введите S:";cin>>s;

spis->add(i, d, s);

}

cout<<"Распечатка списка\n";

spis->printAll();

system ("pause");

system ("cls");

cout<<"Удаление элемента в конце списка\n";

system ("pause");

system ("cls");

spis->deleteLast();

cout<<"Распечатка списка\n";

spis->printAll();

return 0;

}

}

Соседние файлы в папке OOP