Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Ayuda con unos ejercicios de POO

Hola colegas, soy practicamente nuevo en el mundo de la programacion, y la verdad es que no tengo a quien pedirle ayuda, el problema que tengo es el siguiente, necesito agregar un metodo que me permita repetir la iteracion mientras el asiento del buss este "ocupado", para que el ciclo for le vuelva a preguntar que asiento desea, hasta que la persona ingrese un asiento disponible, de ante mano, muchisimas gracias todos los que se animen a ayudarme, es lo unico que me falta para terminar el programa.

este es mi main:

import java.util.Scanner;
public class Main {
public static Scanner s = new Scanner(System.in);
public static void main(String[] args) {
Buss b = new Buss();
Persona p = new Persona();
int op, contador=0, ganancia=0, Pasaje=0;
do{
contador ++;
System.out.println("=== MENU ===");
System.out.println("1. Establecer valor del pasaje");
System.out.println("2. Agregar pasajero");
System.out.println("3. Ver Ganancia");
System.out.println("4. Salir");
op = Integer.parseInt(s.nextLine());
switch (op) {
case 1:
System.out.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
System.out.println("=============================");
System.out.println("Ingrese el valor del pasaje: ");
Pasaje = Integer.parseInt(s.nextLine());
b.agregarPasaje(Pasaje);
System.out.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
break;
case 2:
for (int i = 0; i <=40; i++) {
System.out.println("=======================");
System.out.println("Ingrese nombre del pasajero "+(i+1));
String nombre = s.nextLine();
p.setNombre(nombre);
System.out.println("=======================");
System.out.println("Ingrese numero del asiento a ocupar: ");
int asiento = Integer.parseInt(s.nextLine());
b.agregarPasajero(asiento);
}
break;
case 3:
System.out.println("La ganancia es de: ");
b.verGanancia(Pasaje);
break;
}
}while(op !=4);
}
}


y esta es mi clase Buss:

public class Buss {
private int valorPasaje;
private int[] Cliente;
public Buss() {
Cliente = new int[40];
}
public void agregarPasajero(int asiento) {
for (int i = 0; i<1; i++) {
if (Cliente[asiento] == 0) {
Cliente[asiento] = asiento;
} else {
if (Cliente[asiento] != 0) {
System.out.println("Asiento Ocupado");
}
}
}
}
public void agregarPasaje(int pasaje) {
valorPasaje = pasaje;
}
public void verGanancia(int pasaje) {
int ganancia;
ganancia = (valorPasaje * 40);
System.out.println(ganancia);
}
}

abril 2, 2016 | Unregistered CommenterVictor

Bueno, sin modificar mucho tu código. Necesitas regresar una variable que te eindique si esta pcupado y en un ciclo do-while volver a preguntar.

public boolean agregarPasajero(int asiento)
{
for (int i = 0; i<1; i++)
{
if (Cliente[asiento] == 0) {
Cliente[asiento] = asiento;
return true;
} else
{
if (Cliente[asiento] != 0)
{
System.out.println("Asiento Ocupado");
}
}
}
return false;
}


case 2:
for (int i = 0; i <=40; i++) {
System.out.println("=======================");
System.out.println("Ingrese nombre del pasajero "+(i+1));
String nombre = s.nextLine();
p.setNombre(nombre);
System.out.println("=======================");
do{
System.out.println("Ingrese numero del asiento a ocupar: ");
int asiento = Integer.parseInt(s.nextLine());
ocupado=b.agregarPasajero(asiento);
}while(!ocupado);
}
break;

siendo ocupado un tipo boolean.

abril 11, 2016 | Unregistered Commentercommodore64