Добавил:
bagiwow
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программирование / Лабораторные / климов_1 / PROG2
.H/*
ЋЇЁб ЁҐ Ї®«м§®ў ⥫мбЄЁе Є« бб®ў 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