Ciao ragazzi, sono nuovo del forum quindi spero sia la sezione giusta.
Mi è stato assegnato il seguente esercizio da implementare in C++.
"Un'agenzia del lavoro intende effettuare una ricerca tra tutti i disoccupati che nell'ultimo anno sono stati assunti tramite la propria struttura.
La distinzione è fatta tra DIPLOMATI e LAUREATI.
I DIPLOMATI si distinguono in base al tipo di diploma conseguito (Liceo, Industriale, Commerciale, Professionale).
I LAUREATI si classificano per settore (Scientifico, Umanistico, Economico).
Implementare un programma per l'agenzia del lavoro che permetta di distinguere i diversi tipi di disoccupati. In particolare progettare una gerarchia di classi in cui la classe base è Disoccupato, mentre le classi derivate sono Diplomato e Laureato (TUTTE con attributi privati).
Infine implementare un main() che permetta di calcolare la percentuale di diplomati e laureati sul totale (N=350) dei disoccupati iscritti all'agenzia."
Ho definito le classi così:
codice:
class Disoccupato{
string nome;
int studio;
public:
void Set(string n, int s)
{
nome=n;
studio=s;
};
void Get(string& no, int& st)
{
no=nome;
st=studio;
};
};
class Diplomato:public Disoccupato
{
string tipo;
public:
void SetDipl(string n, int s, string t)
{
Set(n, s);
tipo=t;
};
void GetDipl(string& no, int& st, string& ti)
{
Get(no, st);
ti=tipo;
};
};
class Laureato:public Disoccupato
{
string tipo;
public:
void SetLaur(string n, int s, string t)
{
Set(n, s);
tipo=t;
};
void GetLaur(string& no, int& st, string& ti)
{
Get(no, st);
ti=tipo;
};
};
Penso non ci siano problemi (il flag intero s lo prenderò da tastiera ed assume valore 1 per il Diplomato, 2 per il Laureato).
I problemi nascono nel caricamento del vettore e poi nel tentativo di stamparlo a video per verificare che il caricamento sia andato bene.
La mia domanda è:
E' possibile creare un vettore di 350 Disoccupato che contenga sia elementi del tipo Diplomato che del tipo Laureato?
Perchè avevo pensato all'idea di poter creare un vettore eterogeneo, in cui tutti gli elementi appartengono alla stessa classe base (quindi tutti quanti hanno un nome n e un flag s), ma poi ognuno può avere degli attributi tipici della sua classe derivata (il tipo di diploma/laurea in questo caso).
L'esercizio sarebbe semplice se ci fosse la possibilità di fare due vettori diversi, ma dalla traccia capisco che non è così (parla di ricerca tra tutti i disoccupati)..
Grazie in anticipo a chiunque proverà a rispondermi