I have to create a change calculator. I am just learning visual basic, so I am k
ID: 3638700 • Letter: I
Question
I have to create a change calculator. I am just learning visual basic, so I am kind of stuck.Input: Total amount of the order and money received from the customer
Output: Change. The change has to also be displayed in dollars, quarters, dimes, nickles, and pennies. Someone please help me.
Code:
Public Class frmBrumfieldChangeCalculator
Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
Close()
End Sub
Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
txtTotalAmount.Clear()
txtMoneyReceived.Clear()
txtChange.Clear()
txtDollarsOwed.Clear()
txtQuartersOwed.Clear()
txtDimesOwed.Clear()
txtNicklesOwed.Clear()
txtPenniesOwed.Clear()
End Sub
Private Sub btnCalculateChange_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalculateChange.Click
Dim change As Double
Dim totalAmount As Double
Dim moneyReceived As Double
Dim dollarsOwed As Integer
Dim quartersOwed As Integer
Dim dimesOwed As Integer
Dim nicklesOwed As Integer
Dim penniesOwed As Integer
Const dollarValue As Double = 1.0
Const quarterValue As Double = 0.25
Const dimeValue As Double = 0.1
Const nickleValue As Double = 0.05
Const pennyValue As Double = 0.01
totalAmount = CDbl(txtTotalAmount.Text)
moneyReceived = CDbl(txtMoneyReceived.Text)
change = moneyReceived - totalAmount
txtChange.Text = CStr(change)
txtChange.Text = Format(change, "0.00")
dollarsOwed = CInt(change / dollarValue)
change = change - (dollarsOwed * dollarValue)
txtDollarsOwed.Text = dollarsOwed.ToString()
quartersOwed = CInt(change / quarterValue)
change = change - (quartersOwed * quarterValue)
txtQuartersOwed.Text = CStr(quartersOwed)
dimesOwed = CInt(change / dimeValue)
change = change - (dimesOwed * dimeValue)
txtDimesOwed.Text = CStr(dimesOwed)
nicklesOwed = CInt(change / nickleValue)
change = change - (nicklesOwed * nickleValue)
txtNicklesOwed.Text = CStr(nicklesOwed)
penniesOwed = CInt(change / pennyValue)
change = change - (penniesOwed * pennyValue)
txtPenniesOwed.Text = CStr(penniesOwed)
End Sub
Private Sub txtTotalAmount_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTotalAmount.KeyPress
If Val(txtTotalAmount.Text) > 100 Then
MsgBox("A maximum value of 100 is allowed. Input will be set to 100.")
txtTotalAmount.Text = CStr(100)
Else
txtMoneyReceived.Enabled = True
End If
End Sub
Private Sub txtMoneyReceived_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtMoneyReceived.KeyPress
If Val(txtMoneyReceived.Text) > 100 Then
MsgBox("You entered an amount over 100")
txtMoneyReceived.Text = ""
Else
btnCalculateChange.Enabled = True
End If
End Sub
Explanation / Answer
Option Strict On Public Class ChangeQuakyoulator Private Sub btnCalculateChange_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCalculateChange.Click ' Variables for fields Dim dblAmountPaid As Double = CDbl(txtAmountPaid.Text) Dim dblAmountOwed As Double = CDbl(txtAmountOwed.Text) ' Find Difference between Total Price and Total Received Dim dblChangeAmount As Double = dblAmountPaid - dblAmountOwed lblChangeAmount.Text = dblChangeAmount.ToString 'Declare los Integers for latuuuuur Dim intDollarsBack As Integer Dim intQuartersBack As Integer Dim intDimesBack As Integer Dim intNickelsBack As Integer Dim intPenniesBack As Integer ' The possible combos for the change(there valyouuuu numerically) Const dblDollarValue As Double = 1.0 Const dblQuarterValue As Double = 0.25 Const dblDimeValue As Double = 0.1 Const dblNickelValue As Double = 0.05 Const dblPennyValue As Double = 0.01 'How many washingtons we handing back... intDollarsBack = CInt(dblChangeAmount / dblDollarValue) dblChangeAmount = dblChangeAmount - CDbl(CDbl(intDollarsBack) * dblDollarValue) lblDollarsAmount.Text = intDollarsBack.ToString 'QUarters handed back for the animal claw machine intQuartersBack = CInt(dblChangeAmount / dblQuarterValue) dblChangeAmount = dblChangeAmount - CDbl(CDbl(intQuartersBack) * dblQuarterValue) lblQuartersAmount.Text = intQuartersBack.ToString 'Dimes that the consumer will be handed back once the transaction has been made and he needs his change intDimesBack = CInt(dblChangeAmount / dblDimeValue) dblChangeAmount = dblChangeAmount - CDbl(CDbl(intDimesBack) * dblDimeValue) lblDimesAmount.Text = intDimesBack.ToString 'Nickels to give back'skee intNickelsBack = CInt(dblChangeAmount / dblNickelValue) dblChangeAmount = dblChangeAmount - CDbl(CDbl(intNickelsBack) * dblNickelValue) lblNickelsAmount.Text = intNickelsBack.ToString 'Penny's to hand back even though no one likes pennys intPenniesBack = CInt(dblChangeAmount / dblPennyValue) dblChangeAmount = dblChangeAmount - CDbl(CDbl(intPenniesBack) * dblPennyValue) lblPenniesAmount.Text = intPenniesBack.ToString End Sub End Class