Class: Examenes::UI

Inherits:
Object
  • Object
show all
Defined in:
lib/Examenes/interfaz.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(examen) ⇒ UI

Constructor incializa los atributos



31
32
33
34
35
36
# File 'lib/Examenes/interfaz.rb', line 31

def initialize (examen)
  @contenido = examen
  @aciertos = 0
  @nota = -1
  @numeroPreguntas = examen.lista_preguntas.count
end

Instance Attribute Details

#aciertosObject (readonly)

Tres tipos de atributos, contenido, aciertos y nota.



28
29
30
# File 'lib/Examenes/interfaz.rb', line 28

def aciertos
  @aciertos
end

#contenidoObject (readonly)

Tres tipos de atributos, contenido, aciertos y nota.



28
29
30
# File 'lib/Examenes/interfaz.rb', line 28

def contenido
  @contenido
end

#notaObject (readonly)

Tres tipos de atributos, contenido, aciertos y nota.



28
29
30
# File 'lib/Examenes/interfaz.rb', line 28

def nota
  @nota
end

Instance Method Details

#cabeceraObject

Mensaje aparece antes de ejecutar las operaciones



85
86
87
88
89
90
91
92
93
# File 'lib/Examenes/interfaz.rb', line 85

def cabecera
  puts ""
  puts ""
  puts "***Examen de Lenguajes y Paradigmas de la Programacion***"
  puts "  Responda poniendo el caracter de la respuesta elegida."
  print " El examen consta de "
  print @numeroPreguntas
  puts " preguntas tipo test."
end

#comparar(numeroPregunta, respuesta) ⇒ Object

Realiza una comparaciĆ³n de la respuesta respondida



65
66
67
68
69
70
# File 'lib/Examenes/interfaz.rb', line 65

def comparar(numeroPregunta, respuesta)
  if respuesta == @contenido.lista_soluciones.obtenerValor(numeroPregunta) then
    @aciertos = @aciertos + 1
    return true
  end
end

#examinar(*resp) ⇒ Object

Examina la respuesta introducida



96
97
98
99
100
101
102
103
# File 'lib/Examenes/interfaz.rb', line 96

def examinar(*resp)
  cabecera
  for i in 1..@numeroPreguntas
    puts mostrarPregunta(i)
    input(i,resp[i-1])
  end
  return notaFinal
end

#input(numeroPregunta, resp = 0) ⇒ Object

Muestra por pantalla la respuesta correspondiente



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/Examenes/interfaz.rb', line 46

def input(numeroPregunta, resp=0)
  puts ""
  print "Respuesta: "
  STDOUT.flush
  if resp == 0 then
    respuesta = gets.chomp
  else
    respuesta = resp
    puts respuesta
  end
  puts ""
  puts ""
  puts ""
  puts ""
  comparar(numeroPregunta, respuesta)
  return true
end

#invertirObject



119
120
121
# File 'lib/Examenes/interfaz.rb', line 119

def invertir
  @contenido = invertirExamen(@contenido)
end

#invertirExamen(examen) ⇒ Object

Invierte las preguntas del examen



113
114
115
116
117
# File 'lib/Examenes/interfaz.rb', line 113

def invertirExamen(examen)
    examen.establecerPreguntas (invertirLista (examen.obtenerPreguntas))
    examen.establecerSoluciones (invertirLista (examen.obtenerSoluciones))
    return examen
end

#invertirLista(lista) ⇒ Object

Invierte la lista



106
107
108
109
110
# File 'lib/Examenes/interfaz.rb', line 106

def invertirLista(lista)
    listaTemp = Examenes::List.new
    lista.map { |elemento| listaTemp.push(elemento) }
    return listaTemp
end

#mostrarPregunta(numero) ⇒ Object

Muestra por pantalla la pregunta



39
40
41
42
43
# File 'lib/Examenes/interfaz.rb', line 39

def mostrarPregunta(numero)
  print "Pregunta"
  puts numero
  return @contenido.obtenerPregunta(numero)
end

#notaFinalObject

Muestra la nota final del examen



73
74
75
76
77
78
79
80
81
82
# File 'lib/Examenes/interfaz.rb', line 73

def notaFinal
  print "Aciertos: "
  print @aciertos
  print " / "
  puts @numeroPreguntas
  print "Su nota ha sido: "
  @nota = ((@aciertos * 10) / @numeroPreguntas)
  print @nota
  return @nota
end