Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
практичні і лабораторні заняття.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
382.98 Кб
Скачать

Int main()

{clrscr();

void bsort(person**,int);//prototyp

person* persPtr[100];

int n=0;

char choice;

do

{persPtr[n]=new person;

persPtr[n]->setname();

n++;

cout<<”Continue(y/n)?”;

cin>>choice;

} while(choice==’y’);

cout<<”\nНесортований список:”;

for(int j=0;j<n;j++)

persPtr[j]->printname();

bsort(persPtr,n);

cout<<”\nСортований список:”;

for(j=0;j<n;j++)

persPtr[j]->printname();

cout<<endl;

bioskey(0);

return 0;

}

//////////

void bsort(person** pp,int n)

{void order(person**,person**);

int j,k;

for(j=0;j<n-1;j++)

for(k=j+1;k<n;k++)

order(pp+j,pp+k);

}

//////////

void order(person** pp1,person** pp2)

{if((*pp1)->getname()>(*pp2)->getname())

{person* tempptr=*pp1;

*pp1=*pp2;

*pp2=tempptr;

}

}

Програма 20.20

Практичне заняття 10-11 Теоретична частина

Базується на матеріалі лекцій 22-25: віртуалізація функцій

Завдання

Ввести тексти програм, які розглядалися у лекціях 22-25. Прокомпілювати, проаналізувати результат роботи. До тексту звіту включити лістінги програм та результати їх роботи.

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

#include<bios.h>

//////////

class Base

{public:

void show()

{cout<<”Base\n”;}

};

////////////

class Derv1:public Base

{public:

void show()

{cout<<”Derv1\n”;}

};

/////////////

class Derv2:public Base

{public:

void show()

{cout<<”Derv2\n”;}

};

//////////////

Int main()

{clrscr();

Derv1 dv1;

Derv2 dv2;

Base* ptr;

ptr=&dv1;

ptr->show();

ptr=&dv2;

ptr->show();

bioskey(0);

return 0;

}

Програма 22.1

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

#include<bios.h>

//////////

class Base

{public:

virtual void show()

{cout<<”Base\n”;}

};

////////////

class Derv1:public Base

{public:

void show()

{cout<<”Derv1\n”;}

};

/////////////

class Derv2:public Base

{public:

void show()

{cout<<”Derv2\n”;}

};

//////////////

Int main()

{clrscr();

Derv1 dv1;

Derv2 dv2;

Base* ptr;

ptr=&dv1;

ptr->show();

ptr=&dv2;

ptr->show();

bioskey(0);

return 0;

}

Програма 22.2

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

#include<bios.h>

//////////

class Base

{public:

virtual void show()=0; //чиста віртуальна функція

};

////////////

class Derv1:public Base

{public:

void show()

{cout<<"Derv1\n";}

};

/////////////

class Derv2:public Base

{public:

void show()

{cout<<"Derv2\n";}

};

//////////////

Int main()

{clrscr();

// Base bad; //помилка

Base* arr[2];

Derv1 dv1;

Derv2 dv2;

arr[0]=&dv1;

arr[1]=&dv2;

arr[0]->show();

arr[1]->show();

bioskey(0);

return 0;

}

Програма 22.3

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

#include<bios.h>

class person

{protected:

char name[40];

public:

void getname()

{cout<<"Input name:"; cin>>name;}

void putname()

{cout<<"Name:"<<name<<endl;}

virtual void getdata()=0;//Чиста віртуальна функція

virtual int isoutstanding()=0;//Чиста віртуальна функція

};

/////////////

class student:public person

{private:

float gps;

public:

void getdata()

{person::getname();

cout<<"Середній бал: ";cin>>gps;

}

int isoutstanding()

{return(gps>3.5)?1:0;}

};

/////////////

class professor: public person

{private:

int numpubs;

public:

void getdata()

{person::getname();

cout<<"Число публікацій:";cin>>numpubs;}

int isoutstanding()

{return(numpubs>100)?1:0;}

};

/////////////////