Updated
unknown
python
2 years ago
3.6 kB
11
Indexable
accounts = ["account1", "account2", "account3"]
account_balances = {}
account_transactions = {}
def load_accounts():
for account in accounts:
try:
with open(f"{account}_balance.txt", 'r') as file:
balance = int(file.read())
account_balances[account] = balance
except FileNotFoundError:
account_balances[account] = 0
except ValueError:
account_balances[account] = 0
# Load transactions
try:
with open(f"{account}_transactions.txt", 'r') as file:
transactions = file.readlines()
account_transactions[account] = [transaction.strip() for transaction in transactions]
except FileNotFoundError:
account_transactions[account] = []
def update_balance_file(account):
with open(f"{account}_balance.txt", 'w') as file:
file.write(str(account_balances[account]))
def save_transaction(account, transaction):
with open(f"{account}_transactions.txt", 'a') as file:
file.write(transaction + "\n")
account_transactions[account].append(transaction)
def view_transactions(account):
if account_transactions[account]:
print(f"\nTransaction History for {account}:")
for transaction in account_transactions[account]:
print(transaction)
else:
print(f"No transactions found for {account}.")
def atm_menu():
print("\nATM Machine")
print("1: Check Balance")
print("2: Deposit Money")
print("3: Withdraw Money")
print("4: View Transaction History")
print("0: Exit")
choice = int(input("Choose an option: "))
return choice
def account_menu():
print("\nSelect an Account:")
for i, account in enumerate(accounts, start=1):
print(f"{i}: {account}")
choice = int(input("Choose an account: "))
if 1 <= choice <= len(accounts):
return accounts[choice - 1]
return None
def main():
load_accounts()
while 1:
account = account_menu()
if account is None:
print("Invalid option. Please choose a valid account.")
continue
while 1:
choice = atm_menu()
if choice == 0:
print("Returning to account selection...")
break
elif choice == 1:
print("Your current balance is:", account_balances[account])
elif choice == 2:
amount = int(input("Enter amount to deposit: "))
if amount > 0:
account_balances[account] += amount
update_balance_file(account)
save_transaction(account, f"Deposit: {amount}")
print("Deposit successful!")
else:
print("Invalid amount.")
elif choice == 3:
amount = int(input("Enter amount to withdraw: "))
if 0 < amount <= account_balances[account]:
account_balances[account] -= amount
update_balance_file(account)
save_transaction(account, f"Withdrawal: {amount}")
print("Withdrawal successful!")
else:
print("Invalid amount or insufficient balance.")
elif choice == 4:
view_transactions(account)
else:
print("Invalid option. Please choose a number between 0 and 4.")
main()
Editor is loading...