Project 2 Solution

$30.00

Category: Tag:

Description

This project involves writing a program that implements an ATM machine. The interface to the program should be a Java GUI that looks similar to the following:

The program should consist of three classes.

  1. The first class should define the GUI. In addition to the main method and a constructor to build the GUI, event handlers will be needed to handle each of the four buttons shown above. When the Withdraw button is clicked, several checks must be made. The first check is to ensure the value in the text field is numeric. Next a check must be made to ensure the amount is in increments of $20. At that point an attempt to withdraw the funds is made from the account selected by the radio buttons. The attempt might result in an exception being thrown for insufficient funds, If any of those three errors occur a JOptionPane window should be displayed explaining the error. Otherwise a window should be displayed confirming that the withdrawal has succeeded. When the Deposit button is clicked the only necessary check is to ensure that the amount input in the textfield is numeric. Clicking the Transfer button signifies transferring funds to the selected account from the other account. The checks needed are to confirm that the amount supplied is numeric and that there are sufficient funds in the account from which the funds are being transferred. Clicking the Balance button will cause a JOptionPane window to be displayed showing the current balance in the selected account. The main class must contain two Account objects, one for the checking account and another for the savings account.

  1. The second class is Account. It must have a constructor plus a method that corresponds to each of the four buttons in the GUI. It must also incorporate logic to deduct a service charge of $1.50 when more than four total withdrawals are made from either account.

Note that this means, for example, if two withdrawals are made from the checking and two from the savings, any withdrawal from either account thereafter incurs the service charge. The method that performs the withdrawals must throw an InsufficientFunds exception whenever an attempt is made to withdraw more funds than are available in the

1

account. Note that when service charges apply, there must also be sufficient funds to pay for that charge.

3. The third class is InsufficientFunds, which is a user defined checked exception.

The google recommended Java style guide, provided as link in the week 2 content, should be used to format and document your code. Specifically, the following style guide attributes should be addressed:

Header comments include filename, author, date and brief purpose of the program. In-line comments used to describe major functionality of the code.

Meaningful variable names and prompts applied. Class names are written in UpperCamelCase.

Variable names are written in lowerCamelCase. Constant names are in written in All Capitals.

Braces use K&R style.

In addition the following design constraints should be followed:

Declare all instance variables private Avoid the duplication of code

Test cases should be supplied in the form of table with columns indicating the input values, expected output, actual output and if the test case passed or failed. This table should contain 4 columns with appropriate labels and a row for each test case. Note that the actual output should be the actual results you receive when running your program and applying the input for the test record. Be sure to select enough different scenarios to completely test the program.

Note: All code should compile and run without issue.

Submission requirements

Deliverables include all Java files (.java) and a single word (or PDF) document. The Java files should be named appropriately for your applications. The word (or PDF) document should include screen captures showing the successful compiling and running of each of the test cases. Each screen capture should be properly labeled clearly indicated what the screen capture represents. The test cases table should be included in your word or PDF document and properly labeled as well.

Submit your files to the Project 2 assignment area no later than the due date listed in your LEO classroom.

You should include your name and P2 in your word (or PDF) file submitted (e.g.

firstnamelastnameP2.docx or firstnamelastnameP2.pdf).

2

Grading Rubric:

The following grading rubric will be used to determine your grade:

Attribute

Meets

Does not meet

GUI Class

35 points

0 points

Defines the GUI.

Does not define the GUI.

Contains the main method and

Does not contain the main

a constructor to build the GUI.

method and a constructor to

build the GUI.

Contains event handlers to

handle each of the four buttons.

Does not contain event

handlers to handle each of the

Contains Withdrawal checks to

four buttons.

ensure the value in the text field

is numeric.

Does not contain Withdrawal

checks to ensure the value in

Contains Withdrawal checks to

the text field is numeric.

ensure the amount is in

increments of $20.

Does not contain Withdrawal

checks to ensure the amount is

Provides ability to attempt to

in increments of $20.

withdraw the funds is made

from the account selected by

Does not provide ability to

the radio buttons.

attempt to withdraw the funds

is made from the account

An exception is thrown for

selected by the radio buttons.

insufficient funds, or if value is

not numeric or is value is not in

An exception is not thrown for

$20 increment using a

insufficient funds, or if value is

JOptionPane window explaining

not numeric or is value is not in

the error.

$20 increment using a

JOptionPane window explaining

Upon successful withdrawal, a

the error.

window is displayed confirming

that the withdrawal has

Upon successful withdrawal, a

succeeded.

window is not displayed

confirming that the withdrawal

Provides ability to attempt

has succeeded.

Deposit when Deposit button is

clicked.

3

Contains Deposit checks to

Does not provide ability to

ensure the value in the text field

attempt Deposit when Deposit

is numeric.

button is clicked.

Contains Transfer button

Does not contain Deposit

functionality providing

checks to ensure the value in

transferring funds to the

the text field is numeric.

selected account from the other

account.

Does not contain Transfer

button functionality providing

Contains transfer checks to

transferring funds to the

confirm that the amount

selected account from the other

supplied is numeric and that

account.

there are sufficient funds in the

account from which the funds

Does not contain transfer

are being transferred.

checks to confirm that the

amount supplied is numeric and

Contains a Balance button will

that there are sufficient funds in

cause a JOptionPane window to

the account from which the

be displayed showing the

funds are being transferred.

current balance in the selected

account.

Does not contain a Balance

button will cause a JOptionPane

The main class contains two

window to be displayed

Account objects, one for the

showing the current balance in

checking account and another

the selected account.

for the savings account.

The main class does not contain

two Account objects, one for

the checking account and

another for the savings account.

Code does not Compile.

Account class

25 points

0 points

Contains a constructor plus a

Does not contain a constructor

method that corresponds to

plus a method that corresponds

each of the four buttons in the

to each of the four buttons in

GUI.

the GUI.

Incorporates logic to deduct a

Does not incorporate logic to

service charge of $1.50 when

deduct a service charge of $1.50

more than four total

when more than four total

withdrawals are made from

withdrawals are made from

either account.

either account.

4

The method that performs the

The method that performs the

withdrawals throws an

withdrawals does not throws an

InsufficientFunds exception

InsufficientFunds exception

whenever an attempt is made

whenever an attempt is made

to withdraw more funds than

to withdraw more funds than

are available in the account.

are available in the account.

Checks that there must be

Does not check that there must

sufficient funds to pay for

be sufficient funds to pay for

service charge.

service charge.

Code does not Compile.

InsufficientFundsException

20 points

0 points

Class

Is a user defined checked

Is not a user defined checked

exception class.

exception class.

Handles all user-defined

Does not handle all user-

exceptions.

defined exceptions.

Code does not Compile.

Test Cases

10 points

0 points

Test cases are supplied in the

No test cases were provided.

form of table with columns

indicating the input values,

expected output, actual output

and if the test case passed or

failed.

Enough scenarios selected to

completely test the program.

Test cases were included in the

supporting word or PDF

documentation.

Documentation and Style guide

10 points

0 points

Screen captures were provided

No documentation included.

and labeled for compiling your

code, and running each of your

Java style guide was not used to

test cases.

prepare the Java code.

Header comments include

All instance variables not

filename, author, date and brief

declared private.

purpose of the program.

5

In-line comments used to

Duplication of code was not

describe major functionality of

avoided.

the code.

Meaningful variable names and

prompts applied.

Class names are written in

UpperCamelCase.

Variable names are written in

lowerCamelCase.

Constant names are in written

in All Capitals.

Braces use K&R style.

Declare all instance variables

private.

Avoids the duplication of code.

6


error: Content is protected !!