0% found this document useful (0 votes)
104 views

Atm Software: No Plagiarism Strict Disciplinary Action Will Be Taken If Involved in Plagiarism

The document describes an assignment to create an ATM system with functionality for customers and administrators using classes, interfaces, packages, inheritance and polymorphism in Java. Customers can withdraw, transfer, deposit and check balances while administrators can create, delete, update and search accounts as well as view reports.

Uploaded by

Maqsood
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
104 views

Atm Software: No Plagiarism Strict Disciplinary Action Will Be Taken If Involved in Plagiarism

The document describes an assignment to create an ATM system with functionality for customers and administrators using classes, interfaces, packages, inheritance and polymorphism in Java. Customers can withdraw, transfer, deposit and check balances while administrators can create, delete, update and search accounts as well as view reports.

Uploaded by

Maqsood
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

University of Management & Technology

Resource Person: Hasan Maqbool

ATM SOFTWARE
Due March 28, 2015 at 11:55 pm - max. 50% credit for up to 24hr late

The main aims of this assignment are to:

(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

University of Management & Technology Page 1 of 10


University of Management & Technology

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.

Enter login: username


Enter Pin code: password

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:

University of Management & Technology Page 2 of 10


University of Management & Technology

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

University of Management & Technology Page 3 of 10


University of Management & Technology

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,

Enter amount in multiples of 500: 3500


Enter the account number to which you want to transfer: 15
You wish to deposit Rs 3,500 in account held by Mr. xyz; If this information is
correct please re-enter the
account number: 15

Transaction confirmed.

Do you wish to print a receipt (Y/N)? Y


Account #12
Date: 14/09/2005
Amount Transferred: 3500
Balance: 154500

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

University of Management & Technology Page 4 of 10


University of Management & Technology

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,

1----Create New Account.


2----Delete Existing Account.
3----Update Account Information.
4----Search for Account.
5----View Reports
6----Exit

1----Create New Account


If the user selects this option then he is asked to enter account information. One
piece of information at a time and the screen should be cleared after each entry.
The system should check the validity of the data i.e. type can only be ‘Savings’ or
‘Current’.
Login: xyz123
Pin Code: 12345
Holders Name: abc
Type (Savings,Current): Savings
Starting Balance: 6000
Status: Active
Obviously, an account number has to be assigned to this newly created account.
For this purpose, you are required to check the last account number created and
add one to it. So, if there exists an account number 18 in the file(and there is no

University of Management & Technology Page 5 of 10


University of Management & Technology

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

2---Delete Existing Account


If the user selects this option he is asked to enter an account number. He is then
asked confirm that this account should be deleted.
Enter the account number to which you want to delete: 15
You wish to delete the account held by Mrxyz; If
this information is correct please re-enter the account
number: 15
Account Deleted Successfully
3---Update Account Information
The program should first ask the admin to enter the account number to beupdated:
Enter the Account Number: 15
Then, a menu should be displayed which shows the admin all the oldinformation
followed by a step-by-step inquiry to change particular fields. If heleaves a field
blank then the old information is propagated i.e. the previous information remains
unchanged. (Again, the screen should be cleared after each entry.)
Account # 15
Type: Savings
Holder: Mrjava Dude
Balance: 50,000
Status: Disabled
Please enter in the fields you wish to update (leave blank
otherwise):
Login: csharp666
Pin Code: 45678
Holders Name: (for example, I leave this blank and
simply press enter)
Status: Active
Your account has been successfully been updated

4---Search for Account


This will display a menu asking the admin to enter any search criteria for each
field. If the user leaves a field blank then it should not be included in the search i.e.
if user does not specify holder name then all accounts matching other criteria with
any holder name should be displayed.
SEARCH MENU:

University of Management & Technology Page 6 of 10


University of Management & Technology

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 ======

University of Management & Technology Page 7 of 10


University of Management & Technology

Transaction Type UserID HoldersNameAmount Date


Cash Withdrawal 44045 Bob Jack 2,500 17/12/2005

One More Functionality 


A little cryptography is always a good idea for securing the contents of sensitive
files. The login file must be encrypted when it is stored to disk and decrypted
when it is needed. We are going to use a very simple encryption technique which is
as follows. For alphabets we swap A with Z, B with Y and so on.
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ZYXWVUTSRQPONMLKJIHGFEDCBA
For Number we have
0123456789
9876543210
Design Clues and Requirements
 Use flat file systems to store all data. The format of the files is given below
but broadly you should have one file for login information (login, pin code
and user type) another file for user information and a third for transaction
data.
 Make sure you separate the implementation from the interface completely
because we are going to ask you to give the same assignment with GUI
features later on.
 All data entry points should have proper error checks and error messages.
 All data entry is through command line interface.
 There must be proper commenting throughout your code and you have to
generate documentations for your assignment. You can do that by giving
comments at the top of your classes, methods, properties like /// and it will
add the template documentation tags
 We expect that your system should be very robust, so apply intelligent
checks; in no case should your program crash or produce undesirable
results.
 Use Function and Variable names intelligently. The harder your code is to
check, the higher are the chances of you getting lower marks. If your
program crashes for some reason during checking, TA’s will be just

University of Management & Technology Page 8 of 10


University of Management & Technology

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.

File Names to Use


(account.txt)
< User ID>;<Account ID>;< Holders Name>; <Type>;< Balance:>; <Status>
(login.txt)
<User ID>;<Login>;<Pin code>
You have to figure out on your own, the design of your transaction.txt file.

Well that’s all what you have to do till Deadline.

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)

University of Management & Technology Page 9 of 10


University of Management & Technology

General Architecture and Style of your code. I.e. if you have 8%


followed modular approach and there is proper separation of
codes into classes and methods. No global variables etc

University of Management & Technology Page 10 of 10

You might also like