Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/12/2011, 21:27
Avatar de zackrated
zackrated
 
Fecha de Ingreso: junio-2008
Ubicación: Leon Guanajuato,México
Mensajes: 532
Antigüedad: 16 años, 6 meses
Puntos: 13
¿Array Infinito?

Saludos a toda la comunidad

Espero que alguien me pueda dar una ayuda o una orientación para mi problema.


Estoy haciendo un trabajo que me dejaron en la universidad, se que yo tengo que buscar la solucion, pero créanme que tengo toda la semana buscando y no encuentro la solución, cabe mencionar que tengo apenas unos meses programando por lo que no soy experto.

Tengo el siguiente problema

Cita:
En un determinado peaje se desea saber cuantos carros particulares y cuántos autobuses pasaron en un dia, lo mismo que el promedio de personas que viajan en carro particular y el priomedio de las personas que viajan en bus. Se debe tener en cuenta que por cada vehículo que pase, se debe indagar por el tipo de transporte que es y el número de pasajeros que transporta

NOTA: Si es un carro particular se identifica con 1, si es bus con 2, si es otro con 3. NO se sabe cuántos datos deben ser capturados , pero al final se deben mostrar los resultados

Total de autos, autobuses y "Otro" capturados con su promedio de pasajeros
He leído en diversas fuentes que los arreglos SIEMPRE deben tener un tamaño fijo, que en su ligar utilice ArrayList, pero el problema es que sólo captura datos de tipo Object, por lo que no puedo realizar ninguna operación matemática.

Debe haber algun "Truco" para hacer el arreglo dinámico.

Este es el código que tengo por ahora, pero solo me captura el primer registro y los demás ya no.

Código HTML:
import javax.swing.JOptionPane;
public class Peaje {
	
private int auto [];
private int bus []; 
private int otro []; 

private int tipoDeAuto = 0;
//private static int numeroPasajeros = 0;

static int  contadorA = 0;
static int  contadorB = 0;
static int  contadorO = 0;


//////////////////////////////
static int longA = 0;
static int longB = 0;
static int longO = 0;

/////////////////////////
static	int opciones = 0;


/******************************************************************/


    public Peaje(int longA) {
    	
    	
    	
    
    	auto = new int [longA + 1];
    	bus = new int [longA + 1];
    	otro = new int [longA + 1];
    	
    	
    
    }
    
/*********************************************************************/

public void Auto () {
	int i = 0; 
//	i = contadorA;
    int numeroPasajeros	= Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el Total de Pasajeros", "Opciones", JOptionPane.QUESTION_MESSAGE));			
	
	for (i = contadorA; i < auto.length; i++){
		auto[i] = numeroPasajeros;
		System.out.println("El arreglo es " + auto[i]);
	
	                                         }


                          }


/******************************************************************/

public void Bus () {
int	numeroPasajeros	= Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el Total de Pasajeros", "Opciones", JOptionPane.QUESTION_MESSAGE));		
		for (int i = 0; i < bus.length; i++){
		bus[i] = numeroPasajeros;
		
	}

	
                        }

/**************************************************************************/ 
public void Otro () {
 int numeroPasajeros	= Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el Total de Pasajeros", "Opciones", JOptionPane.QUESTION_MESSAGE));			
		for (int i = 0; i < otro.length; i++){
		otro[i] = numeroPasajeros;
		
	}


                         }

/************************************************************************/
public void Imprimir () {
	
	// Autos y su promedio
	String resultado = "\n";
	int suma = 0;
	double promedioAutos = 0;
		for (int i = 0; i < auto.length; i++){
		resultado += auto[i]; // Muestra los pasajeros cap
		suma += auto[i]; // Suma a los pasajeros
		
		
		}
		
		promedioAutos = (suma / auto.length); // Promedio de Pasajeros
		
	JOptionPane.showMessageDialog(null, "El total de pasajeros capturados son " + resultado + " El promedio es " + promedioAutos, 
									"Resultado de Autos", JOptionPane.INFORMATION_MESSAGE);
									
	// Bus y su Promedio
	
	String resultadoB = "\n";
	int sumaB = 0;
	double promedioBus = 0;
		
		for (int j = 0; j < bus.length; j++){
		resultadoB += bus[j]; // Muestra los pasajeros cap
		sumaB += bus[j]; // Suma a los pasajeros
		
		
		}
		
		promedioBus = (sumaB / bus.length); 
			
			JOptionPane.showMessageDialog(null, "El total de pasajeros capturados son " + resultadoB + "El promedio es " + promedioBus, 
									"Resultado de Autobus", JOptionPane.INFORMATION_MESSAGE);
									
									
	/////////////////////////////////////////////////////////////////////////////////////////////////////			
	// Otros y su Promedio
	
   String resultadoO = "\n";
	int sumaO = 0;
	double promedioO = 0;
	
		for (int k = 0; k < bus.length; k++){
		resultadoO += otro[k]; // Muestra los pasajeros cap
		sumaB += otro[k]; // Suma a los pasajeros
		
		
		}
		
		promedioO = (sumaO / otro.length); 
			
				JOptionPane.showMessageDialog(null, "El total de pasajeros capturados son " + resultadoO + "El promedio es " + promedioO, 
									"Resultado de otro", JOptionPane.INFORMATION_MESSAGE);
		
}
   

/*****************************************************************************/

public static void main (String args []){
	
		
	
	Peaje o = new Peaje(longA);
	
   longA = 0;
		
	
while ( !((opciones == 4) ||  (opciones == 5))){
    
    
	
	opciones = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el tipo de vehículo\n1 Automovil Privado\n2 Autobus\n3 Otro\n4 Imprimir Hasta ahora\n5 Salir", 
									"Opciones", JOptionPane.QUESTION_MESSAGE));
	
					
	switch (opciones){
		
		case 1: longA = longA + 1;
			    o.Auto();
			    contadorA = contadorA + 1;		        
		        break;
		case 2: o.Bus();
				contadorB++;
				break;
		case 3: o.Otro();
		        contadorO++;
				break;
	    case 4: o.Imprimir();
	    		break;
	    case 5: System.exit(0);
		
	}
	
		}  
			
}

}
Como podrán ver mi In-experiencia me hace hacer códigos desordenados xD.


Si alguien me puede dar una orientación, se lo agradecería muchísimo

Saludos
__________________
Si en este mundo las personas hicieran su trabajo bien hecho...Este mundo no sería el mismo