Advanced
Programming - CS239
Department
of Computer Science
LAB 8 : DEVELOPING A
FIXEDTERMSAVINGSACCOUNT
CLASS
Getting Ready:
Before
going any further you should:
1. Make a directory on your
N:
drive for this
lab. (Note: You will need to use this class in future programming assignments
and labs.)
2. Setup your development
environment.
Tasks: In this lab you will
complete a stubbed-out class and develop a driver for testing
it.
A colleague of yours
created the following stubbed-out FixedTermSavingsAccount
class from a
Software Requirements Specification.
import
java.text.*;
/**
*
A savings account that does not allow withdrawals
*
(except upon graduation) and does not earn interest.
*
*
@author Prof. David Bernstein, James Madison University
*
@version 0.1 (Stub)
*/
public
class FixedTermSavingsAccount
{
//
Attributes of objects
private
double balance;
private
final int accountNumber;
private
NumberFormat accountFormatter;
private
String userName;
//
Attributes of the class
private
static int nextAccountNumber;
/**
*
Explicit Value Constructor
*
*
@param user The JMU username of the account holder
*/
public
FixedTermSavingsAccount(String user)
{
//
Initialize userName
//
Initialize the accountNumber
accountNumber
= nextAccountNumber;
//
Update nextAccountNumber for the next object
//
Construct and initialize accountFormatter so that
//
it always creates String objects with 10 digits
//
Initialize the balance
}
/**
*
Compare the account number on this account to the
*
account number on a given account
*
*
@param other The given account
*
@return -1/1 if this account comes before/after the given
account
*/
public
int compareTo(FixedTermSavingsAccount other)
{
return
1;
}
/**
*
Deposit money into this account
*
*
@param amount The amount of the deposit (should be
positive)
*
@return A message describing the deposit
*/
public
String deposit(double amount)
{
//
If amount <= 0.0 create an error message
//
otherwise create an informational message and
//
increase balance
return
"No deposit was made";
}
/**
*
Get the ID associated with this account
*
*
The ID consists of the characters "FT-" followed
*
by the 10-digit account number
*
*
@return The ID
*/
public
String getAccountID()
{
return
"FT-0000000000";
}
/**
*
Get the number associated with this account
*
*
The number consists of s String containing
*
the 10-digit account number
*
*
@return The account number
*/
public
String getAccountNumber()
{
return
"0000000000";
}
/**
*
Get the current balance
*
*
@return The balance
*/
public
double getBalance()
{
return
0.0;
}
/**
*
Get a String description of the current balance
*
*
The description consists of the String "Balance: "
*
followed by the balance (with a leading $, two digits
*
after the decimal place, and a ',' as the grouping
character)
*
*
@return A description of the balance
*/
public
String getBalanceMessage()
{
return
"Balance: $1,000,000.00";
}
/**
Get
the JMU username of the account holder
*
*
The STring returned consists of the username (which
*
is 8 characters or less) followed by the String
*
"@jmu.edu"
*
*
@return The username
*/
public
String getUserName()
{
return
"bernstdh@jmu.edu";
}
/**
*
Set the current balance
*
Note: This method should be used with caution
*
(We'll learn how to fix this later)
*
*
@param balance The new balance
*/
public
void setBalance(double balance)
{
}
}
Name
________________________________________
You will need to turn in
this and following pages for this lab.
Done |
Yes
No |
Insert the results of
your test here |
Insert the results of
your test here |
4. Implement the
getBalanceMessage()
method and
modify your driver appropriately. [To Think About: Should this method
use the balance
attribute
directly or should it use
getBalance()?]
Done |
Yes
No |
5. Implement the
deposit()
method, modify
your driver appropriately, and test your
implementation. [To Think
About: Should this method use the balance
attribute
directly or should it use getBalance()
and
setBalance()?]
Done |
Yes
No |
6. Implement the
compareTo()
method, modify
your driver appropriately, and test your
implementation.
Insert the results of
your test here |