I have an assignment to write an account management program that resembles and ATM. I have each component working fine but my instructor wants it to be menu based. i have created a menu with some else ifs but now the program will not compile. i have includes the test program code as well as the necessary class files. Im pretty sure a major issue is the last few lines. if i omit them i only get a couple of errors. i guess one of my main questions is where they should go.
this is the code that seems to be the main problem:
this is the test program:
These are the class files:
Here is the test program that works (but is not menu based)
this is the code that seems to be the main problem:
public static void checkingWithdrawal(CheckingAccount chkAct, double amt) {
chkAct.withdrawal(amt);
}
public static void savingsWithdrawal(SavingsAccount savAct, double amt) {
savAct.withdrawal(amt);
}}}}
this is the test program:
//java 2
//11.3
//
//test account program
import javax.swing.JOptionPane;
import java.util.Date;
public class TestCustomer {
public static void main(String[] args) {
/////////////menu/////////////////////////
String chs = JOptionPane.showInputDialog(null,
"Enter Your Name: ", "Account Log In", JOptionPane.INFORMATION_MESSAGE);
Customer customer = new Customer(chs);
boolean menu = true;
while(menu) {
String choice = JOptionPane.showInputDialogu(null,
customer.getCustomerName() + "'s Banking Options for " + customer.getDate() + "\n"
+ "\n1. Savings Deposit"
+ "\n2. Savings Withdrawal"
+ "\n3. Checking Deposit"
+ "\n4. Checking Withdrawal"
+ "\n.5 Exit\n\n","Selection Menu", JOptionPane.INFORMATION_MESSAGE);
///////////////new account constants/////
Account chkAct = new CheckingAccount(0303445, 0.00, 0.5, 500.00);
Account savAct = new SavingsAccount(0404445, 0.00, 1.5);
///////////////////////checking deposit////////////////
if(choice.equals("1")) {
JOptionPane.showMessageDialog(null, "New Checking Account: \n" + chkAct,
"New Checking Account Information", JOptionPane.INFORMATION_MESSAGE);
chkAct.deposit(Double.parseDouble(JOptionPane.showInputDialog(null,
"Deposit amount:\n" + chkAct, "Depositing Funds", JOptionPane.INFORMATION_MESSAGE)));
JOptionPane.showMessageDialog(null, "Balance: \n" + chkAct,
"Checking Account Overview", JOptionPane.INFORMATION_MESSAGE);
}
//////////////checking withdraw//////
else if(choice.equals("2")){
JOptionPane.showMessageDialog(null, "New Checking Account: \n" + chkAct,
"New Checking Account Information", JOptionPane.INFORMATION_MESSAGE);
chkAct.withdrawal(Double.parseDouble(JOptionPane.showInputDialog(null,
"Withdrawal amount:\n" + chkAct, "Withdrawing Funds", JOptionPane.INFORMATION_MESSAGE)));
JOptionPane.showMessageDialog(null, "Balance: \n" + chkAct,
"Checking Account Overview", JOptionPane.INFORMATION_MESSAGE);
}
/////////////////////////savings deposit/////////////////
else if(choice.equals("3")) {
JOptionPane.showMessageDialog(null, "New savings account: \n" + savAct,
"New Savings Account Information", JOptionPane.INFORMATION_MESSAGE);
savAct.deposit(Double.parseDouble(JOptionPane.showInputDialog(null,
"Deposit amount:\n" + savAct, "Depositing Funds", JOptionPane.INFORMATION_MESSAGE)));
JOptionPane.showMessageDialog(null, "Balance: \n" + savAct,
"Savings Account Overview", JOptionPane.INFORMATION_MESSAGE);
}
//////////savings withdraw//////////////
else if (choice.equals("4")) {
JOptionPane.showMessageDialog(null, "New savings account: \n" + savAct,
"New Savings Account Information", JOptionPane.INFORMATION_MESSAGE);
savAct.withdrawal(Double.parseDouble(JOptionPane.showInputDialog(null,
"Withdrawal amount:\n" + savAct, "Withdrawing Funds", JOptionPane.INFORMATION_MESSAGE)));
JOptionPane.showMessageDialog(null, "Balance: \n" + savAct,
"Savings Account Overview", JOptionPane.INFORMATION_MESSAGE);
}
/////////////////////exit////////////////////
else if (choice.equals("5")) {
JOptionPane.showMessageDialog(null,
"Exiting Account", "EXIT", JOptionPane.INFORMATION_MESSAGE);
menu = false;
}
//////////////invalid selection//////////////
else {
JOptionPane.showMessageDialog(null,
"INVALID SELECTION! \n\n Please Enter 1-5 ", "INVALID SELECTION WARNING", JOptionPane.INFORMATION_MESSAGE);
///////////////transactins/////////////////////
public static void checkingWithdrawal(CheckingAccount chkAct, double amt) {
chkAct.withdrawal(amt);
}
public static void savingsWithdrawal(SavingsAccount savAct, double amt) {
savAct.withdrawal(amt);
}}}}
These are the class files:
//java 2
//11.3
//by taddei
//account class
import javax.swing.JOptionPane;
class Account {
protected int number;
protected double balance;
protected double annualInterestRate;
protected java.util.Date dateCreated = new java.util.Date();
public Account() {
}
public Account(int number, double balance, double annualInterestRate) {
this.number = number;
this.balance = balance;
this.annualInterestRate = annualInterestRate;
}
public java.util.Date getdate() {
return dateCreated;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public double deposit(double deposit) {
balance += deposit;
return balance;
}
public double withdrawal(double withdraw) {
if(balance >= withdraw)
this.balance -= withdraw;
else
JOptionPane.showMessageDialog(null, "Over Draft Warning! " + balance);
return balance;
}
public double getAnnualInterestRate() {
return annualInterestRate;
}
public void setAnnualInterestRate(double annualInterestrate) {
this.annualInterestRate = annualInterestrate;
}
public double getMonthlyInterestRate() {
double monthlyInterest = (annualInterestRate / 1200) * balance;
return monthlyInterest;
}
public String toString() {
String details = "Account Number = " + number + "\nBalance = " + balance +
"\nInterest Rate = " + annualInterestRate + "\n\nDate Created:\n" + dateCreated;
return details;
}
}
//java 2
//11.3
//by taddei
//checking account class
import javax.swing.JOptionPane;
class CheckingAccount extends Account {
double overdraft;
CheckingAccount(int number, double balance, double annualInterestRate, double overdraft) {
super(number, balance, annualInterestRate);
this.overdraft = overdraft;
}
public double withdrawal(double amt) {
if((balance + overdraft) >= amt)
this.balance -= amt;
else
JOptionPane.showMessageDialog(null, "Over Draft! = "+balance, "Over Draft Warning", JOptionPane.INFORMATION_MESSAGE);
return balance;
}
public String toString() {
String details = "Account Number = " + number + "\nBalance = " + balance + "\nInterest Rate = " +
annualInterestRate + "\nOverdraft Limit = " + overdraft + "\n\nDate Created:\n" + dateCreated ;
return details;
}
}
//java 2
//11.3
//by taddei
//savings account class
class SavingsAccount extends Account {
SavingsAccount(int number, double balance, double annualInterestRate) {
super(number, balance, annualInterestRate);
}
}
Here is the test program that works (but is not menu based)
//java 2
//11.3
//by taddei
//test account program
import javax.swing.JOptionPane;
public class TestAccount {
public static void main(String[] args) {
Account chkAct = new CheckingAccount(0303445, 0.00, 0.5, 500.00);
Account savAct = new SavingsAccount(0404445, 0.00, 1.5);
///////////////////////checking////////////////
JOptionPane.showMessageDialog(null, "New Checking Account: \n" + chkAct,
"New Checking Account Information", JOptionPane.INFORMATION_MESSAGE);
chkAct.deposit(Double.parseDouble(JOptionPane.showInputDialog(null,
"Deposit amount:\n" + chkAct, "Depositing Funds", JOptionPane.INFORMATION_MESSAGE)));
chkAct.withdrawal(Double.parseDouble(JOptionPane.showInputDialog(null,
"Withdrawal amount:\n" + chkAct, "Withdrawing Funds", JOptionPane.INFORMATION_MESSAGE)));
chkAct.deposit(Double.parseDouble(JOptionPane.showInputDialog(null,
"Deposit amount:\n" + chkAct, "Depositing Funds", JOptionPane.INFORMATION_MESSAGE)));
chkAct.withdrawal(Double.parseDouble(JOptionPane.showInputDialog(null,
"Withdrawal amount:\n" + chkAct, "Withdrawing Funds", JOptionPane.INFORMATION_MESSAGE)));
chkAct.deposit(Double.parseDouble(JOptionPane.showInputDialog(null,
"Deposit amount:\n" + chkAct, "Depositing Funds", JOptionPane.INFORMATION_MESSAGE)));
JOptionPane.showMessageDialog(null, "Balance: \n" + chkAct,
"Checking Account Overview", JOptionPane.INFORMATION_MESSAGE);
/////////////////////////savings/////////////////
JOptionPane.showMessageDialog(null, "New savings account: \n" + savAct,
"New Savings Account Information", JOptionPane.INFORMATION_MESSAGE);
savAct.deposit(Double.parseDouble(JOptionPane.showInputDialog(null,
"Deposit amount:\n" + savAct, "Depositing Funds", JOptionPane.INFORMATION_MESSAGE)));
savAct.withdrawal(Double.parseDouble(JOptionPane.showInputDialog(null,
"Withdrawal amount:\n" + savAct, "Withdrawing Funds", JOptionPane.INFORMATION_MESSAGE)));
savAct.deposit(Double.parseDouble(JOptionPane.showInputDialog(null,
"Deposit amount:\n" + savAct, "Depositing Funds", JOptionPane.INFORMATION_MESSAGE)));
savAct.withdrawal(Double.parseDouble(JOptionPane.showInputDialog(null,
"Withdrawal amount:\n" + savAct, "Withdrawing Funds", JOptionPane.INFORMATION_MESSAGE)));
savAct.deposit(Double.parseDouble(JOptionPane.showInputDialog(null,
"Deposit amount:\n" + savAct, "Depositing Funds", JOptionPane.INFORMATION_MESSAGE)));
JOptionPane.showMessageDialog(null, "Balance: \n" + savAct,
"Savings Account Overview", JOptionPane.INFORMATION_MESSAGE);
}
///////////////transactins/////////////////////
public static void checkingWithdrawal(CheckingAccount chkAct, double amt) {
chkAct.withdrawal(amt);
}
public static void savingsWithdrawal(SavingsAccount savAct, double amt) {
savAct.withdrawal(amt);
}
}