Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/07/2011, 09:15
laOtra
 
Fecha de Ingreso: marzo-2008
Mensajes: 197
Antigüedad: 16 años, 2 meses
Puntos: 3
Ejercicio pluviómetro - como saber que mes es

Hola.
Tengo que hacer un ejercicio de un pluviómetro, en el que creo yo mismo las precipitaciones, con un random, y luego tengo que mostrar las medias, total.. de cada mes.
Mi problema es que no sé como hacer referencia al mes. Es decir, tengo un interface con todos los meses. Y por ejemplo, cuando hago la media del mes, no sé como hacer referencia al mes que quiero, ya que estos datos estan en hashmap.
Les pongo el código de todo:

La clase meses:
Código HTML:
public interface Meses {
	public static final String ENERO="ENERO";
	public static final String FEBRERO="FEBRERO";
	public static final String MARZO="MARZO";
	public static final String ABRIL="ABRIL";
	public static final String MAYO="MAYO";
	public static final String JUNIO="JUNIO";
	public static final String JULIO="JULIO";
	public static final String AGOSTO="AGOSTO";
	public static final String SEPTIEMBRE="SEPTIEMBRE";
	public static final String OCTUBRE="OCTUBRE";
	public static final String NOVIEMBRE="NOVIEMBRE";
	public static final String DICIEMBRE="DICIEMBRE";
}
La clase pluviómetro:

Código HTML:
import java.util.HashMap;
import java.util.LinkedList;

public class Pluviometro {
    // Atributos de la clase
    private HashMap aljibe;
    LinkedList precipitaciones=new LinkedList();

    // Constructor
    public Pluviometro() {
                   aljibe=new HashMap();
                   aljibe.put(Meses.ENERO, new Probeta());
                   aljibe.put(Meses.FEBRERO, new Probeta());
                   aljibe.put(Meses.MARZO, new Probeta());
                   aljibe.put(Meses.ABRIL, new Probeta());
                   aljibe.put(Meses.MAYO, new Probeta());
                   aljibe.put(Meses.JUNIO, new Probeta());
                   aljibe.put(Meses.JULIO, new Probeta());
                   aljibe.put(Meses.AGOSTO, new Probeta());
                   aljibe.put(Meses.SEPTIEMBRE, new Probeta());
                   aljibe.put(Meses.OCTUBRE, new Probeta());
                   aljibe.put(Meses.NOVIEMBRE, new Probeta());
                   aljibe.put(Meses.DICIEMBRE, new Probeta());
    }

    // Métodos
    protected void putPrecipitacion(String m,int litros) {
                   precipitaciones.add(litros,m);
    }
    
    protected String getPrecipitaciones(String m) {
                   String s="";
                   for(int i=0; i<=100000; i++){
                                   s+=precipitaciones.get(i) + " ";
                   }
                   return s;
    }

    protected int totalMes(String m) {
                   int litros=0;

                   for(int i=0; i<=30; i++){
                               //    litros=litros+precipitaciones.get(i);
                                 //  litros=precipitaciones.get(i) +litros;
                   }
                   return litros;
    }
    
    protected int mediaDiaria(String m) {
                   return Math.round(totalMes(m)/30);
    }
    

    protected int mediaMensual(String m){
		return 0;
    	
    }
}
Y la clase del main:
Código HTML:
public class Ejercicio8 {
	public static void main(String args[]){
        
            Pluviometro p=new Pluviometro();

// Código para insertar datos de forma aleatoria
String[] meses={Meses.ENERO, Meses.FEBRERO, Meses.MARZO, Meses.ABRIL, Meses.MAYO, Meses.JUNIO,Meses.JULIO, Meses.AGOSTO, Meses.SEPTIEMBRE,Meses.OCTUBRE, Meses.NOVIEMBRE, Meses.DICIEMBRE};
 int mes;
 int litros;
 for(int i=0; i<50; i++) {
                                             mes=(Integer.valueOf(Double.toString(Math.random()).substring(2,4))%12);
                                             litros=Integer.valueOf(Double.toString(Math.random()).substring(2,4));
                                             p.putPrecipitacion(meses[mes], litros);
                             }  // FIN de generación aleatoria


                             // Visualización de datos
                             for(int i=0; i<12; i++) {
                                             System.out.println(meses[i] + ": " + p.getPrecipitaciones(meses[i])
                                                                            + "    Total mensual: " + p.totalMes(meses[i])
                                                                            + "    Media diaria: " + p.mediaDiaria(meses[i]));
                             }
                             System.out.println("-------------------------------------------");
                             //System.out.println("Total anual: " + p.totalAnual()
                              //                               + "    Media mensual: " + p.mediaMensual());
              }             

	}
Alguien me podría decir como tendría que hacer esto?
Si tienen algun duda frente al ejercicio, me lo pueden comunicar.
También, me crea este error:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 84, Size: 0

Muchas gracias, y espero sus respuestas.