PDA

Visualizza la versione completa : [C] Creare un catalogo di prodotti


goatboy
07-08-2011, 00:22
Salve. Scusate per il nome del thread ma non sapevo proprio cosa scrivere :mame: L'idea che ho è quella di creare un programma che sia una sorta di registro alimentare. All'utente viene chiesto cosa ha mangiato a colazione, a pranzo e a cena, e poi tutto viene inserito su un file .txt. Nelle schermate relative ai pasti vorrei far visualizzare tutti i cibi relativi a quel pasto e vicino ad ogni cibo, fra parentesi, le calorie corrispondenti a 100 gr. del prodotto.
Esempio schermata colazione:


1. Cornetto (xxx calorie) ; 2. Cappuccino (xx calorie) ;

Inserisci i numeri corrispondenti ai cibi mangiati:
Ora inserisci i grammi:

L'utente inserirà il numero o i numeri corrispondenti ai cibi ingeriti in quel pasto, e relativi grammi per ogni cibo.
Il programma poi restituisce, alla fine dell'inserimento di tutti i dati, le calorie totali della giornata.
Non ho ancora iniziato a scrivere niente, perchè ho un dubbio su quale sia il modo migliore per catalogare i cibi e far corrispondere ad ogni cibo le relative calorie per 100 gr, cosìcchè il programma calcoli le calorie totali a seconda del cibo e dei grammi.
Io avevo pensato a degli array, in uno inserivo i cibi, e nell'altro (nell'ordine corrispondente), le calorie. Ma forse è un'idea assurda. E' l'unica cosa che mi è venuta in mente. Potrei leggerli forse da un file? Qualche consiglio? Spero di non aver aperto una discussione troppo generica.

XAlbeX
07-08-2011, 01:25
Originariamente inviato da goatboy
Potrei leggerli forse da un file?
Così sarebbe anche più facile aggiornale la lista (senza dover ricompilare)


Originariamente inviato da goatboy
Qualche consiglio?
Non tenere separati i dati utilizzando più array. E' meglio fare un array di struct.

goatboy
07-08-2011, 08:56
Originariamente inviato da XAlbeX
Non tenere separati i dati utilizzando più array. E' meglio fare un array di struct.
Ovvero? :confused:

ShaleN
07-08-2011, 13:13
Leggi qui (http://www.science.unitn.it/~fiorella/guidac/guidac020.html). (Primo risultato su Google).


:ciauz: :ciauz:

goatboy
07-08-2011, 15:12
Ok, ho risolto inserendo i dati dei cibi su file così da poterlo modificare più facilmente.
Credo sia una soluzione più comoda rispetto all'alternativa della struct (ringrazio ShaleN per la segnalazione, non mi ero neanche preso la briga di cercarlo su google, chiedo scusa).
Ora però ipotizzando che, ad esempio, il cornetto corrisponda al numero 1 e il latte corrisponda al numero 2, come faccio a dire al programma che l'1 corrisponde a quel determinato cibo, così poi da fargli calcolare le calorie? :confused:
Una soluzione forse è quella di prendere i numeri dall'utente, e poi farli corrispondere alla riga uguale nel file (ad esempio l'utente inserisce 2 (latte) che corrisponde alla 2a riga del file txt). Ma non so come si fa.. :confused:

XAlbeX
07-08-2011, 18:06
Un esempio..

se il file è così

cibo1 500
cibo2 236
cibo3 756
cibo4 124
cibo5 758
cibo6 369
...
...

quando l'utente digita un cibo, tu leggi il file fino a che non trovi la riga richiesta e prendi il numero a fianco.

oppure carichi il file in memoria, organizzando i dati in strutture, così li scorri più facilmente.

goatboy
07-08-2011, 23:38
Originariamente inviato da XAlbeX
quando l'utente digita un cibo, tu leggi il file fino a che non trovi la riga richiesta e prendi il numero a fianco.

Tutto questo come si traduce in codice? :confused:

XAlbeX
08-08-2011, 11:35
Dovresti studiarti l'IO sui file..
Puoi utilizzare la fscanf oppure leggere i dati in modo binario e poi lavorare con buffer e puntatori

goatboy
08-08-2011, 15:47
Il mio file è strutturato in modo che ad ogni riga corrisponda un solo cibo. Quindi in teoria se l'utente inserisce in input il cibo n.3 , io devo cercare la riga n.3 del file, ma non so come farlo. Forse mi sono buttato in qualcosa troppo difficile :confused:

Loading