Ejercicio 12

Ing. Analia Méndez – Ing. Raquel Zarco. Año: 2012. Estructura de datos y. Programación. Tema: Ejercicio 12_ Pila: Apuntes ...
96KB Größe 8 Downloads 110 vistas
Estructura de datos y Programación Tema: Ejercicio 12_ Pila: Apuntes Ing. Analia Méndez – Ing. Raquel Zarco Año: 2012

Clase RegApun public class RegApun { private String Asig; private String Tema; private int pag; Private float pre; int n=5; public RegApun(){ Asig=""; Tema=""; pag=0; pre=0.0; }

Clase Pila public class Pila { RegApun P[]; int tope; int Max=5; public Pila(){ P=new RegApun[Max]; tope=-1; } public boolean PilaVacia(){ return(tope==-1);} public boolean PilaLlena(){ return(tope== Max);}

public void insertar(String dato,String Tema,int pag, float pre){ if(! PilaLlena()){tope++; P[tope]=new RegApun(); P[tope].setAsig(dato); P[tope].setTema(Tema); P[tope].setPag(pag); P[tope].setPre(pre);} } public void insertar(RegApun x){ if(! PilaLlena()){tope++; P[tope]=x;}} public RegApun quitar(){ RegApun x=null; if(! PilaVacia()){ x=P[tope]; tope=tope-1;} return x; }}

Clase ApuntesApp import java.util.*; public class ApuntesApp { Pila P; Scanner ingreso;

public ApuntesApp(){

P=new Pila(); ingreso=new Scanner(System.in); }

public void Cargar(){ char op='s';while(op!='N'&& op!='n'){ System.out.println("Ingrese Asignatura:"); String dato= ingreso.next(); System.out.println("Tema del apunte"); String tema= ingreso.next(); System.out.println("Ingrese Numero de paginas:"); int pag= ingreso.nextInt();

System.out.println("Ingrese precio:"); float p= ingreso.nextFloat(); P.insertar(dato,tema,pag,p); System.out.println("Continuar s/n");

String opcion = ingreso.next(); opcion = opcion.equals("")?"a":opcion; op = opcion.charAt(0);

}}

public void imprimir(){Pila Aux = new Pila(); while(!P.PilaVacia()){ RegApun elem = P.quitar(); System.out.println(" "+ elem.getAsig() +" "+ elem.getTema()+ ""+ elem.getPag()+” ”+ elem.getPre()); Aux.insertar(elem.getAsig(),elem.getTema(),elem.getPag(), elem.getPre()); } retornar(Aux,P);} public void imprimirPorAsignatura(){ System.out.println("Ingrese Asignatura:"); String dato= ingreso.next(); Pila Aux = new Pila(); while(!P.PilaVacia()){ RegApun elem = P.quitar(); if( elem.getAsig().equals(dato)){ System.out.println(" "+ elem.getTema()+ ""+ elem.getPag()+” “+ elem.getPre());} Aux.insertar(elem.getAsig(),elem.getTema(),elem.getPag(), elem.getPre()); } retornar(Aux,P);}

public void mostrarOpcionesPila() { System.out.println("============================"); System.out.println("Opciones "); System.out.println("============================"); System.out.println(" 1-Carga Pila"); System.out.println(" 2-Mostrar Pila APuntes "); System.out.println(" 3-Mostrar Pila por Asignatura "); System.out.println("0-terminar"); } public void menu() { int op=6; do{ switch (op) { case 1:Cargar ();break; case 2:imprimir();break; case 3:imprimirPorAsignatura();break; case 0:break;} mostrarOpcionesPila(); op=ingreso.nextInt();} while(op!=0);} }

Clase Apuntes public class Apuntes { public static void main(String[] args) { ApuntesApp A=new ApuntesApp(); A.menu(); } } // completar el ejercicio de acuerdo a lo solicitado en el enunciado 12- Pila Apuntes