Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AgustinParmisano/33bf606e2754b5079a85f38ea19fb881 to your computer and use it in GitHub Desktop.
Save AgustinParmisano/33bf606e2754b5079a85f38ea19fb881 to your computer and use it in GitHub Desktop.
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