Show fix after removing all items

0
import java.io.*;

public class ColaCircular{
    public static class ClaseColaCircular { // Declaracion de la clase de la Cola Circular
        static int max=8; // Tamano maximo de la Cola Circular
        static int colacirc[]=new int[max]; // Declaracion del arreglo para almacenar la Cola Circular
        static int frente, fin; // Inidicadores del inicio y final de la Cola Circular

        ClaseColaCircular() { // Constructor que inicializa el frente y el final de la Cola Circular
            frente=-1; fin=-1;
            System.out.println("Cola circular inicializada !!!");
        }

        public static void Mostrar() {
            int i=0;
            System.out.println("\n\n MOSTRAR COLA CIRCULAR ");
            if(frente==-1) {
                System.out.println("\n Cola Circular vacia !!!");
            }
            else {
                i=frente;
                do {
                    System.out.println("colacirc["+i+"]="+colacirc[i]);
                    i++;
                    if(i==max && frente>fin) i=0; // Reiniciar en cero (dar la vuelta)
               }while(i!=fin+1);
           }

           System.out.println("frente="+frente);
           System.out.println("fin="+fin);
           System.out.println("max="+max);
       }

       public static void Insertar(int dato) {
           if((fin==max-1 && frente==0) || (fin+1==frente)) {
               System.out.println("\nCola Circular llena !!!");
               return;
           }
           if(fin==max-1 && frente!=0) fin=0; else fin++;
           colacirc[fin]=dato;
           if(frente==-1) frente=0;
       }

       public static void Eliminar() {
           System.out.println("\n\n  ELIMINAR DATO ");
           if(frente==-1) {
               System.out.println("Cola circular vacia !!!");
               return;
           }
           System.out.println("Dato eliminado = "+colacirc[frente]);
           if(frente==fin) {
               frente=-1; fin=-1;
               return;
           }
           if(frente==max) frente=0; else frente++;
       }
   }

    // Declaración del objeto ColaCircular
    static ClaseColaCircular ColaCircular=new ClaseColaCircular();

    // Función principal
    public static void main(String args[]) throws IOException {
        int op=0;
        do {
            System.out.println("\n\n COLA CIRCULAR ");
            System.out.println("1.- Insertar");
            System.out.println("2.- Eliminar");
            System.out.println("3.- Mostrar");
            System.out.println("0.- Salir");

            System.out.print("Opcion ---> ");
            op=getInt();
            switch(op) {
                case 1 : Altas(); break;
                case 2 : ColaCircular.Eliminar(); break;
                case 3 : ColaCircular.Mostrar(); break;
            }
        }while(op!=0);
    }

    public static void Altas() throws IOException {
        int dato;
        System.out.println("\n\n ALTAS ");
        System.out.print("Dato a insertar ---> ");
        dato=getInt();
        ColaCircular.Insertar(dato); //Invocar el metodo Insertar del objeto ColaCircular
    }

    // Función para capturar una cadena desde el teclado
    public static String getString() throws IOException {
        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(isr);
        String s = br.readLine();
        return s;
    }

    // Función para capturar un entero desde el teclado

    public static int getInt() throws IOException {
        String s = getString();
        return Integer.parseInt(s);
    }
}

This is the error:

  

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8       at ColaCircular $ ClaseColaCircular.Show (ColaCircular.java:23)       at ColaCircular.main (ColaCircular.java:77)

    
asked by Jesús Daniel 10.04.2018 в 19:24
source

0 answers