-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPersonas.py
177 lines (141 loc) · 4.61 KB
/
Personas.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
from Base import Base
from Libro import Libro
class Persona(Base):
def __init__(self,nombre = "", edad = 0):
self.__nombre = nombre
self.__edad = edad
@property
def nombre(self):
return self.__nombre
@property
def edad(self):
return self.__edad
@nombre.setter
def nombre(self, nuevo_nombre):
self.__nombre = nuevo_nombre
@edad.setter
def edad(self, nueva_edad):
self.__edad = nueva_edad
def __str__(self):
return "Persona: %s\nEdad: %i" % (self.nombre, self.edad)
def Captura(self):
self.nombre = input("Digite el nombre: ")
self.edad = int(input("Digite la edad: "))
# Invoco métodos por se lo atributos privados.
class Asistente(Persona):
def __init__(self, nombre = "", edad = 0, prom = 0, cur = "", hA = 0, carr = ""):
Persona.__init__(self, nombre, edad)
self.__promPonderado = prom
self.__curso = cur
self.__horasAs = hA
self.__carrera = carr
@property
def promPonderado(self):
return self.__promPonderado
@property
def curso(self):
return self.__curso
@property
def horasAs(self):
return self.__horasAs
@property
def carrera(self):
return self.__carrera
@promPonderado.setter
def promPonderado(self, nuevo_promPonderado):
self.__promPonderado = nuevo_promPonderado
@curso.setter
def curso(self, nuevo_curso):
self.__curso = nuevo_curso
@horasAs.setter
def horasAs(self, nueva_horasAs):
self.__horasAs = nueva_horasAs
@carrera.setter
def carrera(self, nueva_carrera):
self.__carrera = nueva_carrera
def __str__(self):
s = "Asistente: %s\nEdad: %i\nCarrera: %s\nHoras Asignadas: %i\nCurso: %s\nPromedio POnderado: %s"
return s % (self.nombre, self.edad, self.carrera, self.horasAs, self.curso, self.promPonderado)
def Captura(self):
Persona.Captura(self)
self.Carrera = input("Digite la carrera: ")
self.horasAs = int(input("Digite la hora Asistente: "))
self.curso = input("Digite el curso asignado: ")
self.promPonderado = int(input("Digite el promedio ponderado"))
# Programación incremental
class Estudiante(Persona):
def __init__(self, nombre: "", edad = 0, examen1 = 0, examen2 = 0):
Persona.__init__(self, nombre, edad)
self.__examen1 = examen1
self.__examen2 = examen2
self.__numeroLibros = 0
self.__libros = []
@property
def examen1(self):
return self.__examen1
@property
def examen2(self):
return self.__examen2
@property
def numeroLibros(self):
return self.__numeroLibros
@property
def libros(self):
return self.__libros
@examen1.setter
def examen1(self, nuevo_examen1):
self.__examen1 = nuevo_examen1
@examen2.setter
def examen2(self, nuevo_examne2):
self.__examen2 = nuevo_examne2
@numeroLibros.setter
def numeroLibros(self, nuevo_numeroLibros):
self.__numeroLibros = nuevo_numeroLibros
@libros.setter
def libros(self, nuevos_libros):
self.libros = nuevos_libros
def calculaPromedio(self):
return(self.examen1 + self.examen2) / 2
def __str__(self):
s = "Estudiante: %s\nPromedio: %i\n ================Libros=================="
for i in range(self.numeroLibros):
s = s +"\n" + str(self.libros[i])
s = s + "\n=================="
return s % (self.nombre, self.calculaPromedio())
def Captura(self):
Persona.Captura(self)
self.examen1 = int(input("Nota Examen 1: "))
self.examen2 = int(input("Nota Examen 2: "))
self.numeroLibros = int(input("Numero de libros del estudiante: "))
for i in range(self.numeroLibros):
lib = Libro(nombre="")
lib.Captura()
self.libros.append(lib)
class EstCompu(Estudiante):
def __init__(self, nombre="", edad = 0, examen1 = 0, examen2 = 0, examen3 = 0):
Estudiante.__init__(self, nombre, edad, examen1, examen2)
self.__examen3 = examen3
@property
def examen3(self):
return self.__examen3
@examen3.setter
def examen3(self, nuevo_examen3):
self.__examen3 = nuevo_examen3
def calculaPromedio(self):
return(self.examen1 + self.examen2 + self.examen3) / 3
def __str__(self):
s = "Estudiante Computación: %s\nPromedio: %i\n=============Libros==============="
for i in range(self.numeroLibros):
s = s + "\n" + str(self.libros[i])
s = s + "\n==============="
return s % (self.nombre, self.calculaPromedio())
def Captura(self):
Persona.Captura(self)
self.examen1 = int(input("Nota Examen 1: "))
self.examen2 = int(input("Nota Examen 2: "))
self.examen3 = int(input("Nota Examen 3: "))
self.numeroLibros = int(input("numero de libros del estudiante: "))
for i in range(self.numeroLibros):
lib = Libro(nombre= "")
lib.Captura()
self.libros.append(lib)