✍️ Get Writing Help
Uncategorized

CSIT121 Banking Application Assignment: OOP-Based Customer & Account Management System in Python

Assignment 1

Objectives

  • To apply Object Oriented Design (OOD).
  • To apply Object Oriented Programming (OOP) using Python.

Submission

  • Submit the python code in a txt file containing the code (with comments) and append the execution results in text form after the code as comments to UOW Moodle.
  • For full time student:
    • File name must be in the form of: TXXF_NAME_UOWID.txt where XX is your tutorial group, NAME is your full name and UOWID is your 7-digit UOW ID number. For example, T02F_JeffreyTan_8080426.txt
  • For part time student:
    • File name must be in the form of: TXXP_NAME_UOWID.txt where XX is your tutorial group, NAME is your full name and UOWID is your 7-digit UOW ID number. For example, T02P_JeffreyTan_8080426.txt
  • Note as there are many tutorial groups, failure to name your file name correctly in the above format might result in zero marks.
  • Late submission will be penalized 5% per day late. Please refer to UOW Moodle for the assignment due date (in Singapore time).

Tasks

Write the Python classes to implement the prototype of a Banking Application depicted in the following, draft class diagram.

CSIT121

Class: Customer

The Customer class represents a bank customer who can hold multiple bank accounts. It allows the customer to add, remove, deposit, withdraw, and calculate total balance across all accounts.

Attribute Description
customer_id A unique identifier for the customer.
name The full name of the customer
address The residential address of the customer.
email The email address of the customer.
accounts A list of BankAccount objects associated with the customer.

Method

__init__

The constructor to initialise the attributes and also create the the first account.

add_bank_account

This method creates a BankAccount object and adds it to __accounts list.

Parameters:

  • account_num : Unique number for the account.
  • account_type : Type of account (e.g., “Savings”, “Checking”).
  • balance : Initial balance in the account.
  • created_date (str): The date the account was created. Format : (YYYY-MM-DD)

To keep this assignment simple, we will use string for date.

It should check if the account_num already existed in the account list.

Write My Assignment
Hire a Professional Essay & Assignment Writer for completing your Academic Assessments

Native Singapore Writers Team

  • 100% Plagiarism-Free Essay
  • Highest Satisfaction Rate
  • Free Revision
  • On-Time Delivery

Returns:

  • True if the account is created successfully.
  • False if the account has not been created.

remove_bank_account

Removes a bank account from the customer.

Parameters:

  • account_num_to_remove: The account number to remove.

Returns:

  • True if the account was found and removed.
  • False if the account was not found.

deposit

Deposits money into a specific account.

Parameters:

  • account_num: The account number to deposit into.
  • amount: The amount to deposit.

Returns:

  • True if the deposit is successful.
  • False if the account is not found or deposit amount is invalid.

Page 3 of 4

withdraw

Withdraws money from a specific account.

Parameters:

  • account_num (int): The account number to withdraw from.
  • amount (float): The amount to withdraw.

Returns:

  • True if the withdrawal is successful.
  • False if the account is not found or has insufficient funds.

get_bank_account

Retrieves a BankAccount object by its account number.

Return None if the account number is not found.

get_total_balance

Calculates and returns the total balance across all accounts.

add_interest_to_accounts

Adds interest to all bank accounts belonging to the customer.

get_customer_info

Returns the customer’s basic details in a readable format.

Returns: A string containing:
ID: <customer_id>, Name: <name>, Address: <address>, Email: <email>

__str__

Returns a string representation of the customer.

A string displaying the customer’s ID and total balance:
Customer <customer_id>: Total Balance = <total_balance>

Class: BankAccount

The BankAccount class represents a bank account belonging to a customer. It includes functionality for deposits, withdrawals, interest calculation, and balance retrieval.

Attribute Description
interest_rate Class variable.
Shared by all instances of BankAccount.
Defines the interest rate (in percentage) applicable to all accounts.
This is set using the set_interest_rate() class method.
account_num Stores the unique account number for the bank account
account_type Defines the type of account (e.g., “Savings”, “Checking”).
customer_id Stores the customer ID to which this account belongs
balance Stores the current account balance.
Attribute Description
created_date Stores the date the account was created
String (YYYY-MM-DD format)
Buy Custom Answer of This Assessment & Raise Your Grades
Get A Free Quote

Method

__init__

The constructor to initialise the attributes.

deposit

Deposits a specified amount into the account.

Returns:

  • True if the deposit was successful.
  • False if the deposit amount is invalid (e.g., negative or zero).

withdraw

Withdraws a specified amount from the account if funds are sufficient.

Returns:

  • True if the withdrawal was successful.
  • False if the withdrawal amount is invalid (negative or zero) or if there are insufficient funds.

get_account_number

Retrieves the account number.

get_balance

Retrieves the current balance of the account.

add_interest

Applies the interest rate to the account balance.
current balance * (1+interest rate/100)

set_interest_rate

Class method
Sets the class variable interest rate for all bank accounts.

__str__

Returns a string representation of the account.
Account <account_num> (<account_type>): $<balance>, Created: <created_date>

You will carry out OOD and OOP as follow:

  • You must choose an appropriate data type (class) for each attribute.
  • You must define a main function which includes sufficient test cases to demonstrate the functionalities of the program. For instance, in the main function, you may
    • Create a Customer object with a BankAccount
    • Using the Customer object,
      • Create a few BankAccount for that customer.
      • Make a few deposits to a few different accounts.
      • Make a few withdrawals from a few different accounts.
    • Set the BankAccount interest rate.
    • Using the Customer object,
      • Add interests to all the account
      • Check if the balance in all the accounts is correct
    • Make necessary error checks (e.g. invalid bank account number)
Stuck with a lot of homework assignments and feeling stressed ?
Take professional academic assistance & Get 100% Plagiarism free papers
Get A Free Quote

The post CSIT121 Banking Application Assignment: OOP-Based Customer & Account Management System in Python appeared first on Singapore Assignment Help.

admin

Expert academic writer and education specialist helping students in the UK, USA, and Australia achieve their best results.

Need help with your own assignment?

Our expert writers can help you apply everything you've just read — to your actual assignment.

Get Expert Help Now →
WeCreativez WhatsApp Support
Our customer support team is here to answer your questions. Ask us anything!
👋 Hi, how can I help?