Solution for this project
MIS 525 Project 2 – Cash for Metals Cash for Metals is now expanding their business to allow for both Personal and Commercial customers. Also, they are offering their customers interest if they keep their money with Cash for Metals much like a bank. Furthermore, some customers are repeat customers and Cash for Metals needs a way to keep track of multiple transactions for a customer. Read the entire assignment before proceeding to coding – be sure to follow the implementation notes! First, some introductory lines and a menu of options are printed welcoming the user to the program: *** *** *** Welcome to Cash for Metals Calculator!!! *** *** *** Please select from the menu below: 1. Create Personal Customer 2. Create Commercial Customer 3. Record Transaction 4. Make Withdrawal 5. Display Customer 6. Display Customer Summary 7. Display Grand Summary 8. Exit 1. Create Personal Customer a. The constructor will take 1 String – the name of the Customer. The constructor should set the customer name and generate the Customer ID (long). b. Write a get method for the customer Name (String). c. Write get/set methods for address (String), home phone (String) and work phone (String). d. Write a get method for the Customer ID(long) and Account 2. Create Commercial Customer a. The constructor will take 1 String – the name of the Customer. The constructor should set the customer name and generate the Customer ID (long). b. Write a get method for the customer Name (String). c. Write get/set methods for address (String), contact person (String), and contact person phone (String). d. Write a get method for the Customer ID (long) and Account e. Commercial customers get 3% more for their transactions above the standard price 3. Accounts a. Create an Account for each customer. An account will have an account number (long), balance (double), date opened (Calendar) using the current date/time and interest rate (double). b. Accounts have a default balance of 0 (balances cannot be less then 0) and a rate of 3% c. Get methods should be created for each attribute d. Accounts have two methods: makeDeposit (returns void) and makeWithdrawal (returns actual amount withdrawn from the account) e. Note the account should be created when the Customer is created. 4. Record Transaction a. Ask for the customer ID b. If the customer ID is not found, state the ID could not be found and restart the menu c. The transaction constructor will take no parameters, but will generate a Transaction ID (long) and will set the date/time of the transaction (Calendar) using the current date/time d. Write get/set methods for Weight of Gold (double), Weight of Platinum (double), Weight of Silver (double) e. Write a get method for total value of the transaction (double) f. Part of the transaction recording should include making a deposit into the Customer’s account for the appropriate amount g. The transaction should be added to the Customer 5. Make Withdrawal a. Ask for the customer ID b. If the customer ID is not found, state the ID could not be found and restart the menu c. Ask for the amount to be withdrawn from the account. d. Withdraw the money from the account – the amount to be withdrawn must be greater then 0 6. Display Customer a. Display the customer’s name b. Display the customer’s ID c. Display the details of their account d. Display the details of each transaction 7. Display Customer Summary a. Display the total number of customers b. Display the sum total value of all accounts 8. Display Grand Summary a. Display information for all customers Reference Display Values Note that different values must displayed in different ways. Here are some examples Display Item Format Examples Metal WeightRound to 2 decimals, one digit left of decimal 325.40 0.56 Dollar AmountDollar sign, round to 2 decimals, one digit left of decimal $200.34 $45.50 $0.35 Metal Values Gold $ 1789.30/ounce Silver $ 34.93/ounce Implementation notes• The files you submit will be (but don’t have to be exactly): CashForMetalsClient.java, Customer.java, PersonalCustomer.java, CommericalCustomer.java, Transaction.java, Account.java • Customers will have one account, but can have multiple transactions • You must use inheritance to relate Customer, PersonalCustomer and CommericalCustomer classes. Review the attributes of each and be sure there are no duplicates across classes. • You should write toString methods overriding the Object toString for the following classes: Customer, PersonalCustomer, CommercialCustomer, Account and Transaction • You have been provided a number of classes to use. It is not recommended to modify the code provided to you. • You must first load a file of customers before prompting for more customers. Check the starter file CashforMetalsClient.java for details • Your output must match the sample output! • You may assume all values are entered in ounces and no weight conversion is required • All constants must be declared as final variables in all upper case • You need to minimize the amount of code you duplicate! In most situations, if you find yourself writing the exact same conditions, or the exact same conditional statement, or the exact same loop, a second, third, fourth, or fifth time, you are probably duplicating code you don't need to duplicate. • Comment your code (check your textbook for reference) Additional Requirements1. Create a class diagram (UML) depicting all classes for the project. Please be sure to show relationships between the classes, attributes and methods.
I think Jeff from your site has the answers, that's how I found out about the site. Somebody asked the same project before and Jeff guy answered it.
Oops, sorry. Today 12 pm - midnight