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

26020
знаков
0
таблиц
0
изображений

Міністерство освіти і науки України

Запорізький національний університет

Кафедра інформаційних технологій

Індивідуальна робота

З теми: «С++. Класи і об’єкти»

Виконав:

студ. 2 курсу

матем. ф-ту

гр. 8226-1

Лапін С.М.

Перевірив:

Борю С.Ю.

Запоріжжя 2007

Цель: Разработка простейших классов на примере разработки моделей элементарных объектов и динамических информационных структур (одно и двунаправленных списков).

 

1 часть работы "разработка простых классов"

 

Постановка задачи

Разработать класс, набор методов (конструктор и минимум два метода) для программной модели заданного объекта. Описание объекта и его основных свойств приводится ниже. Разработать вызывающую программу (main), использующей объекты разработанного класса и тестирующие работоспособность всех методов.

Варианты заданий

14. Объект «прямоугольник заданный длинами двух сторон». Предусмотреть возможность операции присваивания, определения площади и периметра, а так же логический метод, отвечающий на вопрос – является ли прямоугольник квадратом. Конструктор должен позволить создавать объекты без и с начальной инициализацией.

 

Програма:

#ifndef rectangle__h

#define rectangle__h

#include <math.h>

class rectangle

{

private:

double a, b;

public:

rectangle();

rectangle(double, double);

~rectangle();

rectangle & operator=(const rectangle & x);

double square(void);

double perimeter(void);

double diagonal(void);

int is_square(void);

void print_rectangle(void);

};

#endif

#ifndef conrectangle__h

#define conrectangle__h

#include <iostream.h>

#include "rectangle.h"

rectangle::rectangle()

{

cout<<"The constructor \"rectangle()\" worked.\n";

a=1.0;

b=1.0;

};

rectangle::rectangle(double x, double y)

{

cout<<"The constructor \"rectangle(double, double)\" worked.\n";

a=x;

b=y;

};

rectangle::~rectangle()

{

cout<<"The destructor \"~rectangle()\" worked.\n";

a=0.0;

b=0.0;

};

rectangle & rectangle::operator=(const rectangle & x)

{

if(this==&x) return *this;

this->a=x.a;

this->b=x.b;

return *this;

};

double rectangle::square(void)

{

return a*b;

};

double rectangle::perimeter()

{

return 2*a+2*b;

};

double rectangle::diagonal()

{

return sqrt(a*a+b*b);

};

int rectangle::is_square()

{

if(a==b) return 1;

return 0;

};

void rectangle::print_rectangle()

{

char msg1[]=" ", msg2[]=" not ";

cout<<"a="<<a<<" b="<<b;

cout<<"\nS= "<<square()<<" m^2 P="<<perimeter()<<" m d="<<diagonal()<<" m";

cout<<"\nRectangle is";

if(is_square())

cout<<msg1;

else

cout<<msg2;

cout<<"square.\n";

return;

};

#endif

#include <iostream.h>

#include "conrectangle.h"

void main()

{

rectangle r1;

double a,b;

char s[1];

cout<<"\nESLI VAM ETA PROGA POKAZHETSA TUPOY... NE PEREZHYVAITE! ETO DEISTVITEL'NO TAK :)\n";

do

{

cout<<"\n Our rectangle:\n";

r1.print_rectangle();

cout<<"Input a, b:\n";

cin>>a>>b;

rectangle r2(a, b);

cout<<"\n Your rectangle:\n";

r2.print_rectangle();

r1=r2;

cout<<"\n Your rectangle is our now:\n";

r1.print_rectangle();

cout<<"Repeat or quit?(r/q)...";

cin>>s;

}

while (s[0]!='q');

return;

};

Результати:

D:\Studies\Labs\Cpp\Individ_6>ind1

The constructor "rectangle()" worked.

ESLI VAM ETA PROGA POKAZHETSA TUPOY... NE PEREZHYVAITE! ETO DEISTVITEL'NO TAK :)

Our rectangle:

a=1 b=1

S= 1 m^2 P=4 m d=1.41421 m

Rectangle is square.

Input a, b:

456.125

789.5452485

The constructor "rectangle(double, double)" worked.

 Your rectangle:

a=456.125 b=789.545

S= 360131 m^2 P=2491.34 m d=911.829 m

Rectangle is not square.

 Your rectangle is our now:

a=456.125 b=789.545

S= 360131 m^2 P=2491.34 m d=911.829 m

Rectangle is not square.

Repeat or quit?(r/q)...r

The destructor "~rectangle()" worked.

Our rectangle:

a=456.125 b=789.545

S= 360131 m^2 P=2491.34 m d=911.829 m

Rectangle is not square.

Input a, b:

0.4876

0.4876

The constructor "rectangle(double, double)" worked.

 Your rectangle:

a=0.4876 b=0.4876

S= 0.237754 m^2 P=1.9504 m d=0.689571 m

Rectangle is square.

 Your rectangle is our now:

a=0.4876 b=0.4876

S= 0.237754 m^2 P=1.9504 m d=0.689571 m

Rectangle is square.

Repeat or quit?(r/q)...r

The destructor "~rectangle()" worked.

Our rectangle:

a=0.4876 b=0.4876

S= 0.237754 m^2 P=1.9504 m d=0.689571 m

Rectangle is square.

Input a, b:

16.23

31.06

The constructor "rectangle(double, double)" worked.

 Your rectangle:

a=16.23 b=31.06

S= 504.104 m^2 P=94.58 m d=35.0448 m

Rectangle is not square.

 Your rectangle is our now:

a=16.23 b=31.06

S= 504.104 m^2 P=94.58 m d=35.0448 m

Rectangle is not square.

Repeat or quit?(r/q)...q

The destructor "~rectangle()" worked.

The destructor "~rectangle()" worked.

D:\Studies\Labs\Cpp\Individ_6>

 


2 часть работы  «Информационные динамические структуры»

 

Постановка задачи

Написать программу, в которой создаются динамические структуры, и  выполнить их обработку в соответствии со своим вариантом.

Для каждого вариант разработать следующие методы:

1.         Конструктор пустого списка.

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

3.         Удаление элемента из списка (в соответствии со своим вариантом).

4.         Печать списка.

5.         Запись списка в файл.

6.         Восстановление списка из файла.

7.         Деструктор списка (уничтожение).

Порядок выполнения работы

1.         Разработать описание класса, выделить публичные и приватные поля данных. Разработать интерфейс класса – прототипы методов.

2.         Написать функцию для создания списка. Функция может создавать пустой список, а затем добавлять в него элементы.

3.         Написать функцию для печати списка. Функция должна предусматривать вывод сообщения, если список пустой.

4.         Написать функции для удаления и добавления элементов списка в соответствии со своим вариантом.

5.         Выполнить изменения в списке и печать списка после каждого изменения.

6.         Написать функцию для записи списка в файл.

7.         Написать функцию для уничтожения списка.

8.         Записать список в файл, уничтожить его и выполнить печать (при печати должно быть выдано сообщение "Список пустой").

9.         Написать функцию для восстановления списка из файла.

10.      Восстановить список и распечатать его.

11.      Уничтожить список.

Варианты заданий

14.      Записи в линейном списке содержат поле данных звена  типа *char(строка символов). Сформировать двунаправленный список. Удалить из него К элементов с указанными номерами. Добавить К элементов с указанными номерами.

Програма:

#ifndef list_h

#define list_h

class list

{

private:

struct element

{

char* info;

element* up;

element* down;

};

element *first, *last, *current;

public:

list(); //constructor

~list(); //destructor

void del_list(); //ochishchajet spisok

void init_list(int,char*); //initsializatsia spiska fonarhym metodom

void print_list(); //vyvod na ekran spiska

int current_element(int); //zdelat element s nomerom "int" tekushchim, vernetsa 0;

//Esli doidem do kontsa spiska,to vernetsa nomer poslednego elementa,kotoryi i budet tekushchim

int next_element(); //sdelat tekushchim sledujushchiy element tekuschuego

int previous_element(); //sdelat tekushchim predydushchiy element tekuschuego

int num_current(); //nomer v spiske tekushchego elementa

char* read_element(int &); //prochitat element s nomerom; Robe jogo tekushchim

char* read_element(); //prochitat tekushchiy element

void add_element(char*, int &);//dobavit element na nomer "int"; Robe novyi element tekushchim

void add_after(char*); //dobavit element posle tekushchego; Robe novyi element tekushchim

void add_before(char*); //dobavit element do tekushchego; Robe novyi element tekushchim

void del_element(); //udalit tekushchiy element; Robe sleduushchiy element tekushchim

void del_element(int &); //udalit element z nomerom "int"; Robe sleduushchiy element tekushchim

int fput_list(char*); //zapisat spisok v fail s imenem char*

int fget_list(char*); //vostanovit spisok iz faila s imenem char*

int num_list(); //kol-vo zvenjev u spiska

};

