I need the source code for this question 4 in Java. Please provide an explanation for the methods provided. Client Class: The client program should read the input data from the user (or the method with hardcoded inputs) and use the Change class to store the data entered. This data should be stored in a Change class object. You will need a data structure to store the Change class objects according to the number of persons entered. Thus, you are to utilize an array of Change objects. Do not use ArrayList for this assignment It should be noted that it is possible to have the same name entered numerous times, but the coin values for such repetitions could be different. When the name is the same, it would mean the same individual, and your program should add up the coin amounts to obtain a total amount for that individual; this should be performed before computing the change to be given. Note that in this scenario, the total amount for an individual may end up being over 100, 200, 300, or more cents Make sure you have hardcoded test cases of the above for your tutor to test for these situations. Processing would involve determining repeated names and accumulating the total for those repeated names. You must ensure that there are no objects with repeated names in the array. Then methods would need to be called to calculate the required output corresponding to the coin amounts stored in the array of objects. Output change values must consist of the following denominations: 50 cent, 20 cent, 10 cent and 5 cent coins. 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. The better solution is to give a 20 cent coin and a 10 cent coin Once the data input has been completed, your program should then display a menu screen as illustrated below. The program will continue to show the menu and execute the menu options until "Exit" is selected by entering the value 5 at the menu prompt

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

I need the source code for this question 4 in Java. Please provide an explanation for the methods provided.

Client Class:
The client program should read the input data from the user (or the method with hardcoded inputs)
and use the Change class to store the data entered. This data should be stored in a Change class
object. You will need a data structure to store the Change class objects according to the number of
persons entered. Thus, you are to utilize an array of Change objects. Do not use ArrayList for this
assignment

It should be noted that it is possible to have the same name entered numerous times, but the coin
values for such repetitions could be different. When the name is the same, it would mean the same
individual, and your program should add up the coin amounts to obtain a total amount for that
individual; this should be performed before computing the change to be given. Note that in this
scenario, the total amount for an individual may end up being over 100, 200, 300, or more cents

Make sure you have hardcoded test cases of the above for your tutor to test for these situations.
Processing would involve determining repeated names and accumulating the total for those repeated
names. You must ensure that there are no objects with repeated names in the array. Then
methods would need to be called to calculate the required output corresponding to the coin amounts
stored in the array of objects. Output change values must consist of the following denominations:
50 cent, 20 cent, 10 cent and 5 cent coins. 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. The
better solution is to give a 20 cent coin and a 10 cent coin

Once the data input has been completed, your program should then display a menu screen as
illustrated below. The program will continue to show the menu and execute the menu options until
"Exit" is selected by entering the value 5 at the menu prompt

1. Enter a name and display change to be given for each denomination
2. Find the name with the smallest amount and display change to be
given for each denomination
3. Find the name with the largest amount and display change to be
given for each denomination
4. Calculate and display the largest number of coin denomination,
and the total number of the coin
5. Exit

When the user enters the value 1 at the menu prompt, your program will ask for a name. As an
example, if the user enters the name Jane (as in the example input above), the program will output:

Customer:
Jane 165 cent
Change:
50 cent: 3
10 cent: 1
5 cent: 1

N.B. change values of 0 are not shown for screen output.

If the user enters a non-existent name (eg: Donald) at menu option 1, which would therefore not be
in the array of objects, your program will print:

Name: Donald
Not found

After processing the output for menu option 1, the menu is re-displayed.

When the user enters 2 at the menu prompt, your program will search all objects in the array to find
the object with the smallest coin amount. Then the program will output the name for the person, and
the denomination breakdown of their change. If there is more than one person who are having equal
smallest coin amount, just return the first person found in the array. After processing the output for
menu option 2, the menu is re-displayed.

When the user enters 3 at the menu prompt, your program will search all objects in the array to find
the object with the largest coin amount. Then the program will output the name for the person, and
the denomination breakdown of their change. If there is more than one person who are having equal
largest coin amount, just return the first person found in the array. After processing the output for
menu option 3, the menu is re-displayed.

