Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторная работа 23 / CPLIST
.CPP//File CPlist.cpp
//Naznachenie: Opredelenie funkcij klassa "spisok elementov mnogougolnikov"
//Author: Pavel Morozov
//Redakcija: 2.0 13.04.07
#ifndef cplist_cpp
#define cplist_cpp
#include<iostream.h>
#include<math.h>
#include<conio.h>
#include<stdio.h>
#include"cplist.h"
#include"cpolygon.h"
#include"cpolygon.cpp"
//--------------------Konstruktor--------------------------
CPolyList::CPolyList()
{
// cout<<endl;
cprintf("\nKonstruktor CPolyList sozdaet pustoj spisok");
cout<<endl<<endl;
LptrPoly=NULL;
// LptrPoly2=NULL;
}
//--------------Funkcii interfeisa-----------------------
void CPolyList::InsertPoly(CElPoly *EptrPoly)
//Vkliuchenie elementa v spisok
{
CElPoly *TEptrPoly(LptrPoly);
if (!TEptrPoly) //Spisok pust
{
LptrPoly=EptrPoly;
cout<<endl<<endl;
cprintf("Vstavka v pustoj spisok");
cout<<endl<<endl;
}
else
{
while (TEptrPoly->GetNextPoly()) //Poisk mesta v spiske
{
TEptrPoly=TEptrPoly->GetNextPoly();
}
if(!(TEptrPoly->GetNextPoly())) //Vstavim v konec spiska
{
cout<<endl<<endl;
cprintf("Vstavka v konec spiska");
cout<<endl<<endl;
TEptrPoly->SetNextPoly(EptrPoly);
}
}
}
void CPolyList::OutListPoly()
{
textcolor(15);
//Atributy
CElPoly *ELptrPoly(LptrPoly);
//clrscr();
if(LptrPoly){cout<<endl<<endl<<"Vyvod elementov."<<endl;}
if (!LptrPoly){cout<<endl<<"Spisok elementov pustoj"<<endl;}
while(ELptrPoly)
{ cout<<endl<<"Vyvod mnogougolnika s ID="<<ELptrPoly->GetID();
ELptrPoly->GetFptrPoly()->OutListPoly();
ELptrPoly=(ELptrPoly->GetNextPoly());
}
getch();
}
void CPolyList::MovePoly(float dx,float dy)
{
CElPoly *ELptrPoly(LptrPoly);
if (!LptrPoly){cout<<endl<<"Spisok elementov pustoj"<<endl;}
while(ELptrPoly)
{
// pervyj treugolnik
ELptrPoly->GetFptrPoly()->MovePoly(dx,dy);
//
ELptrPoly=(ELptrPoly->GetNextPoly());
}
}
void CPolyList::RotatePoly(CPoint &Q, float fi )
{
CElPoly *ELptrPoly(LptrPoly);
//clrscr();
if (!LptrPoly){cout<<endl<<"Spisok elementov pustoj"<<endl;}
while(ELptrPoly)
{
// t=1;//pervyj treugolnik
ELptrPoly->GetFptrPoly()->RotatePoly(Q,fi);
ELptrPoly=(ELptrPoly->GetNextPoly());
}
}
void CPolyList::SquarePoly()
{
textcolor(15);
float SquareP;float Sq;
int i=1;int t;
//Atributy
CElPoly *ELptrPoly(LptrPoly);
// if(LptrPoly){cout<<endl<<endl<<"Vyvod elementov."<<endl;}
if (!LptrPoly){cout<<endl<<"Spisok elementov pustoj"<<endl;}
cout<<"Vvedite nomer mnogougolnika";
cin>>t;
while((ELptrPoly)&&(i<t))
{
i=i+1;
ELptrPoly=(ELptrPoly->GetNextPoly());
}
ELptrPoly->GetFptrPoly()->SquarePoly();
}
//-------------------------Destruktor-------------
CPolyList::~CPolyList()
{
CElPoly *TEptrPoly;
while(LptrPoly)
{
TEptrPoly=LptrPoly;
LptrPoly=LptrPoly->GetNextPoly();
delete TEptrPoly;
}
cout<<endl;
cprintf("~CPolyList razrushaet spisok...");
cout<<endl;
cprintf("Spisok unichtozen") ;
cout<<endl;
cprintf("Nazmite probel...");
cout<<endl;
getch();
}
#endif
Соседние файлы в папке Лабораторная работа 23