Salve a tutti, sono nuovo del forum. Ho un problema con un esercizio la cui traccia recita così;
Sviluppare un programma in C++ che usi una struttura per raccogliere informazioni sui pazienti di un ospedale: nome, indirizzo, data di nascita, genere, giorno di ingresso, giorno di uscita e problema fisico. Il programma deve avere una funzione per immettere i dati, raccoglierli in un array e visualizzare in output i pazienti ricoverati in un dato giorno. Quello che posto è il codice che ho scritto; ho fatto una struttura data ed una paziente. Il problema sta nel fatto che quando digito il giorno di entrata il programma non mi vsualizza l'elenco di tutti i pazienti ricoverati quel giorno ma termina. Perchè? L'if è sbagliato? Grazie per un eventuale aiuto! Posto il codice:
using namespace std;
struct data
{
unsigned int giorno;
unsigned int mese;
unsigned int anno;
};
struct paziente
{
char nome[20];
char indirizzo[30];
data data_nascita;
char genere;
data data_entrata;
data data_uscita;
char problema[20];
};
void inserisci (paziente *ptr);
void ricerca (paziente *ptr, unsigned int);
int main ()
{
int num;
unsigned int giorno;
cout << "Quanti pazienti vuoi inserire nel database? ";
cin >> num;
paziente num_pazienti[num];
paziente *p;
p=num_pazienti;
for (int i=0; i<num; i++, p++)
{
cout << endl;
inserisci(p);
}
cout << "Inserire il giorno di ricovero: ";
cin >> giorno;
for (int i=0; i<num; i++, p++)
ricerca (p,giorno);
system ("PAUSE");
return 0;
}
void inserisci (paziente *ptr)
{
cout << "Nome paziente: ";
cin >> (ptr->nome);
while(cin.get() != '\n');
cout << "Indirizzo: ";
cin >> (ptr->indirizzo);
while(cin.get() != '\n');
cout << "Data di nascita: ";
cin >> ptr->data_nascita.giorno
>> ptr->data_nascita.mese
>> ptr->data_nascita.anno;
cout << "Genere: ";
cin >> ptr->genere;
cout << "Data di entrata: ";
cin >> ptr->data_entrata.giorno
>> ptr->data_entrata.mese
>> ptr->data_entrata.anno;
cout << "Data di uscita: ";
cin >> ptr->data_uscita.giorno
>> ptr->data_uscita.mese
>> ptr->data_uscita.anno;
cout << "Problema fisico: ";
cin >> (ptr->problema);
while(cin.get() != '\n');
}
void ricerca (paziente *ptr, unsigned int giorno)
{
if (giorno == ptr->data_entrata.giorno)
cout << "Nome paziente: " << ptr->nome << endl;
}