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 ("\n La 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