Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Курсовик по ООП / Kurs3 / PLLIST
.CPP#include<iostream.h>
#include<math.h>
#include<values.h>
#include<conio.h>
#include "PlList.h" //Podkluchenie golovi klassa
//Proverka pustoti
int PlList::Empty() const
{if (head!=0)
{return 0;}
else {return 1;}
}
//Konstruktor
PlList::PlList()
{head=0;cur=0;Nel=0;}
//Selectori
unsigned int PlList::getNomp(int nom) const
{if (nom>0)
{
if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
return cur->getNom();
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;}
}
else
{cout<<"Nomer doljen bit bolshe 0"<<endl;getch();}
}
Message PlList::SendP(int nom,Adress _Pol,double _Msg) const
{if (nom>0)
{
if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
return cur->Send(_Pol,_Msg);
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;}
}
else
{cout<<"Nomer doljen bit bolshe 0"<<endl;getch();}
}
Adress PlList::getAdr(int nom) const
{if (nom>0)
{
if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
return cur->getAdr();
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;}
}
else
{cout<<"Nomer doljen bit bolshe 0"<<endl;getch();}
}
double PlList::getXp(int nom) const //Planeti
{if (nom>0)
{
if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
return cur->getX();
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;}
}
else
{cout<<"Nomer doljen bit bolshe 0"<<endl;getch();}
}
double PlList::getYp(int nom) const
{if (nom>0)
{
if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
return cur->getY();
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;}
}
else
{cout<<"Nomer doljen bit bolshe 0"<<endl;getch();}
}
double PlList::getA(int nom) const
{if (nom>0)
{
if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
return cur->getA();
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;}
}
else
{cout<<"Nomer doljen bit bolshe 0"<<endl;getch();}
}
double PlList::getXpt(int nom,double t) const
{if (nom>0)
{
if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
return cur->getXpt(t);
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;}
}
else
{cout<<"Nomer doljen bit bolshe 0"<<endl;getch();}
}
double PlList::getYpt(int nom,double t) const
{if (nom>0)
{
if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
return cur->getYpt(t);
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;}
}
else
{cout<<"Nomer doljen bit bolshe 0"<<endl;getch();}
}
int PlList::getV(int nom) const
{if (nom>0)
{
if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
return cur->getV();
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;}
}
else
{cout<<"Nomer doljen bit bolshe 0"<<endl;getch();}
}
void PlList::PrintS(int nom,double t) const //Situaciyu
{if ((nom>0)&(t>=0))
{
if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
cur->PrintS(t);
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;}
}
else
{cout<<"Nomer ili vrema menshe 0"<<endl;getch();}
}
int PlList::getNel() const //vernut' kol-vo elementov
{return Nel;}
//Modifikatori
void PlList::setV(int nom,int _V)
{if (nom>0)
{
if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
cur->setV(_V);
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;}
}
else
{cout<<"Nomer doljen bit bolshe 0"<<endl;getch();}
}
void PlList::setLmax(int nom,int _Lmax) //Orbiti
{if ((nom>0)&(_Lmax>0))
{
if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
cur->setLmax(_Lmax);
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;}
}
else
{cout<<"Nomer i dlina doljni bit bolshe 0"<<endl;getch();}
}
void PlList::setLmin(int nom,int _Lmin)
{if ((nom>0)&(_Lmin>0))
{
if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
cur->setLmin(_Lmin);
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;getch();}
}
else
{cout<<"Nomer i dlina doljni bit bolshe 0"<<endl;getch();}
}
void PlList::Revol(int nom,double dFi)
{if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
cur->Revol(dFi);
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;getch();}
}
void PlList::Masht(int nom,double dN)
{if ((dN>0)&(nom>0))
{
if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
cur->Masht(dN);
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;}
}
else
{cout<<"Nomer i mashtab doljni bit bolshe 0"<<endl;getch();}
}
void PlList::Move(int nom,double dX,double dY)
{if (nom>0)
{
if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
cur->Move(dX,dY);
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;}
}
else
{cout<<"Nomer doljen bit bolshe 0"<<endl;getch();}
}
void PlList::RevolO(int nom,double dFi)
{if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
cur->RevolO(dFi);
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;getch();}
}
void PlList::MashtO(int nom,double dN)
{if ((dN>0)&(nom>0))
{
if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
cur->MashtO(dN);
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;}
}
else
{cout<<"Nomer i mashtab doljni bit bolshe 0"<<endl;getch();}
}
void PlList::MoveO(int nom,double dX,double dY)
{if (nom>0)
{
if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{goHead();
for (int i=0;i<=Nel-nom;i++)
{goPred();}
cur->MoveO(dX,dY);
}
else{cout<<"Planeti ne vvedeni "<<endl;}
}
else {cout<<"V spiske mense elementov!"<<endl;}
}
else
{cout<<"Nomer doljen bit bolshe 0"<<endl;getch();}
}
void PlList::goPred()
{if (Empty()==0) //esli ne pusto,pereyti na predidushiy
{cur=cur->getPred();}
else {cout<<"Planeti ne vvedeni"<<endl;getch();}
}
void PlList::goHead() //esli ne pusto,pereyti na golovu
{if (Empty()==0)
{cur=head;}
else {cout<<"Planeti ne vvedeni "<<endl;getch();}
}
void PlList::insLast(Planeta* _pl) //Vstavka v konec
{if (Empty()==1) //esli spisok pust
{head=new Plelem(_pl);
cur=head;
head->setPred(cur);
}
else{
//esli spisok ne pust
Plelem* st=new Plelem(_pl);
st->setPred(head->getPred());
head->setPred(st);
}
goHead();
Nel=Nel+1;
}
void PlList::DelPlanet(int nom) //udalenie elementa
{if (nom>0)
{
if (nom<=Nel) //sravnenie s kol-vom elementov
{if (Empty()==0) //proverka pustoti
{if (nom==1) //esli udalaem 1iy element
{
Plelem* del;
del=head;
goHead();
for (int i=1;i<Nel;i++)
{goPred();}
cur->setPred(head->getPred());
head=cur;
delete(del);
Nel=Nel-1;
} //esli udalaem ne 1 element
else
{
goHead();
for (int i=0;i<Nel-nom;i++)
{goPred();}
Plelem* del;
del=cur->getPred();
cur->setPred(del->getPred());
delete(del);
Nel=Nel-1;
}
}
else{cout<<"Planeti ne vvedeni"<<endl;getch();}
}
else {cout<<"V spiske mense elementov!"<<endl;getch();}
}
else
{cout<<"Nomer doljen bit bolshe 0"<<endl;getch();}
}
void PlList::PrintSys(double t) //Vivod spiska na ekran
{if (t>=0)
{
goHead();
for (int i=0;i<Nel;i++)
{goHead();
for (int j=0;j<Nel-i;j++)
{goPred();
}
clrscr();
cout<<"Kolichestvo Planet: "<<Nel<<endl;
cout<<"Planeta N "<<i+1<<endl<<endl;
cur->PrintS(t);
getch();
clrscr();
}
}
else
{cout<<"Nomer i dlina doljni bit bolshe 0"<<endl;getch();}
}
unsigned int PlList::ReceiveReg(Message _Msg)
{unsigned int dost=0;
if (Empty()==0)
{
goHead();
for(int i=1;i<=getNel();i++)
{
if (getAdr(i).getAdress()==_Msg.getPol().getAdress())
{cur->Receive(_Msg);dost=1;};
goPred();
}
} else {cout<<"Zaregestrirovannih net"<<endl;}
return dost;
}
Соседние файлы в папке Kurs3