___________________________________
DNI: ___________________________________
Se quieren guardar las notas correspondientes a tres exmenes de los alumnos de una clase de la forma siguiente:
N=( (UO11111, (7.5, 6.3, 7.5) ), (UO22222, (4.1, 2.0, 5.2) ), . , (UO99999, (8.6, 8.6, 10.0) ) )
Se pide:
A. Cmo se llama el tipo de dato que se necesita? Explicar brevemente.
Multidiccionario: Las claves son los uos de los alumnos y los valores con colecciones de notas, que se pueden
repetir. Est ordenado por la clave.
B. public class Notas {
//rea de datos -> proponer una
TreeMap<String, LinkedList<Float> > data;
}
C. Representar grficamente el rea de datos elegida para el ejemplo del principio (suponer que hay slo
tres alumnos: UO11111, UO22222 y UO99999).
Me vale cualquier cosa similar a esto:
UO22222
UO11111
UO11111
UO99999
UO22222
UO9999
if (data.containsKey(alumno)){
LinkedList<Float> lista=data.get(alumno);
Float suma=0.0;
for (Float nota:lista){
suma=suma+nota;
}
return suma/lista.size();
}
else
return 0.0;
}
TAMBIEN VALE:
Iterator<Float> itr=lista.iterator();
while (itr.hasNext()){
suma=suma+itr.next();
}
E. Completar el programa principal de manera que imprima por pantalla la nota media de la clase.
public static void main(String[] args) {
Notas n=new Notas();
Set<String> alumnos=n.ObtenerAlumnos();
float suma=0.0;
for (String alumno:alumnos){
//Tambien vale usando un iterador
float mediaAlumno=n.NotaMedia(alumno);
suma=suma+mediaAlumno;
//podra comprobarse si hay alumnos o no, pero me vale igual
media=suma/alumnos.size();
System.out.println("Media de la clase: +media);
}
ANEXO
public interface Set<E> extends Collection<E>
{
// Basic operations
int size();
boolean isEmpty();
boolean contains(Object element);
boolean add(E element);
boolean remove(Object element);
Iterator<E> iterator();
// Bulk operations
boolean containsAll(Collection<?> c);
boolean addAll(Collection<? extends E> c);
boolean removeAll(Collection<?> c);
boolean retainAll(Collection<?> c);
void clear
// Array Operations
Object[] toArray();
<T> T[] toArray(T[] a);
}