Cree un programa en Java que lea el archivo CSV y calcule la calificación final del estudiante usando el siguiente cálculo: Ejercicio de laboratorio * 30 % + Cuestionario largo * 30 % + Evaluación alternativa * 40 % = Calificación final Luego, muestre la calificación final de cada alumno.
Usaremos el paquete java.io y hasta ahora esto es lo que se me ocurrió
import java.io.*; public class ReadingFile { public static void main (String[]args){ try{ File myFile = new File("Grades.csv"); BufferedReader br = new BufferedReader(new FileReader(myFile)); String allLines = ""; while((allLines = br.readLine()) != null){ String row [] = allLines.split(","); double finalGrade = (Double.parseDouble(row[1])*.30) + (Double.parseDouble(row[2])*.30) + (Double.parseDouble(row[3])*.40); } } catch(IOException err){ System.err.println("File not found."); } } }Sé que falta mucho código, pero esto es todo lo que puedo hacer con lo mejor de mis conocimientos y habilidades.
Suponga que su contenido de Grades.csv es el siguiente
35,91,24 53,63,73 13,23,33Algunos consejos
Use la instrucción try-with-resources para asegurarse de que BufferedReader se cierre al final de la instrucción.
Java usa la indexación basada en cero, por lo que debe usar la row[0] para leer la primera puntuación.
Use un registrador o e.printStackTrace() para ayudarlo a depurar.
public static void main(String[] args) { try (BufferedReader br = new BufferedReader(new FileReader(new File("Grades.csv")))) { String allLines; while ((allLines = br.readLine()) != null) { String[] row = allLines.split(","); double finalGrade = (Double.parseDouble(row[0]) * .30) + (Double.parseDouble(row[1]) * .30) + (Double.parseDouble(row[2]) * .40); System.out.println(finalGrade); } } catch (IOException e) { System.err.println("some error message"); e.printStackTrace(); } }La salida será
47.4 64.0 24.0