Está en la página 1de 26

UNIVERSIDAD AUTONOMA DE NUEVO LEON

Programación Avanzada

Dr. Felipe Ramírez

Nombre: Matricula % de Participación


Santiago García Moreno 1811962 100%
Fabiola Elizabeth 2084036 100%
Medina Guerrero
Willver Moisés 2083967 100%
Rodríguez Pérez
Andrea Melina Santos 1948698 100%
García
Yahir Alejandro Tovar 1967136 100%
Moreno

Monterrey Nuevo León 17/11/2021


Trabajo colaborativo:
Nosotros nos distribuimos este trabajo en cada uno de los integrantes de 2 a 3
puntos ya que así sería más fácil que todos participaríamos sin embargo nos
ayudamos entre equipo para resolver dudas, nuestro representante de equipo
Yahir decidió repartir este trabajo de la siguiente manera:

Realizar clases.py: Santiago


Realizar programa Registro.py: Santiago
[1] Cargar información de CSV : Wilver
[2] Registrar participantes: Andrea
[3] Buscar participante: Fabiola
[4] Modificar participante: Fabiola
[5] Eliminar participante: Andrea
[6] Ver lista de participantes: Yahir
[7] Actualizar información de CSV: Yahir
[X] Salir: Yahir

a) Qué les gustó del trabajo colaborativo, y b) Qué mejorarían ustedes para
coordinarse mejor para este tipo de trabajo.
Andrea: Me gusto colaborar en equipo ya que mis compañeros me ayudaron a
resolver dudas y dejarme ideas claras de donde me atoraba en el programa y el
colaborar siento que aprendo mucho de ellos de sus valores impartidos como el
respeto y la tolerancia, mejoraría solo los tiempos pero que eso no es decisión de
todos si no el como se acomode a nuestras actividades y obligaciones me gusto
mucho este semestre colaborar con ellos ya que aprendí mucho de ellos y espero
ellos algo de mí.

Fabiola: En este caso el punto positivo del trabajo colaborativo es fue que podemos
ayudarnos mutuamente cuando tenemos algún inconveniente en la realización del
proyecto lo cual esto reduce los tiempos de elaboración de los proyectos. Algo que
yo pienso que es importante para una buena coordinación de trabajo en equipos es
tener una buena comunicación con todos los integrantes del equipo para hacer más
fácil el monitoreo de avances de cada participante.

Wilver: Lo que más me gustó del trabajo fue que nos dividimos que parte nos
tocó a cada uno, esto con el fin de disminuir la carga para todo el equipo y que
cada integrante participará.
Yo mejoraría un poco la comunicación ya que si bien nos repartimos los temas no
hablamos taaantoo como esperaba
Santiago: La realización del trabajo colaborativo que tuve con mis compañeros
ha sido un punto muy agradable Ya que ellos tienen puntos de vista y maneras de
hacer las actividades diferentes a mí que incluso puedo aprender de ellos.
Lo que yo mejoraría es el hecho de la búsqueda y estructura de la información o
en este caso de los comandos. Ya que muchos hemos estado batallando por lo
mismo de que falla el internet o la Luz nos vendría bien una manera diferente de
ver los temas no vistos.

Yahir: pro Se puede estudiar desde cualquier lugar sin necesidad de desplazarse,
las clases en línea puede ser de más fácil acceso, se facilita la expresión de ideas
y los estudiantes incrementan su participación, El contenido de las clases sigue
siendo el mismo, la diferencia es que con la educación a distancia los profesores
pueden innovar en sus clases y elegir varios formatos interactivos para hacerlas
más dinámicas.
Contras
El no poder socializar con las personas face to face, los problemas que puedas
tener con tu wifi, es muy fácil distraerte cuando estas en línea, no porque tu no
quieras si no por tu entorno
Programa
import os
import pandas as pd
import re
import csv

import datetime

# Clase para el manejo de los datos.


