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}] >>>