See ids201 hw5.pdf201 hw5.pdfHwk1Problem Statement For this assignment, you need to create five classes: Transaction, Account, Savings, Checking, and TestAccount. Note that the Account class is an abstract class (see Chapter 13). It has several concrete methods and one abstract method printMonthlyReport(). The UML class diagram for the first four classes is shown on the last page. The TestAccount class is the main class that uses the first four classes. In the TestAccount class, you are required to write an application (program) that simulates a simple ATM system. There are two types of accounts: Savings account. Minimum monthly balance of at least $1,000 required, pays interest on the ending monthly balance at an annual rate of 3% and charges NO fees unless the ending monthly balance drops below $1,000, which results in a $25 penalty (which is deducted before the interest earned is calculated). Checking account. No minimum monthly balance required, pays NO interest and charges a monthly fee of $3.00. There is a usage fee of $1.00 for every usage of the ATM system. Thus, for every deposit, withdraw, or transfer transaction, a fee of $1.00 is applied to the appropriate account. In case of a transfer transaction, the $1.00 usage fee is applied to the source account and no fee is applied to the destination account. For simplicity, assume that Mr. John Doe has an initial balance of $1,000.00 and $500.00 in his Savings and Checking accounts, respectively. Also, assume that the customer has signed onto the ATM machine and has provided a password that the system validated. After creating the Savings and Checking accounts for Mr. John Doe, the program should begin with a Main menu, which asks the user to select the type of transaction to process: D to make a deposit, W to withdraw, T to transfer money from one account to another, and Q to quit from the system. If the customer selects D (deposit) or W (withdraw), on the next screen, the program should display an Account menu that lists the available accounts: S for savings account and C for checking account. When the customer selects S (savings) or C (checking), the program then should ask the customer to enter the amount of transaction (deposit or withdraw amount). If the amount is negative, the program should display an appropriate error message to the customer and let him/her reenter the amount. Deposit amounts should be added to the appropriate account (Savings or Checking) balance while withdrawal amounts should be deducted from the appropriate account balance. Note that if the withdrawal amount is greater than the current balance, an insufficient funds message should be displayed to the customer, the withdrawal transaction should be canceled, and let the customer reenter the amount to withdraw. If the customer selects T (transfer), on the next screen, the program should display an Account menu that lists the available source accounts to transfer from: S for savings account and C for checking account. After the customer selects S (savings) or C (checking), on the next screen, the program should display an Account menu again that lists the available destination accounts to transfer to: S for savings account and C for checking account. If the destination account is the same as the source account, your program should display an appropriate error message and then redisplay the Account menu that lists the available source accounts to transfer from. Otherwise, the program then should ask the customer to enter the amount to transfer. If the amount is negative or is greater than the available balance in the source account, the program should display an appropriate message and let the customer reenter the amount to transfer again. If there are enough funds to transfer, this amount should be deducted from the source account and then the same amount is added to the destination account. The program should keep track each transaction for each account. If the user selects Quit, the program should display the monthly reports for both saving and checking accounts. When the user presses the ENTER key, the program terminates. Assume that when the user selects Quit, one month has elapsed since the beginning of the transactions. Additional Specifications If the user selects an “invalid” menu selection, display an appropriate error message, pause program execution until the user presses the ENTER key, and then redisplay the menu selection. Allow the user to enter either upper- or lower-case letters for making menu selection. There are an unknown number of transactions (deposits, withdrawals, and transfers) and their “order/sequence of occurrence” is also unknown. The program should return the user to the main menu after each transaction (deposit, withdrawal, and transfer) or after each canceled transaction.IDS 201: Introduction to Business Programming - Spring 2015
The focus of the homework assignments is to provide you with an opportunity to apply the software
development concepts, tools, design guidelines, and techniques described in the text and presented in
class. Your performance on the assignments also serves as an indicator of how well you understand the
material. You are encouraged to study in groups; however, you should make every effort to hand in work
that represents your own efforts.
Please keep in mind that software development starts with a clear understanding of what and how the
software is to perform. Thus, it is your responsibility to make sure you have a clear understanding of what
is expected. Once you have a clear understanding of what and how the software should perform, you
should develop and test the “logic” or the algorithm. If you develop and test the algorithm first, then
writing the code becomes merely a task of translation!
For each assignment, you must submit a compressed (zip) file of the project’s folder, which includes its
subfolders and source code file(s), via the Blackboard.
You are expected to exercise good programming style and practices (i.e., follow the design
guidelines, use meaningful variable names, indentation, blank lines and blank spaces to
improve readability, and comments).
When you create a project for an assignment, you should name it in the following manner:
followed by the assignment’s number.
For example: if your email address is
, the project names should be AbcHwk1 for assignment #1,
AbcHwk2 for assignment #2, etc.
Assignment Grading Criteria
Each assignment is worth a total of 100 points. The grading criteria and point values are described below.
SOURCE CODE (35 points)
Programmer named variables and functions that are meaningless or confusing (to the
grader). Deduct maximum 9 points.
Did not use an appropriate data type for each variable (i.e., use String instead of integer
data type for a whole number). Deduct maximum 10 points.
Insufficient use of blank lines, blank spaces, or indentation. Deduct maximum 8 points.
Insufficient use of comments. Deduct maximum 8 points.
PROGRAM EXECUTION (65 points)
Source code file does
compile successfully because of syntax errors and thus cannot
be executed. Deduct maximum 65 points.
Source code file compiles successfully, but the program, when executed, does not
perform as specified. Deduct maximum 65 points. You receive partial credits for the
This question was answered on: May 23, 2022
This attachment is locked
Our expert Writers have done this assignment before, you can reorder for a fresh, original and plagiarism-free copy and it will be redone much faster (Deadline assured. Flexible pricing. TurnItIn Report provided)
May 23, 2022EXPERT
We have top-notch tutors who can do your essay/homework for you at a reasonable cost and then you can simply use that essay as a template to build your own arguments.
You can also use these solutions: