examLPP 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +5 -0
- data/.rspec +2 -0
- data/.travis.yml +4 -0
- data/Gemfile +5 -0
- data/Guardfile +70 -0
- data/LICENSE.txt +22 -0
- data/README.md +19 -0
- data/Rakefile +6 -0
- data/coverage/.last_run.json +5 -0
- data/coverage/.resultset.json +714 -0
- data/doc/Exam.html +112 -0
- data/doc/Examen.html +319 -0
- data/doc/Gemfile.html +101 -0
- data/doc/Gemfile_lock.html +186 -0
- data/doc/Guardfile.html +169 -0
- data/doc/LICENSE_txt.html +116 -0
- data/doc/Lista.html +472 -0
- data/doc/Nodo.html +264 -0
- data/doc/Object.html +119 -0
- data/doc/Pregunta.html +346 -0
- data/doc/PreguntaS.html +338 -0
- data/doc/PreguntaVF.html +210 -0
- data/doc/README_md.html +120 -0
- data/doc/Rakefile.html +99 -0
- data/doc/created.rid +18 -0
- data/doc/exam_gemspec.html +127 -0
- data/doc/fonts.css +167 -0
- data/doc/fonts/Lato-Light.ttf +0 -0
- data/doc/fonts/Lato-LightItalic.ttf +0 -0
- data/doc/fonts/Lato-Regular.ttf +0 -0
- data/doc/fonts/Lato-RegularItalic.ttf +0 -0
- data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
- data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
- data/doc/images/add.png +0 -0
- data/doc/images/arrow_up.png +0 -0
- data/doc/images/brick.png +0 -0
- data/doc/images/brick_link.png +0 -0
- data/doc/images/bug.png +0 -0
- data/doc/images/bullet_black.png +0 -0
- data/doc/images/bullet_toggle_minus.png +0 -0
- data/doc/images/bullet_toggle_plus.png +0 -0
- data/doc/images/date.png +0 -0
- data/doc/images/delete.png +0 -0
- data/doc/images/find.png +0 -0
- data/doc/images/loadingAnimation.gif +0 -0
- data/doc/images/macFFBgHack.png +0 -0
- data/doc/images/package.png +0 -0
- data/doc/images/page_green.png +0 -0
- data/doc/images/page_white_text.png +0 -0
- data/doc/images/page_white_width.png +0 -0
- data/doc/images/plugin.png +0 -0
- data/doc/images/ruby.png +0 -0
- data/doc/images/tag_blue.png +0 -0
- data/doc/images/tag_green.png +0 -0
- data/doc/images/transparent.png +0 -0
- data/doc/images/wrench.png +0 -0
- data/doc/images/wrench_orange.png +0 -0
- data/doc/images/zoom.png +0 -0
- data/doc/index.html +118 -0
- data/doc/js/darkfish.js +140 -0
- data/doc/js/jquery.js +18 -0
- data/doc/js/navigation.js +142 -0
- data/doc/js/search.js +109 -0
- data/doc/js/search_index.js +1 -0
- data/doc/js/searcher.js +228 -0
- data/doc/rdoc.css +580 -0
- data/doc/table_of_contents.html +222 -0
- data/exam.gemspec +32 -0
- data/lib/exam.rb +12 -0
- data/lib/exam/examen.rb +69 -0
- data/lib/exam/lista.rb +109 -0
- data/lib/exam/nodo.rb +14 -0
- data/lib/exam/pregunta.rb +38 -0
- data/lib/exam/preguntaMadre.rb +47 -0
- data/lib/exam/preguntaVF.rb +19 -0
- data/lib/exam/quiz.rb +44 -0
- data/lib/exam/version.rb +3 -0
- data/pkg/exam-0.0.1.gem +0 -0
- data/spec/exam_spec.rb +353 -0
- data/spec/spec_helper.rb +22 -0
- metadata +226 -0
@@ -0,0 +1,222 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<meta charset="UTF-8">
|
6
|
+
|
7
|
+
<title>Table of Contents - RDoc Documentation</title>
|
8
|
+
|
9
|
+
<link href="./fonts.css" rel="stylesheet">
|
10
|
+
<link href="./rdoc.css" rel="stylesheet">
|
11
|
+
|
12
|
+
<script type="text/javascript">
|
13
|
+
var rdoc_rel_prefix = "./";
|
14
|
+
</script>
|
15
|
+
|
16
|
+
<script src="./js/jquery.js"></script>
|
17
|
+
<script src="./js/navigation.js"></script>
|
18
|
+
<script src="./js/search_index.js"></script>
|
19
|
+
<script src="./js/search.js"></script>
|
20
|
+
<script src="./js/searcher.js"></script>
|
21
|
+
<script src="./js/darkfish.js"></script>
|
22
|
+
|
23
|
+
|
24
|
+
<body id="top" class="table-of-contents">
|
25
|
+
<main role="main">
|
26
|
+
<h1 class="class">Table of Contents - RDoc Documentation</h1>
|
27
|
+
|
28
|
+
<h2 id="pages">Pages</h2>
|
29
|
+
<ul>
|
30
|
+
<li class="file">
|
31
|
+
<a href="Gemfile.html">Gemfile</a>
|
32
|
+
</li>
|
33
|
+
<li class="file">
|
34
|
+
<a href="Gemfile_lock.html">Gemfile.lock</a>
|
35
|
+
</li>
|
36
|
+
<li class="file">
|
37
|
+
<a href="Guardfile.html">Guardfile</a>
|
38
|
+
</li>
|
39
|
+
<li class="file">
|
40
|
+
<a href="LICENSE_txt.html">LICENSE</a>
|
41
|
+
</li>
|
42
|
+
<li class="file">
|
43
|
+
<a href="README_md.html">README</a>
|
44
|
+
|
45
|
+
<ul>
|
46
|
+
<li><a href="README_md.html#label-Practica+10+Programaci%C3%B3n+Funcional.+Funciones+de+orden+superior.">Practica 10 Programación Funcional. Funciones de orden superior.</a>
|
47
|
+
</ul>
|
48
|
+
</li>
|
49
|
+
<li class="file">
|
50
|
+
<a href="Rakefile.html">Rakefile</a>
|
51
|
+
</li>
|
52
|
+
<li class="file">
|
53
|
+
<a href="exam_gemspec.html">exam.gemspec</a>
|
54
|
+
</li>
|
55
|
+
|
56
|
+
</ul>
|
57
|
+
|
58
|
+
<h2 id="classes">Classes and Modules</h2>
|
59
|
+
<ul>
|
60
|
+
<li class="module">
|
61
|
+
<a href="Exam.html">Exam</a>
|
62
|
+
</li>
|
63
|
+
<li class="class">
|
64
|
+
<a href="Examen.html">Examen</a>
|
65
|
+
</li>
|
66
|
+
<li class="class">
|
67
|
+
<a href="Lista.html">Lista</a>
|
68
|
+
</li>
|
69
|
+
<li class="class">
|
70
|
+
<a href="Nodo.html">Nodo</a>
|
71
|
+
</li>
|
72
|
+
<li class="class">
|
73
|
+
<a href="Object.html">Object</a>
|
74
|
+
</li>
|
75
|
+
<li class="class">
|
76
|
+
<a href="Pregunta.html">Pregunta</a>
|
77
|
+
</li>
|
78
|
+
<li class="class">
|
79
|
+
<a href="PreguntaS.html">PreguntaS</a>
|
80
|
+
</li>
|
81
|
+
<li class="class">
|
82
|
+
<a href="PreguntaVF.html">PreguntaVF</a>
|
83
|
+
</li>
|
84
|
+
</ul>
|
85
|
+
|
86
|
+
<h2 id="methods">Methods</h2>
|
87
|
+
<ul>
|
88
|
+
|
89
|
+
<li class="method">
|
90
|
+
<a href="Examen.html#method-c-new">::new</a>
|
91
|
+
—
|
92
|
+
<span class="container">Examen</span>
|
93
|
+
|
94
|
+
<li class="method">
|
95
|
+
<a href="PreguntaVF.html#method-c-new">::new</a>
|
96
|
+
—
|
97
|
+
<span class="container">PreguntaVF</span>
|
98
|
+
|
99
|
+
<li class="method">
|
100
|
+
<a href="PreguntaS.html#method-c-new">::new</a>
|
101
|
+
—
|
102
|
+
<span class="container">PreguntaS</span>
|
103
|
+
|
104
|
+
<li class="method">
|
105
|
+
<a href="Nodo.html#method-c-new">::new</a>
|
106
|
+
—
|
107
|
+
<span class="container">Nodo</span>
|
108
|
+
|
109
|
+
<li class="method">
|
110
|
+
<a href="Lista.html#method-c-new">::new</a>
|
111
|
+
—
|
112
|
+
<span class="container">Lista</span>
|
113
|
+
|
114
|
+
<li class="method">
|
115
|
+
<a href="Pregunta.html#method-c-new">::new</a>
|
116
|
+
—
|
117
|
+
<span class="container">Pregunta</span>
|
118
|
+
|
119
|
+
<li class="method">
|
120
|
+
<a href="Nodo.html#method-i-3C-3D-3E">#<=></a>
|
121
|
+
—
|
122
|
+
<span class="container">Nodo</span>
|
123
|
+
|
124
|
+
<li class="method">
|
125
|
+
<a href="Pregunta.html#method-i-3C-3D-3E">#<=></a>
|
126
|
+
—
|
127
|
+
<span class="container">Pregunta</span>
|
128
|
+
|
129
|
+
<li class="method">
|
130
|
+
<a href="Pregunta.html#method-i-3D-3D">#==</a>
|
131
|
+
—
|
132
|
+
<span class="container">Pregunta</span>
|
133
|
+
|
134
|
+
<li class="method">
|
135
|
+
<a href="Lista.html#method-i-addn">#addn</a>
|
136
|
+
—
|
137
|
+
<span class="container">Lista</span>
|
138
|
+
|
139
|
+
<li class="method">
|
140
|
+
<a href="PreguntaS.html#method-i-addr">#addr</a>
|
141
|
+
—
|
142
|
+
<span class="container">PreguntaS</span>
|
143
|
+
|
144
|
+
<li class="method">
|
145
|
+
<a href="Lista.html#method-i-deln">#deln</a>
|
146
|
+
—
|
147
|
+
<span class="container">Lista</span>
|
148
|
+
|
149
|
+
<li class="method">
|
150
|
+
<a href="Lista.html#method-i-each">#each</a>
|
151
|
+
—
|
152
|
+
<span class="container">Lista</span>
|
153
|
+
|
154
|
+
<li class="method">
|
155
|
+
<a href="Examen.html#method-i-hacer_examen">#hacer_examen</a>
|
156
|
+
—
|
157
|
+
<span class="container">Examen</span>
|
158
|
+
|
159
|
+
<li class="method">
|
160
|
+
<a href="Lista.html#method-i-head">#head</a>
|
161
|
+
—
|
162
|
+
<span class="container">Lista</span>
|
163
|
+
|
164
|
+
<li class="method">
|
165
|
+
<a href="Examen.html#method-i-inverso">#inverso</a>
|
166
|
+
—
|
167
|
+
<span class="container">Examen</span>
|
168
|
+
|
169
|
+
<li class="method">
|
170
|
+
<a href="Lista.html#method-i-ordenar">#ordenar</a>
|
171
|
+
—
|
172
|
+
<span class="container">Lista</span>
|
173
|
+
|
174
|
+
<li class="method">
|
175
|
+
<a href="PreguntaS.html#method-i-preg">#preg</a>
|
176
|
+
—
|
177
|
+
<span class="container">PreguntaS</span>
|
178
|
+
|
179
|
+
<li class="method">
|
180
|
+
<a href="PreguntaS.html#method-i-resp">#resp</a>
|
181
|
+
—
|
182
|
+
<span class="container">PreguntaS</span>
|
183
|
+
|
184
|
+
<li class="method">
|
185
|
+
<a href="Pregunta.html#method-i-resp_correcta-3F">#resp_correcta?</a>
|
186
|
+
—
|
187
|
+
<span class="container">Pregunta</span>
|
188
|
+
|
189
|
+
<li class="method">
|
190
|
+
<a href="Lista.html#method-i-tail">#tail</a>
|
191
|
+
—
|
192
|
+
<span class="container">Lista</span>
|
193
|
+
|
194
|
+
<li class="method">
|
195
|
+
<a href="Lista.html#method-i-to_s">#to_s</a>
|
196
|
+
—
|
197
|
+
<span class="container">Lista</span>
|
198
|
+
|
199
|
+
<li class="method">
|
200
|
+
<a href="PreguntaS.html#method-i-to_s">#to_s</a>
|
201
|
+
—
|
202
|
+
<span class="container">PreguntaS</span>
|
203
|
+
|
204
|
+
<li class="method">
|
205
|
+
<a href="Examen.html#method-i-to_s">#to_s</a>
|
206
|
+
—
|
207
|
+
<span class="container">Examen</span>
|
208
|
+
|
209
|
+
<li class="method">
|
210
|
+
<a href="PreguntaVF.html#method-i-to_s">#to_s</a>
|
211
|
+
—
|
212
|
+
<span class="container">PreguntaVF</span>
|
213
|
+
</ul>
|
214
|
+
</main>
|
215
|
+
|
216
|
+
|
217
|
+
<footer id="validator-badges" role="contentinfo">
|
218
|
+
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
219
|
+
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.0.
|
220
|
+
<p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
221
|
+
</footer>
|
222
|
+
|
data/exam.gemspec
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'exam/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "examLPP"
|
8
|
+
spec.version = Exam::VERSION
|
9
|
+
spec.authors = ["alu0100775846"]
|
10
|
+
spec.email = ["alu0100775846@ull.edu.es"]
|
11
|
+
spec.summary = %q{Preguntas simples + lista enlazada.}
|
12
|
+
spec.description = %q{En esta gema, se trabaja sobre un
|
13
|
+
programa para trabajar la creacion de examenes
|
14
|
+
y una lista enlazada..}
|
15
|
+
spec.homepage = ""
|
16
|
+
spec.license = "MIT"
|
17
|
+
|
18
|
+
spec.files = `git ls-files -z`.split("\x0")
|
19
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
20
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
21
|
+
spec.require_paths = ["lib"]
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.7"
|
24
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
25
|
+
spec.add_development_dependency "rspec", "~> 2.11"
|
26
|
+
|
27
|
+
spec.add_development_dependency "guard"
|
28
|
+
spec.add_development_dependency "guard-rspec"
|
29
|
+
spec.add_development_dependency "guard-bundler"
|
30
|
+
spec.add_development_dependency "coveralls"
|
31
|
+
|
32
|
+
end
|
data/lib/exam.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require "exam/version"
|
3
|
+
require 'exam/preguntaMadre'
|
4
|
+
require 'exam/pregunta'
|
5
|
+
require 'exam/preguntaVF'
|
6
|
+
require 'exam/lista'
|
7
|
+
require 'exam/examen.rb'
|
8
|
+
require 'exam/quiz.rb'
|
9
|
+
|
10
|
+
module Exam
|
11
|
+
# Your code goes here...
|
12
|
+
end
|
data/lib/exam/examen.rb
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
#Clase examen, que contiene una lista de preguntas
|
4
|
+
#y permite la realización de un exámen tipo test con las mismas.
|
5
|
+
class Examen
|
6
|
+
attr_reader :nota
|
7
|
+
|
8
|
+
#Constructor.
|
9
|
+
def initialize (lista)
|
10
|
+
lista.ordenar
|
11
|
+
@preguntas = lista
|
12
|
+
@nota = 0
|
13
|
+
#inicializamos un array con 0 elementos para las respuestas
|
14
|
+
end
|
15
|
+
|
16
|
+
#Método que devuelve el examen como un String.
|
17
|
+
def to_s
|
18
|
+
aux = @preguntas.head
|
19
|
+
respuesta = ""
|
20
|
+
respuesta += aux.value.to_s
|
21
|
+
respuesta += "\n"
|
22
|
+
while (aux != @preguntas.tail) do
|
23
|
+
aux = aux.next
|
24
|
+
respuesta += aux.value.to_s
|
25
|
+
respuesta += "\n"
|
26
|
+
end
|
27
|
+
respuesta
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
def inverso
|
32
|
+
respuesta = ""
|
33
|
+
@preguntas.reverse_each{|x,y| respuesta += "#{x.value.to_s}\n"}
|
34
|
+
respuesta
|
35
|
+
end
|
36
|
+
|
37
|
+
#Método que permite la realización del exament de forma interactiva.
|
38
|
+
def hacer_examen
|
39
|
+
score = 0
|
40
|
+
@preguntas.each do |preg|
|
41
|
+
puts preg.to_s
|
42
|
+
resp = gets.chomp
|
43
|
+
this = preg.value.resp_correcta?(resp)
|
44
|
+
if (this == true)
|
45
|
+
score += 1
|
46
|
+
puts "Respuesta correcta"
|
47
|
+
else
|
48
|
+
puts "Respuesta incorrecta"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
puts "Puntuacion: " + score
|
52
|
+
end
|
53
|
+
|
54
|
+
#Método que comprueba las respuestas tomando un Array de respuestas.
|
55
|
+
#Sirve para la comprobación no interactiva de las respuestas.
|
56
|
+
def hacer_examen(respuestas)
|
57
|
+
score = 0
|
58
|
+
contador = 0
|
59
|
+
@preguntas.each do |preg|
|
60
|
+
resp = respuestas[contador]
|
61
|
+
this = preg.value.resp_correcta?(resp)
|
62
|
+
if (this == true)
|
63
|
+
score += 1
|
64
|
+
end
|
65
|
+
contador += 1
|
66
|
+
end
|
67
|
+
return score
|
68
|
+
end
|
69
|
+
end
|
data/lib/exam/lista.rb
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'pry'
|
3
|
+
|
4
|
+
#Definicion de nodo como un Struct
|
5
|
+
Nodo = Struct.new(:value, :next, :previus)
|
6
|
+
|
7
|
+
#Nodo como objeto comparable y ordenable (se mira el valor que contiene)
|
8
|
+
class Nodo
|
9
|
+
include Comparable
|
10
|
+
def <=> (other)
|
11
|
+
value <=> other.value
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
#Clase lista, que representa una lista simplemente enlazada de nodos
|
16
|
+
class Lista
|
17
|
+
include Enumerable
|
18
|
+
|
19
|
+
#Método constructor
|
20
|
+
def initialize
|
21
|
+
@head = nil
|
22
|
+
@tail = nil
|
23
|
+
end
|
24
|
+
|
25
|
+
#Coloca un nuevo nodo como cabeza (push)
|
26
|
+
def addn(nodo2) #coloca un nuevo nodo como cabeza !push
|
27
|
+
nodo = Nodo.new()
|
28
|
+
|
29
|
+
if (nodo2.class == Nodo)
|
30
|
+
nodo = nodo2
|
31
|
+
else
|
32
|
+
nodo.value = nodo2
|
33
|
+
end
|
34
|
+
|
35
|
+
nodo.next = @head
|
36
|
+
|
37
|
+
if (!@head.nil? && @head.next.nil?)
|
38
|
+
@tail = @head
|
39
|
+
@tail.next = nil
|
40
|
+
end
|
41
|
+
|
42
|
+
if (!head.nil?)
|
43
|
+
@head.previus = nodo
|
44
|
+
end
|
45
|
+
|
46
|
+
nodo.previus = nil
|
47
|
+
#si en vez de nil ponemos tail, es una lsita circular, es decir unimos head con tail en previus
|
48
|
+
|
49
|
+
@head = nodo
|
50
|
+
|
51
|
+
#@tail.next = @head añadir esto para que la lista sea circular tail apuntara a head como siguiente
|
52
|
+
end
|
53
|
+
|
54
|
+
#Elimina el nodo cabeza (pop)
|
55
|
+
def deln
|
56
|
+
aux = @head
|
57
|
+
if (@head.next.nil?)
|
58
|
+
@tail = nil
|
59
|
+
@head = nil
|
60
|
+
else
|
61
|
+
@head = @head.next
|
62
|
+
@head.previus = @tail
|
63
|
+
end
|
64
|
+
aux.value
|
65
|
+
end
|
66
|
+
|
67
|
+
#Devuelve el nodo que esta en cabeza
|
68
|
+
def head
|
69
|
+
@head
|
70
|
+
end
|
71
|
+
|
72
|
+
#Devuelve el nodo que está al final
|
73
|
+
def tail
|
74
|
+
@tail
|
75
|
+
end
|
76
|
+
|
77
|
+
#Método que sirve para iterar por todos los nodos de la lista
|
78
|
+
def each(&block)
|
79
|
+
current_node = @head
|
80
|
+
|
81
|
+
while current_node != nil
|
82
|
+
block.call(current_node)
|
83
|
+
current_node = current_node.next
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
#Método que sirve para ordenar la lista.
|
88
|
+
def ordenar()
|
89
|
+
contador = (self.count)
|
90
|
+
contador = contador-1
|
91
|
+
aux = self.sort
|
92
|
+
@head = nil
|
93
|
+
@tail = aux[0]
|
94
|
+
while (contador >= 0) do
|
95
|
+
self.addn(aux[contador])
|
96
|
+
contador = contador-1
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
100
|
+
|
101
|
+
#Devuelve la lista como String (usado en testeo)
|
102
|
+
def to_s #para testear
|
103
|
+
self.each do |l|
|
104
|
+
print l.value.to_s + " -> "
|
105
|
+
end
|
106
|
+
puts ""
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|