# Hecho por Santiago Garcia
class Participante:
# Declaro las propiedades
Correo=""
Nombre=""
Fecha_Nac=datetime.datetime.strptime("01-01-2000","%d-%m-%Y" )
Fecha_hora_actual=datetime.datetime.strptime("01-01-2000","%d-%m-%Y" )
# Genero el método constructor
def __init__(self, correo, nombre,
fecha_nac,monto,folio,fecha_hora_actual):
self.Correo=correo
self.Nombre=nombre
self.Fecha_Nac=fecha_nac
self.Monto=monto
self.Folio=folio
self.Fecha_hora_actual=fecha_hora_actual
def MostrarInfo(self):
print("{} -> {} {}
".format(self.Correo,self.Nombre,self.Fecha_Nac,self.Monto,self.Folio,self.F
echa_hora_actual))

# Leer secuencialmente un archivo CSV

# Genero una lista contenedora de objetos, aquí voy a guardar los objetos
# que almacenen los datos leídos.
Participantes=[]

with open("Participantes.csv") as archivo_csv:


# Dentro de esta estructura, estará disponible el archivo
# CSV, siempre y cuando se invoque bajo el nombre "archivo_csv"
# Aquí tengo abierto el archivo, pero no he leído nada.
# En otras palabras, el programa tendrá un flujo de datos con el
# archivo CSV, a través del nombre "archivo_csv".
# Aquí establecí el canal de comunicación con el archivo, PERO NO
# HE LEÍDO NADA.
# Se LEEN los datos, y se almacenan en una colección, llamada "lector"
lector = csv.reader(archivo_csv, delimiter=",")

# Genero un apuntador para distinguir la primera línea, de las demás.


# Al principio, no estoy en ninguna línea, es decir estoy en línea 0.
numero_linea=0

# Se lee secuencialmente la colección, y se manejan cada línea, una a


