14/02/14 19:59
rob
Salve
Se per esempio avessi una struttura del tipo:
struct operaio{
char nome[32];
char cognome[32];
int anni;
};
Dopo averla inserita
N volte viene chiesto all'utente se vuole inserire altre
Z volte la struttura con la seguente condizione: Se il
nome e il
cognome sono uguali bisogna aggiornare solo l'
età, in caso contrario aggiungere la nuova struttura (dell'elenco
Z) all'elenco iniziale (
N). Infine, ovviamente, stamparla.
E' un esempio stupido ma ci sto sbattendo la testa da giorni XD
Grazie a tutti...
Ultima modifica effettuata da rob 14/02/14 20:04
aaa
14/02/14 20:11
Poggi Marco
Ciao!
Dove incontri difficoltà? Le strutture sono memorizzate in modo statico, dinamico,su file... ?
Per la stampa, bisogna implementare una funzione?
aaa
14/02/14 20:35
rob
Le strutture vengono memorizzate in modo statico e riguardo la stampa la riesco a fare senza problemi.
Ecco il programma:
#include <iostream>
#define nmax 100
using namespace std;
struct operaio{
char nome[32];
char cognome[32];
int anno;
};
void lettura(int &N, operaio x[]){
for (int i = 0; i<N; i++){
cout << "Nome: "; cin >> x[i].nome;
cout << "Cognome: "; cin >> x[i].cognome;
cout << "Anno: "; cin >> x[i].anno;
}
}
int main(){
int N, Z;
operaio x[nmax];
cout << "Quanti operai vuoi inserire? "; cin >> N;
lettura(N, x);
cout << "Quanti altri operai inserire? "; cin >> Z;
lettura(Z, x); //qui: se il nome e il cognome sono uguali alla lettura precedente allora aggiorna, altrimenti aggiungi un nuovo operaio...
cout << "Elenco finale:";
return 0;
}
Ultima modifica effettuata da rob 14/02/14 20:36
aaa
14/02/14 21:01
Poggi Marco
Alla funzione lettura, devi implementare un ciclo di controllo ( per verificare se si è già inserito il nominativo ).
Quindi e necessario aggiungere un parametro che indichi alla funzione quanti record controllare.
Ti consiglio di memorizzare i dati su una istanza di operaio locale, per poi eventualmente, inserirla nel vettore.
aaa