ICT167 This question reinforces concepts from Lab Practices 1 – 5. Best practices of Class and Method design should be demonstrated: Principles of Computer Science Assignment, MU, Singapore

Question
This question reinforces concepts from Lab Practices 1 – 5. Best practices of Class and Method design should be demonstrated. This will require a good understanding of class design concepts and method design concepts with some fundamental design principles: modularisation, code reuse, high cohesion, and low coupling.

Before attempting this question, complete the pre-requisites listed on the first page of this document.

Assignment 1 uses O-O design implemented in Java. You will need to use a user-defined class, as an array of such class objects will be required. It is quite similar to the Assignment that you have done before in the prior unit however, this is implemented using O-O design. You should explain how you implement this assignment by addressing the following O-O concepts in your external
documentation: (Note: not just by providing definition only, but highlight exactly where in the code you are implementing these concepts). Copy and paste code from your program to show how you implemented the following in your program using your external documentation. You should use your code to explain the concepts below. Some of the concepts could be related and you will need to explain how they are related.
• Open/Closed Principle
• Information hiding
• Encapsulation
• Pre-conditions and Post-conditions
• Private variables
• Constructors
• Assessors and Mutators
• Helper

Buy Custom Answer of This Assessment & Raise Your Grades
Get A Free Quote

User-defined Class:
You will design and implement your own data class. 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. In Singapore, the coin denominations
are $1, 50 cents, 20 cents, 10 cents, and 5 cents. You can use 5 instance variables to represent amounts for each of the 5 coin denominations. There should be no need for more than these instance variables. However, if you use a different way to implement this, you must provide legitimate justification for their usage in the internal and external documentation. All these instance variables should be declared as private.

Think of a way such that the client program can use the same class name and public methods for other countries with different coin denominations without changing their client program. The key point here is to work on a design such that there is no need for the client class to make any change when the Change class needs to upgrade to accommodate the different coin denominations for different countries. Explain how your class can satisfy this in your 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 (including helper) 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.

Client Class:
The client program should read the input data from the user and use the Change class to store the data entered. 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.

cta_qauestion_3

The post ICT167 This question reinforces concepts from Lab Practices 1 – 5. Best practices of Class and Method design should be demonstrated: Principles of Computer Science Assignment, MU, Singapore appeared first on Singapore Assignment Help.