Test.java
Created with JBuilder

/**
 * Clase Test. Mantiene información de los datos de un test
 *
 * @author Fco Gutiérrez MAQUINA: propia
 * @version 1.0 4/2/2001
 */
public class Test
{
    // Variables de clase
    static private int ValorPositivas; // Valor de una respuesta acertada
    static private int ValorNegativas; // Valor de una respuesta fallada
    // variables de instancia
    private int numModelos;            // Número de modelos distintos
    private int numPreguntas;          // Preguntas en cada modelo
    private String [] respCorrectas;   // Respuestas por modelo
    // Por defecto se toman estos valores
    static {
        ValorPositivas = 3;
        ValorNegativas = -1;
    }

    /**
     * ValorPositivas. Modifica el valor de una pregunta acertada
     *
     * @param  vp  nuevo valor para las preguntas acertadas
     * @return
     */
    public static void ValorPositivas(int vp) {
        ValorPositivas = vp;
    }

    /**
     * ValorNegativas. Modifica el valor de una pregunta fallada
     *
     * @param  vn  nuevo valor para las preguntas falladas
     * @return
     */
    public static void ValorNegativas(int vn) {
        ValorNegativas = vn;
    }

    /**
     * Constructor para objetos de la clase Test
     * @param  nMod    Número de modelos que tendrá el test
     * @param  nRpsMod Número de preguntas por modelo
     */
    public Test(int nMod, int nPrgMod) {
        // initializa las variables de instancia
        numModelos = nMod;
        numPreguntas = nPrgMod;
        respCorrectas = new String[numModelos+1]; // No utilizamos la pos 0
    }

    /**
     * respModelo - Indica la respuenta correcta a un modelo dado
     *
     * @param  i   Número de modelo
     * @param  s   Respuesta correcta
     * @return
     */
    public void respModelo(int i,String rC) throws Exception {
        // escriba su código aquí
        if (rC.length() != numPreguntas) {
            throw (new Exception("respModelo: Longitud inválida en Modelo"+rC));
        } else if ((i<=0)|| (i>numModelos)) {
            throw (new Exception("respModelo: Número de modelo no válido"+i));
        }
        respCorrectas[i] = rC;
    }

    /**
     * corrigeModelo - Corrige un modelo dado
     *
     * @param  i   Número de modelo
     * @param  rM  Respuesta dada al modelo i
     * @return     Puntuación obtenida
     */
    public int corrigeModelo(int i,String rM) throws Exception {
        // escriba su código aquí
        if (rM.length() != numPreguntas) {
            throw (new Exception("corrigeModelo: Longitud inválida en Modelo"+rM));
        } else if ((i<=0)||(i>numModelos)) {
            throw (new Exception("corrigeModelo: Número de modelo no válido"+i));
        }
        int a=0,b=0,f=0; // aciertos, en blanco, fallos
        for (int x=0;x<numPreguntas;x++) {
            char c = rM.charAt(x);
            char r = respCorrectas[i].charAt(x);
            if (c == ' ') {
                b++;
            } else if (c==r) {
                a++;
            } else {
                f++;
            }
        }
        return a*ValorPositivas+f*ValorNegativas;
    }

    /**
     * numModelos  Devuelve el número de modelos
     *
     * @return     el número de modelos
     */
    public int numModelos() {
        return numModelos;
    }

    /**
     * numPreguntas Devuelve el número de preguntas por modelo
     *
     * @return     El número de preguntas por modelo
     */
    public int numPreguntas() {
        return numPreguntas;
    }

}


Test.java
Created with JBuilder