Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Класс Список квадратов / SQRLIST
.CPP//-File opisaniya SqrList.h
#include<iostream.h>
#include<math.h>
#include<values.h>
#include<conio.h>
#include "Csqr.h"
#include "Cpoint.h"
#include "elem.h"
#include "Sqrlist.h"
//-Proverka pustoti
int Sqrlist::Empty()
{if (head!=0)
{return 0;}
else {return 1;}
}
//-Konstruktor
Sqrlist::Sqrlist()
{head=0;cur=0;Nel=0;}
//-Destruktor
Sqrlist::~Sqrlist()
{cout<<"Spisok razrushen! "<<endl;getch();}
//-Selectori
void Sqrlist::goNext() //-Perehod na sleduyushiy element
{if (Empty()==0)
{if (cur!=0)
{cur=cur->getN();}
else{cout<<"Konec spiska (goNext)"<<endl;}
}else{cout<<"Spisok pust (goNext)"<<endl;}
}
void Sqrlist::goFirst() //-Perehod na nachalo spiska
{if (Empty()==0)
{cur=head;}
else{cout<<"Spisok pust (goFirst) "<<endl;}
}
Csqr Sqrlist::getF() //-vozvrat figuri
{if (Empty()==0)
{if (cur!=0)
{return cur->getF();}
else{cout<<"Spisok pust (getV) "<<endl;}
}else{cout<<"Spisok pust (getV) "<<endl;}
}
elem Sqrlist::getEl() //-vozvrat elementa spiska
{if (cur!=0)
{return *cur;}
else{cout<<"Spisok pust (getEl)"<<endl;}
}
int Sqrlist::getNel(){return Nel;} //-Vozvrat kol-va elementov
//-Modifikatori
//Vstavka v nachalo
void Sqrlist::insFirst(Csqr sqr0)
{elem* st=head;
head=new elem(sqr0);
head->setNext(st);
goFirst();
Nel=Nel+1;
if (head->getF().getA()==sqr0.getA())
{cout<<"Uspesno vstavili v nachalo!!!"<<endl;
//<<"Znachenie vstavlennogo: "<<head->getV()<<endl;
cout<<"elementov: "<<Nel<<endl;}
else {cout<<"Oblom so vstavkoy v nachalo!!"<<endl;}
}
//Vstavka v konec
void Sqrlist::insLast(Csqr sqr0)
{if (Empty()==1){insFirst(sqr0);}else{
elem* last=new elem(sqr0);
last->setNext(0);
goFirst();
for (int i=1;i<Nel;i++)
{goNext();}
cur->setNext(last);
Nel=Nel+1;
goNext();
if (cur->getF().getA()==sqr0.getA())
{cout<<"Uspesno vstavili v konec!!!"<<endl;
//<<"Znachenie vstavlennigo: "<<cur->getV()<<endl;
cout<<"elementov: "<<Nel<<endl;}
else {cout<<"Oblom so vstavkoy v konec!!"<<endl;}
goFirst();
}
}
//-Udalenie i ogo elementa
void Sqrlist::delel(int nom)
{if (nom<=Nel)
{
if (Empty()==0)
{ if (nom==1)
{elem* del;
del=head;
head=head->getN();
delete(del);
Nel=Nel-1;
}else{
goFirst();
for (int i=1;i<nom-1;i++)
{goNext();}
elem* del;
del=cur->getN();
cur->setNext(del->getN());
Nel=Nel-1;
delete(del);}
}else {cout<<"Spisok pust (delete)"<<endl;}
}else {cout<<"V spiske mense elementov!"<<endl;}
}
//-Operacii
//-vivod spiska
void Sqrlist::PrintList()
{
goFirst();
cout<<"kol-vo elementov"<<Nel<<endl;
for (int i=0;i<Nel;i++)
{cout<<"Abscissa: "<<cur->getF().getX()<<endl;
cout<<"Ordinata: "<<cur->getF().getY()<<endl;
cout<<"Dlina storoni: "<<cur->getF().getA()<<endl
<<endl;
goNext();}
goFirst();
}
//-Vivod spiska plosadey
void Sqrlist::PrintAreas(int min)
{
goFirst();
cout<<"kol-vo elementov"<<Nel<<endl;
for (int i=0;i<Nel;i++)
{ if (cur->getF().area()>=min)
{
cout<<" "<<cur->getF().area();
goNext();}}
goFirst();
}
Соседние файлы в папке Класс Список квадратов