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.
Files changed (83) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +5 -0
  4. data/.rspec +2 -0
  5. data/.travis.yml +4 -0
  6. data/Gemfile +5 -0
  7. data/Guardfile +70 -0
  8. data/LICENSE.txt +22 -0
  9. data/README.md +19 -0
  10. data/Rakefile +6 -0
  11. data/coverage/.last_run.json +5 -0
  12. data/coverage/.resultset.json +714 -0
  13. data/doc/Exam.html +112 -0
  14. data/doc/Examen.html +319 -0
  15. data/doc/Gemfile.html +101 -0
  16. data/doc/Gemfile_lock.html +186 -0
  17. data/doc/Guardfile.html +169 -0
  18. data/doc/LICENSE_txt.html +116 -0
  19. data/doc/Lista.html +472 -0
  20. data/doc/Nodo.html +264 -0
  21. data/doc/Object.html +119 -0
  22. data/doc/Pregunta.html +346 -0
  23. data/doc/PreguntaS.html +338 -0
  24. data/doc/PreguntaVF.html +210 -0
  25. data/doc/README_md.html +120 -0
  26. data/doc/Rakefile.html +99 -0
  27. data/doc/created.rid +18 -0
  28. data/doc/exam_gemspec.html +127 -0
  29. data/doc/fonts.css +167 -0
  30. data/doc/fonts/Lato-Light.ttf +0 -0
  31. data/doc/fonts/Lato-LightItalic.ttf +0 -0
  32. data/doc/fonts/Lato-Regular.ttf +0 -0
  33. data/doc/fonts/Lato-RegularItalic.ttf +0 -0
  34. data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
  35. data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
  36. data/doc/images/add.png +0 -0
  37. data/doc/images/arrow_up.png +0 -0
  38. data/doc/images/brick.png +0 -0
  39. data/doc/images/brick_link.png +0 -0
  40. data/doc/images/bug.png +0 -0
  41. data/doc/images/bullet_black.png +0 -0
  42. data/doc/images/bullet_toggle_minus.png +0 -0
  43. data/doc/images/bullet_toggle_plus.png +0 -0
  44. data/doc/images/date.png +0 -0
  45. data/doc/images/delete.png +0 -0
  46. data/doc/images/find.png +0 -0
  47. data/doc/images/loadingAnimation.gif +0 -0
  48. data/doc/images/macFFBgHack.png +0 -0
  49. data/doc/images/package.png +0 -0
  50. data/doc/images/page_green.png +0 -0
  51. data/doc/images/page_white_text.png +0 -0
  52. data/doc/images/page_white_width.png +0 -0
  53. data/doc/images/plugin.png +0 -0
  54. data/doc/images/ruby.png +0 -0
  55. data/doc/images/tag_blue.png +0 -0
  56. data/doc/images/tag_green.png +0 -0
  57. data/doc/images/transparent.png +0 -0
  58. data/doc/images/wrench.png +0 -0
  59. data/doc/images/wrench_orange.png +0 -0
  60. data/doc/images/zoom.png +0 -0
  61. data/doc/index.html +118 -0
  62. data/doc/js/darkfish.js +140 -0
  63. data/doc/js/jquery.js +18 -0
  64. data/doc/js/navigation.js +142 -0
  65. data/doc/js/search.js +109 -0
  66. data/doc/js/search_index.js +1 -0
  67. data/doc/js/searcher.js +228 -0
  68. data/doc/rdoc.css +580 -0
  69. data/doc/table_of_contents.html +222 -0
  70. data/exam.gemspec +32 -0
  71. data/lib/exam.rb +12 -0
  72. data/lib/exam/examen.rb +69 -0
  73. data/lib/exam/lista.rb +109 -0
  74. data/lib/exam/nodo.rb +14 -0
  75. data/lib/exam/pregunta.rb +38 -0
  76. data/lib/exam/preguntaMadre.rb +47 -0
  77. data/lib/exam/preguntaVF.rb +19 -0
  78. data/lib/exam/quiz.rb +44 -0
  79. data/lib/exam/version.rb +3 -0
  80. data/pkg/exam-0.0.1.gem +0 -0
  81. data/spec/exam_spec.rb +353 -0
  82. data/spec/spec_helper.rb +22 -0
  83. 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
