PDA

View Full Version : [C++]Aiuto progetto


MaxGuevara
24-01-2006, 04:33
Ormai sono giorni che ci sto sbattendo la testa:
Devo fare un programma in C++ che salva delle informazioni su degli studenti in un file di testo,e che effettua una ricerca in base a certi criteri.
Vi riporto la consegna,almeno la parte che non riesco a realizzare:

Scopo:Realizzare un programma C++ che offra le funzioni base per la gestione di un archivio di studenti:

1.Gestione Studenti -Funzioni di Base:
(a)Immissione nuovo studente:
*nome e cognome
*matricola
*anno di corso
*data di nascita
*recapito
*indirizzo email

(b)Ricerca di uno studente in base a:
*matricola
*cognome

(c)Cancellazione o modifica studente(individuato in base alla matricola).


Ora,la parte dell'immisione di un nuovo studente e' a posto.Riesco a salvare i dati forniti da input in un file di testo.
Come posso fare,pero',per la seconda parte,ossia la ricerca tramite la lettura da file?
Vi ringrazio anticipatamente.

cj++
24-01-2006, 07:48
Potresti, all'avvio del programma, leggere da file e caricare tutto su una lista.
Le ricerche e le modifiche le effettui sulla lista e poi quando dai il quit dal programma scrivi tutto su file (oppure scrivi su file ad ogni modifica).

Così è abbastanza semplice perche puoi usare <list> e le funzioni di ricerca che ti offre la STL.

MaxGuevara
25-01-2006, 03:11
Dici che e' meglio?
E come faccio per caricare su una lista i dati che prendo da file?

Inizio aprendo il file in lettura con ifstream.
Una volta aperto che operazione uso per mettere i dati sulla lista?

cj++
25-01-2006, 07:37
Leggi di volta in volta una entry della struttura e la metti temporaneamente su una struct, quindi la inserisci nella lista (push_back). Per ordinarla usi poi sort.

Zeus84
25-01-2006, 09:06
puoi farlo in due modi diversi:
1) come suggerito da cj++
2) ogni volta apri il file e cerchi il record associato allo studente
Purtroppo entrambi i metodi sono gravosi dal punto di vista computazionale se inizi a gestire file abbastanza grossi...ora non sò che specifiche di progetto hai, ma potresti stampare i record sul file in modo ordinato rispetto al numero di matricola o al cognome, o magari usare più file e catalogare direttamente quando memorizzi..es divisione in base alla lettara del cognome
Se propri vuoi fare lo sborone, potresti caricarti in memoria una tabella ristretta del tipo (matricola, cognome, nomefile) in modo che se devi effettuare una ricerca o in base alla matricola o in base al cognome ti scorri la lista e accedi al file...se il file è unico potresti inserire (matricola,cognome,n°riga all'interno del file)...insomma puoi fare molte aggiustatine considerando però che poi una lista del genere devi tenerla aggiornata..

MaxGuevara
27-01-2006, 03:57
C'e' un modo per sapere quanti elementi di uno struct sono scritti?
se ho uno struct cosi' inizializzato:
struct struttura esempio[10];
e scrivo delle stringhe in 6 di questi elementi,c'e' una funzione che mi dica che 6 elementi sono usati?
Una specie di size() per i vettori.
Vi chiedo questo perche' mi serve sapere quante righe sono scritte all'interno di un file per quando vado ad immettere delle nuove informazioni in quest'ultimo.