Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.File;
- import java.util.ArrayList;
- import java.util.Scanner;
- public class MCExamenStudent {
- private MCExamen examen;
- private Student student;
- private boolean[][] antwoorden;
- public MCExamenStudent(MCExamen examen, Student student) {
- this.examen = examen;
- this.student = student;
- this.antwoorden = new boolean[examen.getAantalVragen()][];
- }
- public void leesAntwoorden(File antwoorden) {
- try {
- Scanner scanner = new Scanner(antwoorden);
- while(scanner.hasNextLine()) {
- String line = scanner.nextLine();
- String[] vraagEnAnwoorden = line.split(":");
- String[] antwoordenArray;
- if(vraagEnAnwoorden.length > 1)
- antwoordenArray = vraagEnAnwoorden[1].split(";");
- else
- antwoordenArray = new String[0];
- int vraagnummer = Integer.parseInt(vraagEnAnwoorden[0]);
- if(vraagnummer > examen.getAantalVragen())
- throw new Exception();
- int aantalAntwoorden = examen.getAantalAntwoordenVanVraag(vraagnummer-1);
- this.antwoorden[vraagnummer-1] = new boolean[aantalAntwoorden];
- //alles op false zetten
- for (int i = 0; i < aantalAntwoorden; i++)
- this.antwoorden[vraagnummer-1][i] = false;
- //antwoorden op true zetten
- for (String antwoord: antwoordenArray) {
- int antwoordnummer = Integer.parseInt(antwoord);
- this.antwoorden[vraagnummer-1][antwoordnummer-1] = true;
- }
- }
- } catch (Exception e) {
- System.out.println("Er is een probleem met het meegegeven bestand!");
- }
- }
- public void berekenResultaat() {
- String resultaat = String.format("%s (%s) - %s\n", student, student.getStudentenNummer(), examen.getNaamVak());
- String[] verbetering = getVerbetering();
- int aantalCorrecteAntwoorden = getAantalCorrectAntwoorden();
- for (int i = 0; i < examen.getAantalVragen(); i++)
- resultaat += String.format("Vraag %d: %s\n", i+1, verbetering[i]);
- if(examen.isHogereCesuur()) {
- double eindscore = examen.bepaalScoreMetCesuur(aantalCorrecteAntwoorden);
- double hogereCesuur = examen.bepaalHogereCesuur();
- resultaat += String.format("Eindscore: %s/20 met een hogere cesuur van %s", eindscore, hogereCesuur);
- } else {
- double eindscore = examen.bepaalScoreZonderCesuur(aantalCorrecteAntwoorden);
- resultaat += String.format("Eindscore: %s/20", eindscore);
- }
- System.out.print(resultaat);
- }
- private String[] getVerbetering() {
- String[] verbetering = new String[examen.getAantalVragen()];
- for (int i = 0; i < examen.getAantalVragen(); i++) {
- if(examen.getVragen().get(i).isCorrect(this.antwoorden[i]))
- verbetering[i] = "juist";
- else
- verbetering[i] = "fout";
- } return verbetering;
- }
- private int getAantalCorrectAntwoorden() {
- int aantalCorrectAntwoorden = 0;
- for (int i = 0; i < examen.getAantalVragen(); i++) {
- if(examen.getVragen().get(i).isCorrect(this.antwoorden[i]))
- aantalCorrectAntwoorden++;
- } return aantalCorrectAntwoorden;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement