Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - programma per gestione biblioteca
Forum - C/C++ - programma per gestione biblioteca - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 0:06
Giovedì, 07/01/2010
Non capisco cosa serva Setparameterbook e Setparameterfriend visto che c'è il costruttore per inizializzare l'oggetto e passargli i dati. Da quel che ho letto direi che è sufficiente il costruttore Book e un metodo che rappresenta l'atto di prestare il libro tipo giveBookTo(Friend f), col quale poi imposti i parametri; poi un metodo per rappresentare la restituzione dove reimposti i parametri allo stato in cui il libro è in tuo possesso.
E per quanto riguarda Friend basta solo il costruttore.

Inoltre ti consiglio di impostare un ID di tipo int dentro la classe Book e anche dentro la classe Friend, di impostarla come static e usarla come chiave primaria (incrementandola ogni volta che crei un nuovo oggetto). In questo modo avrai un riferimento univoco alle entità e potrai usarle per riferirti ad esse, come avevi accennato nel tuo post indicando l'ID del friend nel book per sapere a chi lo ha prestato.


Per quanto riguarda il salvataggio mi vengono due strade coi file:
1) Un file per ogni libro, del tipo id.dat dove serializzi il semplice oggetto
2) un file ad accesso diretto dove scrivi in un unico file tutti i libri

Stesso discorso per la classe Friend.

Naturalmente il codice per il salvataggio è sempre quello che ho postato all'original poster tempo fa, se naturalmente vuoi usare la seconda opzione le cose si complicano visto che devi gestire la posizione nel file in baso al suo indice e in base alla dimensione della struttura salvata.

Inoltre per tenere in memoria i dati ti consiglio di usare un vector<Book>: http://www.cplusplus.com/reference/stl/vector/

A meno che tu non voglia passare ogni volta per i file.

P.S
Non so che libro usiate come riferimento, ma in C++ Tecniche Avanzate di Programmazione deitel&deitel c'è un bel capitolo sull'elaborazione dei file, con un bel esempio completo sulla gestione su file di conti correnti e transazioni.
Se non hai il libro potresti cmq scaricarti i sorgenti di esempio sul sito dell'apogeo: http://www.apogeonline.com/libri/88-503-2387-5/allegato/li ...
Il capitolo da guardare è il 4.

Ultima modifica effettuata da netarrow il 07/01/2010 alle 0:09
PM Quote
Avatar
gianlu666 (Normal User)
Newbie


Messaggi: 5
Iscritto: 06/01/2010

Segnala al moderatore
Postato alle 1:44
Giovedì, 07/01/2010
Vedo di studiare i link domattina.
Elimino i doppi metodi per l'inizializzazione degli oggetti e vedo di cominciare ad implementare il metodo per prestito e restituzione. Non mi è tutto chiaro ma farò il possibile!
Per il momento grazie mille e buonanotte!
Diamine nelle ultime 3 ore non ho conlcuso nulla!

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 8:03
Giovedì, 07/01/2010
Testo quotato

Postato originariamente da netarrow:
Inoltre ti consiglio di impostare un ID di tipo int dentro la classe Book e anche dentro la classe Friend, di impostarla come static e usarla come chiave primaria (incrementandola ogni volta che crei un nuovo oggetto). In questo modo avrai un riferimento univoco alle entità e potrai usarle per riferirti ad esse, come avevi accennato nel tuo post indicando l'ID del friend nel book per sapere a chi lo ha prestato.



Qui naturalmente ho detto una cosa sbagliata, l'ID chiaramente NON deve essere static o ne avresti uno solo condiviso fra tutti gli oggetti.

Devi crearti invece un campo lastID statico per rendere noto a tutti gli oggetti l'ultimo ID usato, incrementarlo e salvarlo dentro l'ID d'istanza. Così garantirai l'unicità.

Dì pure quali sono le parti che non sono chiare.

Ultima modifica effettuata da netarrow il 07/01/2010 alle 8:09
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo