adisonespinoza

ejercicio-bancoPoo,adison-espinoza

Oct 22nd, 2020
48
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. from abc import ABC, abstractmethod
  2. class Cliente(ABC):
  3.     def __init__(self,email,password,cuenta):
  4.            
  5.         self.email=email
  6.         self.password=password
  7.         self.cuenta=cuenta
  8.  
  9.     def get_email(self):
  10.         return self.email
  11.     def get_password(self):
  12.         return self.password
  13.     def get_cuenta(self):
  14.         return self.cuenta
  15.        
  16.     def set_email(self,email):
  17.             self.email=email
  18.     def set_password(self,password):
  19.             self.password=password
  20.     def set_cuenta(self,cuenta):
  21.         self.cuenta=cuenta
  22.  
  23. class Persona(Cliente):
  24.     def __init__(self,email,password,nombre,apellido,dni,cuenta):
  25.         Cliente.__init__(self,email,password,cuenta)
  26.         self.nombre=nombre
  27.         self.apellido=apellido
  28.         self.dni=dni
  29.        
  30.  
  31.     def get_nombre(self):
  32.         return self.nombre
  33.     def get_apellido(self):
  34.         return self.apellido
  35.     def get_dni(self):
  36.         return self.dni
  37.     def get_cuenta(self):
  38.         return self.cuenta
  39.  
  40.     def set_nombre(self,nombre):
  41.         self.nombre=nombre
  42.     def set_apellido(self,apellido):
  43.         self.apellido=apellido
  44.     def set_dni(self,dni):
  45.         self.dni=dni
  46.     def set_cuenta(self,cuenta):
  47.         self.cuenta=cuenta
  48.  
  49.     def cobrar_servicios(self):
  50.         if self.cuenta.get_nombre()=='Classic':  
  51.             resultado=self.cuenta.get_balance()-100
  52.             self.cuenta.set_balance(resultado)
  53.         elif self.cuenta.get_nombre()=='Gold':
  54.             resultado=len(self.get_apellido())*10
  55.             self.cuenta.set_balance(resultado)
  56.         elif self.cuenta.get_nombre()=='Platinium':
  57.             resultado=self.cuenta.get_balance()*0.10
  58.             self.cuenta.set_balance(resultado)
  59.         else:
  60.             resultado=self.cuenta.get_balance()-500-100*self.cuenta.get_fecha_ultimo_moviento().weekday()
  61.             self.cuenta.set_balance(resultado)
  62.  
  63. from abc import ABC, abstractmethod
  64. from datetime import datetime
  65.  
  66. class Cuenta(ABC):
  67.     def __init__(self,cbu):
  68.         self.cbu=cbu
  69.         self.balance=0
  70.         self.fecha_ult_movimiento=datetime.now()
  71.  
  72.     def get_cbu(self):
  73.         return self.cbu
  74.     def get_balance(self):
  75.         return self.balance
  76.     def get_fecha_ult_movimiento(self):
  77.         return self.fecha_ult_movimiento
  78.  
  79.     def set_cbu(self,cbu):
  80.         self.cbu=cbu
  81.     def set_balance(self,balance):
  82.         self.balance=balance
  83.     def set_fecha_ult_movimiento(self,fecha_ultimo_moviento):
  84.         self.fecha_ult_movimiento=fecha_ultimo_moviento  
  85.  
  86.     def acreditar(self,saldo):
  87.         self.balance+=saldo
  88.         self.fecha_ult_movimiento=datetime.now()
  89.    
  90.     def get_nombre(self):
  91.         return self.__class__.__name__
  92.     @abstractmethod
  93.     def debitar(self):
  94.         pass
  95.  
  96.  
  97. from cuenta import Cuenta
  98.  
  99. class Classic(Cuenta):
  100.     def __init__(self,cbu):  
  101.         Cuenta.__init__(self,cbu)
  102.         self.cbu=cbu
  103.  
  104.     def debitar(self,monto,lugar):
  105.         if lugar=='Banelco':
  106.             self.balance-=monto+(monto*0.05)
  107.         elif lugar=='Link':
  108.             self.balance-=monto+(monto*0.10)
  109.         else:
  110.             self.balance-=monto
  111.  
  112.     def acreditar(self,monto):
  113.         monto=monto-(monto*0.05)
  114.         super(Classic,self).acreditar(monto)
  115.     """def debitar(self):
  116.        pass"""
  117. cuenta1=Classic(2013302012320)
  118. print(cuenta1.get_fecha_ult_movimiento())
  119.  
  120. cuenta1.acreditar(5000)
  121.  
  122. print('Plata Acreditada')
  123. print(cuenta1.get_balance())
  124. cuenta1.debitar(300,'Link')
  125. print(cuenta1.get_balance())
  126.  
  127.  
  128. from cuenta import Cuenta
  129.  
  130. class Gold(Cuenta):
  131.     def __init__(self,cbu):  
  132.         Cuenta.__init__(self,cbu)
  133.         self.cbu=cbu
  134.  
  135.     def debitar(self,monto,lugar):
  136.         if lugar=='Link':
  137.             self.balance-=monto+(monto*0.05)
  138.      
  139.         else:
  140.             self.balance-=monto
  141.    
  142.     def acreditar(self,monto):
  143.         monto=monto-(monto*0.05)
  144.         super(Gold,self).acreditar(monto)
  145.        
  146.     """def debitar(self):
  147.        pass"""
  148. gold=Gold(2030405060607)
  149. print(gold.get_fecha_ult_movimiento())
  150. gold.acreditar(5000)
  151.  
  152. print('Plata Acreditada')
  153. print(gold.get_balance())
  154. gold.debitar(4000,'banelco')
  155. print(gold.get_balance())
  156. gold.acreditar(150000)
  157. print(gold.get_fecha_ult_movimiento())
  158. print(gold.get_balance())
  159. gold.debitar(10000,'link')
  160. print(gold.get_balance())        
  161.  
  162.  
  163. from cuenta import Cuenta
  164.  
  165. class Platiniun(Cuenta):
  166.     def __init__(self,cbu):  
  167.         Cuenta.__init__(self,cbu)
  168.         self.cbu=cbu
  169.  
  170.     def debitar(self,monto,lugar):
  171.         if self.balance<=5000:
  172.             self.balance-=monto+(monto*0.05)
  173.      
  174.         else:
  175.             self.balance-=monto
  176.        
  177.     """def debitar(self):
  178.        pass"""
  179. platiniu=Platiniun(1112000304050)
  180. print(platiniu.get_fecha_ult_movimiento())
  181. platiniu.acreditar(5000)
  182. print(platiniu.get_fecha_ult_movimiento())
  183. print(platiniu.get_balance())
  184. platiniu.debitar(2000,'Link')
  185.  
  186.  
  187. print(platiniu.get_balance())
  188.  
  189.  
  190.  
  191. from cuenta import Cuenta
  192.  
  193. class Black(Cuenta):
  194.     def __init__(self,cbu):  
  195.         Cuenta.__init__(self,cbu)
  196.         self.cbu=cbu
  197.  
  198.     def debitar(self,monto,lugar):
  199.         self.balance-=monto
  200.  
  201.     def acreditar(self,monto):
  202.         if monto<1000000:
  203.             super(Black,self).acreditar(monto)
  204.      
  205.         else:
  206.            monto=monto-(monto*0.04)
  207.            super(Black,self).acreditar(monto)
  208.        
  209.     """def debitar(self):
  210.        pass"""
  211. black=Black(201232012131203)
  212. print(black.get_fecha_ult_movimiento())
  213. black.acreditar(250000)
  214. print("Se acredito 25000$")
  215. print(black.get_balance())
  216.  
  217.  
  218. from cliente import Persona
  219. from classic import Classic
  220.  
  221.  
  222. cuenta=Classic(232323232323)
  223.  
  224.  
  225. persona1=Persona('adisonespinoza95@hotmail.com',232323,'adison','espinoza',96323232,cuenta)
  226. print(persona1.get_cuenta().get_cbu())
  227. persona1.get_cuenta().acreditar(4000)
  228. print(persona1.get_cuenta().get_balance())
  229. persona1.cobrar_servicios()
  230. print(persona1.get_cuenta().get_balance())
  231.  
  232.  
  233.  
  234.  
  235.  
RAW Paste Data