A. Create a
Dollarcurrency class with
twointegerattributes and
one stringattribute, all of which are non-public. The
intattributes will represent whole part (or currency note value) and fractional part (or currency coin value) such that 100 fractional parts equals 1 whole part. The
stringattribute will represent the currency name.
B. Create aCIS22C Dollarderived/inherited class withoneadditional non-publicdoubleattribute to represent the conversion factor from/to US Dollar.
The value of the conversion factor can be defaulted in the class definition based on 1 USD = 1.36 C2D or 1 C2D = 0.74 USD.
Also, 1000 of C2D fractional parts equals 1 C2D whole part.
C. In your two currency classes, add public methods for the following:
Default Construction (i.e. no parameters passed)
Construction based on parameters for all attributes
Copy Constructor and/or Assignment, as applicable to your programming language of choice
Destructor, as applicable to your programming language of choice
Setters and Getters for all attributes
Adding two objects of the same currency
Subtracting one object from another object of the same currency
Comparing two objects of the same currency for equality/inequality
Comparing two objects of the same currency to identify which object is larger or smaller
Print method to print details of a currency object
In your derived class only, methods to convert USD objects to C2D and vice versa
D. Create aWalletclass with one attribute - an array of twoDollarreferences / pointers and the following methods to demonstrate polymorphism of the currencies:
A default Constructor which sets
the first element of the array to a zero value Dollar object
the second element of the array to a zero value CIS22C Dollar object
A Destructor, as applicable to your programming language of choice
Methods to add or subtract
USD objects to/from the first element only and
C2D objects to/from the second element only
Methods to compare if the value of either element is greater or smaller than an input value
A method to Print the values of the two elements in the Wallet
E. In your main:
Create a Wallet object
Provide the user a main menu to add/ subtract/ compare the Dollar and CIS22C Dollar values in the Wallet as well as print the contents of the Wallet
You can use a second level menu choice to allow the user to select currency type
Based on user choice, create either UD or C2d objects as needed to perform the desired operations.
The main menu should be run in a loop until the user selects the Exit option
There is no sample output - you are allowed to provide user interactivity as you see fit and programs will be graded for clarity of interaction
Things to remember:
Create appropriately named code files - for the two Currency classes, for the Wallet class and any other helper code you might need.
The file for your main should be named Lab1Main with the appropriate extension.
Make any relevant assumptions that you may need but state them clearly in the corresponding code file.
Remember to document your methods adequately -pre-post headersas well as any other relevant comments. Also, provide necessary pseudocode of the programin the main.
Also, remember to include name blocks in all the code files.