Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.15 KB | None | 0 0
  1.  
  2. from datetime import datetime
  3.  
  4. todayDate = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
  5. #inlogTime = (datetime.now().strftime('%Y-%m-%d %H:%M:%S') - todayDate)
  6.  
  7. class accounts:
  8. def __init__(self, accountNumber, balance):
  9. self.accountNumber = accountNumber
  10. self.balance = balance
  11.  
  12.  
  13. class transactions:
  14. def __init__(self, account, date, transactionType, amount):
  15. self.account = account
  16. self.date = date
  17. self.transactionType = transactionType
  18. self.amount = amount
  19.  
  20. def CreateAccount(self):
  21. while True:
  22. accountNumber = CheckIfSumIsInt("Ange ditt nya kontonummer")
  23. print()
  24. if accountNumber in accountAndBalance:
  25. print("Kontot existerar redan.")
  26. print()
  27. break
  28. else:
  29. accountAndBalance[accountNumber] = 0
  30. print(f"Konto med kontonr: {accountNumber} är skapat!")
  31. newAccount = accounts(accountNumber, 0)
  32. return newAccount
  33.  
  34.  
  35. def GetIntValMeny(min,max):
  36. while True:
  37. try:
  38. menyVal = int(input("Ange ditt menyval: "))
  39. print()
  40. if menyVal >= min and menyVal <= max:
  41. return menyVal
  42. else:
  43. print(f"Du har angett ett felaktigt menyval. Var god ange ett val mellan {min} och {max}.")
  44.  
  45. except:
  46. print(f"Du behöver ange ett val mellan {min} och {max}.")
  47.  
  48. def ShowMainMenu():
  49. while True:
  50. print("* * * Huvudmeny * * *")
  51. print("1. Skapa ett nytt konto")
  52. print("2. Administrera ett konto")
  53. print("3. Avsluta")
  54. print()
  55. valInMain = GetIntValMeny(1,3)
  56. return valInMain
  57.  
  58. def CheckIfSumIsInt(message):
  59. while True:
  60. try:
  61. summa = int(input(f"{message}:"))
  62. print()
  63. return summa
  64. except:
  65. print("Du måste ange ett nummer.")
  66.  
  67.  
  68. accountAndBalance = {}
  69.  
  70. def CreateAccount():
  71. GetExistingAccounts()
  72. while True:
  73. accountNumber = CheckIfSumIsInt("Ange ditt nya kontonummer")
  74. print()
  75. if accountNumber in accountAndBalance:
  76. print("Kontot existerar redan.")
  77. print()
  78. break
  79. else:
  80. accountAndBalance[accountNumber] = 0
  81. print(f"Konto med kontonr: {accountNumber} är skapat!")
  82. newAccount = accounts(accountNumber, 0)
  83. return newAccount
  84.  
  85.  
  86. def CheckExistingAcc ():
  87. while True:
  88. accountNumber = CheckIfSumIsInt("Ange ditt kontonummer")
  89. print()
  90. if accountNumber in accountAndBalance:
  91. return accountNumber
  92. else:
  93. print("Ett konto med detta kontonummer finns ej.")
  94. print()
  95.  
  96.  
  97. def ShowAccountMenu():
  98. account = CheckExistingAcc()
  99. while True:
  100. if account == None:
  101. break
  102. else:
  103. print(f"* * * Kontomeny för konto: {account} * * *")
  104. print("1. Ta ut pengar")
  105. print("2. Sätt in pengar")
  106. print("3. Kolla saldo")
  107. print("4. Visa transaktionshistorik")
  108. print("5. Avsluta")
  109. print()
  110. valInAcc = GetIntValMeny(1,5)
  111.  
  112. if valInAcc == 1:
  113. WithdrawMoney(account)
  114. elif valInAcc == 2:
  115. DepositMoney(account)
  116. elif valInAcc == 3:
  117. CheckBalance(account)
  118. elif valInAcc == 4:
  119. PrintTransactionsHistory(account)
  120. elif valInAcc == 5:
  121. break
  122.  
  123.  
  124.  
  125.  
  126. def WithdrawMoney (account):
  127. withSum = CheckIfSumIsInt("Ange hur mycket du vill ta ut")
  128. if withSum < accountAndBalance[account]:
  129. accountAndBalance[account] -= withSum
  130. with open (f"{account}.txt", "a") as appendFile:
  131. appendFile.write(f"kontonr:{account}, datum:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}, typ:withdraw, summa:{withSum}\n")
  132. else:
  133. print("Du har inte tillräckligt med pengar på kontot.")
  134. print()
  135.  
  136. def DepositMoney (account):
  137.  
  138. depSum = CheckIfSumIsInt("Ange hur mycket du vill sätta in")
  139. if depSum > 0:
  140. accountAndBalance[account] += depSum
  141. with open (f"{account}.txt", "a") as appendFile:
  142. appendFile.write(f"kontonr:{account}, datum:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}, typ:deposit, summa:{depSum}\n")
  143.  
  144. else:
  145. print("Du kan inte sätta in 0kr.")
  146. print()
  147.  
  148.  
  149. def CheckBalance (account):
  150.  
  151. saldo = accountAndBalance.get(account)
  152. print(f"Saldo för ditt konto är: {saldo}kr.")
  153. print()
  154.  
  155.  
  156. def PrintTransactionsHistory(account):
  157. saldo = accountAndBalance.get(account)
  158. print(f"Nuvarande saldo: {saldo}kr.")
  159. print()
  160. with open (f"{account}.txt", "r") as readFile:
  161. transactionHistory = readFile.readlines()
  162. for transaction in transactionHistory:
  163. print(transaction)
  164.  
  165.  
  166. def GetExistingAccounts():
  167. with open("ExistingAccounts.txt", "r") as readFile:
  168. for line in readFile:
  169. (key, value) = line.split()
  170. accountAndBalance[int(key)] = int(value)
  171.  
  172. def UpdateExistingAccounts():
  173. with open ("ExistingAccounts.txt", "w") as writeFile:
  174.  
  175. updatestring = ""
  176. for key in accountAndBalance:
  177. updatestring = updatestring + str(key)
  178. updatestring = updatestring + " "
  179. updatestring = updatestring + str(accountAndBalance[key])
  180. updatestring = updatestring + "\n"
  181. writeFile.write(updatestring)
  182.  
  183.  
  184.  
  185. def Main():
  186. print("Hej och välkommen till Carls bankomat")
  187. print(f"Inloggad klockan: {todayDate}")
  188. print()
  189.  
  190.  
  191. while True:
  192. valMainMenu = ShowMainMenu()
  193. if valMainMenu == 1:
  194. CreateAccount()
  195. elif valMainMenu == 2:
  196. ShowAccountMenu()
  197. elif valMainMenu == 3:
  198. print("Programmet avslutas.")
  199. UpdateExistingAccounts()
  200. break
  201.  
  202. # *** SJÄLVA PROGRAMMET ***
  203.  
  204. Main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement