Je crée une calculatrice de changement VB 2008 en tant qu'affectation. Le programme consiste à utiliser le montant payé - le montant dû pour calculer le total (cela fonctionne bien). Après cela, il faut décomposer ce montant en dollars, en quarts, en dimes, en nickels et en penny. Le problème que j'ai est que parfois la quantité de penny, de nickels ou de dimes sera un nombre négatif. Par exemple 2,99 $ = 3 Dollars et -1 Pennies.VB Change Calulator
SOLVED
Merci aux réponses, voici ce que j'ai pu faire le travail avec mes connaissances limitées.
Option Explicit On
Option Strict Off
Option Infer Off
Public Class frmMain
Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
'Clear boxes
lblDollarsAmount.Text = String.Empty
lblQuartersAmount.Text = String.Empty
lblDimesAmount.Text = String.Empty
lblNickelsAmount.Text = String.Empty
lblPenniesAmount.Text = String.Empty
txtOwed.Text = String.Empty
txtPaid.Text = String.Empty
lblAmountDue.Text = String.Empty
txtOwed.Focus()
End Sub
Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
'Close application'
Me.Close()
End Sub
Private Sub btnCalculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalculate.Click
' Find Difference between Total Price and Total Received
lblAmountDue.Text = Val(txtPaid.Text) - Val(txtOwed.Text)
Dim intChangeAmount As Integer = lblAmountDue.Text * 100
'Declare Integers
Dim intDollarsBack As Integer
Dim intQuartersBack As Integer
Dim intDimesBack As Integer
Dim intNickelsBack As Integer
Dim intPenniesBack As Integer
' Change Values
Const intDollarValue As Integer = 100
Const intQuarterValue As Integer = 25
Const intDimeValue As Integer = 10
Const intNickelValue As Integer = 5
Const intPennyValue As Integer = 1
'Dollars
intDollarsBack = CInt(Val(intChangeAmount \ intDollarValue))
intChangeAmount = intChangeAmount - Val(Val(intDollarsBack) * intDollarValue)
lblDollarsAmount.Text = intDollarsBack.ToString
'Quarters
intQuartersBack = CInt(Val(intChangeAmount \ intQuarterValue))
intChangeAmount = intChangeAmount - Val(Val(intQuartersBack) * intQuarterValue)
lblQuartersAmount.Text = intQuartersBack.ToString
'Dimes
intDimesBack = CInt(Val(intChangeAmount \ intDimeValue))
intChangeAmount = intChangeAmount - Val(Val(intDimesBack) * intDimeValue)
lblDimesAmount.Text = intDimesBack.ToString
'Nickels
intNickelsBack = CInt(Val(intChangeAmount \ intNickelValue))
intChangeAmount = intChangeAmount - Val(Val(intNickelsBack) * intNickelValue)
lblNickelsAmount.Text = intNickelsBack.ToString
'Pennies
intPenniesBack = CInt(Val(intChangeAmount \ intPennyValue))
intChangeAmount = intChangeAmount - Val(Val(intPenniesBack) * intPennyValue)
lblPenniesAmount.Text = intPenniesBack.ToString
End Sub
End Class
Un conseil général: séparez l'interface graphique de la logique (métier). Vous devez créer une fonction qui calcule la modification pour un * prix total * et * total payé *. Puisque vous devez renvoyer plusieurs valeurs (dimes, pennies, etc.), vous pouvez les placer dans les champs (propriétés) d'une classe. –
Est-ce que votre professeur vous suggère/vous oblige à utiliser le type comme préfixe pour les noms de variables? Si vous n'avez pas alors ne le faites pas. Voir pour http://msdn.microsoft.com/en-us/library/ms229042.aspx conseils. –
Je suis d'accord avec Tim Murphy: 'intNickelsBack' et' dblChangeAmount' ne sont pas de bons noms de variables, mais 'lblNickelsAmount' est correct. –