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