+ &mdash;
92
+ <span class="container">Examen</span>
93
+
94
+ <li class="method">
95
+ <a href="PreguntaVF.html#method-c-new">::new</a>
96
+ &mdash;
97
+ <span class="container">PreguntaVF</span>
98
+
99
+ <li class="method">
100
+ <a href="PreguntaS.html#method-c-new">::new</a>
101
+ &mdash;
102
+ <span class="container">PreguntaS</span>
103
+
104
+ <li class="method">
105
+ <a href="Nodo.html#method-c-new">::new</a>
106
+ &mdash;
107
+ <span class="container">Nodo</span>
108
+
109
+ <li class="method">
110
+ <a href="Lista.html#method-c-new">::new</a>
111
+ &mdash;
112
+ <span class="container">Lista</span>
113
+
114
+ <li class="method">
115
+ <a href="Pregunta.html#method-c-new">::new</a>
116
+ &mdash;
117
+ <span class="container">Pregunta</span>
118
+
119
+ <li class="method">
120
+ <a href="Nodo.html#method-i-3C-3D-3E">#&lt;=&gt;</a>
121
+ &mdash;
122
+ <span class="container">Nodo</span>
123
+
124
+ <li class="method">
125
+ <a href="Pregunta.html#method-i-3C-3D-3E">#&lt;=&gt;</a>
126
+ &mdash;
127
+ <span class="container">Pregunta</span>
128
+
129
+ <li class="method">
130
+ <a href="Pregunta.html#method-i-3D-3D">#==</a>
131
+ &mdash;
132
+ <span class="container">Pregunta</span>
133
+
134
+ <li class="method">
135
+ <a href="Lista.html#method-i-addn">#addn</a>
136
+ &mdash;
137
+ <span class="container">Lista</span>
138
+
139
+ <li class="method">
140
+ <a href="PreguntaS.html#method-i-addr">#addr</a>
141
+ &mdash;
142
+ <span class="container">PreguntaS</span>
143
+
144
+ <li class="method">
145
+ <a href="Lista.html#method-i-deln">#deln</a>
146
+ &mdash;
147
+ <span class="container">Lista</span>
148
+
149
+ <li class="method">
150
+ <a href="Lista.html#method-i-each">#each</a>
151
+ &mdash;
152
+ <span class="container">Lista</span>
153
+
154
+ <li class="method">
155
+ <a href="Examen.html#method-i-hacer_examen">#hacer_examen</a>
156
+ &mdash;
157
+ <span class="container">Examen</span>
158
+
159
+ <li class="method">
160
+ <a href="Lista.html#method-i-head">#head</a>
161
+ &mdash;
162
+ <span class="container">Lista</span>
163
+
164
+ <li class="method">
165
+ <a href="Examen.html#method-i-inverso">#inverso</a>
166
+ &mdash;
167
+ <span class="container">Examen</span>
168
+
169
+ <li class="method">
170
+ <a href="Lista.html#method-i-ordenar">#ordenar</a>
171
+ &mdash;
172
+ <span class="container">Lista</span>
173
+
174
+ <li class="method">
175
+ <a href="PreguntaS.html#method-i-preg">#preg</a>
176
+ &mdash;
177
+ <span class="container">PreguntaS</span>
178
+
179
+ <li class="method">
180
+ <a href="PreguntaS.html#method-i-resp">#resp</a>
181
+ &mdash;
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
+ &mdash;
187
+ <span class="container">Pregunta</span>
188
+
189
+ <li class="method">
190
+ <a href="Lista.html#method-i-tail">#tail</a>
191
+ &mdash;
192
+ <span class="container">Lista</span>
193
+
194
+ <li class="method">
195
+ <a href="Lista.html#method-i-to_s">#to_s</a>
196
+ &mdash;
197
+ <span class="container">Lista</span>
198
+
199
+ <li class="method">
200
+ <a href="PreguntaS.html#method-i-to_s">#to_s</a>
201
+ &mdash;
202
+ <span class="container">PreguntaS</span>
203
+
204
+ <li class="method">
205
+ <a href="Examen.html#method-i-to_s">#to_s</a>
206
+ &mdash;
207
+ <span class="container">Examen</span>
208
+
209
+ <li class="method">
210
+ <a href="PreguntaVF.html#method-i-to_s">#to_s</a>
211
+ &mdash;
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
@@ -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
+