Скачиваний:
12
Добавлен:
01.05.2014
Размер:
3.51 Кб
Скачать
//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