Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.Serializable;
- import java.util.ArrayList;
- import java.util.Arrays;
- public class MCExamen {
- private String naamVak;
- private ArrayList<MCVraag> vragen;
- private boolean hogereCesuur;
- public MCExamen(String naamVak, File f,boolean hogereCesuur){
- this.naamVak = naamVak;
- this.hogereCesuur = hogereCesuur;
- this.vragen = new ArrayList<MCVraag>();
- leesVragen(f);
- vragen.trimToSize();
- System.out.println(vragen.size() + " MC vragen ingeladen!");
- }
- public void leesVragen(File f){
- try {
- ObjectInputStream is = new ObjectInputStream(new FileInputStream(f.getName()));
- vragen = new ArrayList<MCVraag>();
- vragen = (ArrayList<MCVraag>) is.readObject();
- } catch (FileNotFoundException ex) {
- System.out.println("Het bestand '" + f.getName() + "' kan niet gevonden worden!");
- } catch (Exception e) {
- System.out.println("Er is een probleem bij het inlezen van het bestand '" + f.getName() + "'!");
- }
- }
- public String getNaamVak() {
- return naamVak;
- }
- public ArrayList<MCVraag> getVragen() {
- return vragen;
- }
- public int getAantalVragen(){
- return vragen.size();
- }
- public int getAantalAntwoordenVanVraag(int vraagnummer){
- return this.vragen.get(vraagnummer).getAantalAntwoorden();
- }
- public boolean isHogereCesuur() {
- return hogereCesuur;
- }
- public double bepaalScoreZonderCesuur(int correcteAntw){
- double score;
- double correct = (double) correcteAntw;
- double aantal = (double) getAantalVragen();
- score = 20*correct/aantal;
- double z = Math.round(score*100);
- z /=100;
- return z;
- }
- public double bepaalHogereCesuur(){
- double cesuur=0;
- for(MCVraag vraag : vragen){
- cesuur+= (double)(((double)vraag.getAantalAntwoorden() + 1)/(2*(double)vraag.getAantalAntwoorden()));
- }
- return cesuur;
- }
- public double bepaalScoreMetCesuur(int correcteAntw){
- double c = bepaalHogereCesuur();
- double n = getAantalVragen();
- double y = correcteAntw;
- double z = 10+ (10*(y-c)/(n-c));
- z = Math.round(z*100);
- z/=100;
- if (z>=0){
- return z;
- }
- else {
- return 0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement