CSC1110 Homework 6

Before you start

Read the instructions and watch the video posted in Lab Assignment 6 for using GitHub Classroom to access and submit your program.

Complete the following program

Write a program that mimics the operations of a vending machine. More specifically, the program reads amounts of money that are inserted into the vending machine, asks the user to select an item, and then prints the change that’s returned to the user.

Use this implementation:

Try to have your program output match as closely as possible the sample output provided.

Use this main method

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    char choice;
    boolean done = false;

    VendingMachine vm = new VendingMachine();

    System.out.println("Welcome to John's vending machine!\n");

    do {
        System.out.println("Options: (i)nsert money, (s)elect an item, (q)uit");
        System.out.print("Enter i, s, or q ==> ");
        choice = in.nextLine().charAt(0);

        switch (choice) {
            case 'i', 'I' -> vm.insertMoney();
            case 's', 'S' -> vm.selectItem();
            case 'q', 'Q' -> done = true;
            default -> System.out.println("Invalid selection.");
        }
    } while(!done);
}

Sample Output

Welcome to John's vending machine!

Options: (i)nsert money, (s)elect an item, (q)uit
Enter i, s, or q ==> d
Invalid selection.
Options: (i)nsert money, (s)elect an item, (q)uit
Enter i, s, or q ==> i
Amount of money inserted: -1
Invalid payment. Must enter a positive number.
Amount of money inserted: 0
Invalid payment. Must enter a positive number.
Amount of money inserted: 2
Options: (i)nsert money, (s)elect an item, (q)uit
Enter i, s, or q ==> s
Select item's price: -1
Invalid price. Must enter a positive number.
Select item's price: 0
Invalid price. Must enter a positive number.
Select item's price: .32
Your change
===========
6 quarter(s)
1 dime(s)
1 nickel(s)
3 penny(ies)

Options: (i)nsert money, (s)elect an item, (q)uit
Enter i, s, or q ==> i
Amount of money inserted: 12.43
Options: (i)nsert money, (s)elect an item, (q)uit
Enter i, s, or q ==> s
Select item's price: 8.74
Your change
===========
14 quarter(s)
1 dime(s)
1 nickel(s)
4 penny(ies)

Options: (i)nsert money, (s)elect an item, (q)uit
Enter i, s, or q ==> q

Submission Instructions:

Commit and Push your code to GitHub Classroom.