Sie sind auf Seite 1von 11

package Automoviles;

public class Nodo {

//tenemos nuestra clase nodo, y asignamos los atributos más los “Nodo” siguiente y anterior

String nroPlaca;

int tipo;

float valor;

Nodo sig, ant;

// creamos el método constructor en el que inicializamos los atributos

public Nodo() {

nroPlaca = " ";

tipo = -1;

valor = -1;

sig = ant = null;

public Nodo(String nroP, int tp, float vl) {

nroPlaca = nroP;

tipo = tp;

valor = vl;

sig = null;

ant = null;

}
package Automoviles;

import javax.swing.JOptionPane;

public class Cola {

Nodo inicio;

int contveh = 0;

int contCam = 0;

int contAuto= 0;

int contMoto = 0;

//iniciamos la cola vacia

Cola() {

inicio = null;

//este método nos sirve para buscar en la cola un vehiculo en especifico y al momento de
agregar //un vehiculo nuevo podemos buscar para no agregar repetidos

Nodo Buscar(String nplaca) {

if (inicio == null) {

return null;

} else {

Nodo p = inicio;

do {

if (p.nroPlaca.equalsIgnoreCase(nplaca)) {

return p;

p = p.sig;
} while (p != inicio);

return null;

boolean Vacia() {

return inicio == null ? true : false;

// creamos el nodo, utilizaremos el método buscar para confirmar que el vehiculo no se


encuentre //registrado

Nodo CrearNodo() {

String nplaca;

int tipo = -1;

float val = -1;

nplaca = JOptionPane.showInputDialog("Ingrese la placa del vehiculo");

Nodo p = Buscar(nplaca);

if (p != null) {

JOptionPane.showMessageDialog(null,

"Placa: " + nplaca + " ya se encuentra registrado!");

return null;

} else {

int menu;

do {

menu = Integer.parseInt(JOptionPane.showInputDialog(

"Escoja un vehiculo \n"

+ "1: Automovil \n"


+ "2: Camion \n"

+ "3: Moto \n"

+ "4: Salir"

));

switch (menu) {

case 1:

tipo = 0;

val = 2500;

break;

case 2:

tipo = 1;

val = 5000;

break;

case 3:

tipo = 2;

val = 1500;

break;

case 4:

JOptionPane.showMessageDialog(null, " ");

break;

default:

JOptionPane.showMessageDialog(null, "No ha escodigo ningun vehiculo");

} while (menu != 4);

Nodo q = new Nodo(nplaca, tipo, val);

contveh ++;

return q;

}
}

// habiendo creado el nodo, creamos un método agregar para registrar los vehículos en la cola

void agregarVeh() {

Nodo q = CrearNodo();

if (q != null) {

if (inicio == null) {

inicio = q;

inicio.sig = inicio.ant = inicio;

JOptionPane.showMessageDialog(null,

"Elemento agregado! La cola estaba vacia...");

} else {

q.ant = inicio.ant;

q.sig = inicio;

inicio.ant.sig = q;

inicio.ant = q;

JOptionPane.showMessageDialog(null,

"Elemento agregado!");

// atender es como eliminar, eliminamos un nodo de la cola

void AtenderVeh() {

if (inicio == null) {

JOptionPane.showMessageDialog(null,

"Cola vacia!");

} else {

Nodo p = inicio;

if (inicio.sig == inicio) {

inicio = null;
JOptionPane.showMessageDialog(null,

"Atendido! Cola vacia...");

} else {

inicio.ant.sig = inicio.sig;

inicio = inicio.sig;

inicio.ant = p.ant;

p.sig = p.ant = null;

p = null;

JOptionPane.showMessageDialog(null, "Atendido!");

// mostramos los vehículos que se han registrado

void MostrarVehs() {

if (inicio == null) {

JOptionPane.showMessageDialog(null, "Lista vacía!");

} else {

String aux = "";

Nodo p = inicio;

do {

aux += "Placa: " + p.nroPlaca + "\n";

aux += "tipo: " + p.tipo + "\n";

aux += "valor: " + p.valor + "\n";

JOptionPane.showMessageDialog(null, aux);

aux = "";

p = p.sig;

} while (p != inicio);

}
}

void atenderVeh() {

if (inicio == null) {

JOptionPane.showMessageDialog(null,

"la cola se encuentra vacia!");

} else {

Nodo p = inicio;

if (inicio.sig == inicio) {

inicio = null;

JOptionPane.showMessageDialog(null,

"el vehiculo ha sido atendido! la cola ha quedado vacia");

} else {

inicio.ant.sig = inicio.sig;

inicio = inicio.sig;

inicio.ant = p.ant;

p.sig = p.ant = null;

p = null;

JOptionPane.showMessageDialog(null, "el vehiculo ha sido atendido!");

/*

float Ganacia() {

float sum = 0;

if (inicio == null) {

return 0;

} else {

Nodo p = inicio;
do {

sum = sum + p.valor;

p = p.sig;

} while (p != inicio);

JOptionPane.showMessageDialog(null, "suma: " + sum);

return sum;

} */

Cola ColaAux() {

Cola cl = new Cola();

Nodo q = null, p = inicio;

if (inicio == null) {

return cl;

} else {

while (p != null) {

q = new Nodo(p.nroPlaca, p.tipo, p.valor);

cl.AtenderVeh();

q = inicio;

return cl;

void MostrarVehsAtendidos() {

if (inicio == null) {

JOptionPane.showMessageDialog(null, "Lista vacía!");

} else {
String aux = "";

Nodo p = inicio;

do {

aux += "Placa: " + p.nroPlaca + "\n";

aux += "tipo: " + p.tipo + "\n";

aux += "valor: " + p.valor + "\n";

JOptionPane.showMessageDialog(null, aux);

aux = "";

p = p.sig;

} while (p != inicio);

}
package Automoviles;

import javax.swing.JOptionPane;

/**

* @author USUARIO

*/

public class Automoviles {

public static void main(String[] args) {

int menu = 0;

Cola cl = new Cola();

do{

menu=Integer.parseInt(JOptionPane.showInputDialog(

"Menú Principal \n"+

"1. Registrar vehiculo \n"+

"2. Atender vehiculo \n"+

"3. Mostrar cola\n"+

"4. mayor y menor \n"+

"5. Salir \n"+

"Entre su opción: ?"

));

switch(menu){

case 1:

cl.agregarVeh();
break;

case 2:

cl.AtenderVeh();

break;

case 3:

cl.MostrarVehs();

break;

case 4:

break;

case 5:

JOptionPane.showMessageDialog(null, "Adios!");

break;

default:

JOptionPane.showMessageDialog(null, "Opción invalida!");

}while(menu!=5);

System.exit(0);

Das könnte Ihnen auch gefallen