#endif

#ifndef list__h

#define list__h

#include "list.h"

#include <iostream.h>

list::list()

{

current=last=first=NULL;

};

void list::add_after(char* s)

{

if (current==NULL)

{

current=new element[1];

current->info=new char[strlen(s)+1];

strcpy(current->info,s);

current->up=current->down=NULL;

first=last=current;

return;

};

if (current==last)

{

last=new element[1];

last->info=new char[strlen(s)+1];

strcpy(last->info,s);

last->down=NULL;

last->up=current;

current->down=last;

current=last;

return;

};

//put in buffer adress down

last->down=current->down;

current->down=new element[1];

current->down->up=current;

current=current->down;

current->down=last->down;

//clear buffer

last->down->up=current;

last->down=NULL;

current->info=new char[strlen(s)+1];

strcpy(current->info,s);

return;

};

void list::add_before(char* s)

{

if (current==NULL)

{

add_after(s);

return;

};

if (current==first)

{

first=new element[1];

first->up=NULL;

first->down=current;

current=current->up=first;

first->info=new char[strlen(s)+1];

strcpy(first->info,s);

return;

};

first->up=current->up;

current->up=new element[1];

current->up->down=current;

current=current->up;

current->up=first->up;

first->up->down=current;

first->up=NULL;

current->info=new char[strlen(s)+1];

strcpy(current->info,s);

return;

};

void list::add_element(char* s, int &k)

{

int i;

i=current_element(k);

if ((i<k)&&(i!=0))

{

cout<<"V spiske vsego "<<i<<" elmentov. Po etomu vmesto "<<k<<" nomera, functsia dobavit info elementa na "<<i+1<<"-e mesto(poslednee v spiske)!!!\n";

k=i+1;

add_after(s);

};

if(i==0)

add_before(s);

return;

};

void list::del_element()

{

if (first==NULL)

{

cout<<"Nemogu udalit element so spiska. Spisok pust.\n";

return;

};

if (current==first)

{

if (current==last)

{first=last=NULL;}

else

{

first=current->down;

first->up=NULL;

};

delete[]current->info;

delete[]current;

current=first;

return;

};

if (current==last)

{

last=current->up;

last->down=NULL;

delete[]current->info;

delete[]current;

current=last;

return;

};

last->down=current->down;

current->up->down=current->down;

current->down->up=current->up;

delete[]current->info;

delete[]current;

current=last->down;

last->down=NULL;

return;

};

void list::del_element(int &k)

{

int i=current_element(k);

if ((i<k)&&(i!=0))

{

cout<<"V spiske vsego "<<i<<" elmentov. Po etomu vmesto "<<k<<" elementa, functsia udalit "<<i<<" element!!!\n";

k=i;

};

del_element();

return;

};

list::~list()

{

del_list();

};

void list::del_list()

{

while (last!=first)

{

current=last;

delete [] last->info;

last=last->up;

delete [] current;

};

if (first) delete [] first->info;

delete[]first;

current=first=last=NULL;

return;

};

//current ostaetsa netronutym

int list::num_list()

{

if(first==NULL) return 0;

int i(1);

element* temp=first->down;

while (temp!=NULL)

{

i++;

temp=temp->down;

};

return i;

};

//if OK return 0, esle return i (number current element)

int list::current_element(int k)

{

if (first==NULL)

{

cout<<"V spiske 0 elementov.\n";

return 0;

};

int i(1);

current=first;

if(i==k) return 0;

while (current->down)

{

current=current->down;

if (++i==k) return 0;

};

return i;

};

//Esli sled. element sdelalsa tekuschim return 1, else 0

int list::next_element()

{

if (current->down)

{

current=current->down;

return 1;

};

return 0;

};

//Esli pred. element sdelalsa tekuschim return 1, else 0

int list::previous_element()

{

if (current->up)

{

current=current->up;

return 1;

};

return 0;

};

int list::num_current()

{

if(current==NULL)return 0;

int i(1);

element* temp=current;

while (temp->up!=NULL)

{

i++;

temp=temp->up;

};

return i;

};

char* list::read_element()

{

return current->info;

};

char* list::read_element(int &k)

{

int i;

i=current_element(k);

if ((i<k)&&(i!=0))

{

cout<<"V spiske vsego "<<i<<" elmentov. Po etomu vmesto "<<k<<" elementa, functsia vozvrashchaet "<<i<<" element!!!\n";

k=i;

};

return current->info;

};

void list::init_list(int k, char* str)

{

if (k==0) return;

int f(2);

char* s;

s=new char[strlen(str)+7];

if (first!=NULL)

{

cout<<"Spisok ne pust!!!\n";

cout<<"Chto delat?(0/1/2)\n";

cout<<" 0)Otmenit initsializatsiu;\n";

cout<<" 1)Dopisat fonarnuu infomatsiu v konets spiska;\n";

cout<<" 2)Zamenit spisok novoi fonarnoi informatsyei.\n";

cin>>f;

};

if(f==0) return;

if(f==1) current=last;

if(f==2)

{

del_list();

first=new element[1];

first->info=new char[strlen(str)+3];

sprintf(first->info,"%s 1",str);

first->up=first->down=NULL;

current=last=first;

};

for (int j=f; j<=k; j++)

{

sprintf(s,"%s %d",str,j);

add_after(s);

};

return;

};

void list::print_list()

{

cout<<"Vmestimoe spiska:\n";

element* temp=first;

if (first==NULL)

{

cout<<"Spisok pust!!!\n";

return;

};

do

{

cout<<"| "<<temp->info<<" |";

temp=temp->down;

}

while (temp);

cout<<"\n";

return;

};

int list::fput_list(char* s)

{

FILE* f;

if ((f=fopen(s,"w+"))==NULL)

{

cout << "Can not open file "<<s<<"\n";

return 0;

};

if (!first) fclose(f);

element* temp=first;

do

{

fputs(temp->info,f);

fputs("\n",f);

temp=temp->down;

}

while (temp);

fclose(f);

return 1;

};

int list::fget_list(char* s)

{

int ff=2;

if (first!=NULL)

{

cout<<"Spisok ne pust!!!\nChto delat?(0/1/2)\n 0)Otmenit vostanovlenie iz faila;\n";

cout<<" 1)Vostanovit infomatsiu iz faila v konets spiska;\n";

cout<<" 2)Zamenit spisok informatsyei iz faila.\n";

cin>>ff;

};

if(!ff) return ff;

FILE* f;

if ((f=fopen(s,"r"))==NULL)

{

cout<<"Can not open file "<<s<<"\n";

return 0;

};

char str[255];

if(ff==1)

current=last;

char *sss;

if(ff==2)

del_list();

while (fgets(str,256,f))

{

sss=new char[strlen(str)];

int j=0;

while(str[j]!='\n')

sss[j]=str[j++];

sss[j]='\0';

add_after(sss);

delete [] sss;

};

fclose(f);

return ff;

};

#endif

#include "list_.h"

void main()

{

int n=16;

cout<<"Rozhdenie spiska...\n";

list s;

char a[255];

strcpy(a,"Seha");

s.print_list();

cout<<"\nVsego elementov v spiske: "<<s.num_list();

cout<<"\nTekuschiy element spiska: "<<s.num_current()<<'\n';

cout<<"Press <Enter> for go on...\n";

getchar();

cout<<"Skol'ko proinitsializirovat' elementov spiska?\nn=";

cin>>n;

cout<<"Initsialitsia spiska...\n";

s.init_list(n,a);

s.print_list();

cout<<"\nVsego elementov v spiske: "<<s.num_list();

cout<<"\nTekuschiy element spiska: ";

cout<<s.num_current()<<'\n';

cout<<"Press <Enter> for go on...\n";

getchar();//clear iostream

getchar();

cout<<"Kakoi element v spiske sdelat' tekeschim?\nn=";

cin>>n;

s.current_element(n);

cout<<"\nVsego elementov v spiske: "<<s.num_list()<<"\nTekuschiy element spiska: "<<s.num_current()<<'\n';

cout<<"Skol'ko elementov dobavit'?\n";

cin>>n;

getchar();//clear iostream

for (int i=0; i<n; i++)

{

cout<<"Vvedite stroku dlja dobavlenija v spisok\n";

gets(a);

cout<<"Dobavlenie posle tekuschego...\n";

s.add_after(a);

s.print_list();

cout<<"\nVsego elementov v spiske: "<<s.num_list()<<"\nTekuschiy element spiska: "<<s.num_current()<<'\n';

cout<<"Press <Enter> for go on...\n";

getchar();

};

cout<<"Delaem tekuschim sledujushiy element...\n";

s.next_element();

cout<<"\nVsego elementov v spiske: "<<s.num_list()<<"\nTekuschiy element spiska: "<<s.num_current()<<'\n';

cout<<"Press <Enter> for go on...\n";

getchar();

cout<<"Skol'ko eschje elementov spiska nuzhno dobavit'?\n";

cin>>n;

getchar();//clear iostream

for (int i=0; i<n; i++)

{

cout<<"Vvedite stroku dlja dobavlenija v spisok\n";

gets(a);

cout<<"Dobavlenie do tekuschego...\n";

s.add_before(a);

s.print_list();

cout<<"\nVsego elementov v spiske: "<<s.num_list()<<"\nTekuschiy element spiska: "<<s.num_current()<<'\n';

cout<<"Press <Enter> for go on...\n";

getchar();

};

cout<<"Skol'ko eschje elementov spiska nuzhno dobavit'?\n";

cin>>n;

getchar();//clear iostream

for (int k,i=0; i<n; i++)

{

cout<<"Vvedite stroku dlja dobavlenija v spisok\n";

gets(a);

cout<<"Vvedite nomer elementa, na kakoe mesto nuzhno dobavit' novyi element\n";

cin>>k;

cout<<"Dobavlenie "<<k<<"-togo elementa...\n";

s.add_element(a,k);

s.print_list();

cout<<"\nVsego elementov v spiske: "<<s.num_list()<<"\nTekuschiy element spiska: "<<s.num_current()<<'\n';

cout<<"Press <Enter> for go on...\n";

getchar();//clear iostream

getchar();

};

cout<<"Kakoi element v spiske sdelat' tekeschim?\nn=";

cin>>n;

s.current_element(n);

cout<<"\nVsego elementov v spiske: "<<s.num_list()<<"\nTekuschiy element spiska: "<<s.num_current()<<'\n';

cout<<"Skol'ko elementov udalit'?\n";

cin>>n;

getchar();//clear iostream

for (int i=0; i<n; i++)

{

cout<<"Udalenie tekuschego...\n";

s.del_element();

s.print_list();

cout<<"\nVsego elementov v spiske: "<<s.num_list()<<"\nTekuschiy element spiska: "<<s.num_current()<<'\n';

cout<<"Press <Enter> for go on...\n";

getchar();

};

cout<<"Skol'ko eschje elementov spiska nuzhno udalit?\n";

cin>>n;

getchar();//clear iostream

for (int k,i=0; i<n; i++)

{

cout<<"Vvedite nomer elementa, kotoryi nuzhno udalit'\n";

cin>>k;

cout<<"Udalenie "<<k<<"-togo elementa...\n";

s.del_element(k);

s.print_list();

cout<<"\nVsego elementov v spiske: "<<s.num_list()<<"\nTekuschiy element spiska: "<<s.num_current()<<'\n';

cout<<"Press <Enter> for go on...\n";

getchar();//clear iostream

getchar();

};

cout<<"Zapis' spiska v fail...\n";

s.fput_list("Seha.lsm");

cout<<"Udalenie spiska...\n";

s.del_list();

s.print_list();

cout<<"\nVsego elementov v spiske: "<<s.num_list()<<"\nTekuschiy element spiska: "<<s.num_current()<<'\n';

cout<<"Press <Enter> for go on...\n";

getchar();

cout<<"Vostanovlenie spiska...\n";

s.fget_list("Seha.lsm");

s.print_list();

cout<<"\nVsego elementov v spiske: "<<s.num_list()<<"\nTekuschiy element spiska: "<<s.num_current()<<'\n';

cout<<"Press <Enter> for go on...\n";

getchar();

cout<<"Delaem tekuschim predyduschiy element...\n";

s.previous_element();

cout<<"\nVsego elementov v spiske: "<<s.num_list()<<"\nTekuschiy element spiska: "<<s.num_current()<<'\n';

cout<<"Press <Enter> for go on...\n";

getchar();

cout<<"Press <Enter> for exit...";

getchar();

};

Результат:

 D:\Studies\Labs\Programing\Labs\Cpp\Individ_6\ind2>ind2

Rozhdenie spiska...

Vmestimoe spiska:

Spisok pust!!!

Vsego elementov v spiske: 0

Tekuschiy element spiska: 0

Press <Enter> for go on...

Skol'ko proinitsializirovat' elementov spiska?

n=9

Initsialitsia spiska...

Vmestimoe spiska:

| Seha 1 || Seha 2 || Seha 3 || Seha 4 || Seha 5 || Seha 6 || Seha 7 || Seha 8 || Seha 9 |

Vsego elementov v spiske: 9

Tekuschiy element spiska: 9

Press <Enter> for go on...

Kakoi element v spiske sdelat' tekeschim?

n=6

Vsego elementov v spiske: 9

Tekuschiy element spiska: 6

Skol'ko elementov dobavit'?

3

Vvedite stroku dlja dobavlenija v spisok

Sveta 1

Dobavlenie posle tekuschego...

Vmestimoe spiska:

| Seha 1 || Seha 2 || Seha 3 || Seha 4 || Seha 5 || Seha 6 || Sveta 1 || Seha 7 || Seha 8

|| Seha 9 |

Vsego elementov v spiske: 10

Tekuschiy element spiska: 7

Press <Enter> for go on...

Vvedite stroku dlja dobavlenija v spisok

Sveta 2

Dobavlenie posle tekuschego...

Vmestimoe spiska:

| Seha 1 || Seha 2 || Seha 3 || Seha 4 || Seha 5 || Seha 6 || Sveta 1 || Sveta 2 || Seha 7

 || Seha 8 || Seha 9 |

Vsego elementov v spiske: 11

Tekuschiy element spiska: 8

Press <Enter> for go on...

Vvedite stroku dlja dobavlenija v spisok

Sveta 3

Dobavlenie posle tekuschego...

Vmestimoe spiska:

| Seha 1 || Seha 2 || Seha 3 || Seha 4 || Seha 5 || Seha 6 || Sveta 1 || Sveta 2 || Sveta

3 || Seha 7 || Seha 8 || Seha 9 |

Vsego elementov v spiske: 12

Tekuschiy element spiska: 9

Press <Enter> for go on...

Delaem tekuschim sledujushiy element...

Vsego elementov v spiske: 12

Tekuschiy element spiska: 10

Press <Enter> for go on...

Skol'ko eschje elementov spiska nuzhno dobavit'?

3

Vvedite stroku dlja dobavlenija v spisok

Svitlana 1

Dobavlenie do tekuschego...

Vmestimoe spiska:

| Seha 1 || Seha 2 || Seha 3 || Seha 4 || Seha 5 || Seha 6 || Sveta 1 || Sveta 2 || Sveta

3 || Svitlana 1 || Seha 7 || Seha 8 || Seha 9 |

Vsego elementov v spiske: 13

Tekuschiy element spiska: 10

Press <Enter> for go on...

Vvedite stroku dlja dobavlenija v spisok

Svitlana 2

Dobavlenie do tekuschego...

Vmestimoe spiska:

| Seha 1 || Seha 2 || Seha 3 || Seha 4 || Seha 5 || Seha 6 || Sveta 1 || Sveta 2 || Sveta

3 || Svitlana 2 || Svitlana 1 || Seha 7 || Seha 8 || Seha 9 |

Vsego elementov v spiske: 14

Tekuschiy element spiska: 10

Press <Enter> for go on...

Vvedite stroku dlja dobavlenija v spisok

