Oppure

Loading
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
14/02/14 22:17
rob
Ok, credo di aver capito. Grazie :)
aaa
15/02/14 19:56
Krackel
Postato originariamente da rob:



Bisogna stamparla solamente oppure devi anche effettuare l'ordinamento della lista?
aaa
17/02/14 18:19
rob
Ordinarla :)
aaa