|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Aug 2005
Messaggi: 86
|
[C++]Aiuto progetto
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. |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Sep 2005
Città: Barcelona
Messaggi: 200
|
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.
__________________
Code without tests is broken by design. |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Aug 2005
Messaggi: 86
|
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? |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Sep 2005
Città: Barcelona
Messaggi: 200
|
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.
__________________
Code without tests is broken by design. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Dec 2002
Città: Bologna
Messaggi: 483
|
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..
__________________
Acer TravelMate 8103Wlmi |
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Aug 2005
Messaggi: 86
|
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. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:20.



















