Question: A . Create an abstract base class called Currency with two integer attributes, both of which are non - public ( Python programmers - it
A Create an abstract base class called Currency with two integer attributes, both of which are nonpublic Python programmers it is understood that there is nothing private in Python but try to not access the attributes directly from outside the classes The int attributes will represent whole part or currency note value and fractional part or currency coin value such that fractional parts equals whole part. B Create two derived classes Dollar and Pound with one additional nonpublic string attribute which will contain the name of the currency Dollar or Pound respectively. DO NOT add this attribute to the base Currency class. C In your base Currency class, add public methods for the following where appropriate C students are allowed to use friend methods as long as a corresponding class method is defined as well: Default Construction ie no parameters passed Construction based on one single input of type double create logical objects only, ie no negative value objects allowed. Copy Constructor andor Assignment ie the input is an object of the same class as applicable to your programming language of choice. Destructor, as applicable to your programming language of choice. Setters and Getters for all attributes, as may be necessary, A method called add for adding an input object of the same currency. A method called subtract for subtracting an input object of the same currency the result should be logical ie negative results are not allowed. A method called isEqual for comparing an input object of the same currency for equalityinequality A method called isGreater for comparing an input object of the same currency to identify which object is larger or smaller. A method called print to print the name and value of a currency object in the form xxyy followed by the derived currency name, eg Dollar or Pound. All of the above should be instance methods and not static. The add and subtract as specified should manipulate the object on which they are invoked. It is allowed to have overloaded methods that create and return new objects. D In your derived Dollar and Pound classes, add new methods or override inherited methods as necessary, taking care that code should not be duplicated or duplication minimized. Think modular and reusable code. E Remember Only the print methods in the classes should print anything to console, besides the main below. Throw String or equivalent exceptions from within the classes to ensure that invalid objects cannot be created. In all methods. ensure that you are not mixing objects of different currencies. F In your main: Declare a primitive array of Currency references for C programmers, array of Currency pointers Set the first reference in the array to a Pound object and the second reference to a Dollar object, both of zero value. Then perform the sequence of operations as in the sample inputoutput below, understanding that your program will be tested with a different sequence of operations using the same patterns. All operations in the main should be performed on Currency objects demonstrating polymorphism. Remember to handle exceptions appropriately. Sample inputoutput remember my test program will follow the same pattern but not the same sequence: Event Sequence Sample Input Sample Output Program Starts Pound Dollar Add a pound object a p pound Pound Dollar Add a dollar object a d dollar Pound Dollar Invalid addition Event Sequence Sample Input Sample Output Program Starts Pound Dollar Add a pound object ap pound Pound Dollar Add a dollar object a d dollar Pound Dollar Invalid addition Add a pound object a d pound Pound Dollar Add a dollar object a d dollar Pound Dollar Subtract a dollar object sd dollar Pound Dollar Invalid subtraction Subtract a dollar object sd dollar Pound Dollar Subtract a pound object sp pound Pound Dollar
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
