Sunteți pe pagina 1din 4

Ministerul Educaţiei, Culturii si Cercetarii al Republicii

Moldova

Universitatea Tehnică a Moldovei

Facultatea Calculatoare Informatica si Microelectronica


Departamentul ISA

RAPORT
Lucrarea de laborator nr.6
la POO

A efectuat:
st. gr. AI-171 E.Cazacov

A verificat: M. Osovschi

Chişinău - 2018
Lucrarea de laborator nr.6
Tema: Templates: Template pentru clase şi funcţii.

Scopul lucrării: familiarizarea studenţilor cu clase şi funcţii generice.

Sarcina pentru lucrările de laborator:


Să se scrie un program care implimentează o clasă generică și care realizează algoritmul de
sortare: Bubble Sort [interschimbare]

Programul in C++:
#include<iostream>
#include<stdlib.h>
#include<iomanip>
#include<conio.h>
#include<stdio.h>
using namespace std;

template <class t>


class bubble{
t a[25];
public:
void Citire(int);
void Sort(int);
void Afisare(int);};

template <class t>


void bubble <t>::Citire(int n){
int i;
cout<<"Introduceti elemente:\n";
for(i=0; i<n;i++)
cin>>a[i];}

template <class t>


void bubble <t>::Afisare(int n){
int i;
cout<<"\nElementele sorate:\n";
for(i=0;i<n;i++)
cout<<a[i]<<setw(5);}

template <class t>


void bubble <t>::Sort(int n){
int i,j;
t temp;
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(a[i]>a[j]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}}}}
int main(){
int n,ch;
while(1){
cout<<"\n\n----BUBBLE SORT TEMPLATES----\n";
cout<<"\nAlegeti varianta:\n1.Integer\n2.Float\n3.Charactere\n4.Exit\n\n";
cin>>ch;
switch(ch){
case 1:{
cout<<"\n### Integer Sortmenu ###\n\n";
bubble<int> b1;
cout<<"Introduceti dimensiunea tabloului:\n";
cin>>n;
b1.Citire(n);
b1.Sort(n);
b1.Afisare(n);
break;
};
case 2:{
cout<<"\n### Float SortMenu ###\n\n";
bubble<float> b2;
cout<<"Introduceti dimensiunea tabloului:\n";
cin>>n;
b2.Citire(n);
b2.Sort(n);
b2.Afisare(n);
break;
};
case 3:{
cout<<"\n### Character SortMenu ###\n\n";
bubble<char> b3;
cout<<"Introduceti dimensiunea tabloului:\n";
cin>>n;
b3.Citire(n);
b3.Sort(n);
b3.Afisare(n);
break;
};
case 4:{
cout<<"Programa s-a terminat";
exit(0);
};
default:
cout<<"Alegerea gresita, incercati inca odata!\n";
return 0;}}
getch();}
Rezultatul:

Concluzie:

La lucrarea de laborator nr.6 am facut cunostinta cu clase şi funcţii generice.Avantajele acestiua


sunt flexibilitatea codului in care se poate de lucrat cu mai multe tipuri de date si volumul, creste
gradul de reutilizarea. Functiile generice a templates este foarte comoda si are mai multe cai de
folosire.