Oppure

Loading
03/11/06 21:23
ken
Lo farei volentieri ma questo è un programma che devo consegnare fra pochi giorni e, sono sincero, non vorrei che me lo copiassero...;)
Fra una settimana lo posso mettere tranquillamente qui sul forum. Comunque il problema è che ho fatto un while immenso, dove legge il file e fa la differenza tra le date, ma è troppo lungo e non sta bene...inoltre mi dà errore di debug anche se alla fine parte.
Il while è del tipo:

.
.
.
string s;
while (getline(in,s))
{
	
	
	string giorno1(s,...);	
	string mese1(s,...);
	.
         .
         .
  partenza.giorno=conversioneInt(giorno1);
         .
         .
         . 
  
 differenza = ......
out<<....
.
.
.


Nel programma dovrei cercare di non inserire oggetti Data (tipo Data partenza) all'interno delle funzioni, ma lo dovrei fare nel main, sempre cercando di non farlo troppo lungo...uff...
Comunque il codice intero ho provato a mandartelo per email tramite questo sito. Non so se l'hai ricevuto. Grazie per la pazienza..
Ciao

aaa
05/11/06 12:16
netarrow
si mi era arrivato ma convinto che postavi l'ho eliminata, se mi rimandi il codice e i file di esempio appena ho un attimo provo a far girare ;-)

(spero non sia troppo tardi, mi disp sennò;)

ciao ciao
Ultima modifica effettuata da netarrow 05/11/06 12:18
aaa
05/11/06 13:35
ken
Grazie. Te l'ho rimandato spero che ti arrivi. Fra qualche giorno se vuoi posso inserire il programma completo qui per tutti quelli che possono aver bisogno...Ciao
aaa
05/11/06 16:13
netarrow
a me non da errori a debug(uso su linux) e cmq funziona e il codice non saprei come altro sistemarlo.
aaa
05/11/06 19:19
ken
Su windows dà errore di debug e su un altro pc non parte nemmeno...non capisco il perchè. Ho visto che ogni classe ha un costruttore e il mio programma non ce l'ha.Hai mica un'idea di come lo potrei fare? Stavo anche cercando di fare un controllo per le date non valide ma faccio fatica a inserirlo nel programma. C'è un modo per fargli fare la differenza delle date valide e quando incontra una data non valida fargliela saltare e calcolare la media di quelle rimanenti (valide)? Devo dire che questo programma mi sta davvero facendo impazzire.... Grazie
aaa
05/11/06 19:49
netarrow
il costruttore lo crei con:

NomeClasse::NomeClasse(parametri) {
//codice
}

nel codice si mette ciò che si deve fare quando si crea l'oggetto, quindi quando dai

Data differenza;

o

Data* differenza = new Data();

se è un puntatore.

Per quanto riguarda il controllo della data devi aggiungere dei controlli su anno mese e giorno per verificare che non sforino il limite(magari guardando anche che non esista il 31 febbraio per esempio) e in caso di date fasulle con un continue fai tornare su il ciclo saltando la parte dove aumenti la somma e il numero di date.
aaa
06/11/06 17:12
ken
Grazie per la risposta ma non sono riuscito a risolvere il problema. Ci ho provato, ho creato una funzione che faccia i controlli ma proprio non vuole partire. Non riesco a capire dove sia l'errore. Ti ho rimandato il nuovo codice con i controlli nel caso tu mi possa aiutare. Grazie mille
Ultima modifica effettuata da ken 06/11/06 17:15
aaa
06/11/06 19:59
netarrow
ciao, ho visto il codice ma non posso compilarlo perchè il sistema di mail modifica le " con \" e i ' con \' e tutti gli altri caratteri di escape anche se non codice non sono tali e correggere mi parta via troppo tempo(sry, sono pigro per ste cose... se troverò la forma provo a correggere io), cmq ti consiglio di spostare checkDate

dopo questo pezzo:

d1.giorno=conversioneInt(g1);

d1.mese=conversioneInt(m1);

d1.anno=conversioneInt(a1);


d2.giorno=conversioneInt(g2);

d2.mese=conversioneInt(m2);

d2.anno=conversioneInt(a2);

(quindi subito dopo averle lette)

a questo punto dai un checkDate se ti ritorla true(se ho capito bene significa: date apposto) fai quello che devi fare(calcolare la differenza) in caso sia sbagliato metti un continue che fa tornare su il ciclo allo step successivo(quindi la data dopo).

Se i tuoi prof. sono antichi come la mia il continue potrebbe non piacere perchè non struttura il codice, in questo caso devi aggiungere un ciclo che faccia tornare su il flusso... fatti un diagramma, se dentro quel coso tutto combacia allora è strutturato sennò no.

Cmq prova prima il continue.
Ultima modifica effettuata da netarrow 06/11/06 19:59
aaa