Block of Code

Practical Examples for Programmers

  • Home
  • C++
  • Java
  • Visual Basic
  • Discrete Math
  • Ask a Question

Restaurant Bill

A fast-food vendor sells pizza slices ($1.75), fries ($2.00), and soft drinks ($1.25). Write a program to compute a customer’s bill. The program should request the quantity of each item ordered in a Sub procedure, calculate the total cost with a Function procedure, and use a Sub procedure to display an itemized bill. A sample output is shown in the figure below.

Design the Interface:

First we need to design the interface.  The following image shows an example of what the form might look like when the program runs.

Restaurant Bill

Hints:

Declare the price of each single item as a named constant, using a Const statement.  These constants should have class-level scope.

It is highly recommended that the user’s input be validated to prevent exceptions (errors) from occurring.  Exceptions can result in the unexpected termination of the program, and data validation can prevent that from happening.  Data validation is the process of ensuring that a program operates on clean, correct and useful data.  Exception handlings are techniques for processing incorrect responses that allow an application to continue executing.  In the case of invalidated input by the user, you may warn them using a Message Dialog Box with a brief message explaining why their input is not valid.

To make your output line up in the List Box, use the Courier New font to display the bill.

Suggested Control Names and Attributes:

Name Property Text Property Control Type Notes
frmBill Restaurant Bill Form Holds Controls
txtPizza Text Box Captures # of pizza slices
txtFries Text Box Captures # of fries
txtDrinks Text Box Captures # of drinks
btnCompute Compute Total Cost Button Triggers the event for displaying bill
lstOutput List Box Displays customer’s bill

Write the Code:

' Project:  Restaurant Bill
' Description:  Simulates a customer's bill in a pizza restaurant.  
'   Sub Procedure is called to validate input and assign to variables.
'   Function is called to calculate the total cost of items ordered.
'   Sub Procedure is called to display the bill.

Public Class frmBill

    ' Declare global constants and variables
    Const PIZZA_PRICE As Double = 1.75
    Const FRIES_PRICE As Double = 2
    Const DRINKS_PRICE As Double = 1.25
    Dim numberOfSlices As Integer = 0
    Dim numberOfFries As Integer = 0
    Dim numberOfDrinks As Integer = 0
    Dim pizzaCost As Double = 0
    Dim friesCost As Double = 0
    Dim drinksCost As Double = 0
    Dim total As Double = 0
    Dim valid As Boolean = True ' variable to make sure input is valid before displaying the bill

    Private Sub btnCompute_Click(sender As Object, e As EventArgs) Handles btnCompute.Click
        lstOutput.Items.Clear()
        InputData()
        total = TotalCost()
        If valid = True Then
            DisplayBill()
        End If
    End Sub

    Sub InputData()
        ' Validates the input from the user and assigns the values to the appropriate variables
        valid = True ' Initialize to true in case of prior invalid input
        If IsNumeric(txtPizza.Text) Then
            If CInt(txtPizza.Text) >= 0 Then
                numberOfSlices = CInt(txtPizza.Text)
            Else
                MessageBox.Show("You entered a negative number.  Please try again.")
                valid = False
            End If
        Else
            MessageBox.Show("You did not enter a numeric value.  Please try again.")
            valid = False
        End If

        If IsNumeric(txtFries.Text) Then
            If CInt(txtFries.Text) >= 0 Then
                numberOfFries = CInt(txtFries.Text)
            Else
                MessageBox.Show("You entered a negative number.  Please try again.")
                valid = False
            End If
        Else
            MessageBox.Show("You did not enter a numeric value.  Please try again.")
            valid = False
        End If

        If IsNumeric(txtDrinks.Text) Then
            If CInt(txtDrinks.Text) >= 0 Then
                numberOfDrinks = CInt(txtDrinks.Text)
            Else
                MessageBox.Show("You entered a negative number.  Please try again.")
                valid = False
            End If
        Else
            MessageBox.Show("You did not enter a numeric value.  Please try again.")
            valid = False
        End If
    End Sub

    Function TotalCost() As Double
        ' Calculates and returns the total cost of food
        pizzaCost = numberOfSlices * PIZZA_PRICE
        friesCost = numberOfFries * FRIES_PRICE
        drinksCost = numberOfDrinks * DRINKS_PRICE
        Return pizzaCost + friesCost + drinksCost
    End Function

    Sub DisplayBill()
        ' Displays the customer's bill in the list box
        lstOutput.Items.Add("ITEM          QUANTITY     PRICE")
        lstOutput.Items.Add("pizza slices      " & numberOfSlices & "        " & (pizzaCost).ToString("C"))
        lstOutput.Items.Add("fries             " & numberOfFries & "        " & (friesCost).ToString("C"))
        lstOutput.Items.Add("soft drinks       " & numberOfDrinks & "        " & (drinksCost).ToString("C"))
        lstOutput.Items.Add("TOTAL                      " & (total).ToString("C"))
    End Sub
End Class

Secondary Sidebar

This is the secondary sidebar

Copyright © 2025 · Metro Pro Theme on Genesis Framework · WordPress · Log in