Christian Vasquez Semana6 ProavzII
August 31, 2022 | Author: Anonymous | Category: N/A
Short Description
Download Christian Vasquez Semana6 ProavzII...
Description
Programación orientada a objetos con Python. Parte II. Christian Alejandro Vásquez Lolli Programación Avanzada II Instituto IACC 03 de octubre de 2021
Desarrollo
1. Imagine que usted ha sido seleccionado para diseñar lógicamente (puede usar elementos gráficos como formas de Word, tipo un mapa conceptual) un sistema para el registro de estudiantes de colegios privados de la Región Reg ión Metropolitana de Santiago, este sistema debe manejar las personas dentro del proceso como son: estudiantes con todos sus atributos (nombre, apellido, rut, dirección) y apoderados también con sus atributos (nombre, apellido, Rut, dirección), que año y asignaturas cursan cada uno de los estudiantes, si realizan actividades extras, especificando cual actividad realizan. Ahora bien, basándose en esa situación ponga en práctica sus conocimientos adquiridos de Python y ejemplifique lo siguiente: 1. La abstracción de clases, Interfaz de objetos, clases anónimas y sobrecarga en la POO (3 puntos).
2. Explique la aplicación de iteración de objetos, métodos mágicos y clonación de objetos para casos casos presentados presentados (3 puntos). puntos).
3. Diseñe la abstracción de clases, sobrecarga y métodos mágicos en los casos dados (3 puntos).
Respuestas:
1.- Mediante un mapa conceptual: Definimos Class y sus atr atributo. ibuto. CLASS PERSONA NOMBRE APELLIDO RUT DIRECCION
CLASS ESTUDIANTE NOMBRE APELLIDO RUT DIRECCION
CLASS APODERADO NOMBRE APELLIDO RUT
CLASS ESTUDIO ASIGNATURA AÑO ESTUDIANTE APODERADO
CLASS EXTRAS ESTUDIANTE MUSICA CIENCIAS COCINA
DIRECCION
De acuerdo a lo requerido se diseña un sistema para el registro de estudiantes de colegios privados de la Región Metropolitana de Santiago, este sistema debe manejar las personas dentro del proceso como son: estudiantes con todos sus atributos (nombre, apellido, rut, dirección) y apoderados apoder ados también con sus atributo atributoss (nomb (nombre, re, apellido, Rut, dirección) dirección),, que año y asignaturas asignaturas cursan cada uno de los estudiantes, si realizan actividades extras, especificando cual actividad realizan.
El algoritmo aplicado es el siguiente:
class Persona Persona( (object object): ): class """Persona""" def def __init__ __init__( (self self, , nombre nombre, , apellido apellido, , rut rut, , direccion direccion): ): self self. .nombre nombre = nombre self self. .apellido apellido = apellido self self. .rut rut = rut self self. .direccion direccion = direccion class Estudiante class Estudiante( (Persona Persona): ): """estudiante""" def def __init__ __init__( (self self, , nombre nombre, , apellido apellido, , rut rut, , direccion direccion, , anno anno): ): Persona Persona. .__init__ __init__( (self self, , nombre nombre, , apellido apellido, , rut rut, , direccion direccion) ) self self. .anno anno = anno self self. .tareas tareas = ['taller' 'taller', ,'historia' 'historia', ,'Frances' 'Frances', ,'Teoria Musical'] Musical'] self self. .extras extras = ["Futbol" "Futbol", ,"Judo" "Judo"] ] def def __str__ __str__( (self self): ): return return "%s %s %s %s %s %s, , cursa: %s %s,y ,y sus asiganaturas son: %s %s,y ,y realiza actividades co mo:%s mo: %s" " % ( self self. .__doc__ __doc__[ [0:11 11], ], self self.nombre, .nombre, self self.apellido, .apellido, self self.anno, .anno, self self.consulta_tareas(), .consulta_tareas(),self self.consulta_extras()) .consulta_extras()) def def consulta_tareas consulta_tareas( (self self): ): return return ', '.join( .join(self self.tareas) .tareas) def def consulta_extras consulta_extras( (self self): ): return return "," ",".join( .join(self self.extras) .extras) class Apoderado class Apoderado (Estudiante Estudiante): ): """El apoderado""" def def __init__ __init__( (self self, ,nombre nombre, , apellido apellido, , rut rut, , direccion direccion ,anno anno ,padre padre): ): Estudiante.__init__ __init__( (self self, , nombre, apellido, rut, direccion, anno) self self.padre=padre .padre=padre self self.estudiante= .estudiante= str str(estudiante1) (estudiante1) def def __str__ __str__( (self self): ): return return "%s %s %s %s %s %s que vive en %s%s %s%s,es ,es apoderado del %s %s" " % ( self self. .__doc__ __doc__[ [0:12 12], ],self self.nombre, .nombre,self self.apellido, .apellido, self self.direccion, .direccion,self self.anno, .anno,self self.estudiante) .estudiante) def def consulta_padre consulta_padre( (self self): ):
return "," ",".join( .join(self self.padre) .padre) return nombre_completo = lambda lambda nombre nombre, ,apellido apellido: : "nombre completo: {self.nombre()} {self.apellido()}" estudiante1 = Estudiante ("Steffan" ("Steffan", , "Vasquez" "Vasquez", , "16.434.432-1" "16.434.432-1", , "Juan Cariman 18 00", 00" , "el quinto año") año") estudiante2 = Estudiante ("Christian" ("Christian", , "Vásquez" "Vásquez", , "19.153.454-4" "19.153.454-4", , "Juan Cariman 1800", 1800" , "el segundo año") año") Apoderado = Apoderado ("Pablo" ("Pablo", ,"Vasquez" "Vasquez", ,"8.231.543-2" "8.231.543-2", ,"Peñalolen" "Peñalolen", , estudiante1) nombre_completo=(apoderado.nombre,apoderado.apellido) print print ("\n \n" " + str str(apoderado) (apoderado) + "\n \n" ") print print ("\n \n" " + str str(estudiante2)+ (estudiante2)+" "\n \n" ") print print (estudiante2.rut) print print (apoderado) print print (nombre_completo)
De acuerdo al método de salida nos aparecería que el apoderado “PABLO VASQUEZ” que reside res ide en la com comuna una de PEÑ PEÑALO ALOLEN LEN,, SANT SANTIAG IAGO, O, es apoder apoderado ado dir direct ectoo del estudi estudiant antee “STE “STEFF FFAN AN VA VASQ SQUE UEZ” Z” qui quien en curs cursaa el “Q “QUI UINT NTO O AÑ AÑO” O”,, do dond ndee su suss as asig igna natu tura rass son: son: “TALLER”, HISTORIA, FRANCES, TEORIA MUSICAL además posee clases de FUTBOL y JUDO como actividades extras. De la misma forma, podemos apreciar un segundo estudiante llamado “CHRISTIAN VASQUEZ”, quien cursa el SEGUNDO AÑO escolar, presentando como estudios académicos TALLER, HISTORIA, FRANCES, TEORIA MUSICAL indicando además sus actividades extras siendo futbol y judo.
Bibliografía
Convan Conv anttec (S.f (S.f)). Func Funcio ione ness avan avanzzadas adas.. Re Recu cupe pera rado do de: de: https://entrenamiento pythonbasico.readthedocs.io/es/latest/leccion5/funciones_avanzadas.html . (S.f (S.f). ). Abst Abstra racc cció ión. n. Pr Progr ogram amaci ación ón Orie Orient ntada ada a Obje Objeto toss (P (POO OO). ). Re Recu cupe pera rado do de: https://styde.net/abstraccion-programacion-orientada-a-objetos/. Martin, A. (2007). Programador Certificado JAVA 2. Curso práctico. 2° Edición. España: Grupo Editorial RAMA. Recursos Python (S.f). Sobrecarga de funciones o desp despac acho ho múlt múltip iple le en Pyth Python on.. Recu Recupe pera rado do de de:: https://recursospython.com/guias-ymanuales IACC (2021) SEMANA 6 – PROGRAMACION AVANZADA II.-
View more...
Comments