# You are asked to write a simple C program that will accept an integer value in the range of 5-95 with values being in multiples of 5 representing the number of cents to give to a customer in their change. A negative number input will signal the exit/termination of the program. The program should calculate how many coins of each denomination and display this to the user. Valid coin values are 50, 20, 10 and 5. The program should aim to give as much of the higher valued coins as possible. A poor solution for an input of 30 cents is to give six 5 cent coins. A better solution is to give a 20 cent coin and a 10 cent coin. Your solution (program and algorithm) should be modular in nature. This requires the submission of a structure chart and a high-level algorithm and suitable decompositions of each step.   Note that for this problem, the principle of code reuse is particularly important and a significant number of marks are allocated to this.  You should attempt to design your solution such that it consists of a relatively small number of functions that are as general in design as possible and you should have one function in particular that can be reused (called repeatedly) in order to solve the majority of the problem.  If you find that you have developed a large number of functions (code modules) where each perform a similar task (or have a lot of code that is repeated in the functions) then attempt to analyse your design to generalise the logic so that you have just one general version of the function (module).   Be mindful of the cohesion exhibited by the function (module). So if you have a function (module) that is doing more than one task, then cohesion is low, and, you will need to redesign to have high cohesion.

Question

You are asked to write a simple C program that will accept an integer value in the range of 5-95 with values being in multiples of 5 representing the number of cents to give to a customer in their change. A negative number input will signal the exit/termination of the program. The program should calculate how many coins of each denomination and display this to the user. Valid coin values are 50, 20, 10 and 5. The program should aim to give as much of the higher valued coins as possible. A poor solution for an input of 30 cents is to give six 5 cent coins. A better solution is to give a 20 cent coin and a 10 cent coin. Your solution (program and algorithm) should be modular in nature. This requires the submission of a structure chart and a high-level algorithm and suitable decompositions of each step.

Note that for this problem, the principle of code reuse is particularly important and a significant number of marks are allocated to this.  You should attempt to design your solution such that it consists of a relatively small number of functions that are as general in design as possible and you should have one function in particular that can be reused (called repeatedly) in order to solve the majority of the problem.  If you find that you have developed a large number of functions (code modules) where each perform a similar task (or have a lot of code that is repeated in the functions) then attempt to analyse your design to generalise the logic so that you have just one general version of the function (module).

Be mindful of the cohesion exhibited by the function (module). So if you have a function (module) that is doing more than one task, then cohesion is low, and, you will need to redesign to have high cohesion.

### Want to see this answer and more?

Experts are waiting 24/7 to provide step-by-step solutions in as fast as 30 minutes!* 