Created
October 1, 2019 23:00
-
-
Save AgustinParmisano/33bf606e2754b5079a85f38ea19fb881 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Alumno: | |
def __init__(self, nombre, apellido, dni, materias, becado = False): | |
self.nombre = nombre | |
self.apellido = apellido | |
self.dni = dni | |
self.materias = materias | |
self.becado = becado | |
def mejorCursada(self): | |
#mejorCursada: Retorna el nombre de la materia cuya cursada haya tenido la mejor nota. | |
max = -1 | |
nm = "" | |
for m in self.materias: | |
#print(type(m)) | |
#print(m.nombre) | |
#print(m.anio) | |
#print(m.nota) | |
#print(m) | |
if m.nota > max: | |
max = m.nota | |
nm = m.nombre | |
print("La mejor cursada fue {} con nota {}".format(nm,max)) | |
return nm | |
def promedio(self): | |
tot = 0 | |
tot_mat = len(self.materias) | |
for m in self.materias: | |
tot = tot + m.nota | |
res = tot / tot_mat | |
return res | |
class Materia: | |
def __init__(self, nombre, anio, nota): | |
self.nombre = nombre | |
self.anio = anio | |
self.nota = nota | |
def __str__(self): | |
return("Materia: {} Anio: {} Nota: {}".format(self.nombre,self.anio,self.nota)) | |
class Tutor: | |
def __init__(self, nombre, apellido, dni, numero, alumnos_acargo, alumnos_revi): | |
self.nombre = nombre | |
self.apellido = apellido | |
self.dni = dni | |
self.numero = numero | |
self.alumnos_acargo = [] | |
self.alumnos_revi = [] | |
self.puntaje = 0 | |
def becar(self): | |
for a in self.alumnos_acargo: | |
print("Analizando Alumne: {}".format(a.nombre)) | |
if (not a in self.alumnos_revi): | |
print("Alumne: {} no está revisado".format(a.nombre)) | |
anio1 = 0 | |
anio2 = 0 | |
anio3 = 0 | |
for m in a.materias: | |
if(m.anio == 1) and (m.nota >= 9): | |
anio1 = anio1 + 1 | |
if(m.anio == 2) and (m.nota >= 8): | |
anio2 = anio2 + 1 | |
if(m.anio == 3) and (m.nota >= 7): | |
anio3 = anio3 + 1 | |
if (anio1 >= 3) and (anio2 >= 2) and (anio3 >= 1): | |
#print("Alumne: {} puede ser becade".format(a.nombre)) | |
a.becado = True | |
puntos = a.promedio() * 2 | |
self.puntaje = self.puntaje + puntos | |
print("El tutor {} sumara {} puntaje".format(self.nombre, puntos)) | |
else: | |
#print("Alumne: {} NOOOO puede ser becade".format(a.nombre)) | |
puntos = a.promedio() | |
self.puntaje = self.puntaje + puntos | |
print("El tutor {} sumara {} puntaje".format(self.nombre, puntos)) | |
#print("Alumne: {} tiene {} materias de primer anio con nota mas de 9. {} materias de segundo anio con nota mas de 8. {} materias de tercer anio con nota mas de 7".format(a.nombre, anio1, anio2, anio3)) | |
self.alumnos_revi.append(a) | |
return self.puntaje | |
m1 = Materia("Arquitectura",1,7) | |
m2 = Materia("Matematica 2",2,8) | |
m3 = Materia("Programacion 2",2,9) | |
m4 = Materia("Sistemas Operativos",2,6) | |
m5 = Materia("Matematica 1",1,10) | |
m6 = Materia("Programacion 1",1,5) | |
m7 = Materia("Redes",3,8) | |
m8 = Materia("Matematica 3",3,4) | |
m9 = Materia("Peoyecto de Software",3,6) | |
m11 = Materia("Arquitectura",1,10) | |
m22 = Materia("Matematica 2",2,9) | |
m33 = Materia("Programacion 2",2,9) | |
m44 = Materia("Sistemas Operativos",2,10) | |
m55 = Materia("Matematica 1",1,10) | |
m66 = Materia("Programacion 1",1,9) | |
m77 = Materia("Redes",3,8) | |
m88 = Materia("Matematica 3",3,10) | |
m99 = Materia("Peoyecto de Software",3,9) | |
m111 = Materia("Arquitectura",1,4) | |
m222 = Materia("Matematica 2",2,2) | |
m333 = Materia("Programacion 2",2,4) | |
m444 = Materia("Sistemas Operativos",2,4) | |
m555 = Materia("Matematica 1",1,5) | |
m666 = Materia("Programacion 1",1,5) | |
m777 = Materia("Redes",3,5) | |
m888 = Materia("Matematica 3",3,4) | |
m999 = Materia("Peoyecto de Software",3,4) | |
m1111 = Materia("Arquitectura",1,8) | |
m2222 = Materia("Matematica 2",2,8) | |
m3333 = Materia("Programacion 2",2,8) | |
m4444 = Materia("Sistemas Operativos",2,8) | |
m5555 = Materia("Matematica 1",1,8) | |
m6666 = Materia("Programacion 1",1,8) | |
m7777 = Materia("Redes",3,8) | |
m8888 = Materia("Matematica 3",3,8) | |
m9999 = Materia("Peoyecto de Software",3,8) | |
a1 = Alumno("Juan","Perez",3412124,[]) | |
a2 = Alumno("Juan1","Perez1",412124,[]) | |
a3 = Alumno("Juan2","Perez2",12124,[]) | |
a4 = Alumno("Juan3","Perez3",2124,[]) | |
materias = [m1,m2,m3,m4,m5,m6,m7,m8,m9] | |
materias1 = [m11,m22,m33,m44,m55,m66,m77,m88,m99] | |
materias2 = [m111,m222,m333,m444,m555,m666,m777,m888,m999] | |
materias3 = [m1111,m2222,m3333,m4444,m5555,m6666,m7777,m8888,m9999] | |
a1.materias = materias | |
a2.materias = materias1 | |
a3.materias = materias2 | |
a4.materias = materias3 | |
t1 = Tutor("Maria","Perez",1235215,1234,[],[]) | |
t2 = Tutor("Maria2","Perez2",1235215,1234,[],[]) | |
alumnes = [a1,a2,a3,a4] | |
alumnes2 = [a3,a4] | |
print(a1.mejorCursada()) | |
print(a1.promedio()) | |
t1.alumnos_acargo = alumnes | |
t2.alumnos_acargo = alumnes2 | |
print("El puntaje del tutor {} es {}".format(t1.nombre,t1.puntaje)) | |
print("BENCANDO") | |
print(t1.becar()) | |
print("El puntaje del tutor {} es {}".format(t1.nombre,t1.puntaje)) | |
print("El puntaje del tutor {} es {}".format(t2.nombre,t2.puntaje)) | |
print("BENCANDO") | |
print(t2.becar()) | |
print("El puntaje del tutor {} es {}".format(t2.nombre,t2.puntaje)) | |
tutores = [t1, t2] | |
for t in tutores: | |
if t.puntaje > 15: | |
print("El tutor con puntaje mayor a 15 es {}".format(t.numero)) | |
for t in tutores: | |
if t.puntaje > 10: | |
for a in t.alumnos_revi: | |
print("El alumne {} tiene dni {} y esta a cargo del tutor {}".format(a.nombre, a.dni, t.nombre)) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment