Drop links or images here to add them to the editor.

Vending notes to a customer.

★★☆

A cashpoint can dispense £20, £10 and £5 notes. It always dispenses the least number of notes for each withdrawal. For example, if the customer chose to withdraw £50 it would dispense 2x£20 notes and 1x£10 note.

Cashpoint

The dispenser mechanism is an embedded system that receives the commands, “Wx”, “D20”, “D10” or “D5” as an input sequence from the main control unit. For example, £50 would be W50 D20 D20 D10.


Make

Write a program to output the minimum number of notes from an input value.

Success Criteria

Remember to add a comment before a subprogram, selection or iteration statement to explain its purpose.

Complete the subprogram called dispense that:

  1. Outputs the amount the user is withdrawing in the format “Wx” where x is a number.
  2. Outputs “D20”, “D10” or “D5” the correct number of times for the withdrawal.

Complete the main program so that:

  1. The user can input the amount they wish to withdraw as a whole number.

Typical inputs and outputs from the program would be:

Enter the amount to withdraw: £
50
W50
D20
D20
D10
Enter the amount to withdraw: £
75
W75
D20
D20
D20
D10
D5
🆘 If you're really stuck, use this Parsons code sorting exercise
Complete program
// Cashpoint program

using System;

class Submission
{
---
    // -------------------------
    // Subprograms
    // -------------------------
    // Control unit output
---
    static void dispense(string amount)
    {
---
        Console.WriteLine("W" + amount);
        // £20 notes
        int iamount = Convert.ToInt32(amount);
        while (iamount >= 20)
        {
---
            Console.WriteLine("D20");
            iamount = iamount - 20;
---
        }
---
        // £10 notes
        while (iamount >= 10)
        {
---
            Console.WriteLine("D10");
            iamount = iamount - 10;
---
        }
---
        // £5 notes
        while (iamount >= 5)
        {
---
            Console.WriteLine("D5");
            iamount = iamount - 5;
---
        }
---
    }
---


    // -------------------------
    // Main program
    // -------------------------
    public static void Main(string[] args)
    {
---
        Console.WriteLine("Enter the amount to withdraw: £");
        string amount = Console.ReadLine();
---
        dispense(amount);
---
    }
---
}