Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from datetime import datetime
- todayDate = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
- #inlogTime = (datetime.now().strftime('%Y-%m-%d %H:%M:%S') - todayDate)
- class accounts:
- def __init__(self, accountNumber, balance):
- self.accountNumber = accountNumber
- self.balance = balance
- class transactions:
- def __init__(self, account, date, transactionType, amount):
- self.account = account
- self.date = date
- self.transactionType = transactionType
- self.amount = amount
- def CreateAccount(self):
- while True:
- accountNumber = CheckIfSumIsInt("Ange ditt nya kontonummer")
- print()
- if accountNumber in accountAndBalance:
- print("Kontot existerar redan.")
- print()
- break
- else:
- accountAndBalance[accountNumber] = 0
- print(f"Konto med kontonr: {accountNumber} är skapat!")
- newAccount = accounts(accountNumber, 0)
- return newAccount
- def GetIntValMeny(min,max):
- while True:
- try:
- menyVal = int(input("Ange ditt menyval: "))
- print()
- if menyVal >= min and menyVal <= max:
- return menyVal
- else:
- print(f"Du har angett ett felaktigt menyval. Var god ange ett val mellan {min} och {max}.")
- except:
- print(f"Du behöver ange ett val mellan {min} och {max}.")
- def ShowMainMenu():
- while True:
- print("* * * Huvudmeny * * *")
- print("1. Skapa ett nytt konto")
- print("2. Administrera ett konto")
- print("3. Avsluta")
- print()
- valInMain = GetIntValMeny(1,3)
- return valInMain
- def CheckIfSumIsInt(message):
- while True:
- try:
- summa = int(input(f"{message}:"))
- print()
- return summa
- except:
- print("Du måste ange ett nummer.")
- accountAndBalance = {}
- def CreateAccount():
- GetExistingAccounts()
- while True:
- accountNumber = CheckIfSumIsInt("Ange ditt nya kontonummer")
- print()
- if accountNumber in accountAndBalance:
- print("Kontot existerar redan.")
- print()
- break
- else:
- accountAndBalance[accountNumber] = 0
- print(f"Konto med kontonr: {accountNumber} är skapat!")
- newAccount = accounts(accountNumber, 0)
- return newAccount
- def CheckExistingAcc ():
- while True:
- accountNumber = CheckIfSumIsInt("Ange ditt kontonummer")
- print()
- if accountNumber in accountAndBalance:
- return accountNumber
- else:
- print("Ett konto med detta kontonummer finns ej.")
- print()
- def ShowAccountMenu():
- account = CheckExistingAcc()
- while True:
- if account == None:
- break
- else:
- print(f"* * * Kontomeny för konto: {account} * * *")
- print("1. Ta ut pengar")
- print("2. Sätt in pengar")
- print("3. Kolla saldo")
- print("4. Visa transaktionshistorik")
- print("5. Avsluta")
- print()
- valInAcc = GetIntValMeny(1,5)
- if valInAcc == 1:
- WithdrawMoney(account)
- elif valInAcc == 2:
- DepositMoney(account)
- elif valInAcc == 3:
- CheckBalance(account)
- elif valInAcc == 4:
- PrintTransactionsHistory(account)
- elif valInAcc == 5:
- break
- def WithdrawMoney (account):
- withSum = CheckIfSumIsInt("Ange hur mycket du vill ta ut")
- if withSum < accountAndBalance[account]:
- accountAndBalance[account] -= withSum
- with open (f"{account}.txt", "a") as appendFile:
- appendFile.write(f"kontonr:{account}, datum:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}, typ:withdraw, summa:{withSum}\n")
- else:
- print("Du har inte tillräckligt med pengar på kontot.")
- print()
- def DepositMoney (account):
- depSum = CheckIfSumIsInt("Ange hur mycket du vill sätta in")
- if depSum > 0:
- accountAndBalance[account] += depSum
- with open (f"{account}.txt", "a") as appendFile:
- appendFile.write(f"kontonr:{account}, datum:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}, typ:deposit, summa:{depSum}\n")
- else:
- print("Du kan inte sätta in 0kr.")
- print()
- def CheckBalance (account):
- saldo = accountAndBalance.get(account)
- print(f"Saldo för ditt konto är: {saldo}kr.")
- print()
- def PrintTransactionsHistory(account):
- saldo = accountAndBalance.get(account)
- print(f"Nuvarande saldo: {saldo}kr.")
- print()
- with open (f"{account}.txt", "r") as readFile:
- transactionHistory = readFile.readlines()
- for transaction in transactionHistory:
- print(transaction)
- def GetExistingAccounts():
- with open("ExistingAccounts.txt", "r") as readFile:
- for line in readFile:
- (key, value) = line.split()
- accountAndBalance[int(key)] = int(value)
- def UpdateExistingAccounts():
- with open ("ExistingAccounts.txt", "w") as writeFile:
- updatestring = ""
- for key in accountAndBalance:
- updatestring = updatestring + str(key)
- updatestring = updatestring + " "
- updatestring = updatestring + str(accountAndBalance[key])
- updatestring = updatestring + "\n"
- writeFile.write(updatestring)
- def Main():
- print("Hej och välkommen till Carls bankomat")
- print(f"Inloggad klockan: {todayDate}")
- print()
- while True:
- valMainMenu = ShowMainMenu()
- if valMainMenu == 1:
- CreateAccount()
- elif valMainMenu == 2:
- ShowAccountMenu()
- elif valMainMenu == 3:
- print("Programmet avslutas.")
- UpdateExistingAccounts()
- break
- # *** SJÄLVA PROGRAMMET ***
- Main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement