chiedo scusa!!
volevo dire che ho trovato una soluzione alla mia domanda.
è possibile leggere automaticamente degli oggetti da standard input, vi posto l'esempio.
non si sa mai, dovrebbe servire...
codice:
#include<iostream>
#include<cstdlib>
#include<string>
using namespace std;
int N;
class nazione
{
public:
nazione();
nazione(string n,int sup, int pop, int dens);
void most_sup(nazione cont[N]);
void most_pop(nazione cont[N]);
void most_dens(nazione cont[N]);
private:
string nome;
int superficie;
int popolazione;
int densita;
};
nazione::nazione()
{
nome="";
superficie=0;
popolazione=0;
densita=0;
}
nazione::nazione(string n,int sup, int pop, int dens)
{
nome=n;
superficie=sup;
popolazione=pop;
densita=dens;
}
/*
Una possibile soluzione, è passargli una sequenza di nazioni, e farle analizzare
*/
void nazione::most_sup(nazione cont[])
{
int i;
nazione big;
big=cont[0];
for(i=0;i<N;i++)
{
if(cont[i].superficie > big.superficie)
big=cont[i];
}
cout<<"La nazione più estesa è :"<<big.nome;
}
void nazione::most_pop(nazione cont[])
{
int i;
nazione big;
big=cont[0];
for(i=0;i<N;i++)
{
if(cont[i].popolazione > big.popolazione)
big=cont[i];
}
cout<<"La nazione più popolosa è:"<<big.nome;
}
void nazione::most_dens(nazione cont[]) // N non va rimesso nella definizione della funzione
{
int i;
nazione big;
big=cont[0];
for(i=0;i<N;i++)
{
if(cont[i].densita > big.densita)
big=cont[i];
}
cout<<"La nazione più densamente abitata è :"<<big.nome;
}
int main()
{
cout<<"inserisci quante nazioni su cui fare il calcolo : "<<'\n';
cin>>N;
nazione c[N];
string n;
int s,p,d;
for(int i=0; i<N; i++)
{
cout<<"inserisci nome : "<<'\n';
cin>>n;
cout<<"inserisci superficie, popolazione, densità di "<<n<<'\n';
cin>>s;
cin>>p;
cin>>d;
c[i]=nazione(n,s,p,d);
}
nazione i;
i.most_sup(c);
i.most_pop(c);
i.most_dens(c);
}
dovrebbe essere la stessa cosa per l'esempio di sopra.
grazie a tutti per la disponibilità,
mi rifarò vivo, perchè la settimana prossima ho l'esame