lunes, 23 de mayo de 2016

Código de ejemplo de Pila.

Clase estudiante
class Estudiante {
    
    private String nombre;
    private int numeroMaterias;

    public Estudiante(String nombre, int numeroMaterias) {
        this.nombre = nombre;
        this.numeroMaterias = numeroMaterias;
    }

    public String getNombre() {
        return nombre;
    }

    public int getNumeroMaterias() {
        return numeroMaterias;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public void setNumeroMaterias(int numeroMaterias) {
        this.numeroMaterias = numeroMaterias;
    }
    
    
}
Clase Nodo
public class Nodo {
    
    private Estudiante datos;
    private Nodo anterior;
    private Nodo siguiente;

    public Nodo(Estudiante datos, Nodo anterior, Nodo siguiente) {
        this.datos = datos;
        this.anterior = anterior;
        this.siguiente = siguiente;
    }

    public Estudiante getDatos() {
        return datos;
    }

    public Nodo getAnterior() {
        return anterior;
    }

    public Nodo getSiguiente() {
        return siguiente;
    }

    public void setDatos(Estudiante datos) {
        this.datos = datos;
    }

    public void setAnterior(Nodo anterior) {
        this.anterior = anterior;
    }

    public void setSiguiente(Nodo siguiente) {
        this.siguiente = siguiente;
    }
           
}
Clase Pila
public class Pila {
    
    private Nodo cima;
    
    public Pila(){
        cima=null;
    }
    
    //agregarInicio
    public void push(Estudiante x, int num){
        
        if(num<=8){
            
        Nodo nuevo=new Nodo (x, null, cima);
        if(cima!=null){
            cima.setAnterior(nuevo);
        }
        cima=nuevo;
    }
        //System.out.println("ERROR: Maximo puede coger 8 materias");
      }
    
    //Quitar INICIO
    public Estudiante pop(){
        if(cima==null){
            System.out.println("ERROR: Maximo puede coger 8 materias. La pila esta vacia");
            return null;
        }
        else if(cima.getSiguiente()==null){
            Nodo aux=cima;
            cima=null;
            return aux.getDatos();
        }else{
            Nodo aux=cima;
            cima=cima.getSiguiente();
            cima.setAnterior(null);
            aux.setSiguiente(null);
            return aux.getDatos();
        }
    }
    
public Nodo Imprimir(Nodo aux){
    if(aux!=null){
        System.out.println("Nombre: "+aux.getDatos().getNombre()+" Numero de materias: "+aux.getDatos().getNumeroMaterias());
        aux=aux.getSiguiente();
        Imprimir(aux);
    }
    return aux;
}

public void Imprimir(){
    Nodo aux=cima;
    Imprimir(aux);
}

}
Clase Principal
import java.util.Scanner;

public class Principal {

  
    public static void main(String[] args) {
           
            Pila pA=new Pila();
            
            pA.push(new Estudiante("Juan",5),5);
            pA.push(new Estudiante("Ana",7),7);
            pA.push(new Estudiante("Pepe",3),3);
            pA.Imprimir();
            Estudiante r=pA.pop(); 
                       
                    
            if(r!=null){
                  System.out.println("Nombre: "+r.getNombre()+" toma "+r.getNumeroMaterias()+" materias");
           Scanner n= new Scanner(System.in);
                 System.out.println("1= Extraordinario");
                  System.out.println("2= no Extraordinario");
                  int dato= n.nextInt();
            if(dato==2){
                int total=r.getNumeroMaterias()*135;
            System.out.println("Debe pagar "+total);
            }
            if(dato==1){
                 float total=r.getNumeroMaterias()*135;
                 float adicion=(float) (total*0.15);
                 total= total+adicion;
            System.out.println("Debe pagar "+total); 
            }
            }
            
            r=pA.pop();
            
             if(r!=null){
                 
            System.out.println("Nombre: "+r.getNombre()+" toma "+r.getNumeroMaterias()+" materias");
           Scanner n= new Scanner(System.in);
                 System.out.println("1=Extraordinario");
                  System.out.println("2= no Extraordinario");
                  int dato= n.nextInt();
            if(dato==2){
                int total=r.getNumeroMaterias()*135;
            System.out.println("Debe pagar "+total);
            }else{
                 int total=r.getNumeroMaterias()*135;
            System.out.println("Debe pagar "+total*(15/100));
            
            }
                         
            }
            
             
                  r=pA.pop();
            
             if(r!=null){
                 
            System.out.println("Nombre: "+r.getNombre()+" toma "+r.getNumeroMaterias()+" materias");
           Scanner n= new Scanner(System.in);
                 System.out.println("1=Extraordinario");
                  System.out.println("2= no Extraordinario");
                  int dato= n.nextInt();
            if(dato==2){
                int total=r.getNumeroMaterias()*135;
            System.out.println("Debe pagar "+total);
            }else{
                 int total=r.getNumeroMaterias()*135;
            System.out.println("Debe pagar "+total*(15/100));
            
            }
                         
            }               
    }
}

No hay comentarios:

Publicar un comentario

Datos personales