Hacer un programa en el que se declare un vector de 10 datos de tipo Test, asignándole valores al declararlo. Plantear a continuación un examen con las 5 preguntas almacenadas en el vector seleccionándolas de manera aleatoria y sin que haya preguntas repetidas. Se visualizará el número de preguntas acertadas y falladas.
package unidad3ejercicio9;
import java.util.Random;
import java.util.Scanner;
public class unidad3ejercicio10 {
public static void main(String[] args) {
Test[] examen = new Test[10];
String[] opciones = new String[4];
Random preguntaAleatoria = new Random();
int preguntas[] = new int[5];
Scanner reader = new Scanner(System.in);
char respuesta;
int correcta = 0;
int erronea = 0;
for (int i = 0; i < examen.length; i++) {
examen[i] = new Test();
}
opciones[0] = "23";
opciones[1] = "8";
opciones[2] = "12";
opciones[3] = "25";
examen[0].setNumeroDePregunta(1);
examen[0].setEnunciado("¿Cuantos bits tiene un byte?");
examen[0].setOpciones(opciones);
examen[0].setValida('b');
opciones[0] = "Ocurre al crear varios métodos en una clase";
opciones[1] = "Es la acción de crear clases derivadas de una clase b";
opciones[2] = "Ocurre al crear un método sin retorno";
opciones[3] = "Ocurre al definir variables en una clase";
examen[1].setNumeroDePregunta(2);
examen[1].setEnunciado("¿Que entiende por herencia en Java?");
examen[1].setOpciones(opciones);
examen[1].setValida('b');
opciones[0] = "new";
opciones[1] = "abstract";
opciones[2] = "public";
opciones[3] = "private";
examen[2].setNumeroDePregunta(3);
examen[2].setEnunciado("¿Una clase o un método son abstractos si se declaran con la palabra reservada?");
examen[2].setOpciones(opciones);
examen[2].setValida('b');
opciones[0] = "Es una clase que no puede ser instanciada";
opciones[1] = "Secuencia de caracteres delimitada entre dobles comillas";
opciones[2] = "Es un método abstracto";
opciones[3] = "Son caracteres sin dobles comillas";
examen[3].setNumeroDePregunta(4);
examen[3].setEnunciado("¿Que es una cadena?");
examen[3].setOpciones(opciones);
examen[3].setValida('d');
opciones[0] = "IndexOf";
opciones[1] = "ReadLine";
opciones[2] = "Equals";
opciones[3] = "Trim";
examen[4].setNumeroDePregunta(5);
examen[4].setEnunciado("¿Método creado para la entrada de datos desde teclado?");
examen[4].setOpciones(opciones);
examen[4].setValida('b');
opciones[0] = "Getchars";
opciones[1] = "LastIndexOf";
opciones[2] = "Length";
opciones[3] = "CompareTo";
examen[5].setNumeroDePregunta(6);
examen[5].setEnunciado("¿Método que calcula el número de caracteres o longitud de un objeto cadena?");
examen[5].setOpciones(opciones);
examen[5].setValida('c');
opciones[0] = "Solo los métodos";
opciones[1] = "Solo las variables";
opciones[2] = "Variables y métodos";
opciones[3] = "No hereda nada";
examen[6].setNumeroDePregunta(7);
examen[6].setEnunciado("¿Al crear una clase derivada de una clase base se hereda?");
examen[6].setOpciones(opciones);
examen[6].setValida('c');
opciones[0] = "public class Componente extends Producto";
opciones[1] = "public class Componente inherit Producto";
opciones[2] = "public class Componente implements Producto";
opciones[3] = "public class Componente belong to Producto";
examen[7].setNumeroDePregunta(8);
examen[7].setEnunciado("¿Qué código de los siguientes tiene que ver con la herencia?");
examen[7].setOpciones(opciones);
examen[7].setValida('a');
opciones[0] = "Una libreria de Java";
opciones[1] = "Una versión de Java especial para servidores";
opciones[2] = "Un IDE para desarrollar aplicaciones";
opciones[3] = "Ninguna de las anteriores";
examen[8].setNumeroDePregunta(9);
examen[8].setEnunciado("¿Qué es Eclipse?");
examen[8].setOpciones(opciones);
examen[8].setValida('c');
opciones[0] = "Sus cardinalidad y su tipo";
opciones[1] = "Sus atributos y sus métodos";
opciones[2] = "La forma en que establece comunicación e intercambia mensajes";
opciones[3] = "Su interfaz y los eventos asociados";
examen[9].setNumeroDePregunta(10);
examen[9].setEnunciado("¿Qué elementos crees que definen a un objeto?");
examen[9].setOpciones(opciones);
examen[9].setValida('b');
int x=0;
int y=0;
while (x < preguntas.length) {
preguntas[x] = preguntaAleatoria.nextInt(10);
while(preguntas[x] != preguntas[y] && y<x) ++y;
if (x==y) ++x;
}
/*
for (int i = 0; i < preguntas.length; i++) {
preguntas[i] = preguntaAleatoria.nextInt(10);
//recorremos el vector para ver si en los elementos
//anteriores al que acabo de generar no está
for (int j = 0; j < i; j++) {
if (preguntas[i] == preguntas[j]) {
i--;
break;
}
}
}
*
*/
for (int i = 0; i < preguntas.length; i++) {
System.out.println("Pregunta numero: " + (i + 1));
examen[preguntas[i]].presenta();
System.out.println("Introduce la respuesta correcta: ");
respuesta = (reader.nextLine()).charAt(0);
if (respuesta == examen[preguntas[i]].getValida()) {
correcta++;
} else {
erronea++;
}
}
System.out.println("Preguntas acertadas: " + correcta);
System.out.println("Preguntas falladas: " + erronea);
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package unidad3ejercicio9;
/**
*
* @author juan
*/
public class Test {
private int numero;
private String enunciado;
private String [] opciones;
private char valida;
public Test(int numero, String enunciado, String[] opciones, char valida) {
this.opciones = new String[5];
this.numero = numero;
this.enunciado = enunciado;
System.arraycopy(opciones, 0, this.opciones, 0, opciones.length);
/*
for (int i = 0; i < opciones.length; i++) {
this.opciones[i] = opciones[i];
}
*/
this.valida = valida;
}
public Test() {
numero=0;
enunciado="";
opciones = new String[4];
}
public String getEnunciado() {
return enunciado;
}
public void setEnunciado(String enunciado) {
this.enunciado = enunciado;
}
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
this.numero = numero;
}
public void setNumeroDePregunta(int numero) {
this.numero = numero;
}
public String[] getOpciones() {
return opciones;
}
public void setOpciones(String[] opciones) {
System.arraycopy(opciones, 0, this.opciones, 0, opciones.length);
}
public char getValida() {
return valida;
}
public void setValida(char valida) {
this.valida = valida;
}
public void presenta(){
System.out.print(numero + ".- ");
System.out.println(enunciado);
System.out.printf("\t a.- %s%n",opciones[0]);
System.out.printf("\t b.- %s%n",opciones[1]);
System.out.printf("\t c.- %s%n",opciones[2]);
System.out.printf("\t d.- %s%n",opciones[3]);
}
}
No hay comentarios:
Publicar un comentario