Skip to content

Commit 914647f

Browse files
authored
Merge pull request mouredev#2474 from evilpotato04/main
#9 - Python
2 parents 3e8aace + 8c0df72 commit 914647f

File tree

1 file changed

+125
-0
lines changed

1 file changed

+125
-0
lines changed
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
#/*
2+
# * EJERCICIO:
3+
# * Explora el concepto de herencia según tu lenguaje. Crea un ejemplo que
4+
# * implemente una superclase Animal y un par de subclases Perro y Gato,
5+
# * junto con una función que sirva para imprimir el sonido que emite cada Animal.
6+
7+
class animal:
8+
nombre = ""
9+
especies = ""
10+
11+
def add_nombre(self, nombre: str):
12+
self.nombre = nombre
13+
14+
def sonido(self):
15+
pass
16+
17+
def mensaje(self):
18+
print(f"El {self.especies} se llama {self.nombre}")
19+
print("Tu sonido es:")
20+
self.sonido()
21+
22+
class perro(animal):
23+
def __init__(self, especies = "perro"):
24+
self.especies = especies
25+
26+
def sonido(self):
27+
print("woof woof")
28+
29+
class gato(animal):
30+
def __init__(self, especies = "gato"):
31+
self.especies = especies
32+
33+
def sonido(self):
34+
print("meow meow")
35+
36+
perro = perro()
37+
gato = gato()
38+
39+
perro.add_nombre("Aang")
40+
gato.add_nombre("Katara")
41+
42+
perro.mensaje()
43+
gato.mensaje()
44+
45+
# *
46+
# * DIFICULTAD EXTRA (opcional):
47+
# * Implementa la jerarquía de una empresa de desarrollo formada por Empleados que
48+
# * pueden ser Gerentes, Gerentes de Proyectos o Programadores.
49+
# * Cada empleado tiene un identificador y un nombre.
50+
# * Dependiendo de su labor, tienen propiedades y funciones exclusivas de su
51+
# * actividad, y almacenan los empleados a su cargo.
52+
# */
53+
54+
class empleado:
55+
def __init__(self, identificador: str, nombre: str):
56+
self.identificador = identificador
57+
self.nombre = nombre
58+
59+
class gerente(empleado):
60+
def oprimir_empleado(self, nombre_empleado):
61+
print(f"El {self.cargo} {self.nombre} oprimió al empleado {nombre_empleado}.")
62+
63+
def declararse_en_quiebra(self):
64+
print(f"El {self.cargo} {self.nombre} se declaró en quiebra")
65+
66+
class gerente_de_proyecto(gerente):
67+
cargo = "Gerente de Proyecto"
68+
69+
def ordenar_desarrollo(self):
70+
print(f"El {self.cargo} {self.nombre} ordenó el desarrollo de una nueva feature")
71+
72+
def quejarse_del_proyecto(self, nombre_proyecto):
73+
print(f"El {self.cargo} {self.nombre} se quejó del proyecto {nombre_proyecto}.")
74+
75+
class programador(empleado):
76+
cargo = "Programador"
77+
features_desarrolladas = 0
78+
79+
def desarrollar_feature(self, nombre_feature):
80+
print(f"El {self.cargo} {self.nombre} desarrolló el feature {nombre_feature}.")
81+
self.features_desarrolladas += 1
82+
83+
def dia_de_trabajo():
84+
gerente = gerente_de_proyecto(1, "Tom Nook")
85+
prog_1 = programador(2, "Timmy")
86+
prog_2 = programador(3, "Tommy")
87+
features = 0
88+
89+
print("\n===== ANIMAL COSSING ENTERPRISE =====\n")
90+
print("Departamento de TI:")
91+
print(f" -> {gerente.cargo}: {gerente.nombre}")
92+
print(f" -> {prog_1.cargo}: {prog_1.nombre}")
93+
print(f" -> {prog_2.cargo}: {prog_2.nombre}")
94+
95+
print("\n** Comenzó la jornada laboral **\n")
96+
97+
try:
98+
features = int(input("¿Cuántos proyectos deberían realizarse hoy? "))
99+
except:
100+
print("\nLa cantidad de features no tiene sentido... :(")
101+
gerente.oprimir_empleado(prog_1.nombre)
102+
gerente.oprimir_empleado(prog_2.nombre)
103+
gerente.declararse_en_quiebra()
104+
return
105+
106+
while features > 0:
107+
print("")
108+
gerente.ordenar_desarrollo()
109+
prog_1.desarrollar_feature("numero " + str(features+0.1))
110+
gerente.oprimir_empleado(prog_1.nombre)
111+
print("")
112+
113+
gerente.ordenar_desarrollo()
114+
prog_2.desarrollar_feature("numero " + str(features+0.2))
115+
gerente.oprimir_empleado(prog_2.nombre)
116+
print("")
117+
118+
gerente.quejarse_del_proyecto("numero " + str(features))
119+
features -= 1
120+
121+
print("** La jornada laboral ha terminado **\n")
122+
gerente.declararse_en_quiebra()
123+
print("\n\n")
124+
125+
dia_de_trabajo()

0 commit comments

Comments
 (0)