Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
//” ©«: 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