Come esercizio sulle classi, ho creato un’applicazione che calcola interessi e montante dato importo, date di riferimento (inizio periodo e fine periodo) e tasso. Il tutto, tramite la seguente classe:
Nel main, ho inserito il codicecodice:Public Class Interessi Dim capitale As Double ' importo digitato dall'utente Dim tasso As Double ' tasso convertito in numero decimale Dim tassoPercentuale As Double 'tasso % (digitato dall'utente) Dim tempo As Double ' differenza fra le due date Dim dataInizioPeriodo As DateTime 'data impostata dall'utente con DateTimePicker Dim dataFinePeriodo As DateTime ' data impostata dall'utente con DateTimePicker Dim interessi As Double ' importo calcolato dall'applicazione Dim montante As Double ' capitale + interessi (calcolato dall'applicazione) Public Sub calcolaPeriodo() ' calcolo la differenza fra date tempo = dataFinePeriodo.ToOADate - dataInizioPeriodo.ToOADate End Sub Public Sub calcolaTasso() ' converto il tasso % in decimale tasso = tassoPercentuale / 100 End Sub Public Sub calcolaInteressi() ' calcolo gli interessi interessi = capitale * tasso * tempo / 365 interessi.ToString() End Sub Public Sub calcolaMontante() 'calcolo del montante (usata la formula diretta) montante = capitale * (1 + (tasso * tempo)) End Sub Public Sub vediRisultatoMontante() 'metodo per visualizzare il risultato MessageBox.Show(montante.ToString(), "Montante") End Sub Public Sub vediRisultatoInteressi() 'metodo per visualizzare il risultato MessageBox.Show(interessi.ToString(), "Interessi") End Sub End Class
Il problema è la messagebox: anziché visualizzare il risultato, mi visualizza sempre 0 (zero).codice:If RadioInteressi.Checked = True Then s.calcolaPeriodo() 'calcolo il tempo s.calcolaTasso() ' converto il tasso in decimale s.calcolaInteressi() ' calcolo gli interessi s.vediRisultatoInteressi() ' visualizzo il risultato con messagebox End If If RadioMontante.Checked = True Then ' identica al caso precedente s.calcolaPeriodo() s.calcolaTasso() s.calcolaMontante() s.vediRisultatoMontante() End If
Scusandomi x la lunghezza del codice, potreste dirmi dove sbaglio? Grazie in anticipo
p.s.: sono i miei primi esercizi sulle classi, abbiate pietà.If RadioInteressi.Checked = True Then s.calcolaPeriodo() 'calcolo il tempo s.calcolaTasso() ' converto il tasso in decimale s.calcolaInteressi() ' calcolo gli interessi s.vediRisultatoInteressi() ' visualizzo il risultato con messagebox End If If RadioMontante.Checked = True Then ' identica al caso precedente s.calcolaPeriodo() s.calcolaTasso() s.calcolaMontante() s.vediRisultatoMontante() End If

Rispondi quotando