When the user enters 4 at the menu prompt, your program will access all objects in the array to
calculate and display only the largest number of coin denomination, and the total number of coins
for the largest denomination. If there are more than one coin denominations having equal amount,
you will need to list down all of them. After processing the output for menu option 4, the menu is
re-displayed.

For example:
Customer:
Jane 65 cent

Change:
50 cent: 1
10 cent: 1
5 cent: 1

Customer:
John 75 cent

Change:
50 cent: 1
20 cent: 1
5 cent: 1

Menu option 4 should return as follows.
The largest number of coin denomination is:
50 cents
5 cents

The total number of 50 cent coin is: 2
The total number of 5 cent coin is: 2

When the user enters 5 at the menu prompt, your program will write an appropriate farewell message
to screen and exit.

Important Points:
You need to provide a test plan to fully test your algorithm and program. As well as keyboard input,
do not forget to provide a method in the client class that hardcodes data into at least 10 Change
objects and stores these objects into the array provided by your program. Think carefully about how
to construct this test data. If done well, you should be able to do nearly all required testing with this
set of test data.

Question
This question reinforces concepts from Lab Practices I - 5. Best practice of Class and Method design
should be demonstrated. This will require a good understanding of class design concepts and
method design concepts: code re-use, high cohesion and low coupling.
Before attempting this question, complete the pre-requisites listed on the first page of this document.
Assignment 1 uses 0-0 design implemented in Java. You will need to use a user-defined class, as
an array of such class objects will be required.
User-defined Class:
You will design and implement your own data class. The class will store data that has been read as
user input from the keyboard (see Getting Input below), and provide necessary operations. As the
data stored relates to monetary change, the class should be named Change. The class requires at
least 2 instance variables for the name of a person and the coin change amount to be given to that
person. You may also wish to use 4 instance variables to represent amounts for each of the 4 coin
denominations (see Client Class below). There should be no need for more than these instance
variables. However, if you wish to use more instance variables, you must provide legitimate
justification for their usage in the internal and external documentation.
Your class will need to have at least a default constructor, and a constructor with two parameters:
one parameter being a name and the other a coin amount. Your class should also provide appropriate
get and set methods for client usage. Other methods may be provided as needed. However, make
sure they are necessary for good class design; you must provide legitimate justification for their
usage in the internal and external documentation. In particular, your class should NOT include Input
and Output methods. The only way to get data out of a data class object to the client program is to
use an appropriate get method. The data class methods must not write data out. Data should be
entered into a data class object via a constructor or an appropriate set method.
When designing your Change class, use an UML class diagram to help understand what the class
design needs.
Getting Input:
Input for the client program will come from keyboard (entered by the user). The input should consist
of: the name of a person, and a coin value (as an integer). The program should validate the input
coin value to ensure that it is in the range 5 to 95, and is evenly divisible by 5. Names are one-word
strings. You should ask the user to enter the required information using a loop with a question after
each loop iteration to check if the user wants to end the input of data. It is recommended for the user
to input at least 9 such data – this can be conveyed to the user using a message before entering the
loop.
NOTE: for the purpose of testing the program by your tutor, you should provide a method in the
client class that hardcodes data into at least 10 Change objects and stores these objects into the array
provided by your program. In this case, your tutor would not need to manually key in the data to
test the program when assessing your work. Thus, you should provide a call to this method
(commented out) in the main function; this can be uncommented by your tutor as needed.
Transcribed Image Text:Question This question reinforces concepts from Lab Practices I - 5. Best practice of Class and Method design should be demonstrated. This will require a good understanding of class design concepts and method design concepts: code re-use, high cohesion and low coupling. Before attempting this question, complete the pre-requisites listed on the first page of this document. Assignment 1 uses 0-0 design implemented in Java. You will need to use a user-defined class, as an array of such class objects will be required. User-defined Class: You will design and implement your own data class. The class will store data that has been read as user input from the keyboard (see Getting Input below), and provide necessary operations. As the data stored relates to monetary change, the class should be named Change. The class requires at least 2 instance variables for the name of a person and the coin change amount to be given to that person. You may also wish to use 4 instance variables to represent amounts for each of the 4 coin denominations (see Client Class below). There should be no need for more than these instance variables. However, if you wish to use more instance variables, you must provide legitimate justification for their usage in the internal and external documentation. Your class will need to have at least a default constructor, and a constructor with two parameters: one parameter being a name and the other a coin amount. Your class should also provide appropriate get and set methods for client usage. Other methods may be provided as needed. However, make sure they are necessary for good class design; you must provide legitimate justification for their usage in the internal and external documentation. In particular, your class should NOT include Input and Output methods. The only way to get data out of a data class object to the client program is to use an appropriate get method. The data class methods must not write data out. Data should be entered into a data class object via a constructor or an appropriate set method. When designing your Change class, use an UML class diagram to help understand what the class design needs. Getting Input: Input for the client program will come from keyboard (entered by the user). The input should consist of: the name of a person, and a coin value (as an integer). The program should validate the input coin value to ensure that it is in the range 5 to 95, and is evenly divisible by 5. Names are one-word strings. You should ask the user to enter the required information using a loop with a question after each loop iteration to check if the user wants to end the input of data. It is recommended for the user to input at least 9 such data – this can be conveyed to the user using a message before entering the loop. NOTE: for the purpose of testing the program by your tutor, you should provide a method in the client class that hardcodes data into at least 10 Change objects and stores these objects into the array provided by your program. In this case, your tutor would not need to manually key in the data to test the program when assessing your work. Thus, you should provide a call to this method (commented out) in the main function; this can be uncommented by your tutor as needed.
Example of inputs as follows:
Recommendation: Please enter at least 10 records to test the program.
Please enter the name of the person:
Jane
Please enter the coin value for the person (range 5 to 95, multiple of 5):
30
Do you have more person to enter (Y/N):
Y
Please enter the name of the person:
John
Please enter the coin value for the person (range 5 to 95, multiple of 5):
50
Do you have more person to enter (Y/N):
Y
Please enter the name of the person:
Fred
Please enter the coin value for the person (range 5 to 95, multiple of 5):
94
Incorrect coin value. Must be in the range 5 to 95, and multiple of 5.
Please enter the name of the person:
Wilma
Please enter the coin value for the person (range 5 to 95, multiple of 5):
100
Incorrect coin value. Must be in the range 5 to 95, and multiple of 5.
Please enter the name of the person:
Jane
Please enter the coin value for the person (range 5 to 95, multiple of 5):
35
Do you have more person to enter (Y/N):
Y
... (assuming this is repeated at least 10 times)
Do you have more person to enter (Y/N):
. (go out of the loop)
Page 3 of 9
Transcribed Image Text:Example of inputs as follows: Recommendation: Please enter at least 10 records to test the program. Please enter the name of the person: Jane Please enter the coin value for the person (range 5 to 95, multiple of 5): 30 Do you have more person to enter (Y/N): Y Please enter the name of the person: John Please enter the coin value for the person (range 5 to 95, multiple of 5): 50 Do you have more person to enter (Y/N): Y Please enter the name of the person: Fred Please enter the coin value for the person (range 5 to 95, multiple of 5): 94 Incorrect coin value. Must be in the range 5 to 95, and multiple of 5. Please enter the name of the person: Wilma Please enter the coin value for the person (range 5 to 95, multiple of 5): 100 Incorrect coin value. Must be in the range 5 to 95, and multiple of 5. Please enter the name of the person: Jane Please enter the coin value for the person (range 5 to 95, multiple of 5): 35 Do you have more person to enter (Y/N): Y ... (assuming this is repeated at least 10 times) Do you have more person to enter (Y/N): . (go out of the loop) Page 3 of 9
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps with 3 images

Blurred answer
Knowledge Booster
void method
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education