Atm Software: No Plagiarism Strict Disciplinary Action Will Be Taken If Involved in Plagiarism
Atm Software: No Plagiarism Strict Disciplinary Action Will Be Taken If Involved in Plagiarism
ATM SOFTWARE
Due March 28, 2015 at 11:55 pm - max. 50% credit for up to 24hr late
(1) Familiarize you with the use of classes, interfaces, packages, inheritance and
polymorphism in JAVA™.
(2) Encourage you to open the Java Documentation and READ it.
(3) Make you comfortable with the OOD facet of Java.
(4) To offer as helpful practice for using Streams.
(5) And yes, to help us judge how much you have learnt in the past weeks
NO PLAGIARISM
Strict Disciplinary Action Will be Taken if Involved
in Plagiarism
Assignment Statement
In this assignment you are going to implement an ATM system from which users
can manage their accounts. There are two types of users, Customers and
Administrators. Both are presented with their own menus (after login of course).
Customers can use the system to withdraw cash, transfer cash from one account to
another, deposit cash and get their current balance. Administrators can create,
delete, view and update accounts of different users. They must also be able to view
certain reports about users and accounts. All data should be stored in a flat file
system.
Content / Requirement
When your program starts, it should be displaying a login screen. User will be
asked to enter a login and 5 digit pin code. The system verifies the login and pin
and displays an error if it is incorrect. If the user types the pin code incorrectly
three times consecutively then the system should disable that login until further
notice (i.e. the Administrator changes the status of the user).
Note: The writing in green is entered by the user and input must be through
command line.
Customer Menu
A customer is then taken to the customer option menu where he will select oneof
the following options;
1----Withdraw Cash
2----Cash Transfer
3----Deposit Cash
4----Display Balance
5----Exit
Please select one of the above options:
1----Withdraw Cash
The user must be displayed a menu to select the mode of withdrawal as follows:
a) Fast Cash
b) Normal Cash
Please select a mode of withdrawal:
a) Fast Cash
In case of fast cash the user must be presented with a menu such as the one
below and asked to choose one of the predefined denominations of money. If
he chooses withdraw, the user is asked to select the amount from the
optionsgiven. No matter which option the user uses to withdraw the money
the system
must check that the amount is valid (i.e. there is enough money in the
account).
1----500
2----1000
3----2000
4----5000
5----10000
6----15000
7----20000
Select one of the denominations of money: 1
Are you sure you want to withdraw Rs.500 (Y/N)? Y
Cash Successfully Withdrawn!
Do you wish to print a receipt (Y/N)? Y
Account #12
Date: 14/09/2005
Withdrawn: 500
Balance: 154500
b) Normal Cash
In case of normal cash, the user should be asked the amount he wishes to
withdraw. In this case there is no compulsion that the amount should be a
multiple of 500. However, the amount must be valid.
Enter the withdrawal amount: 3600
Cash Successfully Withdrawn!
Do you wish to print a receipt (Y/N)? Y
Account #12
Date: 14/09/2005
Withdrawn: 3600
Balance: 154500
To make things a little more interesting, a single account holder cannot
withdraw more than 20,000 in one day. (If customer withdraws 15,000 once
and tries to withdraw 6,000, customer should not be allowed but customer
can
withdraw 4,000). Please NOTE that this applies to BOTH Fast Cash and
Normal
Cash. i.e. the joint withdrawal in both these modes should not exceed 20,000
2----Cash Transfer
If the user selects transfer cash he is asked to specify the amount in multiples of
five hundred that he wishes to transfer. Then he should be asked to enter the
account number to which he wishes to transfer the money. The user must be asked
to enter the account number twice to make sure he got the correct number. In
addition the second time he enters the account number he should also be able to see
the name of that account holder to make sure it is the right person.
For example,
Transaction confirmed.
3----Deposit Cash
If the user selects deposit cash he is asked to specify the amount that he wishes to
deposit into the account. Of course there is no max limit to how much money is
deposited. E.g:
Enter the cash amount to deposit: 12562
Cash Deposited Successfully.
Do you wish to print a receipt (Y/N)? Y
Account #12
Date: 14/09/2005
Deposited: 12562
Balance: 154500
4----Display Balance
This obviously displays the balance on the screen. It is similar to receipt (i.e. it has
date account number etc) but it does not have any transactions.
For example:
Account #12
Date: 14/09/2005
Balance: 154,500
Administrative Menu
If the user who logs in is an administrator he should be presented with the
following menu,
Account # 19) , then 19 should be account number attributedto this account. The
administrator must be informed of this after he finishesmaking the account i.e.
Account Successfully Created – the account number assigned
is: 19
Account ID:
User ID:
Holders Name:
Type (Savings Current): Savings
Balance: 80,000
Status: Active
==== SEARCH RESULTS ======
AccountID UserID Holders Name Type Balance Status
15 44045 xyz Savings 80,000 Active
18 43075 abc Savings 80,000 Active
Please note that this search is done by ‘AND’ing the search criterias i.e.
anaccount’s information should be listed in the search results if an only if all
thesearch criteria’s are met.
5---View Reports
If the user selects view reports then the he should be asked to specify one of two
reports;
By Amount
the user will specify a minimum and maximum range for the balance of an
account. All accounts with balance in between the range must be displayed
in a similar fashion to the one shown above in search for accounts.
By Date
In the second option the system shows alltransactions made by a specified
customer within a specified date range(inclusive). i.e. The user enters an
account number and a minimum andmaximum date. All transactions
between the two dates need to be shown.
1---Accounts By Amount
2---Accounts By Date
For example, if the user enters 1:
Enter the minimum amount: 12500
Enter the maximum amount: 190112
==== SEARCH RESULTS ======
AccountIDUserIDHoldersName Type Balance Status
11 44045 Pervaiz Savings 12,500 Active
24 43075 hasan Savings 190,111 Active
Or if the user enters 2:
Note: The format for the date must always be Day/Month/Year [DD/MM/YYYY]
Enter the starting date: 12/12/2005
Enter the ending date: 19/12/2005
==== SEARCH RESULTS ======
scrolling through your code and give you points on the quality of the code.
So, it’s purely in your interest to use nice functions and variables names.
Submission Instructions
Submit the assignment on moodle and within assignment deadline. Assignments
submitted after the mentioned deadline will be considered for evaluation with 50%
deduction.
Marking Summary
Item Marks
Correct Interface (error checking of extreme values) 10%
Comments and Documentation 5%
Encryption & Decryption 10%
File I/O 10%
Log in (with disable account) 5%
Deposit Money 5%
Print Receipt 2%
Withdraw & Transfer cash 10%
Create/Update/Delete Accounts 5% + 5% + 5%
Searching for Accounts 5%
Account Reports 10 % (5% each)
Transaction processing (separate file to store transactions 5%
and not allowing more than 20,000 per day)