Объектно-ориентированое програмирование на С++                          
		Объектно-ориентированое програмирование на С++                          
 Міністерство освіти і науки України 
Запорізький національний університет 
Кафедра інформаційних технологій 
Індивідуальна робота 
З теми: «С++. Класи і об'єкти» 
Виконав: 
студ. 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 
    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 
	
	
					
							 |