1
Actividad evaluativa eje 2
Fundación Universitaria del Área Andina
Modelos de programación I
Carlos Andrés Navarro Meza
David Santiago Vanegas León
06 de marzo 2023
Bogotá D.C.
2
Tabla de Contenidos
Objetivos ............................................................................................................................. 3
Ejercicio ............................................................................................................................. 4
Diagrama de clases ............................................................................................................. 9
Conclusiones ..................................................................................................................... 10
Bibliografia ....................................................................................................................... 11
3
Objetivos
Con esta actividad se busca entender la programación orientada a objetos, desarrollar
habilidades para interpretar una situación y en base a esta crear un diseño que permita
identificar y enfocar las características más importantes de los objetos que interactúan en el
mismo.
A su vez es importante comprender la estructura de los diagramas de clases con el fin de
observar de manera grafica la funcionalidad y relaciones que tienen los objetos
4
Programación orientada a objetos
Código fuente:
import random
class Usuario:
def __init__(self, nombre, identificacion):
[Link] = nombre
[Link] = identificacion
def crear_cuenta(self, tipo_cuenta):
if tipo_cuenta == "ahorro":
return CuentaAhorro([Link], [Link])
elif tipo_cuenta == "corriente":
return CuentaCorriente([Link], [Link])
elif tipo_cuenta == "cdt":
return CuentaCDT([Link], [Link])
else:
print("Tipo de cuenta no válido")
return None
class Cuenta:
5
def __init__(self, nombre, identificacion):
[Link] = nombre
[Link] = identificacion
self.numero_cuenta = self.generar_numero_cuenta()
def generar_numero_cuenta(self):
return [Link](100000, 999999)
def consignar(self, monto):
print("Se ha realizado una consignación de ${} en la cuenta {}".format(monto,
self.numero_cuenta))
class CuentaAhorro(Cuenta):
def __init__(self, nombre, identificacion):
super().__init__(nombre, identificacion)
print("Se ha creado una cuenta de ahorro con el número {}".format(self.numero_cuenta))
class CuentaCorriente(Cuenta):
def __init__(self, nombre, identificacion):
super().__init__(nombre, identificacion)
print("Se ha creado una cuenta corriente con el número {}".format(self.numero_cuenta))
class CuentaCDT(Cuenta):
6
def __init__(self, nombre, identificacion):
super().__init__(nombre, identificacion)
print("Se ha creado un CDT con el número {}".format(self.numero_cuenta))
nombre = input("Ingrese su nombre: ")
identificacion = input("Ingrese su identificación: ")
tipo_cuenta = input("¿Qué tipo de cuenta desea crear? (ahorro/corriente/cdt): ")
usuario = Usuario(nombre, identificacion)
cuenta = usuario.crear_cuenta(tipo_cuenta)
if cuenta:
monto = float(input(f"Ingrese la cantidad que va a consignar a su cuenta: "))
[Link](monto)
7
Explicación del código
Este código muestra un modelo simple de banco donde se pueden crear diferentes tipos de
cuentas (ahorro, corriente y CDT) y realizar una consignación en la cuenta recién creada.
Primero, se importa el módulo random para generar números aleatorios.
Luego, se define una clase Usuario que tiene un constructor que toma un nombre y una
identificación, y un método crear_cuenta que crea una cuenta del tipo especificado (ahorro,
corriente o CDT). Si el tipo de cuenta no es válido, se imprime un mensaje de error y se devuelve
como respuesta "Tipo de cuenta no válido". Se define una clase Cuenta que tiene un constructor
que toma un nombre y una identificación, y un método generar_numero_cuenta que genera un
número de cuenta aleatorio de 7 números. También tiene un método consignar que toma un
monto y muestra un mensaje que indica que se ha realizado una consignación en la cuenta.
Después, se definen tres subclases de Cuenta: CuentaAhorro, CuentaCorriente y CuentaCDT.
Cada una tiene un constructor que llama al constructor de la clase base usando super(), y muestra
un mensaje que indica que se ha creado una cuenta del tipo correspondiente.
Finalmente, el programa pide al usuario que ingrese su nombre, identificación y tipo de cuenta
que desea crear. Luego, crea una instancia de Usuario con el nombre y la identificación
ingresados, y llama al método crear_cuenta con el tipo de cuenta ingresado. Si se crea una cuenta
válida, se pide al usuario que ingrese el monto que desea consignar en la cuenta, y se llama al
método consignar de la cuenta recién creada con el monto ingresado.
8
Código ejecutado
9
Diagrama de clases
10
Conclusiones
Esta actividad busca desarrollar habilidades para comprender y diseñar programas utilizando el
paradigma de programación orientada a objetos con el lenguaje de python, el código presentado
muestra un ejemplo bastante simple de cómo se puede implementar un modelo de banco con
diferentes tipos de cuentas y consignaciones. Se utilizan clases para modelar los objetos que
interactúan en el programa, y se emplea la herencia para definir subclases que heredan
características de la clase base Cuenta.
11
Bibliografia
- [Link]
- Referente de pensamiento eje 2
- [Link]
- [Link]
Q&t=563s&ab_channel=LucidSoftwareEspa%C3%B1ol
- [Link]
python/#:~:text=orientada%20a%20objetos.-
,%C2%BFQu%C3%A9%20es%20la%20programaci%C3%B3n%20orientada%20a%20o
bjetos%20en%20Python%3F,la%20base%20para%20resolver%20problemas.
- [Link]