Скачиваний:
28
Добавлен:
01.05.2014
Размер:
4.25 Кб
Скачать
//” ©«: 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::PrintData ()        //‚뢥бвЁ ­  нЄа ­ ўбҐ н«Ґ¬Ґ­вл бЇЁбЄ 
{
	int i=0;
	CElemWoman* CurPtr = First;
	if (CurPtr == NULL)
		printf ("‘ЇЁб®Є Їгбв\n");
	else
		do
		{
			i++;
			//printf (">ID(%d)†Ґ­йЁ­  ь%d\n",ID,i);
			CurPtr->GetWoman()->PrintData();
			//printf ("<ID(%d)†Ґ­йЁ­  ь%d\n",ID,i);
			CurPtr = CurPtr->GetNext();
			getch();
		}while (CurPtr!=First);
getch();
}
////////////////////////////////////////////////////////////////
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->GetWoman()->GetID())))
		{
			//i++;
			CurPtr = CurPtr->GetNext();
		}
		if (num!=(CurPtr->GetWoman()->GetID()))
			printf ("ќ«Ґ¬Ґ­в  Ї®¤ в ЄЁ¬ ­®¬Ґа®¬ ў бЇЁбЄҐ ­Ґв\n");
		else
		{
			double dx, dy;
			printf ("‚ўҐ¤ЁвҐ ўҐ«ЁзЁ­г ЇҐаҐ¬ҐйҐ­Ёп Ї® ®бЁ  ЎбжЁбб: ");
			scanf("%lf",&dx);
			printf ("‚ўҐ¤ЁвҐ ўҐ«ЁзЁ­г ЇҐаҐ¬ҐйҐ­Ёп Ї® ®бЁ ®а¤Ё­ в: ");
			scanf("%lf",&dy);
			CurPtr->GetWoman()->MoveDX(dx);
			CurPtr->GetWoman()->MoveDY(dy);	
			printf ("ЏҐаҐ¬ҐйҐ­ЁҐ Їа®Ё§ўҐ¤Ґ­®");
			printf ("Ї® ®бЁ  ЎбжЁбб ­  %.0lf Ї® ®бЁ ®а¤Ё­ в ­  %.0lf\n",dx,dy);
		}
	}
	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->GetWoman()->MoveDX(dx);
			CurPtr->GetWoman()->MoveDY(dy);
			CurPtr = CurPtr->GetNext();
		}while (CurPtr!=First);
		printf ("ЏҐаҐ¬ҐйҐ­ЁҐ Їа®Ё§ўҐ¤Ґ­®");
		printf ("Ї® ®бЁ  ЎбжЁбб ­  %.0lf Ї® ®бЁ ®а¤Ё­ в ­  %.0lf\n",dx,dy);
	}
getch();
}
////////////////////////////////////////////////////////////////
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;
}
Соседние файлы в папке LAB_2