Class: Examen

Inherits:
Object
  • Object
show all
Defined in:
lib/exam/examen.rb

Overview

Clase examen, que contiene una lista de preguntas y permite la realización de un exámen tipo test con las mismas.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(lista) ⇒ Examen

Constructor.



9
10
11
12
13
14
# File 'lib/exam/examen.rb', line 9

def initialize (lista)
       lista.ordenar
  @preguntas = lista
       @nota = 0
#inicializamos un array con 0 elementos para las respuestas
end

Instance Attribute Details

#notaObject (readonly)

Returns the value of attribute nota.



6
7
8
# File 'lib/exam/examen.rb', line 6

def nota
  @nota
end

Instance Method Details

#hacer_examen(respuestas) ⇒ Object

Método que comprueba las respuestas tomando un Array de respuestas. Sirve para la comprobación no interactiva de las respuestas.



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/exam/examen.rb', line 38

def hacer_examen
    score = 0
       @preguntas.each do |preg|
           puts preg.to_s
           resp = gets.chomp
           this = preg.value.resp_correcta?(resp)
           if (this == true)
               score += 1 
               puts "Respuesta correcta"
           else
               puts "Respuesta incorrecta"
           end
       end
       puts "Puntuacion: " + score
end

#inversoObject



31
32
33
34
35
# File 'lib/exam/examen.rb', line 31

def inverso
    respuesta = ""
    @preguntas.reverse_each{|x,y| respuesta += "#{x.value.to_s}\n"}
    respuesta
end

#to_sObject

Método que devuelve el examen como un String.



17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/exam/examen.rb', line 17

def to_s
       aux = @preguntas.head
       respuesta = ""
       respuesta += aux.value.to_s
       respuesta += "\n"
       while (aux != @preguntas.tail) do
           aux = aux.next
           respuesta += aux.value.to_s
           respuesta += "\n"
       end
       respuesta
end