CECS 277
LAB ASSIGNMENT #4
Assigned date: 3/9
Due date: 3/16
10 points
Design a class Bank that contains a number of bank accounts. Each account has an account number and a current balance. Add an accountNumber field to the BankAccount class. Store the bank accounts in an array list. Write a readFile method of the Bank class for reading the file with the format:
accountNumber1 balance1
accountNumber2 balance2
Implement read methods for the Bank and BankAccount classes. Write a sample program to read in a file with bank accounts, then prints the account with the highest balance. If the file is not properly formatted, give the user a chance to selecct another file.
Grading
Partial design of classes BankAcount, Bank, and BankReader.
import java.util.Scanner;
import java.io.IOException;
import java.util.NoSuchElementException;
/**
A bank account has a balance that can be changed by deposits and withdrawals.
*/
public class BankAccount
{
private double balance;
private int accountNumber;
/**
Constructs a bank account with a zero balance.
*/
/**
Constructs a bank account with a given account number and a initial balance.
*/
/**
Reads an account number and balance.
@param in the scanner
@return true if the data was read
false if the end of the stream was reached
*/
public void read(Scanner in) ___________________________
{
try
{
} catch
{
throw new _____________________________
}
}
Note: You need to check for incompatible input.
/**
Deposits money into the bank account.
@param amount the amount to deposit
*/
/**
Withdraws money from the bank account.
@param amount the amount to withdraw
*/
/**
Gets the current balance of the bank account.
@return the current balance
*/
/**
Gets the account number of the bank account.
@return the account number
*/
}
___________________________________________________
import java.util.ArrayList;
import java.io.IOException;
import java.io.File;
import java.util.Scanner;
import java.util.NoSuchElementException;
/**
A bank contains account numbers and balances of each customer.
*/
public class Bank
{
private ArrayList<BankAccount> accountList;
/**
Construct a Bank object.
*/
/**
Reads a file with account numbers and balances and adds the accounts
to the bank.
@param filename the name of the file
*/
public void readFile(String filename) ________________________
{ //Create File object, a scanner object to read data from the file.
//call the method read
File reader = new File(filename);
Scanner in = new Scanner(reader);
try
{
}
finally
{
}
}
Note: call the method read
/**
Read a file with account numbers and balances and adds the accounts
to the bank.
@param in the scanner for reading the input
*/
private void read(Scanner in)___________________________
{
while (in.hasNext())
{//Create a BankAccount object
//input data for the BankAccount object
//Add the BankAccount object to the accountlist
}
}
/**
Add an account to the bank.
@param b the BankAccount reference
*/
/**
Gets the account with the highest balance.
@return the account with the highest balance
*/
public BankAccount getHighestBalance()
{
}
}
________________________________________________
import java.util.Scanner;
import java.io.IOException;
import java.io.FileNotFoundException;
/**
Reads bank accounts from a file and prints highest balance.
*/
public class BankReader
{
/**
Prompts for and reads name of file to process.
@param in Scanner from which to read
@return file name
*/
private static String getFileName(Scanner in)
{
String filename = null;
System.out.println("Enter file to process: ");
if (in.hasNext())
{
filename = in.next();
}
return filename;
}
public static void main(String[] args)
{
Bank bank = new Bank();
Scanner in = new Scanner(System.in);
String filename = getFileName(in);
boolean done = false;
while (____________________________________)
{
try
{//read the file
//display the highest balance
}
//catch file not found exception andget the file name again
catch
{
System.err.println(filename + " not found");
__________________________________
}
//catch for improperly formatted line and get the file name again
catch (IOException e)
{
System.err
.println(filename + " contains improperly formatted line");
_______________________________________
}
}
}
}