.


:




:

































 

 

 

 





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;
       

 

. .

( , . .)

 





:


: 2017-04-15; !; : 186 |


:

:

. .
==> ...

1417 - | 1382 -


© 2015-2024 lektsii.org - -

: 0.014 .