Colas
Cola que almacena 10 numeros en vectory realiza funciones de dar de altas numeros introducidos, eliminar, mostrar ,salir.
import java.io.*;
public class Colas {
public static class ClaseColas { // Declaracion de la clase de Colas
static int max=10; // Tamano maximo de la Cola
static int cola[]= new int[max]; // Declaracion del arreglo
static int frente, fin; // Indicadores de inicio y fin de la Cola
ClaseColas() { // Constructor que inicializa el frente y el final de la Cola
frente=0; fin=0;
System.out.println("Cola inicializada !!!");
}
public static void Insertar(int dato) {
if(fin==max) { // Esta llena la Cola?
System.out.println("\nCola llena !!!");
return;
}
cola[fin++]=dato;
System.out.println("Dato insertado !!!");
}
public static void Eliminar() {
System.out.println("\n\n<<< ELIMINAR >>>");
if(frente==fin) { // Esta vacia la Cola?
System.out.println("\nCola vacia !!!");
return;
}
System.out.println("Elemento eliminado: "+cola[frente++]);
}
public static void Mostrar() {
int i=0;
System.out.println("\n\n<<< MOSTRAR >>>");
if(frente==fin) System.out.println("\nCola vacia !!!");
for(i=frente; i<fin; i++) {
System.out.println("cola["+i+"]="+" "+cola[i]);
}
System.out.println("\nFrente= "+frente);
System.out.println("Final = "+fin);
System.out.println("Max = "+max);
}
}
static ClaseColas Cola=new ClaseColas(); // Declaracion del objeto Cola
// Funcion principal
public static void main(String args[]) throws IOException {
int op=0;
do {
System.out.println("\n\n<<< COLAS >>>");
System.out.println("1.- Altas");
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 : Cola.Eliminar(); break;
case 3 : Cola.Mostrar(); break;
}
}while(op!=0);
}
public static void Altas() throws IOException {
int elemento=0;
System.out.println("\n\n<<< ALTAS >>>");
System.out.print("Elemento a insertar? ---> ");
elemento=getInt();
Cola.Insertar(elemento); // Invocar el metodo Insertar del objeto Cola
}
// Funcion 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;
}
// Funcion para capturar un entero desde el teclado
public static int getInt() throws IOException {
String s = getString();
return Integer.parseInt(s);
}
}
------------------------------------------------------------------------------------------------------------
Cola circular
Cola que almacena 5 numeros y muestra el primero y el ultimo
import java.io.*;
public class ColaCircular {
public static class ClaseColaCircular { // Declaracion de la clase de la Cola Circular
static int max=5; // 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("\nCola Circular vacia !!!");
}
else {
i=frente;
do {
System.out.println("colacircssss["+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]);//elimina en el vector
if(frente==fin) { //el primer fuente
frente=-1; fin=-1; //si frente igual a fin vacios mostrar -1
return;
}
if(frente==max) frente=0; else frente++;
}
}
// Declaracion del objeto ColaCircular
static ClaseColaCircular ColaCircular=new ClaseColaCircular();
// Funcion principal
public static void main(String args[]) throws IOException {
int op=0;
do {
System.out.println("\n\n<<< COLAS CIRCULARES >>>");
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
}
// Funcion 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;
}
// Funcion para capturar un entero desde el teclado
public static int getInt() throws IOException {
String s = getString();
return Integer.parseInt(s);
}
}
------------------------------------------------------------------------------------------------------------
pila
pila que almacena 10 numeros con funciones pop, push,mostrar, salir.
import java.io.*;
public class Pilas {
public static class ClasePila { // Declaracion de la clase de la Pila
private int max=10; // Tamano maximo de la pila
private int pila[] = new int [max]; // Arreglo para almacenar la pila
private int top; // Indica la cantidad de datos en la pila
public ClasePila() { // Constructor
top=0;
System.out.println("Pila creada !!!");
}
public void Push(int dato) {
if(top==max) // Esta llena la Pila?
{
System.out.println("Pila llena !!!");
return;
}
for(int i=0; i<top; i++) {
if(pila[i]==dato) { // Ya existe el dato?
System.out.println("Duplicado !!!");
return;
}
if(dato<pila[i]) { // Alta al principio o intermedia
for(int j=top;j>i;j--)
pila[j]=pila[j-1];
pila[i]=dato;
top++;
System.out.println("Dato insertado al principio o intermedio !!!");
return;
}
}
pila[top++]=dato; // Alta al final
System.out.println("Dato insertado al final !!!");
return;
}
public void Pop(int dato) {
if(top==0) { // Esta vacia la Pila?
System.out.println("Pila vacia !!!");
return;
}
for(int i=0;i<top;i++) {
if(pila[i]==dato) {
for(int j=i; j<top-1; j++)
pila[j]=pila[j+1];
top--;
System.out.println("Dato eliminado !!!");
return;
}
}
System.out.println("Dato inexistente !!!");
}
public void Mostrar() {
System.out.println("\n\n<<< MOSTRAR LA PILA >>>");
if(top==0) System.out.println("Pila vacia !!!");
for(int i=0;i<top;i++)
System.out.println("pila["+i+"]="+pila[i]);
System.out.println("top="+top);
System.out.println("max="+max);
}
}
static ClasePila Pila=new ClasePila(); // Declaracion del objeto Pila
// Funcion principal
public static void main(String args[]) throws IOException {
int op=0;
do {
op=0;
System.out.println("\n\n<<< PILAS >>>");
System.out.println("1.-Push");
System.out.println("2.-Pop");
System.out.println("3.-Mostrar Pila");
System.out.println("0.-Salir");
//op=Integer.parseInt(JOptionPane.showInputDialog("Opcion? "));
System.out.print("Opcion? ---> ");
op=getInt();
switch(op) {
case 1 : Altas(); break;
case 2 : Bajas(); break;
case 3 : Pila.Mostrar(); break;
}
}while(op!=0);
}
public static void Altas() throws IOException {
int dato=0;
System.out.println("\n\n<<< ALTAS >>>");
System.out.print("\nAnote el dato que desea insertar ---> ");
dato=getInt();
Pila.Push(dato); // Invocar el metodo Push del objeto Pila
}
public static void Bajas() throws IOException {
int dato=0;
System.out.println("\n\n<<< BAJAS >>>");
System.out.print("\nAnote el dato que desea eliminar ---> ");
dato=getInt();
Pila.Pop(dato); // Invocar el metodo Pop del objeto Pila
}
// Funcion 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;
}
// Funcion para capturar un entero desde el teclado
public static int getInt() throws IOException {
String s = getString();
return Integer.parseInt(s);
}
}
------------------------------------------------------------------------------------------------------------
Listas
import java.io.*;
public class Listas {
public static class ClaseListas { // Declaracion de la clase de Listas
static char dato[]=new char[100]; //Declaracion del arreglo para los datos de tipo char
static int sn[]=new int[100]; //Declaracion del arreglo para el indicador del sig. nodo
static int apui, top; // Apuntador inicial y Cantidad de datos en la Lista
ClaseListas() { // Constructor de la ClaseListas
apui=-1;
top=0;
System.out.println("Lista enlazada inicializada !!!");
System.out.println("apui="+apui);
System.out.println("top ="+top);
}
public static void Mostrar() {
int i=0;
System.out.println("\n\n<<< MOSTRAR ESTRUCTURA >>>");
if(apui==-1) System.out.println("\nLista enlazada vacia !!!\n");
System.out.println("posicion dato sn");
System.out.println("---------------------------");
for(i=0;i<top;i++) {
System.out.println(i+" | "+dato[i]+" | "+sn[i]);
}
System.out.println("\napui="+apui);
System.out.println("top="+top);
}
public static void Insertar(char elemento) {
int i=0, ant=0;
if(apui==-1) { //Alta en Lista vacia
System.out.println("Insertar dato en lista vacia ...");
apui=top;
dato[top]=elemento;
sn[top]=-1;
top++;
return;
}
i=apui;
do {
if(dato[i]==elemento) {
System.out.println("Duplicado !!!");
return;
}
if(elemento<dato[i]) {
if(i==apui) { //Alta al principio
System.out.println("Insertando el dato menor de todos ...");
dato[top]=elemento;
sn[top]=apui;
apui=top;
top++;
return;
} else {
System.out.println("Alta intermedia ...");
dato[top]=elemento;
sn[top]=sn[ant];
sn[ant]=top;
top++;
return;
}
}
ant=i;
i=sn[i];
}while(i!=-1);
System.out.println("Alta al final ...");
dato[top]=elemento;
sn[top]=-1;
sn[ant]=top;
top++;
return;
}
}
// Declaracion del objeto Lista
static ClaseListas Lista=new ClaseListas();
//Funcion principal
public static void main(String args[]) throws IOException {
int op=0;
do {
System.out.println("\n\n<<< LISTAS ENLAZADAS >>>");
System.out.println("1.- Altas");
System.out.println("2.- Mostrar estructura");
System.out.print("Opcion? ---> ");
op=getInt();
switch(op) {
case 1 : Altas(); break;
case 2 : Lista.Mostrar(); break;
}
}while(op!=0);
}
public static void Altas() throws IOException {
char dato;
System.out.println("\n\n<<< ALTAS >>>");
System.out.print("Dato a insertar ---> ");
dato=getChar();
Lista.Insertar(dato); //Invocar el metodo Insertar del objeto Lista
}
//Funcion 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;
}
// Funcion para capturar un entero desde el teclado
public static int getInt() throws IOException {
String s = getString();
return Integer.parseInt(s);
}
//Funcion para capturar un caracter desde el teclado
public static char getChar() throws IOException {
String s=getString();
return s.charAt(0);
}
}
------------------------------------------------------------------------------------------------------------
public class Listas {
public static class ClaseListas { // Declaracion de la clase de Listas
static char dato[]=new char[100]; //Declaracion del arreglo para los datos de tipo char
static int sn[]=new int[100]; //Declaracion del arreglo para el indicador del sig. nodo
static int apui, top; // Apuntador inicial y Cantidad de datos en la Lista
ClaseListas() { // Constructor de la ClaseListas
apui=-1;
top=0;
System.out.println("Lista enlazada inicializada !!!");
System.out.println("apui="+apui);
System.out.println("top ="+top);
}
public static void Mostrar() {
int i=0;
System.out.println("\n\n<<< MOSTRAR ESTRUCTURA >>>");
if(apui==-1) System.out.println("\nLista enlazada vacia !!!\n");
System.out.println("posicion dato sn");
System.out.println("---------------------------");
for(i=0;i<top;i++) {
System.out.println(i+" | "+dato[i]+" | "+sn[i]);
}
System.out.println("\napui="+apui);
System.out.println("top="+top);
}
public static void Insertar(char elemento) {
int i=0, ant=0;
if(apui==-1) { //Alta en Lista vacia
System.out.println("Insertar dato en lista vacia ...");
apui=top;
dato[top]=elemento;
sn[top]=-1;
top++;
return;
}
i=apui;
do {
if(dato[i]==elemento) {
System.out.println("Duplicado !!!");
return;
}
if(elemento<dato[i]) {
if(i==apui) { //Alta al principio
System.out.println("Insertando el dato menor de todos ...");
dato[top]=elemento;
sn[top]=apui;
apui=top;
top++;
return;
} else {
System.out.println("Alta intermedia ...");
dato[top]=elemento;
sn[top]=sn[ant];
sn[ant]=top;
top++;
return;
}
}
ant=i;
i=sn[i];
}while(i!=-1);
System.out.println("Alta al final ...");
dato[top]=elemento;
sn[top]=-1;
sn[ant]=top;
top++;
return;
}
}
// Declaracion del objeto Lista
static ClaseListas Lista=new ClaseListas();
//Funcion principal
public static void main(String args[]) throws IOException {
int op=0;
do {
System.out.println("\n\n<<< LISTAS ENLAZADAS >>>");
System.out.println("1.- Altas");
System.out.println("2.- Mostrar estructura");
System.out.print("Opcion? ---> ");
op=getInt();
switch(op) {
case 1 : Altas(); break;
case 2 : Lista.Mostrar(); break;
}
}while(op!=0);
}
public static void Altas() throws IOException {
char dato;
System.out.println("\n\n<<< ALTAS >>>");
System.out.print("Dato a insertar ---> ");
dato=getChar();
Lista.Insertar(dato); //Invocar el metodo Insertar del objeto Lista
}
//Funcion 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;
}
// Funcion para capturar un entero desde el teclado
public static int getInt() throws IOException {
String s = getString();
return Integer.parseInt(s);
}
//Funcion para capturar un caracter desde el teclado
public static char getChar() throws IOException {
String s=getString();
return s.charAt(0);
}
}
------------------------------------------------------------------------------------------------------------
Lista encadenada
import java.io.*;
public class Listas_Objetos {
public static class ClaseLista {
public static class ClaseNodo {
char dato; // Dato del nodo (NO debe declararse "static")
ClaseNodo sn; // Apuntador al siguiente nodo (NO debe declararse "static")
}
static ClaseNodo inicial;
public static void Inicializar() {
inicial=new ClaseNodo();
inicial=null;
}
public static void Eliminar(char d) throws IOException {
ClaseNodo i=inicial, anterior=i;
if(i==null) {
System.out.println("Lista vacia !!!");
getch();
return;
}
while(i!=null) {
if(d==i.dato) {
if(i==inicial) {
inicial=i.sn;
System.out.println("\nBaja al principio...");
getch();
return;
}
anterior.sn=i.sn;
System.out.println("\nBaja intermedia o al final ...");
getch();
return;
}
anterior=i;
i=i.sn;
}
System.out.println("\nNo existe ese dato !!!");
getch();
return;
}
public static void Insertar(char d) throws IOException {
ClaseNodo i=inicial, nuevo_nodo, anterior=i;
if(i==null) {
nuevo_nodo=new ClaseNodo();
nuevo_nodo.dato=d;
nuevo_nodo.sn=null;
inicial=nuevo_nodo;
System.out.println("\nAlta a lista vacia...");
getch();
return;
}
while(i!=null) {
if(d==i.dato) {
System.out.println("\nDuplicado !!!");
getch();
return;
}
if(d<i.dato) {
if(i==inicial) {
nuevo_nodo=new ClaseNodo();
nuevo_nodo.dato=d;
nuevo_nodo.sn=inicial;
inicial=nuevo_nodo;
System.out.println("\nAlta al principio...");
getch();
return;
}
nuevo_nodo=new ClaseNodo();
nuevo_nodo.dato=d;
nuevo_nodo.sn=anterior.sn;
anterior.sn=nuevo_nodo;
System.out.println("\nAlta intermedia...");
getch();
return;
}
anterior=i;
i=i.sn;
}
nuevo_nodo=new ClaseNodo();
nuevo_nodo.dato=d;
nuevo_nodo.sn=null;
anterior.sn=nuevo_nodo;
System.out.println("\nAlta al final...");
getch();
return;
}
public static void Recorrido() throws IOException {
ClaseNodo i=inicial;
clrscr();
System.out.println("\n<<< RECORRIDO DE UNA LISTA ENCADENADA >>>\n\n");
if(i==null) {
System.out.println("\nLista vacia");
}
while(i!=null) {
System.out.print(i.dato+"->");
i = i.sn;
}
System.out.println("null");
getch();
}
}
static ClaseLista Lista=new ClaseLista(); // Declaracion global del objeto Lista
public static void main(String args[]) throws IOException {
int op=0;
Lista.Inicializar(); // Inicializar la Lista Enlazada
do {
clrscr();
System.out.println("\n\n<<< LISTAS ENCADENADAS CON OBJETOS >>>");
System.out.print("\n1.- Altas");
System.out.print("\n2.- Bajas");
System.out.print("\n3.- Recorrido");
System.out.print("\n0.- Salir");
System.out.print("\nOpcion? ---> ");
op=getInt();
switch(op) {
case 1 : Altas(); break;
case 2 : Bajas(); break;
case 3 : Lista.Recorrido(); break;
}
}while(op!=0);
}
public static void Bajas() throws IOException {
char dato;
clrscr();
System.out.println("\n<<< BAJAS >>>");
System.out.print("\nAnote el dato a eliminar ---> ");
dato=getChar();
Lista.Eliminar(dato);
}
public static void Altas() throws IOException {
char dato;
clrscr();
System.out.println("\n\n<<< ALTAS >>>");
System.out.print("\nAnote el dato a insertar ---> ");
dato=getChar();
Lista.Insertar(dato);
}
public static void clrscr() {
for(int i=0;i<26;i++)
System.out.println(" ");
}
//Funcion 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;
}
// Funcion para capturar un entero desde el teclado
public static int getInt() throws IOException {
String s = getString();
return Integer.parseInt(s);
}
//Funcion para capturar un caracter desde el teclado
public static char getChar() throws IOException {
String s=getString();
return s.charAt(0);
}
// Rutina para hacer una pausa
public static void getch() throws IOException {
String s;
System.out.print("\n<<< Oprima cualquier tecla para continuar >>>");
s=getString();
return;
}
}
Cola lineal
El siguiente programa utiliza estructura de datos, lógica, y manejo de ventanas swing sencillas, usa la técnica FIFO, y metodos gets y sets.
Hacer un programa en java que dado cualquir numero de paises se almacenen, y tenga funcion de agregar pais, eliminar pais, mostrar y salir.
Para que funcione recuerda que solo tienes que correr (Run) la clase principal que contiene el public static void main(String []args)
Primera clase con metodos get y sets:
class pais{
private String nombre;
private String capital;
private int habitantes;
public pais(String n, String c, int h){
nombre=n;
capital=c;
habitantes=h;
}
public pais(){
}
public void setNombre(String n){
nombre=n;
}
public void setCapital(String c){
capital=c;
}
public void setHabitantes(int h){
habitantes=h;
}
public String getNombre(){
return nombre;
}
public String getCapital(){
return capital;
}
public int getHabitantes(){
return habitantes;
}
}
Segunda clase con la logica y estructura FIFO:
import javax.swing.*;
public class paises {
private pais p[];
private int i;
public void Imp(String Men){
JOptionPane.showMessageDialog(null, Men);
}
public paises(int tamano){
p= new pais[tamano];
i=-1;
}
public boolean free(){
return i==-1;
}
public boolean full(){
return i==p.length-1;
}
// Este método inserta al final de arreglo mientras este no este lleno
public void AgregarPais(pais np){
if(!full()){
i++;
p[i]=np;
}
}
// Este método elimina el último país insertado
public void EliminaPais(){
if(!free()){
ImpPais(p[i]);
i--;
Imp("País eliminado");
}
}
public void ImpPais(pais PI){
Imp("Nombre: "+PI.getNombre()+"\n"+
"Capital: "+PI.getCapital()+"\n"+
"Habitantes: "+PI.getHabitantes());
}
// Imprime los paises del vector
public void Imprime(){
if(free())
Imp("no hay paises capturados");
else{
int R=0;
do
ImpPais(p[R++]);
while(R<=i);
}
}
}
Tercera clase:
import javax.swing.*;
public class principal {
private static paises p;
public static int LeeInt(String Men){
return Integer.parseInt(JOptionPane.showInputDialog(Men));
}
public static String LeeCad(String Men){
return JOptionPane.showInputDialog(Men);
}
public static void crearVector(){
p=new paises(LeeInt("Dar numero paises que se controlan en el vector"));
}
public static pais capturaRegistro(){
pais regNue=new pais();
regNue.setNombre(LeeCad("Dar Nombre:"));
regNue.setCapital(LeeCad("Dar Capital:"));
regNue.setHabitantes(LeeInt("Dar No. habitantes:"));
return regNue;
}
public static void addPais(){
if(p.full())
JOptionPane.showMessageDialog(null, "Vector Lleno...");
else{
pais a=capturaRegistro();
p.AgregarPais(a);
p.Imp("Registro almacenado...");
}
}
public static void Elimina(){
if(p.free())
p.Imp("Vector vacio...");
else
p.EliminaPais();
}
public static void run(){
int opc;
crearVector();
do{
opc=Opcion();
switch(opc){
case 1: addPais(); break;
case 2: Elimina(); break;
case 3: p.Imprime(); break;
//case 4: p.modificar(); break;
//case 5: p.buscar(); break;
}
}while(opc!=4);
}
public static int Opcion(){
String cad="Menu \n\n";
cad=cad+"1.- Agregar Pais\n";
cad=cad+"2.- Eliminar Pais\n";
cad=cad+"3.- Listar Paises\n";
//cad=cad+"4.- Modificar\n";
//cad=cad+"5.- Buscar\n";
cad=cad+"4.- Salir\n";
return LeeInt(cad);
}
public static void main(String []args){
run();
System.exit(0);
}
}
Hacer un programa en java que dado cualquir numero de paises se almacenen, y tenga funcion de agregar pais, eliminar pais, mostrar y salir.
Para que funcione recuerda que solo tienes que correr (Run) la clase principal que contiene el public static void main(String []args)
Primera clase con metodos get y sets:
class pais{
private String nombre;
private String capital;
private int habitantes;
public pais(String n, String c, int h){
nombre=n;
capital=c;
habitantes=h;
}
public pais(){
}
public void setNombre(String n){
nombre=n;
}
public void setCapital(String c){
capital=c;
}
public void setHabitantes(int h){
habitantes=h;
}
public String getNombre(){
return nombre;
}
public String getCapital(){
return capital;
}
public int getHabitantes(){
return habitantes;
}
}
Segunda clase con la logica y estructura FIFO:
import javax.swing.*;
public class paises {
private pais p[];
private int i;
public void Imp(String Men){
JOptionPane.showMessageDialog(null, Men);
}
public paises(int tamano){
p= new pais[tamano];
i=-1;
}
public boolean free(){
return i==-1;
}
public boolean full(){
return i==p.length-1;
}
// Este método inserta al final de arreglo mientras este no este lleno
public void AgregarPais(pais np){
if(!full()){
i++;
p[i]=np;
}
}
// Este método elimina el último país insertado
public void EliminaPais(){
if(!free()){
ImpPais(p[i]);
i--;
Imp("País eliminado");
}
}
public void ImpPais(pais PI){
Imp("Nombre: "+PI.getNombre()+"\n"+
"Capital: "+PI.getCapital()+"\n"+
"Habitantes: "+PI.getHabitantes());
}
// Imprime los paises del vector
public void Imprime(){
if(free())
Imp("no hay paises capturados");
else{
int R=0;
do
ImpPais(p[R++]);
while(R<=i);
}
}
}
Tercera clase:
import javax.swing.*;
public class principal {
private static paises p;
public static int LeeInt(String Men){
return Integer.parseInt(JOptionPane.showInputDialog(Men));
}
public static String LeeCad(String Men){
return JOptionPane.showInputDialog(Men);
}
public static void crearVector(){
p=new paises(LeeInt("Dar numero paises que se controlan en el vector"));
}
public static pais capturaRegistro(){
pais regNue=new pais();
regNue.setNombre(LeeCad("Dar Nombre:"));
regNue.setCapital(LeeCad("Dar Capital:"));
regNue.setHabitantes(LeeInt("Dar No. habitantes:"));
return regNue;
}
public static void addPais(){
if(p.full())
JOptionPane.showMessageDialog(null, "Vector Lleno...");
else{
pais a=capturaRegistro();
p.AgregarPais(a);
p.Imp("Registro almacenado...");
}
}
public static void Elimina(){
if(p.free())
p.Imp("Vector vacio...");
else
p.EliminaPais();
}
public static void run(){
int opc;
crearVector();
do{
opc=Opcion();
switch(opc){
case 1: addPais(); break;
case 2: Elimina(); break;
case 3: p.Imprime(); break;
//case 4: p.modificar(); break;
//case 5: p.buscar(); break;
}
}while(opc!=4);
}
public static int Opcion(){
String cad="Menu \n\n";
cad=cad+"1.- Agregar Pais\n";
cad=cad+"2.- Eliminar Pais\n";
cad=cad+"3.- Listar Paises\n";
//cad=cad+"4.- Modificar\n";
//cad=cad+"5.- Buscar\n";
cad=cad+"4.- Salir\n";
return LeeInt(cad);
}
public static void main(String []args){
run();
System.exit(0);
}
Me parecio interesante los temas de Java sobre Listas Pilas y Colas :)
ResponderEliminarmuy bueno
ResponderEliminarExcelente buenos programas!!
ResponderEliminar