From 45d50ff7f0840ef7d7b1e7ccd3e383256e0a9fd7 Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 00:04:16 +0300 Subject: [PATCH 01/22] Create Assignment_I_Advanced_Programming --- Assignment_I_Advanced_Programming | 1 + 1 file changed, 1 insertion(+) create mode 100644 Assignment_I_Advanced_Programming diff --git a/Assignment_I_Advanced_Programming b/Assignment_I_Advanced_Programming new file mode 100644 index 0000000..28a2368 --- /dev/null +++ b/Assignment_I_Advanced_Programming @@ -0,0 +1 @@ +Assignment_1_Advanced_Programming. From 0638fc9236864adca82d4fa7285f38faba232580 Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 00:06:11 +0300 Subject: [PATCH 02/22] Delete Assignment_I_Advanced_Programming --- Assignment_I_Advanced_Programming | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Assignment_I_Advanced_Programming diff --git a/Assignment_I_Advanced_Programming b/Assignment_I_Advanced_Programming deleted file mode 100644 index 28a2368..0000000 --- a/Assignment_I_Advanced_Programming +++ /dev/null @@ -1 +0,0 @@ -Assignment_1_Advanced_Programming. From b38f0c438aa2864bce93f4629214f39216ab8680 Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 00:17:30 +0300 Subject: [PATCH 03/22] Create temp --- Assignment_I_Advanced_Programming/temp | 1 + 1 file changed, 1 insertion(+) create mode 100644 Assignment_I_Advanced_Programming/temp diff --git a/Assignment_I_Advanced_Programming/temp b/Assignment_I_Advanced_Programming/temp new file mode 100644 index 0000000..c5b3a98 --- /dev/null +++ b/Assignment_I_Advanced_Programming/temp @@ -0,0 +1 @@ +Assignment 1 Advanced Programming From c6a3079531034f05b726217a5650a6d63efec7f5 Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 00:37:46 +0300 Subject: [PATCH 04/22] Create Withdrawal --- Assignment_I_Advanced_Programming/Q2/Withdrawal | 1 + 1 file changed, 1 insertion(+) create mode 100644 Assignment_I_Advanced_Programming/Q2/Withdrawal diff --git a/Assignment_I_Advanced_Programming/Q2/Withdrawal b/Assignment_I_Advanced_Programming/Q2/Withdrawal new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Assignment_I_Advanced_Programming/Q2/Withdrawal @@ -0,0 +1 @@ + From 3c6897532d0e85a687cc65d7b2ed99f249bf1d2b Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 00:39:10 +0300 Subject: [PATCH 05/22] Add files via upload --- .../Q2/WithdrawalTransaction.java | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 Assignment_I_Advanced_Programming/Q2/WithdrawalTransaction.java diff --git a/Assignment_I_Advanced_Programming/Q2/WithdrawalTransaction.java b/Assignment_I_Advanced_Programming/Q2/WithdrawalTransaction.java new file mode 100644 index 0000000..e929ce4 --- /dev/null +++ b/Assignment_I_Advanced_Programming/Q2/WithdrawalTransaction.java @@ -0,0 +1,63 @@ +import java.util.Calendar; + +public class WithdrawalTransaction extends BaseTransaction { + private boolean reversed = false; // Track if the transaction has been reversed + private BankAccount appliedAccount; // Keep track of the account this transaction was applied to + + public WithdrawalTransaction(double amount, Calendar date) { + super(amount, date); + } + + @Override + public void apply(BankAccount ba) { + if (getAmount() <= ba.getBalance()) { + ba.withdraw(getAmount()); + appliedAccount = ba; // Store the account for potential reversal + System.out.println("Withdrawal of " + getAmount() + " applied."); + } else { + System.out.println("Insufficient funds for withdrawal."); + } + } + + public boolean reverse() { + if (reversed) { + System.out.println("Transaction has already been reversed."); + return false; + } + + if (appliedAccount != null) { + appliedAccount.deposit(getAmount()); + reversed = true; + System.out.println("Withdrawal transaction reversed. Amount " + getAmount() + " restored."); + return true; + } else { + System.out.println("Transaction was not applied to any account; cannot reverse."); + return false; + } + } + +public class TransactionTest { + public static void main(String[] args) { + // Create a bank account with an initial balance + BankAccount account = new BankAccount(5000); + + // Create a withdrawal transaction + Calendar withdrawalDate = Calendar.getInstance(); + WithdrawalTransaction withdrawal = new WithdrawalTransaction(1500, withdrawalDate); + + // Apply withdrawal transaction + System.out.println("Before transaction: " + account); + withdrawal.apply(account); + System.out.println("After withdrawal: " + account); + + // Reverse the withdrawal + boolean success = withdrawal.reverse(); + if (success) { + System.out.println("After reversal: " + account); + } + + // Attempt to reverse again + withdrawal.reverse(); + } +} +} \ No newline at end of file From a8eba893386cd9ee61bc5aa586bc9371cb0a2297 Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 00:39:54 +0300 Subject: [PATCH 06/22] Delete Assignment_I_Advanced_Programming/Q2/Withdrawal --- Assignment_I_Advanced_Programming/Q2/Withdrawal | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Assignment_I_Advanced_Programming/Q2/Withdrawal diff --git a/Assignment_I_Advanced_Programming/Q2/Withdrawal b/Assignment_I_Advanced_Programming/Q2/Withdrawal deleted file mode 100644 index 8b13789..0000000 --- a/Assignment_I_Advanced_Programming/Q2/Withdrawal +++ /dev/null @@ -1 +0,0 @@ - From 56d48d9194fabb7f2d821d99a4743f441151c100 Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 00:41:56 +0300 Subject: [PATCH 07/22] Delete Assignment_I_Advanced_Programming/temp --- Assignment_I_Advanced_Programming/temp | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Assignment_I_Advanced_Programming/temp diff --git a/Assignment_I_Advanced_Programming/temp b/Assignment_I_Advanced_Programming/temp deleted file mode 100644 index c5b3a98..0000000 --- a/Assignment_I_Advanced_Programming/temp +++ /dev/null @@ -1 +0,0 @@ -Assignment 1 Advanced Programming From c2cc4def3ccc494148bf2b4eeb8c7c3709cedf91 Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 00:43:26 +0300 Subject: [PATCH 08/22] Exception Handling and Client Codes --- .../Q3/Exception Handling and Client Codes | 1 + 1 file changed, 1 insertion(+) create mode 100644 Assignment_I_Advanced_Programming/Q3/Exception Handling and Client Codes diff --git a/Assignment_I_Advanced_Programming/Q3/Exception Handling and Client Codes b/Assignment_I_Advanced_Programming/Q3/Exception Handling and Client Codes new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Assignment_I_Advanced_Programming/Q3/Exception Handling and Client Codes @@ -0,0 +1 @@ + From 07083a406eb8dd8a83b1a4b7669ca3d9bd583395 Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 00:46:38 +0300 Subject: [PATCH 09/22] Add files via upload --- .../Q3/InsufficientFundsException.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 Assignment_I_Advanced_Programming/Q3/InsufficientFundsException.java diff --git a/Assignment_I_Advanced_Programming/Q3/InsufficientFundsException.java b/Assignment_I_Advanced_Programming/Q3/InsufficientFundsException.java new file mode 100644 index 0000000..24d04c7 --- /dev/null +++ b/Assignment_I_Advanced_Programming/Q3/InsufficientFundsException.java @@ -0,0 +1,67 @@ +package Lecture4_interfaces_abstract_classes; +import org.jetbrains.annotations.NotNull; +import java.util.Calendar; + +public class InsufficientFundsException extends Exception { + public InsufficientFundsException(String message) { + super(message); + } +} + +public class WithdrawalTransaction extends BaseTransaction { + private boolean reversed = false; + private BankAccount appliedAccount; + private double remainingAmount = 0.0; // Keeps track of the amount not withdrawn + + public WithdrawalTransaction(double amount, Calendar date) { + super(amount, date); + } + + @Override + public void apply(BankAccount ba) throws InsufficientFundsException { + if (getAmount() > ba.getBalance()) { + throw new InsufficientFundsException("Insufficient funds. Transaction failed."); + } else if (ba.getBalance() <= 0) { + throw new InsufficientFundsException("Account balance is zero or negative. Cannot proceed."); + } else { + ba.withdraw(getAmount()); + appliedAccount = ba; + System.out.println("Withdrawal of " + getAmount() + " applied."); + } + } + + // Overloaded apply() method + public void apply(BankAccount ba, boolean partialWithdrawal) { + try { + if (partialWithdrawal && ba.getBalance() > 0 && ba.getBalance() < getAmount()) { + remainingAmount = getAmount() - ba.getBalance(); + System.out.println("Partial withdrawal applied. Remaining amount: " + remainingAmount); + ba.withdraw(ba.getBalance()); + appliedAccount = ba; + } else { + apply(ba); // Call the original apply method + } + } catch (InsufficientFundsException e) { + System.out.println("Exception: " + e.getMessage()); + } finally { + System.out.println("Transaction process completed."); + } + } + + public boolean reverse() { + if (reversed) { + System.out.println("Transaction has already been reversed."); + return false; + } + + if (appliedAccount != null) { + appliedAccount.deposit(getAmount() - remainingAmount); + reversed = true; + System.out.println("Withdrawal transaction reversed. Amount " + (getAmount() - remainingAmount) + " restored."); + return true; + } else { + System.out.println("Transaction was not applied to any account; cannot reverse."); + return false; + } + } +} From 6558cac66c7f2af16f94277a083c65fec61d42bd Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 00:47:33 +0300 Subject: [PATCH 10/22] Exception Handling and Client Codes --- .../Q3/Exception Handling and Client Codes | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Assignment_I_Advanced_Programming/Q3/Exception Handling and Client Codes diff --git a/Assignment_I_Advanced_Programming/Q3/Exception Handling and Client Codes b/Assignment_I_Advanced_Programming/Q3/Exception Handling and Client Codes deleted file mode 100644 index 8b13789..0000000 --- a/Assignment_I_Advanced_Programming/Q3/Exception Handling and Client Codes +++ /dev/null @@ -1 +0,0 @@ - From 7cf12ab541f207aee5c0027c8ce16a72869d26d7 Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 00:50:15 +0300 Subject: [PATCH 11/22] Create Client Code --- Assignment_I_Advanced_Programming/Q4/Client Code | 1 + 1 file changed, 1 insertion(+) create mode 100644 Assignment_I_Advanced_Programming/Q4/Client Code diff --git a/Assignment_I_Advanced_Programming/Q4/Client Code b/Assignment_I_Advanced_Programming/Q4/Client Code new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Assignment_I_Advanced_Programming/Q4/Client Code @@ -0,0 +1 @@ + From 3acafc78d898e81656c41285501b2c89132d1d86 Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 00:51:02 +0300 Subject: [PATCH 12/22] Add files via upload --- .../Q4/Main.java | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 Assignment_I_Advanced_Programming/Q4/Main.java diff --git a/Assignment_I_Advanced_Programming/Q4/Main.java b/Assignment_I_Advanced_Programming/Q4/Main.java new file mode 100644 index 0000000..7d66406 --- /dev/null +++ b/Assignment_I_Advanced_Programming/Q4/Main.java @@ -0,0 +1,63 @@ +package Lecture4_interfaces_abstract_classes; + +import org.jetbrains.annotations.NotNull; + +import java.util.Calendar; + +public class Main { + public static void main(String[] args) { + // Create a BankAccount with an initial balance + BankAccount account = new BankAccount(5000); + + // Create a DepositTransaction + Calendar depositDate = Calendar.getInstance(); + DepositTransaction deposit = new DepositTransaction(2000, depositDate); + + // Create a WithdrawalTransaction + Calendar withdrawalDate = Calendar.getInstance(); + WithdrawalTransaction withdrawal = new WithdrawalTransaction(3000, withdrawalDate); + + // Test DepositTransaction (Directly) + System.out.println("Testing DepositTransaction:"); + System.out.println("Before deposit: " + account); + deposit.apply(account); + System.out.println("After deposit: " + account); + deposit.printTransactionDetails(); + + // Test WithdrawalTransaction (Directly) + System.out.println("\nTesting WithdrawalTransaction:"); + System.out.println("Before withdrawal: " + account); + try { + withdrawal.apply(account); + } catch (InsufficientFundsException e) { + System.out.println("Exception caught: " + e.getMessage()); + } + System.out.println("After withdrawal: " + account); + withdrawal.printTransactionDetails(); + + // Test BaseTransaction behavior (Type casting) + System.out.println("\nTesting BaseTransaction behavior using type casting:"); + BaseTransaction baseDeposit = (BaseTransaction) deposit; // Upcasting + BaseTransaction baseWithdrawal = (BaseTransaction) withdrawal; // Upcasting + + // Using BaseTransaction references + System.out.println("Testing apply() on BaseTransaction reference:"); + System.out.println("Before base deposit: " + account); + baseDeposit.apply(account); // Polymorphic call + System.out.println("After base deposit: " + account); + + System.out.println("Before base withdrawal: " + account); + try { + baseWithdrawal.apply(account); // Polymorphic call + } catch (InsufficientFundsException e) { + System.out.println("Exception caught: " + e.getMessage()); + } + System.out.println("After base withdrawal: " + account); + + // Reversal Test + System.out.println("\nTesting reversal functionality:"); + withdrawal.reverse(); + System.out.println("After reversal: " + account); + } +} + From 48cd2493dd9323906145603ba5e0e7f77315ba75 Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 00:51:53 +0300 Subject: [PATCH 13/22] Writing Client Code --- Assignment_I_Advanced_Programming/Q4/Client Code | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Assignment_I_Advanced_Programming/Q4/Client Code diff --git a/Assignment_I_Advanced_Programming/Q4/Client Code b/Assignment_I_Advanced_Programming/Q4/Client Code deleted file mode 100644 index 8b13789..0000000 --- a/Assignment_I_Advanced_Programming/Q4/Client Code +++ /dev/null @@ -1 +0,0 @@ - From 419b34460b76f9cd343b882e743f63cb6df11f25 Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 00:52:19 +0300 Subject: [PATCH 14/22] Create temp --- Assignment_I_Advanced_Programming/Q1/temp | 1 + 1 file changed, 1 insertion(+) create mode 100644 Assignment_I_Advanced_Programming/Q1/temp diff --git a/Assignment_I_Advanced_Programming/Q1/temp b/Assignment_I_Advanced_Programming/Q1/temp new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Assignment_I_Advanced_Programming/Q1/temp @@ -0,0 +1 @@ + From 1ffbadb4924a03bb87f1bf1f7bbd6044a7c36baf Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 01:09:04 +0300 Subject: [PATCH 15/22] Extending Interface in Concrete Class --- .../Q1/BankAccount.java | 16 +++ .../Q1/BaseTransaction.java | 124 ++++++++++++++++++ .../Q1/DepositTransaction.java | 30 +++++ .../Q1/TransactionInterface.java | 21 +++ 4 files changed, 191 insertions(+) create mode 100644 Assignment_I_Advanced_Programming/Q1/BankAccount.java create mode 100644 Assignment_I_Advanced_Programming/Q1/BaseTransaction.java create mode 100644 Assignment_I_Advanced_Programming/Q1/DepositTransaction.java create mode 100644 Assignment_I_Advanced_Programming/Q1/TransactionInterface.java diff --git a/Assignment_I_Advanced_Programming/Q1/BankAccount.java b/Assignment_I_Advanced_Programming/Q1/BankAccount.java new file mode 100644 index 0000000..74f3877 --- /dev/null +++ b/Assignment_I_Advanced_Programming/Q1/BankAccount.java @@ -0,0 +1,16 @@ +package Lecture4_interfaces_abstract_classes; + +public class BankAccount { + private double balance; + public BankAccount(double balance) { + this.balance = balance; + } + + public double getBalance() { + return balance; + } + + public void setBalance(double balance) { + this.balance = balance; + } +} \ No newline at end of file diff --git a/Assignment_I_Advanced_Programming/Q1/BaseTransaction.java b/Assignment_I_Advanced_Programming/Q1/BaseTransaction.java new file mode 100644 index 0000000..0c1f61d --- /dev/null +++ b/Assignment_I_Advanced_Programming/Q1/BaseTransaction.java @@ -0,0 +1,124 @@ +package Lecture4_interfaces_abstract_classes; + +//import org.jetbrains.annotations.NotNull; +import java.util. UUID; +import java.util.Calendar; + + +public interface TransactionInterface{ + double getAmount(); + Calendar getDate(); + String getTransactionID(); + void printTransactionDetails(); + void apply(BankAccount ba); +} + +public abstract class BaseTransaction implements TransactionInterface{ + private double amount; + private Calendar date; + private String transactionID; + + public BaseTransaction(double amount, Calendar date){ + this.amount = amount; + this.date = date; + // int uniq = (int) (Math.random() * 1000000); + this.transactionID = UUID.randomUUID().toString();//Generates a unique ID +} + +@Override +public double getAmount(){ + return amount; +} + +@Override +public Calendar getDate(){ + return date; +} +@Override +public String getTransactionID(){ + return transactionID; +} +@Override +public void printTransactionDetails(){ + System.out.println("Transaction ID: " + transactionID); + System.out.println("Amount: " + amount); + System.out.println("Date: " + date.getTime()); +} + +@Override +public void apply(BankAccount ba){ + System.out.println("Applying transaction to bank account..."); +} +} + +public class BankAccount{ + private double balance; + + public BankAccount(double initialBalance){ + this.balance = initialBalance; + } + public double getBalance(){ + return balance; + } + public void deposit(double amount){ + balance += amount; + } + public void withdraw(double amount){ + if(amount <= balance){ + balance -= amount; + }else{ + System.out.println("Insufficient funds!"); + } + } + @Override + public String toString(){ + return "BankAccount balance: " + balance; + } +} + +public class DepositTransaction extends BaseTransaction{ + public DepositTransaction(double amount, Calendar date){ + super(amount, date); + } + + @Override + public void apply(BankAccount ba){ + ba.deposit(getAmount()); + System.out.println("Deposit of" + getAmount() + "applied to bank account."); + } +} + +public class WithdrawalTransaction extends BaseTransaction{ + public WithdrawalTransaction(double amount, Calendar date){ + super(amount, date); + } + + @Override + public void apply(BankAccount ba){ + ba.withdraw(getAmount()); + System.out.println("Withdraw of " + getAmount() + "applied to bank account."); + } +} + +public class TransactionTest{ + + public static void main(String[]args){ + BankAccount account = new BankAccount(2000); + + Calendar depositDate = Calendar.getInstance(); + DepositTransaction deposit = new DepositTransaction(1000, depositDate); + + Calendar withdrawalDate = Calendar.getInstance(); + WithdrawalTransaction withdrawal = new WithdrawalTransaction(500, withdrawalDate); + + //Apply Transactions + System.out.println("Before transactions: " + account); + deposit.apply(account); + withdrawal.apply(account); + System.out.println("After transactions: " + account); + + //Print transaction details + deposit.printTransactionDetails(); + withdrawal.printTransactionDetails(); + } +} \ No newline at end of file diff --git a/Assignment_I_Advanced_Programming/Q1/DepositTransaction.java b/Assignment_I_Advanced_Programming/Q1/DepositTransaction.java new file mode 100644 index 0000000..ff98d51 --- /dev/null +++ b/Assignment_I_Advanced_Programming/Q1/DepositTransaction.java @@ -0,0 +1,30 @@ +package Lecture4_interfaces_abstract_classes; + +import org.jetbrains.annotations.NotNull; + +import java.util.Calendar; + +public class DepositTrasaction extends BaseTransaction { + public DepositTrasaction(double amount, Calendar date){ + super(amount, date); + } + private boolean checkDepositAmount(double amount){ + if (amt < 0){ + return false; + } + else{ + return true; + } + } + + // Method to print a transaction receipt or details + public void printTransactionDetails(){ + System.out.println("Deposit Transaction: "+this.toString()); + } + + public void apply(BankAccount ba){ + double curr_balance = ba.getBalance(); + double new_balance = curr_balance + getAmount(); + ba.setBalance(new_balance); + } +} \ No newline at end of file diff --git a/Assignment_I_Advanced_Programming/Q1/TransactionInterface.java b/Assignment_I_Advanced_Programming/Q1/TransactionInterface.java new file mode 100644 index 0000000..887e565 --- /dev/null +++ b/Assignment_I_Advanced_Programming/Q1/TransactionInterface.java @@ -0,0 +1,21 @@ +package Lecture4_interfaces_abstract_classes; +import java.util.Calendar; + +/** + * Interface for Transactions + * Any class that defines a transaction is expected to implement this Interface + */ +public interface TransactionInterface { + + // Method to get the transaction amount + double getAmount(); + + // Method to get the transaction date + Calendar getDate(); + + // Method to get a unique identifier for the transaction + String getTransactionID(); + + void printTransactionDetails(); + void apply(BankAccount ba); +} \ No newline at end of file From d691568ad3a3b9c89f00e1496c29ea65833fb0bb Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 01:10:08 +0300 Subject: [PATCH 16/22] Extending Interface in Concrete Class --- Assignment_I_Advanced_Programming/Q1/temp | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Assignment_I_Advanced_Programming/Q1/temp diff --git a/Assignment_I_Advanced_Programming/Q1/temp b/Assignment_I_Advanced_Programming/Q1/temp deleted file mode 100644 index 8b13789..0000000 --- a/Assignment_I_Advanced_Programming/Q1/temp +++ /dev/null @@ -1 +0,0 @@ - From a7879e0704fa9204034d0f3e6a4fe5408a851452 Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 01:19:53 +0300 Subject: [PATCH 17/22] Updated WithdrawalTransaction code From b12f4c9d0ff9ba79f8038304270f0ee6bda9e6b6 Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 01:21:33 +0300 Subject: [PATCH 18/22] Add files via upload --- .../Q1/WithdrawalTransaction.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Assignment_I_Advanced_Programming/Q1/WithdrawalTransaction.java diff --git a/Assignment_I_Advanced_Programming/Q1/WithdrawalTransaction.java b/Assignment_I_Advanced_Programming/Q1/WithdrawalTransaction.java new file mode 100644 index 0000000..49a31e9 --- /dev/null +++ b/Assignment_I_Advanced_Programming/Q1/WithdrawalTransaction.java @@ -0,0 +1,37 @@ +package Lecture4_interfaces_abstract_classes; + +import org.jetbrains.annotations.NotNull; + +import java.util.Calendar; + +public class WithdrawalTransaction extends BaseTransaction { + public WithdrawalTransaction(int amount, @NotNull Calendar date) { + super(amount, date); + } + + private boolean checkDepositAmount(int amt) { + if (amt < 0) { + return false; + } else { + return true; + } + } + + // Method to reverse the transaction + public boolean reverse() { + return true; + } // return true if reversal was successful + + // Method to print a transaction receipt or details + public void printTransactionDetails() { + System.out.println("Deposit Trasaction: " + this.toString()); + } + + public void apply(BankAccount ba) { + double curr_balance = ba.getBalance(); + if (curr_balance > getAmount()) { + double new_balance = curr_balance - getAmount(); + ba.setBalance(new_balance); + } + } +} From 3306453621353add075b0c036398fe37ff493cb1 Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 01:23:10 +0300 Subject: [PATCH 19/22] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 99b7168..6e5a95e 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # Advanced-Programming A Repository for Programming Exercises and Assignments in Advanced Programming + +##Assignment_1_Advanced_Programming is the assignment folder From b88e5c1eac5e340078a5d90d353c688cddc6e554 Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 01:23:30 +0300 Subject: [PATCH 20/22] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6e5a95e..daa727c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ # Advanced-Programming A Repository for Programming Exercises and Assignments in Advanced Programming -##Assignment_1_Advanced_Programming is the assignment folder +## Assignment_1_Advanced_Programming is the assignment folder From 052eabdabaf8636e3edabd36b4aadc9abde9c0e4 Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 01:24:23 +0300 Subject: [PATCH 21/22] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index daa727c..fc9c1e9 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,3 @@ # Advanced-Programming -A Repository for Programming Exercises and Assignments in Advanced Programming - ## Assignment_1_Advanced_Programming is the assignment folder +A Repository for Programming Exercises and Assignments in Advanced Programming From 0dad84bde09768486fb2b7956fa14504528ba2fd Mon Sep 17 00:00:00 2001 From: Thuita14 <165817506+Thuita14@users.noreply.github.com> Date: Thu, 12 Dec 2024 01:25:51 +0300 Subject: [PATCH 22/22] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index fc9c1e9..15342bd 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +# VICTOR KURIA THUITA +# SCT212-0708/2022 # Advanced-Programming ## Assignment_1_Advanced_Programming is the assignment folder A Repository for Programming Exercises and Assignments in Advanced Programming