Write a program to compute tips for services rendered. The program should request the person’s occupation, the amount of the bill, and the percentage tip as input and pass this information to a Sub procedure to display the person and the tip. A sample run is shown in the figure below.
Suggested Control Names and Attributes:
Name Property | Text Property | Control Type | Notes |
frmTipping | Gratuities | Form | Holds Controls |
txtOccupation | TextBox | Captures occupation | |
txtBillAmount | TextBox | Captures total amount of bill | |
txtPercentage | TextBox | Captures percentage of tip | |
btnCompute | Compute Tip | Button | Triggers event to display results |
txtOutput | TextBox | Displays output. Read only property set to true. |
Hints:
- Create a function to receive and validate input
- Create a sub procedure to calculate and display the results.
Write the Code:
' Project: Tipping ' Description: Receives input from user and calculates the tip. Public Class Tipping ' Declare public variables Dim occupation As String Dim billAmount As Double Dim percentage As Double Dim tipAmount As Double Private Sub btnCompute_Click(sender As Object, e As EventArgs) Handles btnCompute.Click If InputIsValid() = True Then CalculateValue() Else MessageBox.Show("Missing or invalid input. Please try again.") End If End Sub Function InputIsValid() As Boolean Dim valid As Boolean = True occupation = txtOccupation.Text If (occupation = "") Then MessageBox.Show("Occupation cannot be blank.") valid = False End If If IsNumeric(txtBillAmount.Text) Then billAmount = CDbl(txtBillAmount.Text) If (billAmount < 0) Then MessageBox.Show("Bill amount cannot be negative.") valid = False End If Else MessageBox.Show("Bill amount must be numeric.") valid = False End If If IsNumeric(txtPercentage.Text) Then percentage = CDbl(txtPercentage.Text) If (percentage < 0) Then MessageBox.Show("Percentage cannot be negative.") valid = False End If Else MessageBox.Show("Percentage must be numeric.") valid = False End If Return valid End Function Sub CalculateValue() tipAmount = billAmount * (percentage / 100) txtOutput.Text = ("Tip the " & occupation & " " & tipAmount.ToString("C")) End Sub End Class