Question

Banking Account Hey guys , using python Create a class called Account which will be an...

Banking Account

Hey guys , using python

Create a class called Account which will be an abstract class for three other classes called CheckingAccount, SavingsAccount and BusinessAccount. Then you should manage credits and debits from these accounts through an ATM style program.(created using wxpython)

To tackle this project, first consider what has to happen.

  1. There will be three different types of bank account (Checking, Savings, Business)
  2. Each account will accept deposits and withdrawals, and will need to report balances
  3. Create a GUI for the program using wxPython.
  4. added sound or voice interaction to the code

example:

Welcome to 24-hour ATM service.
Insert your card.
Enter your customer id number: 
0 0
Add a comment Improve this question Transcribed image text
Answer #1

#!/usr/bin/python
"""Types of bank accounts"""

# Assignment:
# Bank Account Manager - Create a class called Account which will be an abstract
# class for three other classes called CheckingAccount, SavingsAccount and
# BusinessAccount. Manage credits and debits from these accounts through an ATM
# style program.

from __future__ import print_function


def pct_to_dec(num):
"""Returns decimal version of percent"""
dec = float(num) / 100
return dec


class Account(object):
"""Creates an Account"""
def __init__(self, balance, int_rate, act_type, min_balance, **kwargs):
self.balance = balance
self.int_rate = int_rate
self.act_type = act_type
self.min_balance = min_balance
super(Account, self).__init__(**kwargs)

def __str__(self):
"""Returns formatted account type and balance"""
# Charge $25 fee if balance drops below minimum
if self.balance < self.min_balance:
self.balance -= 25
# Add interest
self.balance += round(self.balance * pct_to_dec(self.int_rate), 2)
return '{0}: ${1}'.format(self.act_type, self.balance)


class CheckingAccount(Account):
"""Creates a CheckingAccount Account"""
def __init__(self, **kwargs):
super(CheckingAccount, self).__init__(**kwargs)


class SavingsAccount(Account):
"""Creates a SavingsAccount Account"""
def __init__(self, **kwargs):
super(SavingsAccount, self).__init__(**kwargs)


class BusinessAccount(Account):
"""Creates a BusinessAccount Account"""
def __init__(self, **kwargs):
super(BusinessAccount, self).__init__(**kwargs)


# pylint: disable=C0103
ca1 = CheckingAccount(balance=500, int_rate=0.25, act_type='Checking Account',
min_balance=0)
sa1 = SavingsAccount(balance=50, int_rate=0.50, act_type='Savings Account',
min_balance=0)
ba1 = BusinessAccount(balance=4000, int_rate=0.75, act_type='Business Account',
min_balance=5000)

# Month #1 statement, initial deposits plus interest
print(ca1)
print(sa1)
print(ba1)

print('-------------')

# Month #2 statement plus interest

# Make deposit into checking
setattr(ca1, 'balance', (ca1.balance + 1000))
# Withdraw from checking
setattr(ca1, 'balance', (ca1.balance - 500))

# Make a deposit into savings
setattr(sa1, 'balance', (sa1.balance + 100))

print(ca1)
print(sa1)
print(ba1)

print('-------------')

# Month #3 statement plus interest

# Make deposit into checking
setattr(ca1, 'balance', (ca1.balance + 2500))
# Withdraw from checking
setattr(ca1, 'balance', (ca1.balance - 700))

# Make a deposit into savings
setattr(sa1, 'balance', (sa1.balance + 100))

# Make a deposit into business
setattr(ba1, 'balance', (ba1.balance + 1000))

print(ca1)
print(sa1)
print(ba1)

Add a comment
Know the answer?
Add Answer to:
Banking Account Hey guys , using python Create a class called Account which will be an...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT