Está en la página 1de 3

import javax.swing.

JTextArea;
import javax.swing.JOptionPane;

public class Ascensor {


JTextArea area2=newJTextArea();
String salida2; //para mensajes
private boolean estadoPuerta;
private int pisoActual;
private int peso;
//constantes
private final int Capacidad;
private final int Final;
private final int Inicio;

Ascensor() {
salida2="";
estadoPuerta=false;
pisoActual=1;
peso=0;
Capacidad=600; //capacidad maxima
Final=5;
Inicio=1; //primer piso
}
public void verificarPuerta() {
if(estadoPuerta=false)
estadoPuerta=true;
}
public void cerrarPuerta() {
calcularCapacidad();
if(peso<=Capacidad)
estadoPuerta=false;
else {
JOptionPane.showMessageDialog(null,"El elevador excede su capacidad de peso"+
"Las puertas permaneceran abiertas hasta que quede menos de 1000KG"+
"Vuelva a seleccionar piso por favor...");
}
}
//MEtodo asigana numero azar entre 1 y 1200
private void calcularCapacidad() {
peso=(int)(Math.random()*1200);
salida2="El peso es "+peso;
}
public void irArriba() {
if(!estadoPuerta) {
if(pisoActual<Final) {
pisoActual++;
salida2=salida2+"Piso"+pisoActual; //asigna a salida2 mensaje del piso actual
}
}
else //si puerta abiertamensaje no puede subir elevador, peso excede
JOptionPane.showMessageDialog(null,"Las puertas aun estan abiertas...");
}
public void irAbajo() {
if(!estadoPuerta) {
if(pisoActual>Inicio) {
pisoActual--;
salida2=salida2+"Piso"+pisoActual; //asigna a salida2 mensaje del piso actual
}
}
else //si puerta abiertamensaje
JOptionPane.showMessageDialog(null,"Las puertas aun estan abiertas...");
}
public void seleccionarPiso(int pisoDeseado) {
if((pisoDeseado>=Inicio)&&(pisoDeseado<=Final)) {
cerrarpuerta(); //calcula pesoy si excede envia mensaje contrario cambia
estadoPuerta a false
// para indicar q se cerro puerta y procede a mover elevador
if(pisoActual==pisoDeseado)
JOptionPane.showMessageDialog(null,"Ya esta en el piso"+pisoActual);
else //si piso distinto se hace un ciclo
while(pisoActual!=pisoDeseado && peso<=1000) //mientras pisoActual diferente de
pisoDeseado
//invoca subir o bajar
{
if(pisoActual<pisoDeseado)
irArria();
else
irAbajo();
}
area2.setText(salida2);
JOptionPane.showMessageDialog(null, area2); //muetsra
} //fin if
else {
JOptionPane.showMessageDialog(null,"Piso invalido");
//metodo regresa piso actual
public int obtenerPiso() //recupera y regresa valor piso actual
{
return pisoActual;
}
public boolean conocerEstadoPuerta() {
return estadoPuerta;
}
}

////////
Strig salida;
int pisoActual=0;
boolean estadoPuerta=false;
int opc=0; //opcion menu
int piso=0; //leer piso deseado
String mensPuerta=""; //imprimir mensaje de puerta abierta o cerrada
Ascensor asc=newAscensor();
JTextArea area=newJTextArea();

String auxiliar;

do {
try{
pisoActual=eleva.obtenerPiso();
estadoPuerta=eleva.conocerEstadoPuerta();
if(estadoPuerta)
mensPuerta="Abierta";
else
mensPuerta="Cerrada";
salida="";
//se asignan las siguientes lineas a salida
salida="\nPiso actual; "+pisoActual+ " ....Puerta="+mensPuerta+
"\n1.Abrir puerta" +
"\n2.Seleccionar piso" +
"\n3.Salir" +
"\nEscriba opcion...";
//leer opcion
area.setText(salida);
//variable auxiliar servira para capturar valor tipo cadena, q usuario escribira
como opcion
auxiliar=JOptionPane.showInputDialog(null,area,"MENU",
JOptionPane.QUESTION_MESSAGE);

opc=Integer.parselnt(auxiliar);

switch(opc) //si es entero se evalua


{
case1: //estado puerta y modificar estadoPuerta
estadoPuerta=eleva.conocerEstadoPuerta();
if(!estadoPuerta) {
JOptionPane.showMessageDialog(null,"Puerta abierta�","Vaya a
pcion2",JOptionPane.INFORMATION_MESSAGE)
eleva.verificarPuerta();
}
else {
JOptionPane.showMessageDialog(null,"Puerta abierta�","Vaya a
pcion2",JOptionPane.INFORMATION_MESSAGE)

case2: //seleccionar piso


estadoPuerta=eleva.conocerEstadoPuerta();
if(estadoPuerta) { //ya esta abierta puerta
auxiliar=JOptionPane.showInputDialog(null,"Escriba numero de piso");
piso=Integer.parseInt(auxiliar); //entero y se asigna a piso
eleva.seleccionarPiso(piso);
}
else {
JOptionPane.showMessageDialog(null,"FAvor de abrir puerta(opcion 1)","Vaya a opcion
1",JOptionPane.INFORMATION_MESSAGE)
break;

case 3: JOptionPane.showMessageDialog(null,"Elevadores Camacho agradece su


preferencia");
System.exit(0); //termina programa depues de mensaje anterior
break;
default JOptionPane.showMessageDialog(null,"Este piso no existe")
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"No es opcion valida! Vuelva a intentar");
}
}while(opc!=3);
}
}

También podría gustarte