una,
# usando un contenedor llamado registro.
for registro in lector:
numero_linea=numero_linea+1
if (not numero_linea==1):
# Si no es la primera línea
# Genera un objeto Alumno con los datos de la línea; se usa un
objeto
# de paso, llamado "temporal".
temporal=Participante(registro[0],registro[1],registro[2],regist
ro[3],registro[4],registro[5])
# Agrega el objeto a una lista de objetos, llamada "Alumnos".
Participantes.append(temporal)
# hecho por Yair tovar
def VerLista():
print("-"*50)
# Muestra cuántos elementos tiene la lista Alumnos
# Muestra secuencialmente los elementos que están en la lista Alumnos
print("|Correo|,|Nombre|,|FechaNacimiento|,|Monto|,|Folio|,|FechaRegistr
o|")
print("Elementos participantes",len(Participantes))
for var in Participantes:
var.MostrarInfo()

# Hecho por Fabiola medina


def BuscarCorreo(_correo):
global Participantes
contador=-1
indice=-1
# Busca si existe un elemento con esa matrícula
for var in Participantes:
contador=contador+1
if (var.Correo==_correo):
indice=contador
break
return indice
formato_valido= r"^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6})+$"

def BuscarParticipante():
global Participantes
# Pregunta una matrícula. Si existe el alumno, lo muestra usando el
# método mostrar info, o de lo contrario, reporta "No encontrado".
# Si se omite el dato, no hace nada.
correo=input("\nDame el correo a buscar:")
if (not correo==""):
if(not re.match(formato_valido, correo)):
print("el formato de correo no es valido")
else:
indice=BuscarCorreo(correo)
if (indice==+1):
print("\nEse correo no está registrado en la lista")
else:
print(" ")
Participantes[indice].MostrarInfo()

# hecho por Yair tovar


def CargarinformaciondeCSV():
print("-"*50)
print('Los nombres de las columnas son:
Correo,Nombre,FechaNacimiento,Monto,Folio,FechaRegistro ')
print("***PARTICIPANTES REGISTRADOS EN EL SORTEO***")
print("*"*50)
print("Elementos participantes",len(Participantes))
for var in Participantes:
var.MostrarInfo()

# hecho por Yair tovar


def ActualizarinformacióndeCSV():
print("****Actualizada con exito****")
print("-"*50)
if os.path.exists("Participantes.CSV"):
os.remove("Participantes2.CSV")
else:
print("The file does not exist")

# Hecho por Fabiola medina


def ModificarParticipante():
global Participantes
while True:
# se le pregunta la matricula al usuario
correo=input("\nDame el coreo a modificar:")
if (correo==""):
# Si no se le proporciona el dato se sale del menu
break
else:
if(not re.match(formato_valido, correo)):
print("el formato de correo no es valido")
break
else:
indice=BuscarCorreo(correo)
if (indice==+1):
# Si indice es -1 quiere decir que la matrícula no existe, y
manda um mrnsaje.
print("\nEse correo no está registrado en la lista.")
break
else:
# aqui se elimina el contenido de los registros que se
desean eliminar
print("\nRegistro a Modificar")
print("Correo: ", Participantes[indice].Correo)
print("Nombre: ", Participantes[indice].Nombre)
print("Fecha_Nac: ", Participantes[indice].Fecha_Nac)
print("Monto",Participantes[indice].Monto)
print("Folio",Participantes[indice].Folio)
print("Fecha_hora_actual",Participantes[indice].Fecha_ho
ra_actual)
Participantes.pop(indice)
print("Datos eliminados!")
#aqui se piden los nuevos datos que contendar el registro
print("ingrese los datos nuevos")
correo=input("\nDame el correo: ")
nombre=input("Dame el nombre: ")
fecha_nac=input("Dame la fecha Nacimiento: ")
monto=input("Dame el Monto",)
folio=input("Dame el Folio",)
fecha_hora_actual=input("fecha_hora_actual")
# se hace la instacia del alumno
temporal=Participante(correo, nombre,
fecha_nac,monto,folio,fecha_hora_actual)
# agraga el nuevo registro
Participantes.append(temporal)
break

# Hecho por Andrea Santos


def EliminarParticipante():
global Participantes
while True:
# se le pregunta la matricula al usuario
correo=input("\nDame el correo a modificar:")
if (correo==""):
# Si no se le proporciona el dato se sale del menu
break
else:
if(not re.match(formato_valido, correo)):
print("el formato de correo no es valido")
break
else:
indice=BuscarCorreo(correo)
if (indice==+1):
# Si indice es -1 quiere decir que la matrícula no existe, y
manda um mrnsaje.
print("\nEse correo no está registrado en la lista.")
break
else:
# aqui se elimina el contenido de los registros que se
desean eliminar
print("\nRegistro a eliminar")
print("Correo: ", Participantes[indice].Correo)
print("Nombre: ", Participantes[indice].Nombre)
print("Fecha_Nac: ", Participantes[indice].Fecha_Nac)
print("Monto",Participantes[indice].Monto)
print("Folio",Participantes[indice].Folio)
print("Fecha_hora_actual",Participantes[indice].Fecha_ho
ra_actual)
Participantes.pop(indice)
print("Eliminado!")
break

# Hecho por Andrea Santos


def RegistrarParticipante():
global Participantes
while True:
# se le pregunta la matricula al usuario
correo=input("\nDame el correo a agregar:")
if (correo==""):
# Si no se le proporciona el dato se sale del menu
break
else:
if(not re.match(formato_valido, correo)):
print("el formato de correo no es valido")
break
else:
indice=BuscarCorreo(correo)
if (indice!=-1):
# Si indice es -1 quiere decir que la matrícula no existe, y
manda um mrnsaje.
print("\nEse correo si está registrado en la lista.")
break
else:
#aqui se piden los nuevos datos que contendar el registro
print("ingrese los datos nuevos")
correo=input("\nDame el correo: ")
nombre=input("Dame el nombre: ")
fecha_nac=input("Dame la fecha Nacimiento: ")
monto=input("Dame el Monto",)
folio=input("Dame el Folio",)
fecha_hora_actual=input("fecha_hora_actual")
# se hace la instacia del alumno
temporal=Participante(correo, nombre,
fecha_nac,monto,folio,fecha_hora_actual)
# agraga el nuevo registro
Participantes.append(temporal)
break

# Hecho por Wiliver Rodriguez


while True:
print(" ")
print("-"*50)
print("MENÚ PRINCIPAL")
print("-"*50)
print("[1] Cargar informacion de CSV")
print("[2] Registar Participante")
print("[3] Buscar participante")
print("[4] Modificar participante")
print("[5] Eliminar participante")
print("[6] Ver Lista")
print("[7] Actualizar información de CSV ")
print ("[x] salir")
opcion=input("Qué opción deseas: ")
if (opcion=="1"):
CargarinformaciondeCSV()
if (opcion=="2"):
RegistrarParticipante()
if (opcion=="3"):
BuscarParticipante()
if (opcion=="4"):
ModificarParticipante()
if(opcion=="5"):
EliminarParticipante()
if (opcion=="6"):
VerLista()
if (opcion=="7"):
ActualizarinformacióndeCSV()
if (opcion=="x"):
#aqui puse break para salir del menu
break
Comprobación

Cargar informacion csv


Registrar participante
Buscar participante
Modificar participante
Eliminar participante
Ver lista
Actualizar información de csv
Salir
Conclusiones
Fabiola Elizabeth Medina Guerrero
Mi conclusión sobre este semestre trabajando bajo la modalidad en line es que si
bien es un poco más cómoda para las personas que trabajan y la grabaciones de
las clase ayudan mucho al momento de estudiar uno de sus contras es que en lo
personal me cuesta mantener la atención en mis clase porque me distraigo
fácilmente, además de que lo más difícil es al momento de trabajar en equipo ya
que al momento de no llevar clases presenciales no puedo ver o saber la manera
de trabajar de los demás lo cual esto hace un poco complicado. El punto bueno en
este sentido es que es más fácil el realizar un trabajo en equipo simultáneo por
medio de reuniones de teams. Algunas mejoras que creo que podríamos seria dar
un descanso de 10 min cuando sean varias horas seguidas de la misma materia
para descansar un poco y volver a trabajar más eficientemente después del
descanso.

Willver Moisés Rodríguez Pérez: Conclusión: La verdad trabajar este semestre


de manera virtual me pareció algo entretenido ya que se sale de toda la rutina que
uno haya conocido, no solo por el hecho de que no estás viendo a tus compañeros
de manera presencial o no estás en el aula con el docente, si no como se lleva a
acabó todo dentro ya sea de tu celular o una computadora.
Puntos positivos: Un gran punto a favor a mi parecer es el simple hecho de ver las
clases las veces que quieras, ya que esto ayuda a gente que no pueda estar
dentro de la clase ya sea por algún motivo y en ese caso una solución es volver a
ver la clase sin haberse perdido nada.
Otra ventaja es que a cuando uno iba a presencial tienes que irte en auto, camión,
metro, etc. Peeerooo aquí solo basta con iniciar sesión en tu celular o
computadora y listo.
Puntos negativos: Si bien no todo es color de rosa ya que para mí aveces me es
algo enfadoso estar sentado a la PC, llega un cierto punto dónde hasta me duele
la espalda y para mí estar más de 10 horas pegado a la pc es algo que no me
gusta.
Otro punto negativo es que algunas clases son algo meh, si es cierto que te
enseñan y todo pero algunos maestros no se les nota esas ganas de enseñar y
solo se dedican a dar órdenes y dejar tareas.
Sugerencias: Me gustaría que no solo se tratara de impartir una clase enseñando
un tema nuevo, si no que el docente pueda hacer alguna actividad de aprendizaje
dentro de la misma clase para que se salga de la rutina de solo escuchar, escribir
en la libreta, etc.
Santiago Garcia Moreno: La manera de trabajar en línea ha sido un punto de
vista muy eficiente por la manera en la cual nosotros a pesar de la distancia nos
conectamos fácilmente a la hora de los trabajos, incluso nosotros aprendemos a
hacer trabajos desde los teléfonos.
La manera en línea, así como en diferentes modalidades, tiene ventajas y
desventajas. Para mí las ventajas de esto es de que tanto nosotros como los
docentes pueden enfocar más tiempo en trabajos qué en moverse para la facultad
y la manera en la cual podemos volver a ver la clase en todo momento.
Pero las desventajas de esto, es de que muchas veces, tanto nosotros como los
docentes, llegamos a tener o fallas de conexión a internet o de luz lo cual puede
llegar a ser un problema por la continuidad de temas.
Mi sugerencia para la clase es la manera de tener dinámicas. Algo divertido que
podemos hacer los alumnos con los docentes, en este caso programación, crear
un programa divertido para nosotros que sea entretenido y útil con los temas
vistos de la clase.

Andrea Melina Santos Garcia : Para concluir con este PIA me gustaría decir que
es una materia la cual no me considero buena pero gracias a las ligas que mando
el profe y la práctica ya se viendo vídeos o los programas que usábamos en clase
mejore un poco más y mi conocimiento fue aumento aunque ya siendo en
modalidad en línea creo que muchas veces no me concentro lo suficiente como si
fuese en presencial, ni creo que aprendamos igual sin embargo creo que estar en
modalidad online tuvo mis ventajas ya que aprendí a usar más mis computadora
ya que como LTI es una herramienta base y día con día la seguiré usando,sin
embargo una desventaja pues fue que algunas ocasiones me llegue a quedar sin
internet o mi dispositivo empezó a fallar, pero una ventaja fue que estando en casa
me fue más fácil levantarme o cambios de climas pues batallamos con internet o
energía eléctrica. Esta clase me parece interactiva ya que el profe nos hacía
preguntas e incluso dar ejemplos y si había dudas El las resolvía para ir a la par
aunque algunas veces creo que es necesario ver no solo una si no hasta 2 veces
un tema ya que no siempre queda 100% entendido. temas otra seria que me paso
mucho tiempo en la computadora y mis ojos a lo largo de esta pandemia mi vista
se deterioró mucho y llego a un punto en clase que no puedo ni ver la
computadora porque me duele mucho mi cabeza
Una sugerencia creo que sería que hiciéramos ejercicios en clase de uno sencilla
hasta el más elaborado y que las clases sean más didácticas ya que algunas
veces nos gustaría salir de la rutina ya que algunas veces lo mismo aburre, la
verdad el profesor dio clases muy completas y aborda muy bien los temas pero en
mi caso algunas veces a la primera no logro entender el tema con exactitud pero a
lo que aprendí un semestre anterior al que estoy cursando me fue mucho mejor y
logré resolver dudad que tenía, espero todos estos conocimientos me sirvan en un
futuro y en mi mejora académica

Yahir Alejandro Tovar Moreno: Es tuvo muy bueno el trabajo un reto si lo


ponemos así, no estuvo difícil, pero si me trababa en algo, pero lo trataba de
solucionar, La verdad no cambiara nada estuvo muy padre y espero que lo
hayamos hecho bien yo siento que sí, así que no perderé las esperanzas
Fuentes Bibliográficas
GitHub - FelipeRamirezPhD/AprendiendoPython: Programación Avanzada Python (LTI -

FACPYA-UANL). (s. f.). GitHub. Recuperado 17 de noviembre de 2021, de

https://github.com/FelipeRamirezPhD/AprendiendoPython

También podría gustarte