Svitlana 3

Dobavlenie do tekuschego...

Vmestimoe spiska:

| Seha 1 || Seha 2 || Seha 3 || Seha 4 || Seha 5 || Seha 6 || Sveta 1 || Sveta 2 || Sveta

3 || Svitlana 3 || Svitlana 2 || Svitlana 1 || Seha 7 || Seha 8 || Seha 9 |

Vsego elementov v spiske: 15

Tekuschiy element spiska: 10

Press <Enter> for go on...

Skol'ko eschje elementov spiska nuzhno dobavit'?

3

Vvedite stroku dlja dobavlenija v spisok

I

Vvedite nomer elementa, na kakoe mesto nuzhno dobavit' novyi element

10

Dobavlenie 10-togo elementa...

Vmestimoe spiska:

| Seha 1 || Seha 2 || Seha 3 || Seha 4 || Seha 5 || Seha 6 || Sveta 1 || Sveta 2 || Sveta

3 || I || Svitlana 3 || Svitlana 2 || Svitlana 1 || Seha 7 || Seha 8 || Seha 9 |

Vsego elementov v spiske: 16

Tekuschiy element spiska: 10

Press <Enter> for go on...

Vvedite stroku dlja dobavlenija v spisok

like

Vvedite nomer elementa, na kakoe mesto nuzhno dobavit' novyi element

11

Dobavlenie 11-togo elementa...

Vmestimoe spiska:

| Seha 1 || Seha 2 || Seha 3 || Seha 4 || Seha 5 || Seha 6 || Sveta 1 || Sveta 2 || Sveta

3 || I || like || Svitlana 3 || Svitlana 2 || Svitlana 1 || Seha 7 || Seha 8 || Seha 9 |

Vsego elementov v spiske: 17

Tekuschiy element spiska: 11

Press <Enter> for go on...

Vvedite stroku dlja dobavlenija v spisok

you!!!

Vvedite nomer elementa, na kakoe mesto nuzhno dobavit' novyi element

12

Dobavlenie 12-togo elementa...

Vmestimoe spiska:

| Seha 1 || Seha 2 || Seha 3 || Seha 4 || Seha 5 || Seha 6 || Sveta 1 || Sveta 2 || Sveta

3 || I || like || you!!! || Svitlana 3 || Svitlana 2 || Svitlana 1 || Seha 7 || Seha 8 ||

Seha 9 |

Vsego elementov v spiske: 18

Tekuschiy element spiska: 12

Press <Enter> for go on...

Kakoi element v spiske sdelat' tekeschim?

n=4

Vsego elementov v spiske: 18

Tekuschiy element spiska: 4

Skol'ko elementov udalit'?

3

Udalenie tekuschego...

Vmestimoe spiska:

| Seha 1 || Seha 2 || Seha 3 || Seha 5 || Seha 6 || Sveta 1 || Sveta 2 || Sveta 3 || I ||

like || you!!! || Svitlana 3 || Svitlana 2 || Svitlana 1 || Seha 7 || Seha 8 || Seha 9 |

Vsego elementov v spiske: 17

Tekuschiy element spiska: 4

Press <Enter> for go on...

Udalenie tekuschego...

Vmestimoe spiska:

| Seha 1 || Seha 2 || Seha 3 || Seha 6 || Sveta 1 || Sveta 2 || Sveta 3 || I || like || yo

u!!! || Svitlana 3 || Svitlana 2 || Svitlana 1 || Seha 7 || Seha 8 || Seha 9 |

Vsego elementov v spiske: 16

Tekuschiy element spiska: 4

Press <Enter> for go on...

Udalenie tekuschego...

Vmestimoe spiska:

| Seha 1 || Seha 2 || Seha 3 || Sveta 1 || Sveta 2 || Sveta 3 || I || like || you!!! || Sv

itlana 3 || Svitlana 2 || Svitlana 1 || Seha 7 || Seha 8 || Seha 9 |

Vsego elementov v spiske: 15

Tekuschiy element spiska: 4

Press <Enter> for go on...

Skol'ko eschje elementov spiska nuzhno udalit?

3

Vvedite nomer elementa, kotoryi nuzhno udalit'

2

Udalenie 2-togo elementa...

Vmestimoe spiska:

| Seha 1 || Seha 3 || Sveta 1 || Sveta 2 || Sveta 3 || I || like || you!!! || Svitlana 3 |

| Svitlana 2 || Svitlana 1 || Seha 7 || Seha 8 || Seha 9 |

Vsego elementov v spiske: 14

Tekuschiy element spiska: 2

Press <Enter> for go on...

Vvedite nomer elementa, kotoryi nuzhno udalit'

12

Udalenie 12-togo elementa...

Vmestimoe spiska:

| Seha 1 || Seha 3 || Sveta 1 || Sveta 2 || Sveta 3 || I || like || you!!! || Svitlana 3 |

| Svitlana 2 || Svitlana 1 || Seha 8 || Seha 9 |

Vsego elementov v spiske: 13

Tekuschiy element spiska: 12

Press <Enter> for go on...

Vvedite nomer elementa, kotoryi nuzhno udalit'

12

Udalenie 12-togo elementa...

Vmestimoe spiska:

| Seha 1 || Seha 3 || Sveta 1 || Sveta 2 || Sveta 3 || I || like || you!!! || Svitlana 3 |

| Svitlana 2 || Svitlana 1 || Seha 9 |

Vsego elementov v spiske: 12

Tekuschiy element spiska: 12

Press <Enter> for go on...

Zapis' spiska v fail...

Udalenie spiska...

Vmestimoe spiska:

Spisok pust!!!

Vsego elementov v spiske: 0

Tekuschiy element spiska: 0

Press <Enter> for go on...

Vostanovlenie spiska...

Vmestimoe spiska:

| Seha 1 || Seha 3 || Sveta 1 || Sveta 2 || Sveta 3 || I || like || you!!! || Svitlana 3 |

| Svitlana 2 || Svitlana 1 || Seha 9 |

Vsego elementov v spiske: 12

Tekuschiy element spiska: 12

Press <Enter> for go on...

Delaem tekuschim predyduschiy element...

Vsego elementov v spiske: 12

Tekuschiy element spiska: 11

Press <Enter> for go on...

Press <Enter> for exit...

D:\Studies\Labs\Programing\Labs\Cpp\Individ_6\ind2>

Seha.lsm:

Seha 1

Seha 3

Sveta 1

Sveta 2

Sveta 3

I

like

you!!!

Svitlana 3

Svitlana 2

Svitlana 1

Seha 9


Информация о работе «Объектно-ориентированое програмирование на С++»
Раздел: Информатика, программирование
Количество знаков с пробелами: 26020
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
46692
5
0

... синтаксиса обобщенных функций вместо посылки сообщений; способность определять методы, различающиеся не только по первому аргументу ( так называемые мультиметоды); поддержка реализации других объектно-ориентированных языков с помощью ядра метаклассов, набора предопределенных классов, составляющих оставшуюся часть системы. Опытная реализация, названная Portable CommonLisp (PCL), распространена для ...

Скачать
41230
0
14

оочередность вызова классов, их взаимосвязи, функции и переменные, поэтому дальше описаны детали того, что мы увидели: 1.         Class Main – чтобы работать с системой, программа должна считывать с определенных файлов определенные данные(а именно файлы Control.txt Answers.txt, указанные в задании, но сначала они должны быть записаны, что и реализует этот класс. Помимо этого этот класс вызывает ...

Скачать
257002
0
22

... быть выведены на печать. На экране рисунки могут быть статическими (неподвижными) или динамическими (движущимися). В последнее время машинная графика выделилась в самостоятельный раздел информатики с многочисленными приложениями. Средствами машинной графики создается не только печатная продукция, но и рекламные ролики на телевидении, мультфильмы. Объясним, как кодируется изображение в памяти ...

Скачать
106814
0
0

... рассмотренного примера Успевающий_Студент и Неуспевающий_Студент является весьма ха­рак­тер­ным для программирования. В этом смысле записи с вариантами мож­но рассматривать как форму лаконичного описания типов, поз­во­ля­ю­щую избавиться от повторов в описании свойств объектов. В объектно-ориентированных языках существует дополнительная воз­мож­ность такой ла­конизации, определяющая полиморфную ...

0 комментариев


Наверх