/* Prova scritta di Fondamenti di Informatica II Siano dati i file input1.txt e input2.txt realizzati come segue: nome cognome tipoContratto anni reddito il prototipo della classe Dipendente (da implementare): class Dipendente{ char *nome; char *cognome; char *tipoContratto; int anni; int redditoAnnuo; public: Dipendente(); ~Dipendente(); Dipendente(const Dipendente &d); bool operator<=(Dipendente d); Dipendente operator=(Dipendente d); friend ostream& operator<<(ostream &o, Dipendente d); friend istream& operator>>(istream &i, Dipendente &d); void set_nome(char *n); void set_cognome(char *c); void set_contratto(char *t); void set_anni(int anni); }; ed i prototipi delle funzioni (da implementare): ostream & operator<<(ostream &o, Dipendente d); istream & operator>>(istream &i, Dipendente &d); Supponendo che dati due oggetti di tipo Dipendente d1 e d2: a. d1 < d2 se e solo se d1.cognome < d2.cognome || d1.cognome == d2.cognome && d1.nome < d2.nome b. d1 == d2 se e solo se nome e cognome coincidono Scrivere un programma C++ che: 1. carichi i dati contenuti nel file input1.txt e input2.txt in due liste separate, in ordine inverso rispetto a come sono scritti nel file. 2. chieda una soglia all'utente (soglia) 3. chieda all'utente di indicare una tipologia (tipo) di contratto (tra determinato, indeterminato o progetto); 4. che crei una terza lista in cui copi: a. gli elementi della prima lista con reddito maggiore di soglia. b. gli elementi della seconda lista con tipo di contratto uguale a tipo. 6. che memorizzi in un unico file la lista creata al punto precedente. INPUT: soglia1 = 20000 tipo = determinato input1.txt Carlo Conti determinato 4 21000 Francesco Bianchi indeterminato 10 28000 Mario Rossi progetto 2 18000 input2.txt Francesco Ferrara determinato 1 16000 Maria Salerno indeterminato 11 30000 Giovanni Verdi progetto 2 18000 OUTPUT: output.txt Carlo Conti determinato 4 21000 Francesco Bianchi indeterminato 10 28000 Francesco Ferrara determinato 1 16000 */