Ejercicio: 3Eva2003TI_T3 Reportar notas desde un archivo
Propuesta de solución en Python:
# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 3Eva_IT2003_T3 Reportar notas desde un archivo
# Usando un menu para cada accion
n = 0 # Sin notas
opcion = '0'
while not(opcion=='4'):
print('1. Ingresar notas y Guardar archivo')
print('2. Abrir archivo de notas')
print('3. Calcular promedio y Guardar archivo notasfinal')
print('4. Salir')
opcion = input(' -- cual opcion: ')
if (opcion=='1'):
# Ingresar datos
nota = []
n = int(input('cuantos estudiantes: '))
for i in range(0,n,1):
matricula = input('matricula: ')
apellido = input('apellido: ')
nota1 = int(input('nota1 : '))
nota2 = int(input('nota2 : '))
nota.append([matricula,apellido,nota1,nota2])
# Crear archivo 'notas.txt' datos separados por ','
archivo = open('notas.txt','w')
for i in range(0,n,1):
linea = nota[i][0]+','+nota[i][1]+','
linea = linea +str(nota[i][2])+','+str(nota[i][3])+'\n'
archivo.write(linea)
print('archivo almacenado')
archivo.close()
if (opcion=='2'):
# Abrir archivo de notas
nota = []
archivo = open('notas.txt','r')
linea = archivo.readline()
#leer por linea hasta final ''
while not(linea==''):
# Separa y convierte tipo de datos
dato = linea.split(',')
matricula = dato[0]
apellido = dato[1]
nota1 = int(dato[2])
nota2 = int(dato[3])
nota.append([matricula,apellido,nota1,nota2])
# Lee la siguiente linea
linea = archivo.readline()
archivo.close()
print('Datos leidos desde archivo')
print(nota)
if (opcion=='3'):
# Calcula promedio
n = len(nota)
promedio = []
for i in range(0,n,1):
prm = float((nota[i][2]+nota[i][3])/2)
promedio.append([prm])
# Crear archivo 'final.txt' datos separados por ','
archivo = open('final.txt','w')
for i in range(0,n,1):
linea = nota[i][0]+','+nota[i][1]
linea = linea +','+str(promedio[i])+'\n'
archivo.write(linea)
print('archivo almacenado')
archivo.close()
if (opcion=='4'):
print('Mejoramiento I Término 2003, Tema 3')
print('icm00794 Fundamentos de computacion')