Ejercicio: 3Eva_IIIT2003_T4 Informes notas de estudiantes
Propuesta de solución en Python:
# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 3Eva_IIIT2003_T4 Informes notas de estudiantes
# INGRESO
estudiantes = []
n = int(input('cupo: '))
i = 0
while not(i>=n):
nom = input('nombre: ')
eda = int(input('edad: '))
gen = input(' genero m/f: ')
while not(gen=='f' or gen=='m'):
print(' genero f o m ')
gen = input('genero: ')
par = int(input('parcial: '))
while not(par>=0 and par<=100):
print(' nota son [0,100] ')
par = int(input('parcial: '))
fin = int(input('final: '))
while not(fin>=0 and fin<=100):
print(' nota son [0,100] ')
fin = int(input('final: '))
registro = {'nombre':nom,
'edad':eda,
'genero':gen,
'parcial':par,
'final':fin}
estudiantes.append(registro)
i = i+1
# ingresa sin extension '.txt'
narchivo = input('nombre del archivo: ')
narchivo = narchivo + '.txt'
# PROCEDIMIENTO
# Guarda el archivo con datos estudiantes
n = len(estudiantes)
archivo = open(narchivo, 'w')
i = 0
while not(i>=n):
nom = estudiantes[i]['nombre']
eda = estudiantes[i]['edad']
gen = estudiantes[i]['genero']
par = estudiantes[i]['parcial']
fin = estudiantes[i]['final']
linea = nom +','+str(eda)+','+gen
linea = linea + ',' + str(par)
linea = linea + ',' + str(fin) + '\n'
archivo.write(linea)
i = i + 1
archivo.close()
# SALIDA
print(estudiantes)
resultado del algoritmo
upo: 5
nombre: Juan
edad: 19
genero m/f: m
parcial: 65
final: 40
nombre: Maria
edad: 18
genero m/f: f
parcial: 70
final: 80
nombre: Ana
edad: 19
genero m/f: f
parcial: 90
final: 92
nombre: Juan
edad: 20
genero m/f: m
parcial: 40
final: 80
nombre: Rosa
edad: 18
genero m/f: f
parcial: 80
final: 85
nombre del archivo: calificaciones
[{'nombre': 'Juan', 'edad': 19, 'genero': 'm',
'parcial': 65, 'final': 40},
{'nombre': 'Maria', 'edad': 18, 'genero': 'f',
'parcial': 70, 'final': 80},
{'nombre': 'Ana', 'edad': 19, 'genero': 'f',
'parcial': 90, 'final': 92},
{'nombre': 'Juan', 'edad': 20, 'genero': 'm',
'parcial': 40, 'final': 80},
{'nombre': 'Rosa', 'edad': 18, 'genero': 'f',
'parcial': 80, 'final': 85}]
>>>