Public Class frmMain Private Sub btnCalc_Click(ByVal sender As System.Object, By
ID: 3630784 • Letter: P
Question
Public Class frmMainPrivate Sub btnCalc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalc.Click
'Get input
Dim sngNumSpoolsStock, sngSpoolsOrdered, sngSpoolsReady, sngShippingCharges, sngCharges As Single
Dim sngBackOrdered As Single
Dim sngSpoolCost As Single = 100
If IsNumeric(txtNumber.Text) = False Then
MessageBox.Show("Input must be numeric.")
Return
End If
sngSpoolsOrdered = CSng(txtNumber.Text)
If sngSpoolsOrdered < 1 Then
MessageBox.Show("Order needs to be larger than one.")
Else
GetInStock()
'intReady = ReadyToShip(intSpoolsInStock, intSpoolsOrdered)
'lblReadyShip.Text = intReady.ToString()
lblReadyO.Text = ReadyToShip(sngNumSpoolsStock, sngSpoolsOrdered).ToString()
sngBackOrdered = BackOrdered(sngNumSpoolsStock, sngSpoolsOrdered)
lblBackO.Text = sngBackOrdered.ToString()
sngShippingCharges = ShippingCharges(sngSpoolsReady, sngShippingCharges)
lblShippingO.Text = sngShippingCharges.ToString("c")
lblTotalO.Text = sngCharges.ToString("c")
End If
End Sub
'Get InStock Function
Function GetInStock() As Single
Dim sngNumSpoolsStock As Single
sngNumSpoolsStock = InputBox("Enter the number of spools in stock.")
Return sngNumSpoolsStock
End Function
'Ready to ship Function
Function ReadyToShip(ByVal sngNumSpoolsStock As Single, ByVal sngSpoolsOrdered As Single) As Single
Dim sngSpoolsReady As Single
If sngNumSpoolsStock <= sngSpoolsOrdered Then
sngSpoolsReady = sngNumSpoolsStock
ElseIf sngNumSpoolsStock >= sngSpoolsOrdered Then
sngSpoolsReady = sngSpoolsOrdered
End If
Return sngSpoolsReady
End Function
'BackOrdered Function
Function BackOrdered(ByVal sngNumSpoolsStock As Single, ByVal sngSpoolsOrdered As Single) As Single
Dim sngBackOrdered As Single
sngBackOrdered = sngSpoolsOrdered - sngNumSpoolsStock
If sngBackOrdered < 0 Then
sngBackOrdered = 0
End If
Return sngBackOrdered
End Function
'ShippingCharges Function
Function ShippingCharges(ByVal sngSpoolsReady As Single, ByVal sngShippingCharges As Single) As Single
Dim sngCharges As Single
If chkRush.Checked = True Then
sngCharges = sngSpoolsReady * sngShippingCharges * 15
Else
sngCharges = sngSpoolsReady * sngShippingCharges * 10
End If
Return sngCharges
End Function
Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
Me.Close() 'Closes the program
End Sub
Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
'Clears the Form
txtNumber.Clear()
End Sub
End Class
Explanation / Answer
Public
Class
Form1
Private Sub btnCalc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnCalc.Click
'Get input
Dim sngNumSpoolsStock As
Single
Dim sngSpoolsOrdered As
Single
Dim sngSpoolsReady As
Single
Dim sngShippingCharges As
Single
Dim sngCharges As
Single
Dim sngBackOrdered As
Single
Dim sngSpoolCost As Single
= 100
If IsNumeric(txtNumber.Text) = False
Then
MessageBox.Show("Input must be numeric."
)
Return
End
If
sngSpoolsOrdered =
CInt
(txtNumber.Text)
If sngSpoolsOrdered < 1
Then
MessageBox.Show("Order needs to be larger than one."
)
Else
sngNumSpoolsStock = GetInStock()
'intReady = ReadyToShip(intSpoolsInStock, intSpoolsOrdered)
'lblReadyShip.Text = intReady.ToString()
sngSpoolsReady = ReadyToShip(sngNumSpoolsStock, sngSpoolsOrdered)
lblReadyO.Text = sngSpoolsReady.ToString()
sngBackOrdered = BackOrdered(sngNumSpoolsStock, sngSpoolsOrdered)
lblBackO.Text = sngBackOrdered.ToString()
sngShippingCharges = ShippingCharges(sngSpoolsOrdered)
lblShippingO.Text = sngShippingCharges.ToString(
"c"
)
sngCharges = TotalCharges(sngSpoolsOrdered, sngSpoolCost)
lblTotalO.Text = sngCharges.ToString(
"c"
)
End
If
End
Sub
'Get InStock Function
Function GetInStock() As
Single
Dim sngNumSpoolsStock As
Single
sngNumSpoolsStock = InputBox(
"Enter the number of spools in stock."
)
Return
sngNumSpoolsStock
End
Function
'Ready to ship Function
Function ReadyToShip(ByVal sngNumSpoolsStock As Single, ByVal sngSpoolsOrdered As Single) As
Single
Dim sngSpoolsReady As
Single
If sngNumSpoolsStock <= sngSpoolsOrdered
Then
sngSpoolsReady = sngNumSpoolsStock
ElseIf sngNumSpoolsStock >= sngSpoolsOrdered
Then
sngSpoolsReady = sngSpoolsOrdered
End
If
Return
sngSpoolsReady
End
Function
'BackOrdered Function
Function BackOrdered(ByVal sngNumSpoolsStock As Single, ByVal sngSpoolsOrdered As Single) As
Single
Dim sngBackOrdered As
Single
sngBackOrdered = sngSpoolsOrdered - sngNumSpoolsStock
If sngBackOrdered < 0
Then
sngBackOrdered = 0
End
If
Return
sngBackOrdered
End
Function
'ShippingCharges Function
Function ShippingCharges(ByVal sngSpoolsReady As Single) As
Single
Dim sngCharges As
Single
If chkRush.Checked = True
Then
sngCharges = sngSpoolsReady * 15
Else
sngCharges = sngSpoolsReady * 10
End
If
Return
sngCharges
End
Function
Function TotalCharges(ByVal sngSpoolsReady As Single, ByVal sngSpoolCost As Single) As
Single
Dim sngCharges As
Single
If chkRush.Checked = True
Then
sngCharges = sngSpoolsReady * (sngSpoolCost + 15)
Else
sngCharges = sngSpoolsReady * (sngSpoolCost + 10)
End
If
Return
sngCharges
End
Function
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.