1. . 3
2. . 3
3. .. 4
4. .. 4
5. . 11
6. .. 12
6.1. . 12
7. .. 13
8. . 13
9. , .. 13
: . DZ_OOP. : ; , ; ; .
, . : , , . , , , , .
( , , . . .)
, , .
:
DZ_2kurs.h | 32,4 , | , | |
DZ_2kurs.cpp | 12,9 , | - | |
DZ_2kurs.exe | 114,7 , | . |
( . .)
().
:
Obj - .
listElem - , , .
List - , (, , , .).
|
|
AbsStreet - , .
AbsHome - , , .
Street - , , , : , , .
Home - , , : , , , .
( . .)
, .
enum BOOL {false=0, true}; | |||
static BOOL DestructorDeleteObj; | |||
enum HomeType{fast, multiple, complex}; | : , , | ||
enum StreetType{one, two, more }; | : , , | ||
enum TypeAddDel {tail, head, Number,NumbAfter, NumbCurrent, NumbBefore, AssbAfter, AssCurrent, AssBefore, createObj, nocreateObj, deleteObj, nodeleteObj }; | : , , . | ||
#define StreetClass 1 | (1) | ||
#define HomeClass 2 | (2) | ||
Obj , | |||
char *name | |||
int no | |||
Obj() | |||
~Obj(){ | |||
virtual char *className() = 0; | |||
virtual void printOn(ostream &) = 0; | |||
virtual int classType() = 0; | |||
AbstrHome | |||
virtual int classType() = 0; | |||
virtual char *className() = 0; | |||
virtual void printOn(ostream &) = 0; | |||
AbstrHome(): Obj(){}; | |||
~AbstrHome(){}; | |||
AbstrStreet | |||
virtual int classType() = 0; | |||
virtual char *className() = 0; | |||
virtual void printOn(ostream &) = 0; | |||
AbstrStreet (): Obj(){}; | |||
~AbstrStreet (){}; | |||
Home , | |||
virtual int classType(){ return HomeClass; } | |||
virtual char *className(){ return "Home"; } | |||
virtual void printOn(ostream & out) | |||
Home() | |||
Home(Home & H) | |||
Home(Home * pH) | |||
Home(const char *HomName, const char *Number) | : | ||
Home(const char *HomName, const char *Number, int Numb) | : , | ||
Home(const char *HomName, const char *Number, int Numb, int Etag, int Men=0,HomeType Type = fast,int Apart=0) | : , , , , , | ||
~Home() | |||
void setName(const char *HomName, const char *Number=NULL) | |||
const char *getName() | |||
const char *getNumb() | |||
int getNo() | |||
void getParam(int & iH, int & Etag,int & Men,HomeType & Type, int & Apart) | : , , , | ||
void setParam(int iH, int Etag,int Men,HomeType Type, int Apart) | : , , , | ||
void setAllParam(const char *HomName, const char *Number, int iH, int Etag, int Men,HomeType Type, int Apart, BOOL rem = false) | : , , , , , | ||
friend Home & operator +(Home & H1, Home & H2) | - | ||
Home operator =(Home & H); | |||
char*Home_Number | () | ||
intiHome | |||
intEtagCount | |||
intMenCount | |||
HomeType TypeHome | (: , , ) | ||
intNumbApartament | |||
BOOLHomeRemont; | |||
friendStreet | |||
Street , . | |||
Street(); | |||
Street(const char *sName); | |||
Street(const char *sNumbSearch, const char *sName); | |||
Street(int Num); | |||
Street(const char *sName, int Num); | |||
Street(Street & S); | ( ) | ||
~Street() { }; | |||
void add(Home *pH, TypeAddDel = tail, int Numb = 1, TypeAddDel = createObj); | (, ) | ||
void del(Home *pH, TypeAddDel = tail, int Numb = 1, TypeAddDel = nodeleteObj); | (, ) | ||
virtual int classType() { return StreetClass; } | |||
virtual char *className() { return "Street"; } | |||
virtual void printOn(ostream & out); | |||
int GetNumberHome(); | |||
int GetNumberMens(); | |||
int GetNumberApart(); | |||
char * GetNameStreet(){ return Name_Street;}; | |||
char * GetKeyNameStreet(){ return name;}; | |||
int GetNumbStreet(){ return NumberStreet;}; | |||
int GetKeyNumbStreet(){ return no;}; | |||
void SetNameStreet(const char * NameStr); | |||
void SetKeyNameStreet(const char * sName); | |||
void SetNumbStreet(int n); | |||
void SetKeyNumbStreet(int k); | |||
BOOL GetRemont(); | |||
BOOL GetRemontStr(){ return RemontStreet;}; | |||
void SetRemontStr(BOOL rS); | (false, true) | ||
StreetType GetStreetType(); | : one (), two (), more ( ) | ||
void SetStreetType(StreetType t); | : one, two, more | ||
friend Street & operator +(Street & X, Street & Y); | |||
Street operator =(Street & S); | |||
char *Name_Street; | |||
int NumberStreet; | |||
int Homes_num; | |||
BOOL Remont; | |||
BOOL RemontStreet; | |||
StreetType StrType; | :one (), two (), more ( ) | ||
Street * ListOfNear; | () | ||
List . | , | ||
List (); | |||
List (List & d); | |||
~List (); | |||
void AddHead(listElement * ElemList, TypeAddDel t=createObj); | : createObj( ), nocreateObj ( ) | ||
void RenumberList(); | |||
void AddTail(listElement * ElemList, TypeAddDel t=nodeleteObj); | : createObj( ), nocreateObj ( ) | ||
void AddNumber(listElement * ElemList, int Numb, TypeAddDel t=createObj); | : createObj( ), nocreateObj ( ) | ||
void AddAfterNumb(listElement * ElemList, int Numb, TypeAddDel t=createObj); | : createObj( ), nocreateObj ( ) | ||
void UpdateNumb(listElement * ElemList, int Numb) | |||
void AddBeforeNumb(listElement * ElemList, int Numb, TypeAddDel t=createObj); | : createObj( ), nocreateObj ( ) | ||
Obj * GetElemNumb(Obj ** pO, int Numb); | (Numb) | ||
Obj * GetFirst(Obj ** pO); | |||
Obj * GetLast(Obj ** pO); | |||
void DelHead(Obj ** pO, TypeAddDel t=nodeleteObj); | : deleteObj ( ), nodeleteObj ( ) | ||
void DelTail(Obj ** pO, TypeAddDel t=nodeleteObj); | : deleteObj ( ), nodeleteObj ( ) | ||
void DelNumb(Obj ** pO,int Numb, TypeAddDel t=nodeleteObj); | : deleteObj ( ), nodeleteObj ( ) | ||
void ClearList(TypeAddDel t=nodeleteObj); | :deleteObj ( ), nodeleteObj ( ) | ||
listElement * GetPrevElem(listElement * pCurr); | (pCurr) | ||
listElement * GetCurrElemForNumber(int Numb); | (Numb) | ||
int GetNubmerElem(); | |||
BOOL TestInList(Obj * ob); | (ob) | ||
void printOn(ostream & out); | |||
List operator=(List & d); | |||
int CurrentNumb; | |||
char * CurrentAssName; | |||
listElement *Head; | |||
listElement *Tail; | |||
int NumberElem; | |||
listElement , List | . . (Home) | ||
listElement() | |||
listElement(Home *d) | |||
~listElement() | |||
void printOn(ostream & out) | |||
listElement *next; | , NULL, | ||
listElement *prev; | , NULL, | ||
Home *Elem; | |||
int nElem; | |||
char * AssNum; | |||
|
|
|
|
|
|
. .
( , . .)