Скачиваний:
46
Добавлен:
10.12.2013
Размер:
4.89 Кб
Скачать
/*
	   ЋЇЁб ­ЁҐ Ї®«м§®ў вҐ«мбЄЁе Є« бб®ў TPerson Ё TMan
	   Ёе ॠ«Ё§ жЁп

*/

#ifndef PROG2_H
#define Prog2 

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>



 class TObject   // Ў §®ўл©  Ўбва Єв­л© Є« бб ¤«п ᮧ¤ ­Ёп ЁҐа аеЁЁ Є« бб®ў
 { public:
    TObject();
   ~TObject();
 };


 class TPerson  :  public TObject  // Є« бб ЇҐаб®­  - ­ б«Ґ¤­ЁЄ ®в TObject
   {  char * name;                // Є®¬Ї®­Ґ­в-¤ ­­®Ґ Є« бб  пў«пҐвбп
    public :           // ў­гв७Ё¬ - § йЁйҐ­­л¬ ®в ¤®бвгЇ  ¤агЈ®Ј® Є« бб 
       TPerson(char* name1);   // ॠ«Ё§®ў ­® ®ЎкҐ¤Ё­ЁҐ Їа®жҐ¤га ў
       TPerson();              // ¬Ґв®¤л Є« бб  -Ё­Є Їбг«пжЁп
      ~TPerson();
       char* getname();       // ®ЎйҐ¤®бвгЇ­лҐ ¬Ґв®¤л ¤«п Ї®«г祭Ёп Ё § ЇЁбЁ
       void  setname(char* name1); // Є®¬Ї®­Ґ­в -¤ ­­®Ј®
       virtual void sort();     // ¬Ґв®¤л ¤«п ॠ«Ё§ жЁЁ ­ б«Ґ¤®ў ­Ёп
       virtual void show(int); // virtual Ї®§ў®«пҐв ®ЇаҐ¤Ґ«Ёвм ¤«п ¬Ґв®¤®ў
       virtual void add();   //  Ї®§¤­ҐҐ бўп§лў ­ЁҐ
   };

 class TMan  :  public TPerson // Є« бб ­ б«Ґ¤­ЁЄ ®в TPerson - ॠ«Ё§ жЁп ­ б«Ґ¤®ў ­Ёп
   {  int  age;  // Є®¬Ї®­Ґ­в ў®§а бв
    public :
       TMan(int age1);  // Є®­бвагЄв®а б Ї а ¬Ґва ¬Ё
       TMan();  // Є®­бвагЄв®а ЎҐ§ Ї а ¬Ґва®ў
      ~TMan();
       int getage();   // ®ЎйҐ¤®бвгЇ­лҐ ¬Ґв®¤л ¤«п ¤®бвгЇ  Є § Єал⮬㠪®¬Ї®­Ґ­вг
       void  setage(int age1);
       void sort();    // ­ б«Ґ¤гҐл¬Ґ ¬Ґв®¤л, ЇҐаҐ®ЇаҐ¤Ґ«повбп
       // ў Ї®в®¬ЄҐ - Ї®«Ё¬®адЁ§¬
       void show(int); //Ї®Є § вм ¤ ­­лҐ Є« бб 
       void add();     // ¤®Ў ўЁвм
       void view();   // Їа®б¬®ва ўбҐе ¤ ­­ле
       void del();    // г¤ «Ёвм
   };


   TMan cont[20];                // ¬ ббЁў ®ЎкҐЄв®ў Є« бб  TMan
   static int count=0;           // Є®«ЁзҐбвў® н«Ґ¬Ґ­в®ў

   //             ђ…Ђ‹€‡Ђ–€џ Љ‹Ђ‘‘Ћ‚

	TObject::TObject(){    };

	 TObject::~TObject(){  };

   // ®ЇЁб ­ЁҐ Є« бб   TPerson
       TPerson::TPerson(char* name1)
       {name=new(char [30]);  // Є®­бвагЄв®а - ў ­Ґ¬ Ё­ЁжЁ «Ё§Ёаговбп ўбҐ ¤ ­­лҐ
	 strcpy(name,name1);};

       TPerson::TPerson(){};

      TPerson::~TPerson()
	{ delete [] name;};

       char* TPerson::getname() {return name;};

       void  TPerson::setname(char* name1) {
       name=new(char[20]);
       strcpy(name,name1);};

       void TPerson::show(int in)
       {cout<<" Ё¬п:  "<<cont[in].getname()<<endl;    } ;

       void TPerson::sort()
	{ char* str;
	 TMan* m;
	for(int i=1 ; i<=count;i++)
	for(int j=count ; i>=1;i--)
	 {if(cont[i].getname()>cont[j].getname())
	 {  strcpy(str,cont[i].getname());
	    cont[i].setname(cont[j].getname());
	    cont[j].setname(str);
	 }}

	 } ;

       void TPerson::add()
       { cout<<"  name  ";
	 char* str;
	 gets(str);
	 cout<<endl;
	 setname(str);
	 };

  //  Љ« бб TMan

	TMan::TMan()
	{age=0;}; // Є®­бвагЄв®а ЎҐ§ Ї а ¬Ґва®ў

	TMan::TMan(int age1)
	{TPerson(name);  // Їа®Ёб室Ёв ­ б«Ґ¤®ў ­ЁҐ ўбҐе Є®¬Ї®­Ґ­в ®в தЁвҐ«мбЄ®Ј® Є« бб 
	age=age1;};


	TMan::~TMan(){ } ;

       int TMan::getage(){return age;} ;

       void  TMan::setage(int age1){age=age1;}  ;

       void TMan::show(int in)
       {TPerson::show(in);    // ­ б«Ґ¤®ў ­ЁҐ
       cout<<"  ў®§а бв:  "<<cont[in].getage()<<endl;}  ;

       void TMan::sort()
	{ int ag;     // ॠ«Ё§®ўлў Ґвбп Ї®«Ё¬®адЁ§¬ - ЇҐаҐ®ЇаҐ¤Ґ«Ґ­ЁҐ
	 /// clrscr();   // ¬Ґв®¤  தЁвҐ«мбЄ®Ј® Є« бб 
	  char *str=new(char[20]);
	  cout<<"   б®авЁа®ўЄ  Ї® ў®§а бвг "<<endl;
	  getch();getch();
	for(int i=1 ; i<=count;i++)   // ॠ«Ё§®ў ­  б®авЁа®ўЄ  Їг§ламЄ®¬
	for(int j=count ; j>=i;j--)

	 if( cont[i].getage()> cont[j].getage() )
	 {  ag=cont[i].getage() ;
	    strcpy(str,cont[i].getname()) ;
	    cont[i].setage(cont[j].getage());
	    cont[i].setname(cont[j].getname());
	    cont[j].setage(ag);
	    cont[j].setname(str);
	 }
	     delete []str;
	 } ;

       void TMan::view()
       { //clrscr();
	 for (int i=1;i<=count;i++){
	 show(i);
	 getch();getch();}

       };

       void TMan::add()
	{ //clrscr();
	  count++;
	  cout<<"   ¤®Ў ў«Ґ­ЁҐ ®ЎкҐЄв  "<<endl;
	  TPerson::add(); // ­ б«Ґ¤®ў ­ЁҐ
	  cout<<"  age  ";
	  int age=0;
	  cin>>age;
	  cout<<endl;
	  cont[count].setage(age);
	  cont[count].setname(TPerson::getname());
	  };

       void TMan::del()
       {  int number=-1;
	 //clrscr();
	  int ag=0;
	  cout<<"   г¤ «Ґ­ЁҐ ®ЎкҐЄв  "<<endl;
	  char* str=new(char[20]);
	  cout<<"  ‚ўҐ¤ЁвҐ ­®¬Ґа г¤ «пҐ¬®© § ЇЁбЁ (­Ґ Ў®«миҐ " << count<<") : " ;
	  cin>>number;cout<<endl;
	  if ((number>0)&&(number<=count))
	  { for (int i=number;i<count;i++)
	   {
	    ag=cont[i+1].getage() ;
	    strcpy(str,cont[i+1].getname()) ;
	    cont[i].setage(ag);
	    cont[i].setname(str);
	   }
	  }
	  count--;
	  delete []str;
       };

#endif
Соседние файлы в папке климов_1