Está en la página 1de 7

24/4/22, 13:35 A00834702_Entrega2Proyecto.

ipynb - Colaboratory

Oscar Daniel Rosse Rios A00834702

Entrega Etapa 2 del Proyecto Integrador

24/04/2022

https://colab.research.google.com/drive/1ZBTucNUgXF0_vn1P8WKDoA27N7MKYYjv?usp=sharing

1 def alta_empleado(empleados):
2   datosempleados=["el ID", "el nombre", "la edad", "el peso", "la altura", "si cuenta con 
3   while True:
4     error=0
5     empleado=[]
6     for i in range(len(datosempleados)):
7       empleado.append(input("Ingresa " + datosempleados[i] + " del empleado que desea agre
8
9       for j in range(len(empleados)):
10         if empleado[0] == empleados[j][0]:
11           print("Parece que repitio un ID existente")
12           error = error + 1
13       if error != 0:
14         break
15
16     empleados.append(empleado)
17     continuar=input("Desea agregar otro empleado? (Si/No) ")
18
19     if continuar.lower() == "no":
20       return empleados
21     
22 def calcular_imc(Empleados):
23   import copy
24   empleados=copy.deepcopy(Empleados)
25   Delgadezsevera = 0
26   Delgadezmoderada = 0
27   Delgadezaceptable = 0
28   PesoNormal = 0
29   Sobrepeso = 0
30   Obesidad = 0
31   for i in range(len(empleados)):
32     peso = empleados[i][3]
33     altura = empleados[i][4]
34     imc = float(peso) / (float(altura) ** 2)
35     imc=round(imc,2)
36     empleados[i].append(imc)
37
38     if imc < 16:
39       empleados[i].append("Delgadez severa")
40       Delgadezsevera = Delgadezsevera + 1
41
42     elif 16 <= imc < 17:
https://colab.research.google.com/drive/1ZBTucNUgXF0_vn1P8WKDoA27N7MKYYjv#scrollTo=92EauSgCGVjP&printMode=true 1/7
24/4/22, 13:35 A00834702_Entrega2Proyecto.ipynb - Colaboratory

43       empleados[i].append("Delgadez moderada")
44       Delgadezmoderada = Delgadezmoderada + 1
45
46     elif 17 <= imc < 16:
47       empleados[i].append("Delgadez aceptable")
48       Delgadezaceptable = Delgadezaceptable + 1
49
50     elif 18.5 <= imc < 25:
51       empleados[i].append("Peso Normal")
52       PesoNormal = PesoNormal + 1
53
54     elif 17 <= imc < 30:
55       empleados[i].append("Sobrepeso")
56       Sobrepeso = Sobrepeso + 1
57
58     else:
59       empleados[i].append("Obesidad")
60       Obesidad = Obesidad + 1
61   Total = Delgadezaceptable + Delgadezmoderada + Delgadezsevera + PesoNormal + Sobrepeso + 
62   print(f'{"Clasificacion IMC" : <25} {"IMC" : <10} {"ID" : <5} {"Nombre" : <15} {"Peso" : 
63   for i in empleados:
64     id, nombre, edad, peso, altura, vacuna, imc, clas = i
65     if vacuna == "0":
66       vacuna = "------"
67     elif vacuna == "1":
68       vacuna = "Con Vacuna"
69     print(f'{clas : <25} {imc : <10} {id : <5} {nombre : <15} {peso : <10} {altura : <10} 
70   print("\n"f'{"":<25} {"Diagnostico" : <20} {"Cantidad" : <15} {"Porcentaje" : <5}')
71   print(f'{"":<25} {"Delgadez severa" : <20} {Delgadezsevera : <15} {str((Delgadezsevera/T
72   print(f'{"":<25} {"Delgadez moderada" : <20} {Delgadezmoderada : <15} {str((Delgadezmode
73   print(f'{"":<25} {"Delgadez aceptable" : <20} {Delgadezaceptable : <15} {str((Delgadezac
74   print(f'{"":<25} {"Peso Normal" : <20} {PesoNormal : <15} {str((PesoNormal/Total)*100) + 
75   print(f'{"":<25} {"Sobrepeso" : <20} {Sobrepeso : <15} {str((Sobrepeso/Total)*100) + "%" 
76   print(f'{"":<25} {"Obesidad" : <20} {Obesidad : <15} {str((Obesidad/Total)*100) + "%" : 
77   print(f'{"":<25} {"Total de empleados" : <20} {Total: <15}'+"\n")
78   return Empleados
79 def actualizar_empleado(empleados):
80   datosempleados = ["el ID", "el nombre", "la edad", "el peso", "la altura", "si cuenta co
81   while True:
82     C = input("ingrese el ID del empleado que desea cambiar: ")
83     error=0
84     for i in range(len(empleados)):
85       if empleados[i][0] == C:
86
87         emp = [str(i+1)]
88         dato = []
89
90         for j in range(1,len(datosempleados)):
91           dato=input("Ingresa " + datosempleados[j] + " del " + "empleado, si no desea mod
92
93           if dato == "":
94 emp append(empleados[i][j])
https://colab.research.google.com/drive/1ZBTucNUgXF0_vn1P8WKDoA27N7MKYYjv#scrollTo=92EauSgCGVjP&printMode=true 2/7
24/4/22, 13:35 A00834702_Entrega2Proyecto.ipynb - Colaboratory
94             emp.append(empleados[i][j])
95
96           else:
97             emp.append(dato)
98         actualizar=input("¿Está seguro de que quiere actualizar los datos del empleado? \n
99         print("\n")
100         if actualizar.lower() == "si":
101           empleados.pop(i)
102           empleados.append(emp)
103           
104         error=error+1
105         break
106
107       else:
108         pass
109
110     if error == 0:
111       print("Parece que el id proporcionado no existe")
112
113     else:
114       return empleados
115 def consultar_empleado(empleados):
116   datosempleados = ["ID: ", "Nombre: ", "Edad: ", "Peso: ", "Altura: ", "Cuenta con vacuna
117   while True:
118     error=0
119     C = input("ingrese el ID del empleado que desea consultar: ")
120     for i in range(len(empleados)):
121       id, nombre, edad, peso, altura, vacuna = empleados[i]
122       if empleados[i][0] == C:
123         print(f'{"ID": <2} {"Nombre": <10} {"Edad": <5} {"Peso": <5} {"Altura": <5} {"Vacu
124         print(f'{id: <2} {nombre: <10} {edad: <5} {peso: <5} {altura: <6} {vacuna: <5}'+"\
125         error=error+1
126         break
127
128       else:
129         pass
130
131     if error == 0:
132       print("Parece que el id proporcionado no existe \n")
133       break
134
135     else:
136       break
137 def crear_reporte_empleados(empleados):
138   total  = 0
139   sumimc = 0
140   contador = total
141   vacunaSi = 0
142   vacunaNo = 0
143   for i in range(len(empleados)):
144     peso = empleados[i][3]
145     altura = empleados[i][4]
https://colab.research.google.com/drive/1ZBTucNUgXF0_vn1P8WKDoA27N7MKYYjv#scrollTo=92EauSgCGVjP&printMode=true 3/7
24/4/22, 13:35 A00834702_Entrega2Proyecto.ipynb - Colaboratory
146     imc = float(peso) / (float(altura) ** 2)
147     imc = round(imc,2)
148     sumimc = sumimc + imc
149     contador = contador + 1
150     if str(empleados[i][-1]) == "1":
151       vacunaSi = vacunaSi + 1
152     else:
153       vacunaNo = vacunaNo + 1
154   vacunados = (vacunaSi/contador)*100
155   novacunados = (vacunaNo/contador)*100
156   promedioimc = sumimc/contador
157   
158   print(f'{"Total de empleados": <22} {contador: <10}')
159   print(f'{"Promedio de imc": <22} {promedioimc: <10}')
160   print(f'{"Porcentaje con vacuna": <22} {vacunados: <10}')
161   print(f'{"Porcentaje sin vacuna": <22} {novacunados: <10}'+"\n")
162
163 def salir( ):
164   return
165
166
167 def menu():
168   while True:  
169     print("""1. Alta de empleado.
170 2. Calcular IMC de empleado.
171 3. Cambia información del empleado.
172 4. Consulta un empleado.
173 5. Reporte de todos los empleados.
174 6. Salir.
175 """)
176     opcion = int(input("Elige una opcion: "))
177     print("")
178     if opcion < 1 or opcion > 6:
179       print("""Opción incorrecta.
180 """)
181     else:
182       return opcion
183 def main(empleados):
184   while True:
185
186     opcion = menu()
187
188     if opcion == 1:
189       alta_empleado(empleados)
190     elif opcion == 2:
191       calcular_imc(empleados)
192     elif opcion == 3:
193       actualizar_empleado(empleados)
194     elif opcion == 4:
195       consultar_empleado(empleados)
196     elif opcion == 5:
197 crear reporte empleados(empleados)
https://colab.research.google.com/drive/1ZBTucNUgXF0_vn1P8WKDoA27N7MKYYjv#scrollTo=92EauSgCGVjP&printMode=true 4/7
24/4/22, 13:35 A00834702_Entrega2Proyecto.ipynb - Colaboratory
197       crear_reporte_empleados(empleados)
198     else:
199       salir()
200       break
201

1
empleados = []

2
main(empleados)

1. Alta de empleado.

2. Calcular IMC de empleado.

3. Cambia información del empleado.

4. Consulta un empleado.

5. Reporte de todos los empleados.

6. Salir.

Elige una opcion: 1

Ingresa el ID del empleado que desea agregar: 1

Ingresa el nombre del empleado que desea agregar: Guadalupe

Ingresa la edad del empleado que desea agregar: 22

Ingresa el peso del empleado que desea agregar: 56

Ingresa la altura del empleado que desea agregar: 1.3

Ingresa si cuenta con vacuna covid: 1 o 0 del empleado que desea agregar: 1

Desea agregar otro empleado? (Si/No) si

Ingresa el ID del empleado que desea agregar: 2

Ingresa el nombre del empleado que desea agregar: Ramona

Ingresa la edad del empleado que desea agregar: 22

Ingresa el peso del empleado que desea agregar: 83

Ingresa la altura del empleado que desea agregar: 1.5

Ingresa si cuenta con vacuna covid: 1 o 0 del empleado que desea agregar: 0

Desea agregar otro empleado? (Si/No) si

Ingresa el ID del empleado que desea agregar: 3

Ingresa el nombre del empleado que desea agregar: Rodrigo

Ingresa la edad del empleado que desea agregar: 22

Ingresa el peso del empleado que desea agregar: 100

Ingresa la altura del empleado que desea agregar: 1.9

Ingresa si cuenta con vacuna covid: 1 o 0 del empleado que desea agregar: 0

Desea agregar otro empleado? (Si/No) no

1. Alta de empleado.

2. Calcular IMC de empleado.

3. Cambia información del empleado.

4. Consulta un empleado.

5. Reporte de todos los empleados.

6. Salir.

Elige una opcion: 2

Clasificacion IMC IMC ID Nombre Peso Altura Vacu


Obesidad 33.14 1 Guadalupe 56 1.3 Con V
Obesidad 36.89 2 Ramona 83 1.5 ----
Sobrepeso 27.7 3 Rodrigo 100 1.9 ----

Diagnostico Cantidad Porcentaje

Delgadez severa 0 0.0%

https://colab.research.google.com/drive/1ZBTucNUgXF0_vn1P8WKDoA27N7MKYYjv#scrollTo=92EauSgCGVjP&printMode=true 5/7
24/4/22, 13:35 A00834702_Entrega2Proyecto.ipynb - Colaboratory

Delgadez moderada 0 0.0%

Delgadez aceptable 0 0.0%

Peso Normal 0 0.0%

Sobrepeso 1 33.33333333333333%

Obesidad 2 66.66666666666666%

Total de empleados 3

1. Alta de empleado.

2. Calcular IMC de empleado.

3. Cambia información del empleado.

4 Consulta un empleado

1
Empleados = [['1', 'Guadalupe', 22, 56, 1.3, '1'], ['2', 'Ramona', 22, 83, 1.5, '0'], ['3'
2
main(Empleados)

1. Alta de empleado.

2. Calcular IMC de empleado.

3. Cambia información del empleado.

4. Consulta un empleado.

5. Reporte de todos los empleados.

6. Salir.

Elige una opcion: 1

Ingresa el ID del empleado que desea agregar: 4

Ingresa el nombre del empleado que desea agregar: Oscar

Ingresa la edad del empleado que desea agregar: 19

Ingresa el peso del empleado que desea agregar: 145

Ingresa la altura del empleado que desea agregar: 1.9

Ingresa si cuenta con vacuna covid: 1 o 0 del empleado que desea agregar: 1

Desea agregar otro empleado? (Si/No) no

1. Alta de empleado.

2. Calcular IMC de empleado.

3. Cambia información del empleado.

4. Consulta un empleado.

5. Reporte de todos los empleados.

6. Salir.

Elige una opcion: 2

Clasificacion IMC IMC ID Nombre Peso Altura Vacu


Obesidad 33.14 1 Guadalupe 56 1.3 Con V
Obesidad 36.89 2 Ramona 83 1.5 ----
Sobrepeso 27.7 3 Rodrigo 100 1.9 ----
Obesidad 40.17 4 Oscar 145 1.9 Con V

Diagnostico Cantidad Porcentaje

Delgadez severa 0 0.0%

Delgadez moderada 0 0.0%

Delgadez aceptable 0 0.0%

Peso Normal 0 0.0%

Sobrepeso 1 25.0%

Obesidad 3 75.0%

Total de empleados 4

https://colab.research.google.com/drive/1ZBTucNUgXF0_vn1P8WKDoA27N7MKYYjv#scrollTo=92EauSgCGVjP&printMode=true 6/7
24/4/22, 13:35 A00834702_Entrega2Proyecto.ipynb - Colaboratory

1. Alta de empleado.

2. Calcular IMC de empleado.

3. Cambia información del empleado.

4. Consulta un empleado.

5. Reporte de todos los empleados.

6. Salir.

Elige una opcion: 3

ingrese el ID del empleado que desea cambiar: 1

Ingresa el nombre del empleado, si no desea modificar el dato solamente teclee enter:
Ingresa la edad del empleado, si no desea modificar el dato solamente teclee enter:

Ingresa el peso del empleado, si no desea modificar el dato solamente teclee enter:

Ingresa la altura del empleado, si no desea modificar el dato solamente teclee enter:
Ingresa si cuenta con vacuna covid: 1 o 0 del empleado, si no desea modificar el dato
¿Está seguro de que quiere actualizar los datos del empleado?

si

https://colab.research.google.com/drive/1ZBTucNUgXF0_vn1P8WKDoA27N7MKYYjv#scrollTo=92EauSgCGVjP&printMode=true 7/7

También podría gustarte