Untitled
unknown
java
a year ago
3.5 kB
2
Indexable
Never
package com.citibanamex; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; public class Atm { /* * atm class: 2 instance attributes balance serialnumber * * 1 constructor * * encapsulate attributes * * getter and setter: * * a method that accepts deposits and adds to the balance deposit() it there * is a neg number it throws an exception * * a method to withdraw and subtracts from the balance withdraw() if the * withdraw is higher that the balance, it throws an exception * * Optional: Add a log of the deposits and withdraws with date and name * private ArrayList<String> log= new ArrayList<>(); * * * */ private double balance; private int serialNumber; private ArrayList<String> log; static private int counter; Atm(double balance) { this.balance = balance; this.serialNumber = counter++; this.log = new ArrayList<>(); } public double getBalance() { return this.balance; } public void setBalance(double balance) { this.balance = balance; } public double getSerialNumber() { return this.serialNumber; } public void setSerialNumber(int serialNumber) { this.serialNumber = serialNumber; } void addLog(String entryData) { this.log.add(entryData); } public String getLog() { String logs = ""; for (String alog : this.log) { logs += alog + "\n"; } return logs; } String getCurrentDate() { Date date = Calendar.getInstance().getTime(); DateFormat dateFormat = new SimpleDateFormat("yyyy/mm/dd hh:mm:ss"); String currentDate = dateFormat.format(date); return currentDate; } void deposit(double deposit) { if (deposit <= 0) throw new ArithmeticException("This deposit is not allowed"); setBalance(getBalance() + deposit); addLog(stringOperation("Deposit", deposit)); } void withdraw(double askedCash) { if (askedCash >= this.balance) throw new ArithmeticException("Cash asked is higher than your balance"); setBalance(getBalance() - askedCash); addLog(stringOperation("Withdraw", askedCash)); } String stringOperation(String opt, double amount) { return getCurrentDate() + " " + opt + " of $" + amount; } } package com.citibanamex; public class AtmTest { public static void main(String[] args) { Atm atm1 = new Atm(7500.0); // test of deposit method testOfDeposit(atm1, 0.0); // test of withdraw method testOfWithdraw(atm1, 8000.0); // getting the log: atm1.deposit(1500.0); atm1.withdraw(300.0); atm1.deposit(3000.0); atm1.withdraw(100.0); System.out.println("log:\n" + atm1.getLog()); } static void testOfDeposit(Atm objectAtm, double test) { try { System.out.println("Trying to make a deposit of $0.0"); objectAtm.deposit(test); } catch (ArithmeticException e) { e.printStackTrace(); } finally { System.out.println("Balance: $" + objectAtm.getBalance()); } } static void testOfWithdraw(Atm objectAtm, double test) { try { System.out.println("Trying to withdraw $8000.00"); objectAtm.withdraw(test); } catch (ArithmeticException e) { e.printStackTrace(); } finally { System.out.println("Balance: $" + objectAtm.getBalance()); } } }