Sie sind auf Seite 1von 3

#include "Programma.

h"
#include "Opera.h"
#include <iostream>
using namespace std;

ostream& operator<<(ostream& out, const Programma& P)


{
for(int i=0; i<P.size; i++)
cout<<P.opere[i]<<endl;
return out;
}

Programma::Programma()
{
opere=NULL;
capacity=0;
size=0;
}

Programma::Programma(int dim, int cap)


{
capacity=cap;
opere=new Opera[capacity];
size=dim;
for(int i=0; i<size; i++)
cin>>opere[i];
}

Programma::Programma(const Programma& P)
{
capacity=P.capacity;
size=P.size;
opere=new Opera[capacity];
for(int i=0; i<size; i++)
opere[i]=P.opere[i];
}

void Programma:: Aggiungi(Opera& O)


{
if(size<capacity)
opere[size++]=O;
else
{
capacity*=2;
Opera *tmp=new Opera[capacity];
for(int i=0; i<size; i++)
tmp[i]=opere[i];
delete[] opere;
opere=tmp;
opere[size++]=O;
}
}

bool Programma::presente(const Opera& O)


{
for(int i=0; i<size; i++)
if(opere[i]==O)
1
return true;
return false;
}

Opera& Programma::operaPiùLunga()
{
int durataMax=0, indice=0;
for(int i=0; i<size-1; i++)
{
int durata=opere[i].getDurata();
for(int j=i+1; j<size; j++)
if(opere[j].getDurata()>durata)
{
durataMax=opere[j].getDurata();
indice=i;
}
}
return opere[indice];
}

bool Programma::stessaCompagnia()
{
for(int i=0; i<size-1; i++)
{
string comp=opere[i].getNome();
for(int j=i+1; i<size; i++)
if(opere[j].getNome()==comp)
return true;
}
return false;
}

Opera& Programma::operaPiùVecchia()
{
int annoMin=0, indice=0;
for(int i=0; i<size-1; i++)
{
int anno=opere[i].getAnno();
for(int j=i+1; j<size; j++)
if(opere[j].getAnno()<anno)
{
annoMin=opere[j].getAnno();
indice=i;
}
}
return opere[indice];
}

string Programma::AutorePiùopere()
{
int contMax=0, cont=0, indice=0;
for(int i=0; i<size-1; i++)
{
cont=0;
string autore=opere[i].getAutore();
for(int j=0; j<size; j++)
{
2
if(opere[i].getAutore()==autore)
cont++;
}
if(cont>contMax)
{
contMax=cont;
indice=i;
}
}
return opere[indice].getAutore();
}

Das könnte Ihnen auch gefallen