Добавил:
bagiwow
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программирование / си++ / 2Semestr / Lab_3 / Fun
.cpp#include <iostream.h>
#include<string.h>
#include "class.h"
//-------------------------------------------------------------------------------
bool KolSot(tObject*,int);
//-------------------------------------------------------------------------------
Org::Org()
{
strcpy(name,"Нет Имени");
kol_sotr=0;
}
//-------------------------------------------------------------------------------
Org::Org(char* Name,int Kol_sotr)
{
strcpy(name,Name);
kol_sotr=Kol_sotr;
}
//-------------------------------------------------------------------------------
Org::Org(const Org& org)
{
strcpy(name,org.name);
kol_sotr=org.kol_sotr;
}
//-------------------------------------------------------------------------------
Org::~Org()
{}
//-------------------------------------------------------------------------------
StrCom::StrCom():Org()
{ kol_zastr=0;}
//-------------------------------------------------------------------------------
StrCom::StrCom(char* Name,int Kol_sotr,int Kol_zastr):Org(Name,Kol_sotr)
{ kol_zastr=Kol_zastr;}
//-------------------------------------------------------------------------------
StrCom::StrCom(const StrCom& str)
{ kol_zastr=str.kol_zastr;}
//-------------------------------------------------------------------------------
StrCom::~StrCom() {}
//-------------------------------------------------------------------------------
void StrCom::Show()
{
Rus("Строительная компания: ");Rus(name);cout<<endl;
Rus("Кол-во сотрудников: ");cout<<kol_sotr<<endl;
Rus("Кол-во застрахованных: "); cout<<kol_zastr<<endl<<endl;
}
//-------------------------------------------------------------------------------
Zavod::Zavod():Org()
{ kol_stan=0;}
//-------------------------------------------------------------------------------
Zavod::Zavod(char* Name,int Kol_sotr,int Kol_stan):Org(Name,Kol_sotr)
{ kol_stan=Kol_stan;}
//-------------------------------------------------------------------------------
Zavod::Zavod(const Zavod& zav)
{ kol_stan=zav.kol_stan;}
//-------------------------------------------------------------------------------
Zavod:: ~ Zavod() {}
//-------------------------------------------------------------------------------
void Zavod::Show()
{
Rus("Завод: ");Rus(name);cout<<endl;
Rus("Кол-во сотрудников: ");cout<<kol_sotr<<endl;
Rus("Кол-во Станков: "); cout<<kol_stan<<endl<<endl;
}
//-------------------------------------------------------------------------------
SudCom::SudCom():Org()
{ kol_kor=0;}
//-------------------------------------------------------------------------------
SudCom::SudCom(char* Name,int Kol_sotr,int Kol_kor):Org(Name,Kol_sotr)
{ kol_kor=Kol_kor;}
//-------------------------------------------------------------------------------
SudCom::SudCom(const SudCom& sud)
{ kol_kor=sud.kol_kor;}
//-------------------------------------------------------------------------------
SudCom::~SudCom() {}
//-------------------------------------------------------------------------------
void SudCom::Show()
{
Rus("Судостроительная компания: ");Rus(name);cout<<endl;
Rus("Кол-во сотрудников: ");cout<<kol_sotr<<endl;
Rus("Кол-во кораблей: "); cout<<kol_kor<<endl<<endl;
}
//-------------------------------------------------------------------------------
void Rus(char *Str)
{
unsigned char c;
for(int i=0;Str[i]!='\0';i++)
{
c=Str[i];
if(c>127)
{
if(c<240)c-=64;
else c-=16;
}
cout<<c;
}
}
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
List::List()
{
strcpy(name,"Нет Имени");
item=0;
}
//-------------------------------------------------------------------------------
List::List(char* Name)
{
strcpy(name,Name);
item=0;
}
//-------------------------------------------------------------------------------
List::~List()
{
tItem*t=item;
tItem*temp;
while(t)
{
temp=t;
t=t->next;
delete temp;
}
}
//-------------------------------------------------------------------------------
void List::Insert(tObject* Obj)
{
tItem *t=new tItem;
t->obj=Obj;
t->next=item;
item=t;
}
//-------------------------------------------------------------------------------
AllOrgList::AllOrgList():List() {}
//-------------------------------------------------------------------------------
AllOrgList::AllOrgList(char*Name):List(Name) {}
//-------------------------------------------------------------------------------
AllOrgList::~AllOrgList(){}
//-------------------------------------------------------------------------------
void AllOrgList::Show()
{
Rus(name);cout<<"\n\n";
tItem* t=item;
while(t)
{
t->obj->Show();
t=t->next;
}
}
//-------------------------------------------------------------------------------
OrgList::OrgList():List() {}
//-------------------------------------------------------------------------------
OrgList::OrgList(char* Name):List(Name) {}
//-------------------------------------------------------------------------------
OrgList::~OrgList() {}
//-------------------------------------------------------------------------------
void OrgList::Show()
{
Rus(name);cout<<"\n\n";
tItem* t=item;
while(t)
{
t->obj->Show();
t=t->next;
}
}
//-------------------------------------------------------------------------------
void OrgList::ForEach(PF action,int KolSotr)
{
int t=0;
Rus("--Итератор--");cout<<"\n\n";
Rus("Организации с кол-ом сотрудников < 100 :");cout<<"\n\n";
tItem* p=item;
while(p)
{
if((*action)(p->obj,KolSotr))
{
p->obj->Show();
t++;
}
p=p->next;
}
if(!t) Rus("Таких нет");
cout<<endl;
}
//-------------------------------------------------------------------------------