proyecto poogame bus
DESCRIPTION
Código fuente del programa BUS(poogame.blogspot.com)TRANSCRIPT
Clase Pasajero
public class Pasajero {
/* campo para el nombre del <code> Pasajero </code> */private String nombre;/* campo para la edad del <code> Pasajero </code> */private int edad;
public Pasajero() {
}
/** * Inicializa los campos del objeto <code> Pasajero </code>
con valores dados *
* @param nombre contiene el valor para el campo <code> nombre </code> * @param edad contiene el valor para el campo <code> edad </code> */public Pasajero(String nombre, int edad) {
this.nombre = nombre;this.edad = edad;
}
/** * * Devuelve el valor del campo <code> edad </code> * * @return valor del campo <code> edad </code> */public int getEdad() {
return edad;}
/** * Asigna el valor del campo <code> edad </code> de un * <code> Pasajero </code> * * @param edad contiene el valor de un campo * <code> edad </code> */public void setEdad(int edad) {
this.edad = edad;}
/**
* Devuelve el valor del campo <code> nombre </code> * * @return valor del campo <code> nombre </code> */public String getNombre() {
return nombre;}
/** * Asigna el valor del campo <code> nombre </code> de un * <code> Pasajero </code> * * @param nombre contiene el valor de un campo * <code> nombre </code> */public void setNombre(String nombre) {
this.nombre = nombre;}
}
Creación de la clase Bus
package terrestre;import javax.swing.*;/** * Manipula objetos de tipo <code> Bus </code> * */public class Bus {
/* campo para el nombre del <code> Bus </code> */private String nombre;/* campo para el numero máximo de pasajeros del <code> Bus </code>
*/private int max;/* campo para el numero de pasajeros del <code> Bus </code> */private int numeroPasajeros;/* campo para el arreglo de pasajeros del <code> Bus </code> */private Pasajero pasajeros[];
/** * inicializa los campos del objeto <code> Bus </code> */public Bus() {
}
/** * inicializa los campos del objeto <code> Bus </code> con valores
dados *
* @param nombre contiene el valor para el campo <code> nombre </code>
* @param max contiene el valor para el campo <code> max </code> * @param numeroPasajeros contiene valor de campo <code>
numeroPasajeros </code> * @param pasajeros contiene el valor para campo <code> pasajeros
</code> */
public Bus(String nombre, int max, int numeroPasajeros, Pasajero[] pasajeros) {
this.nombre = nombre;this.max = max;this.numeroPasajeros = numeroPasajeros;this.pasajeros = pasajeros;
}
/** * inicializa los campos del objeto <code> Bus </code> con valores
dados * * @param nombre contiene el valor para el campo <code> nombre
</code> * @param max contiene el valor para el campo <code> max </code> */public Bus(String nombre, int max) {
this.nombre = nombre;this.max = max;this.numeroPasajeros = 0;this.pasajeros = new Pasajero[max];
}
/** * Devuelve el valor del campo <code> max </code> * * @return valor del campo <code> max </code> */public int getMax() {
return max;}
/** * Asigna el valor del campo <code> max </code> de un * <code> Bus </code> * * @param max contiene el valor de un campo * <code> max </code> */public void setMax(int max) {
this.max = max;}
/** * Devuelve el valor del campo <code> nombre </code> * * @return valor del campo <code> nombre </code> */public String getNombre() {
return nombre;}
/** * Asigna el valor del campo <code> nombre </code> de un * <code> Bus </code> * * @param nombre contiene el valor de un campo * <code> nombre </code> */public void setNombre(String nombre) {
this.nombre = nombre;}
/** * Devuelve el valor del campo <code> numeroPasajeros </code> * * @return valor del campo <code> numeroPasajeros </code> */public int getNumeroPasajeros() {
return numeroPasajeros;}
/** * Asigna el valor del campo <code> numeroPasajeros </code> de un * <code> Bus </code> * * @param numeroPasajeros contiene el valor de un campo * <code> numeroPasajeros </code> */public void setNumeroPasajeros(int numeroPasajeros) {
this.numeroPasajeros = numeroPasajeros;}
/** * Devuelve el valor del campo <code> pasajeros </code> * * @return valor del campo <code> pasajeros </code> */public Pasajero[] getPasajeros() {
return pasajeros;}
/** * Asigna el valor del campo <code> pasajeros </code> de un * <code> Bus </code> * * @param pasajeros contiene el valor de un campo * <code> pasajeros </code> */public void setPasajeros(Pasajero[] pasajeros) {
this.pasajeros = pasajeros;}
/** * Llena con valores null al vector <code> pasajeros </code> */public void nullCadena() {
for (int i = 0; i < max; i++) {
pasajeros[i] = null;}
}
/** * Agrega un pasajero al vector <code> pasajeros </code> * de la case <code> Bus </code> * * @param valuePasajero contiene el nombre y la edad del pasajero
que * se sube al <code> Bus </code> */public void subirPasajero (Pasajero valuePasajero){
if (numeroPasajeros < max) {
for (int z = 0; z < max; z++) {
if (pasajeros[z] == null) {
pasajeros[z] = valuePasajero;numeroPasajeros++;z = max;}
}} else{
JOptionPane.showMessageDialog(null,"BUS lleno");}
}
/** * Resta un pasajero al vector <code> pasajeros </code> * de la case <code> Bus </code> *
* @param lugarPasajero contiene el número de puesto del pasajero
* que se baja del <code> Bus </code> */public void bajarPasajero (int lugarPasajero){
if (numeroPasajeros == 0) {
JOptionPane.showMessageDialog(null,"BUS vacío");} else{
if (lugarPasajero > max) {
JOptionPane.showMessageDialog(null,"Ese puesto excede los existentes");
}else{
if (lugarPasajero <= 0) {
JOptionPane.showMessageDialog(null,"El puesto 0 no existe");
}else {
if(pasajeros[lugarPasajero - 1] == null) {
JOptionPane.showMessageDialog(null,"En ese puesto ya no hay nadie");
}else {
pasajeros[lugarPasajero -1] = null;numeroPasajeros --;
}}
}}
}
/** * Devuelve el total de pasajeros que se encuentran * en el <code> Bus </code> * * @return número de Pasajeros en el <code> Bus </code> */public int totalPasajeros() {
return (numeroPasajeros);}
/** * Devuelve la lista de pasajeros que se encuentran * en el <code> Bus </code> * * @return nombres de los Pasajeros en el <code> Bus </code> */
public String[] listaPasajeros(){
String nombre[] = new String[max];for (int i = 0; i < max; i++){
if (pasajeros[i] == null) {
nombre[i] = "";}else {
nombre[i] = pasajeros[i].getNombre();}
}return nombre;
}
/** * Devuelve el promedio de edades de los pasajeros que se
encuentran *
en el <code> Bus </code> * * @return promedio de edades de los pasajeros en el <code> Bus
</code> */public float promedioEdades(){
float sumaPromedio = 0;for (int i = 0; i < numeroPasajeros; i++){
sumaPromedio += pasajeros[i].getEdad();}return sumaPromedio / numeroPasajeros;
}}
Creación de la clase Aplica
/** * Interacción entre las clases Bus y Pasajero * */
import java.util.StringTokenizer;import javax.swing.JOptionPane;public class Aplica {
public static void main(String[] args) {try {int nj = 0;JOptionPane.showMessageDialog (null,"BUS");int z = 20;Bus a=new Bus("ESCOLAR",z);
for(;;){
String ops = JOptionPane.showInputDialog ( null,"MENU: \n\n1. Subir Pasajero\n" +
"2. Bajar Pasajero\n" +"3. Total de Pasajeros\n" +"4. Listado de los Pasajeros\n" +"5. Promedio de edad de los Pasajeros\n" +"6. Buscar Pasajero\n" +"7. Salir\n");
int an = Integer.parseInt(ops);switch(an) {
case 1:
try {
JOptionPane.showMessageDialog ( null,"Ingrese Pasajero");
String st = JOptionPane.showInputDialog ( null,"El Pasajero debe ser ingresado de la siguiente forma:\n"
"nombre_edad","Ejemplo: Andres_21");
StringTokenizer str = new StringTokenizer(st, "_");if ((str.countTokens() > 2) || (str.countTokens() < 2))
{JOptionPane.showMessageDialog ( null,"FAVOR LLENE TODOS LOS CAMPOS!!!");
}String nombre = str.nextToken();
int edad = Integer.parseInt(str.nextToken());if (edad > 100 || edad < 0) {
JOptionPane.showMessageDialog (null,"edad mal ingresada");}else{
Pasajero b = new Pasajero();b.setNombre(nombre);b.setEdad(edad);a.subirPasajero(b);}} catch (Exception e) {
JOptionPane.showMessageDialog (null,"MAL INGRESADO!!!");}
break;
case 2: String nnj = JOptionPane.showInputDialog (null,"Ingrese el numero de puesto del pasajero: ");
try { nj= Integer.parseInt(nnj);
}catch(Exception e){
JOptionPane.showMessageDialog (null,"INGRESE NUMERO NO LETRAS!!!");
}if(nj<0) {
JOptionPane.showMessageDialog (null,"OJO, Valores Negativos NO Aceptados");
}a.bajarPasajero(nj);break;
case 3:JOptionPane.showMessageDialog (null,"El numero de pasajeros del bus es: " + a.totalPasajeros());
break;
case 4:
JOptionPane.showMessageDialog (null,"Listado de pasajeros: ");int i = 1;
for (String dato: a.listaPasajeros()) {
if (dato == "") {
}else{
JOptionPane.showMessageDialog (null,"Pasajero "+ (i )+ " : " + dato);
i++;}
}break;
case 5:JOptionPane.showMessageDialog (null,"EL PROMEDIO DE EDAD DE ESTE BUS ES " + a.promedioEdades() + "AÑOS");
break;
case 6:String cad = null;
cad = JOptionPane.showInputDialog (null,"Ingrese el nombre del pasajero a buscar");
try {
}catch (Exception e) {}
for (String dato: a.listaPasajeros()) {
if (dato.equals(cad)) {
JOptionPane.showMessageDialog (null,"LO ENCONTRAMOS!!! El pasajero está en este bus");
}}
JOptionPane.showMessageDialog (null,"Búsqueda Finalizada");
break;
case 7:{
JOptionPane.showMessageDialog (null,"ESPERO QUE ESTE PROGRAMA HAYA SIDO DE SU AGRADO");
System.exit(0);}break;
default:
JOptionPane.showMessageDialog(null,"Seleccion erronea\n\n\nElija nuevamente una opcion del 1 al 7");
}
}}catch (Exception e){}
}
}