Option Strict On Option Explicit On Public Class Form1 Private Function ValidateStreamed(ByVal streamedStr As String, ByRef streamed As Integer) As Boolean Dim isOk As Boolean isOk = Integer.TryParse(streamedStr, streamed) ' validate inputs - process can be the same for each text box ' handle streamed If isOk Then ' check range If streamed < 0 OrElse streamed > 21600 Then ' bad value - indicate problem isOk = False MsgBox("Please enter a number of songs streamed from 0 to 21,600") End If Else MsgBox("Please enter a whole number of songs streamed") End If Return isOk End Function Private Function ValidateSaved(ByVal savedStr As String, ByRef saved As Integer) As Boolean Dim isOk As Boolean isOk = Integer.TryParse(savedStr, saved) ' validate inputs - process can be the same for each text box ' handle saved If isOk Then ' check range If saved < 0 OrElse saved > 20000 Then ' bad value - indicate problem isOk = False MsgBox("Please enter a number of songs saved from 0 to 20,000") End If Else MsgBox("Please enter a whole number of songs saved") End If Return isOk End Function Private Function CalcPremiumCost(ByVal streamed As Integer, ByVal saved As Integer) As Double Const freeStreamed As Integer = 1000 Const freeSaved As Integer = 100 Dim fee As Double Dim streamedCost As Double Dim savedCost As Double Dim final As Double fee = 50 If streamed <= freeStreamed Then streamedCost = 0 Else streamedCost = (streamed - freeStreamed) * 0.05 End If If saved <= freeSaved Then savedCost = 0 Else savedCost = (saved - freeSaved) * 0.5 End If final = fee + streamedCost + savedCost Return final End Function Private Sub BtnPremium_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPremium.Click Dim stream As Integer Dim save As Integer Dim isOkStreamed As Boolean Dim isOkSaved As Boolean Dim cost As Double isOkStreamed = ValidateStreamed(TxtStreamed.Text, stream) isOkSaved = ValidateSaved(TxtDownloaded.Text, save) If isOkStreamed AndAlso isOkSaved Then cost = CalcPremiumCost(stream, save) TxtPremium.Text = cost.ToString("c2") End If End Sub End Class