Advertisement
Guest User

Untitled

a guest
Jan 17th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 KB | None | 0 0
  1. import java.io.File;
  2. import java.util.ArrayList;
  3. import java.util.Scanner;
  4.  
  5. public class MCExamenStudent {
  6. private MCExamen examen;
  7. private Student student;
  8. private boolean[][] antwoorden;
  9.  
  10. public MCExamenStudent(MCExamen examen, Student student) {
  11. this.examen = examen;
  12. this.student = student;
  13. this.antwoorden = new boolean[examen.getAantalVragen()][];
  14. }
  15.  
  16. public void leesAntwoorden(File antwoorden) {
  17. try {
  18. Scanner scanner = new Scanner(antwoorden);
  19.  
  20. while(scanner.hasNextLine()) {
  21. String line = scanner.nextLine();
  22. String[] vraagEnAnwoorden = line.split(":");
  23. String[] antwoordenArray;
  24. if(vraagEnAnwoorden.length > 1)
  25. antwoordenArray = vraagEnAnwoorden[1].split(";");
  26. else
  27. antwoordenArray = new String[0];
  28.  
  29. int vraagnummer = Integer.parseInt(vraagEnAnwoorden[0]);
  30. if(vraagnummer > examen.getAantalVragen())
  31. throw new Exception();
  32.  
  33. int aantalAntwoorden = examen.getAantalAntwoordenVanVraag(vraagnummer-1);
  34. this.antwoorden[vraagnummer-1] = new boolean[aantalAntwoorden];
  35.  
  36. //alles op false zetten
  37. for (int i = 0; i < aantalAntwoorden; i++)
  38. this.antwoorden[vraagnummer-1][i] = false;
  39.  
  40. //antwoorden op true zetten
  41. for (String antwoord: antwoordenArray) {
  42. int antwoordnummer = Integer.parseInt(antwoord);
  43. this.antwoorden[vraagnummer-1][antwoordnummer-1] = true;
  44. }
  45. }
  46. } catch (Exception e) {
  47. System.out.println("Er is een probleem met het meegegeven bestand!");
  48. }
  49. }
  50.  
  51. public void berekenResultaat() {
  52. String resultaat = String.format("%s (%s) - %s\n", student, student.getStudentenNummer(), examen.getNaamVak());
  53. String[] verbetering = getVerbetering();
  54. int aantalCorrecteAntwoorden = getAantalCorrectAntwoorden();
  55.  
  56. for (int i = 0; i < examen.getAantalVragen(); i++)
  57. resultaat += String.format("Vraag %d: %s\n", i+1, verbetering[i]);
  58.  
  59. if(examen.isHogereCesuur()) {
  60. double eindscore = examen.bepaalScoreMetCesuur(aantalCorrecteAntwoorden);
  61. double hogereCesuur = examen.bepaalHogereCesuur();
  62. resultaat += String.format("Eindscore: %s/20 met een hogere cesuur van %s", eindscore, hogereCesuur);
  63. } else {
  64. double eindscore = examen.bepaalScoreZonderCesuur(aantalCorrecteAntwoorden);
  65. resultaat += String.format("Eindscore: %s/20", eindscore);
  66. }
  67. System.out.print(resultaat);
  68. }
  69.  
  70. private String[] getVerbetering() {
  71. String[] verbetering = new String[examen.getAantalVragen()];
  72. for (int i = 0; i < examen.getAantalVragen(); i++) {
  73. if(examen.getVragen().get(i).isCorrect(this.antwoorden[i]))
  74. verbetering[i] = "juist";
  75. else
  76. verbetering[i] = "fout";
  77. } return verbetering;
  78. }
  79.  
  80. private int getAantalCorrectAntwoorden() {
  81. int aantalCorrectAntwoorden = 0;
  82. for (int i = 0; i < examen.getAantalVragen(); i++) {
  83. if(examen.getVragen().get(i).isCorrect(this.antwoorden[i]))
  84. aantalCorrectAntwoorden++;
  85. } return aantalCorrectAntwoorden;
  86. }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement