Скачиваний:
32
Добавлен:
01.05.2014
Размер:
8.14 Кб
Скачать
//” ©«: ListWoman.cpp
//Љ« бб "‘ЇЁб®Є Ё§®Ўа ¦Ґ­Ё© ¦Ґ­йЁ­". ђҐ «Ё§ жЁп.
//Ђўв®а: ‘ҐаЈҐҐў Њ.‚. Ја.3352
//„ в : 23.04.06, ђҐ¤ ЄжЁп: 1.0

#include<iostream.h>
#include<conio.h>
#include"ListW.h"

unsigned int CListWoman::countreal = 0;		
unsigned int CListWoman::countall = 0;

////////////////////////////////////////////////////////////////
CListWoman::CListWoman():ID(++countall)		//Љ®­бвагЄв®а.‘®§¤ вм ­®ўл© бЇЁб®Є
{
	countreal++;
	printf ("ID(%d)CListWoman\n",ID);
	First = NULL;
//	getch();
}
//////////////////////////////////////////////////////////////////
CListWoman::~CListWoman()		//„ҐбвагЄв®а. “­з⮦Ёвм бЇЁб®Є
{
	printf (">~ID(%d)CListWoman\n",ID);
//	getch();
	if (First != NULL)
	{
		if ((First->GetNext()) == First)
			delete First;
		else
		{
			CElemWoman* CurPtr = (First->GetNext());
			while (CurPtr != First)
			{
				CurPtr = CurPtr->GetNext();
				delete CurPtr->GetPred();
			}
			delete First;
		}
	}
	printf ("<~ID(%d)CListWoman\n",ID);
	countreal--;
	getch();
}
////////////////////////////////////////////////////////////////
void CListWoman::AddElem ()				//‚бв ўЁвм Ґ«Ґ¬Ґ­в ў бЇЁб®Є 
{
  CElemWoman *NewElPtr = NULL;
  NewElPtr = new CElemWoman;
  
  if (First == NULL)
    First = NewElPtr;
  else
  {
	  NewElPtr -> SetNext(First);
	  NewElPtr -> SetPred(First->GetPred());
	  First->GetPred()->SetNext(NewElPtr);
	  First ->SetPred(NewElPtr);
  }
  printf ("ќ«Ґ¬Ґ­в ¤®Ў ў«Ґ­\n");
  getch();
}
////////////////////////////////////////////////////////////////
void CListWoman::RegElemOnServ(CServer* s)
{
	CElemWoman* CurPtr = First;
	if (CurPtr == NULL)
		printf ("‘ЇЁб®Є Їгбв\n");
	else
	{
		int num;
		//int i=1;
		printf ("ID: ");
		scanf("%d",&num);
		while (CurPtr!=(First->GetPred()) && (num!=(CurPtr->GetActress()->GetID())))
		{
			//i++;
			CurPtr = CurPtr->GetNext();
		}
		if (num!=(CurPtr->GetActress()->GetID()))
			printf ("ќ«Ґ¬Ґ­в  Ї®¤ в ЄЁ¬ ­®¬Ґа®¬ ў бЇЁбЄҐ ­Ґв\n");
		else
		{
			CClientActr* cl = CurPtr->GetActress();
			int res = cl->regOnSrv(s);
			printf ("\nЉ«ЁҐ­в ўҐа­г« १г«мв в:%d\n",res);
		}
	}
	getch();

}
////////////////////////////////////////////////////////////////
void CListWoman::PrintData ()        //‚뢥бвЁ ­  нЄа ­ ўбҐ н«Ґ¬Ґ­вл бЇЁбЄ 
{
	int i=0;
	CElemWoman* CurPtr = First;
	if (CurPtr == NULL)
		printf ("‘ЇЁб®Є Їгбв\n");
	else
		do
		{
			i++;
			//printf (">ID(%d)†Ґ­йЁ­  ь%d\n",ID,i);
			CurPtr->GetActress()->PrintData();
			//printf ("<ID(%d)†Ґ­йЁ­  ь%d\n",ID,i);
			CurPtr = CurPtr->GetNext();
			getch();
		}while (CurPtr!=First);
getch();
}
////////////////////////////////////////////////////////////////
void CListWoman::PrintInView (double t,double b,double l,double r) const  //‚뢥бвЁ н«Ґ¬Ґ­вл бЇЁбЄ  Ї®Ї ¤ ойЁҐ ў ®Ў« бвм
{
	CElemWoman* CurPtr = First;
	if (CurPtr == NULL)
		printf ("‘ЇЁб®Є Їгбв\n");
	else
	{
		int num = 0;
		do
		{
			double x1,y1,x2,y2,x3,y3,x4,y4;
			CurPtr->GetActress()->GetCoord(x1,y1,x2,y2,x3,y3,x4,y4);
			if ((((x1<t)&&(x1>b))&&((y1<r)&&(y1>l)))||(((x2<t)&&(x2>b))&&((y2<r)&&(y2>l)))||
				(((x3<t)&&(x3>b))&&((y3<r)&&(y3>l)))||(((x4<t)&&(x4>b))&&((y4<r)&&(y4>l))))
			{
				CurPtr->GetActress()->PrintData();
				num++;
				getch();
			}
			CurPtr = CurPtr->GetNext();
		}while (CurPtr!=First);
		if (num==0) printf ("‘業  Їгбв \n");;
	}
}
////////////////////////////////////////////////////////////////
void CListWoman::MoveOne ()        // ЏҐаҐ¬ҐбвЁвм ®¤Ё­ н«Ґ¬Ґ­в 
{
	CElemWoman* CurPtr = First;
	if (CurPtr == NULL)
		printf ("‘ЇЁб®Є Їгбв\n");
	else
	{
		int num;
		//int i=1;
		printf ("‚ўҐ¤ЁвҐ ­®¬Ґа н«Ґ¬Ґ­в  ¤«п б¤ўЁЈ (>0)");
		scanf("%d",&num);
		while (CurPtr!=(First->GetPred()) && (num!=(CurPtr->GetActress()->GetID())))
		{
			//i++;
			CurPtr = CurPtr->GetNext();
		}
		if (num!=(CurPtr->GetActress()->GetID()))
			printf ("ќ«Ґ¬Ґ­в  Ї®¤ в ЄЁ¬ ­®¬Ґа®¬ ў бЇЁбЄҐ ­Ґв\n");
		else
		{
			double dx, dy;
			printf ("‚ўҐ¤ЁвҐ ўҐ«ЁзЁ­г ЇҐаҐ¬ҐйҐ­Ёп Ї® ®бЁ  ЎбжЁбб: ");
			scanf("%lf",&dx);
			printf ("‚ўҐ¤ЁвҐ ўҐ«ЁзЁ­г ЇҐаҐ¬ҐйҐ­Ёп Ї® ®бЁ ®а¤Ё­ в: ");
			scanf("%lf",&dy);
			CurPtr->GetActress()->MoveDX(dx);
			CurPtr->GetActress()->MoveDY(dy);	
			printf ("ЏҐаҐ¬ҐйҐ­ЁҐ Їа®Ё§ўҐ¤Ґ­®");
			printf ("Ї® ®бЁ  ЎбжЁбб ­  %.0lf Ї® ®бЁ ®а¤Ё­ в ­  %.0lf\n",dx,dy);
		}
	}
	getch();
}
////////////////////////////////////////////////////////////////
void CListWoman::MoveOneMsg (CServer* s)        // ЏҐаҐ¬ҐбвЁвм ®¤Ё­ н«Ґ¬Ґ­в 
{
	CElemWoman* CurPtr = First;
	if (CurPtr == NULL)
		printf ("‘ЇЁб®Є Їгбв\n");
	else
	{
       int from,to,c;
       cout<<"\n\nID  ЄваЁббл, Є®в®а п ®вбл« Ґв Є®¬ ­¤г:";
       cin>>from;

       CClient* cl = s->getClientByID(from);
       if(cl == NULL)
       {
         cout<<"\n’ Є®Ј® Є«ЁҐ­в  ­Ґ бгйҐбвўгҐв";
       }
       else
       {
         cout<<"\nID  ЄваЁббл, Є®в®а п Ї®«гз Ґв Є®¬ ­¤г:";
         cin>>to;
         cout<<"\n‘®®ЎйҐ­ЁҐ. ‘¤ўЁ­гвмбп ­ :";
         cin>>c;
         int res = cl->sendMsg(c,s,to);
         cout << "\n‘®®ЎйҐ­ЁҐ ®вЇа ў«Ґ­®. ђҐ§г«мв в"<<res;
		printf ("\n\n");
		getch();
		printf ("=========================\n");
		printf ("Ќ®ў®Ґ Ї®«®¦Ґ­ЁҐ ЇҐаҐ¤ўЁ­гв®©  ЄваЁбл:\n");
		CElemWoman* CurPtr2 = First;
		while (CurPtr2!=(First->GetPred()) && (to!=(CurPtr2->GetActress()->GetID())))
			CurPtr2 = CurPtr2->GetNext();
		//CClient* clto = s->getClientByID(to);
		CurPtr2->GetActress()->PrintData();
	   }
	}
printf ("\n\n");
getch();
}
////////////////////////////////////////////////////////////////
void CListWoman::MoveAll ()        // ЏҐаҐ¬ҐбвЁвм ўбҐ н«Ґ¬Ґ­вл 
{
	CElemWoman* CurPtr = First;
	if (CurPtr == NULL)
		printf ("‘ЇЁб®Є Їгбв\n");
	else
	{
		double dx, dy;
		printf ("‚ўҐ¤ЁвҐ ўҐ«ЁзЁ­г ЇҐаҐ¬ҐйҐ­Ёп Ї® ®бЁ  ЎбжЁбб: ");
		scanf("%lf",&dx);
		printf ("‚ўҐ¤ЁвҐ ўҐ«ЁзЁ­г ЇҐаҐ¬ҐйҐ­Ёп Ї® ®бЁ ®а¤Ё­ в: ");
		scanf("%lf",&dy);
		do
		{
			CurPtr->GetActress()->MoveDX(dx);
			CurPtr->GetActress()->MoveDY(dy);
			CurPtr = CurPtr->GetNext();
		}while (CurPtr!=First);
		printf ("ЏҐаҐ¬ҐйҐ­ЁҐ Їа®Ё§ўҐ¤Ґ­®");
		printf ("Ї® ®бЁ  ЎбжЁбб ­  %.0lf Ї® ®бЁ ®а¤Ё­ в ­  %.0lf\n",dx,dy);
	}
	printf ("\n");
	getch();

}
////////////////////////////////////////////////////////////////
void CListWoman::MoveAllMsg (CServer* s)        // ЏҐаҐ¬ҐбвЁвм ўбҐ н«Ґ¬Ґ­вл 
{
	CElemWoman* CurPtr = First;
	if (CurPtr == NULL)
		printf ("‘ЇЁб®Є Їгбв\n");
	else
	{
       int from,c;
       cout<<"\n\nID  ЄваЁббл, Є®в®а п ®вбл« Ґв Є®¬ ­¤г:";
       cin>>from;

       CClient* cl = s->getClientByID(from);
       if(cl == NULL)
       {
         cout<<"\n’ Є®Ј® Є«ЁҐ­в  ­Ґ бгйҐбвўгҐв";
       }
       else
       {
         cout<<"\n‘®®ЎйҐ­ЁҐ. ‘¤ўЁ­гвмбп ­ :";
         cin>>c;
         int res = cl->sendMsgAll(c,s);
         cout << "\n‘®®ЎйҐ­ЁҐ ®вЇа ў«Ґ­® ўбҐ¬ Є«ЁҐ­в ¬. ђҐ§г«мв в"<<res<<".";
       	printf ("\n\n");
		getch();
		printf ("=========================\n");
		printf ("Ќ®ў®Ґ Ї®«®¦Ґ­ЁҐ ўбҐе  ЄваЁб:\n");
		PrintData ();
	   }

	}
	printf ("\n\n");
	getch();
}
////////////////////////////////////////////////////////////////
void CListWoman::MoveAll (double x, double y)        // ЏҐаҐ¬ҐбвЁвм ўбҐ н«Ґ¬Ґ­вл 
{
	CElemWoman* CurPtr = First;
	if (CurPtr == NULL)
	  {}	//printf ("‘ЇЁб®Є Їгбв\n");
	else
	{
		do
		{
			CurPtr->GetActress()->MoveDX(x);
			CurPtr->GetActress()->MoveDY(y);
			CurPtr = CurPtr->GetNext();
		}while (CurPtr!=First);
	}
}
////////////////////////////////////////////////////////////////
void CListWoman::ClearList ()        // ЋзЁбвЁвм бЇЁб®Є 
{
	CElemWoman* CurPtr = First;
	if (CurPtr == NULL)
		printf ("‘ЇЁб®Є Їгбв\n");
	else
	{
		CElemWoman* PredPtr = First;
		CElemWoman* CurPtr = First;
		do
		{
			PredPtr = CurPtr;
			CurPtr = CurPtr->GetNext();
			delete PredPtr;
		}while (CurPtr != First);
		First = NULL;
		printf ("CЇЁб®Є ®зЁйҐ­\n");
	}
	getch();
}
//////////////////////////////////////////////////////////////////
unsigned int CListWoman::GetCountReal()    //Ї®«гзЁвм Є®«ЁзҐбвў® бгйҐбвўгойЁе ®ЎкҐЄв®ў

{
	return countreal;
}
Соседние файлы в папке Kurs