• Sábado 9 de Noviembre de 2024, 03:39

Autor Tema:  Simular "dos" En Java  (Leído 2061 veces)

gabpull

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Simular "dos" En Java
« en: Martes 7 de Noviembre de 2006, 06:57 »
0
Hola soy nuevo en el foro....y también nuevo en programación...
Estoy tratando de simular el DOS, de cierta manera, en java. Por el momento he utilizado la clase File y la e manipulado con ciertos métodos String para darle los comandos y se pueda guiar. Me han hablado de que con Listas y Nodos se me facilitarían las cosas, pero no se como aplicar las direcciones de los archivos en un Nodo. Si alguien me puede ayudar se lo agradecería...

aqui un ejemplo de lo que he hecho..

Código: Text
  1.  
  2.   static void existe(String a)//  a = ls - comando para mostrar lo que contiene un directorio
  3.   {
  4.     directorio = new File(inicio); //inicio = "c\\javafile" - carpeta donde inica . y muestra los archivos
  5.     String info[] = directorio.list();
  6.     //int num = info.length;
  7.     if(directorio.list() !=  null)
  8.     {
  9.  
  10.       System.out.println("\n\n  Tipo            Tama¤o                  Nombre\n");
  11.       for(int x = 0; x < info.length; x++)
  12.       {
  13.         File otro = new File(info[x]);
  14.         if(otro.isDirectory())
  15.           System.out.println("<DIRECTORIO>\t\t\t\t" + info[x]);
  16.         else
  17.         {
  18.           dosDigitos = new DecimalFormat("0.00");
  19.           f = otro.length();   f /= 1024;
  20.           System.out.println("<ARCHIVO>\t"+dosDigitos.format(f)+" Kbytes\t\t"+info[x]);
  21.  
  22.         }
  23.       }System.out.println("\n\n");
  24.     }else
  25.       System.out.println("\n\n En esta carpeta No ahy Archivos");
  26.   }
  27.  
  28.  

Drackzer

  • Miembro activo
  • **
  • Mensajes: 40
  • Nacionalidad: mx
    • Ver Perfil
Re: Simular "dos" En Java
« Respuesta #1 en: Jueves 9 de Noviembre de 2006, 01:17 »
0
Hola.>!!

Es facil realizar el instanciado de archivos con listas y Arboles, o cualuqiera de los otros tipos de estructura de datos conocido, ya sean recursivos o simples....

Bueno, un consejo que te puedo dar, es de que te documentes sobre lo que son las estructuras de datos (en este caso, Litas y Arboles, o tambien lo que son Pilas y Colas), para que entiendas su funcionalildad, y los diversos algoritmos para su utilizacion...

Un ejemplo, te lo mostrare aqui:

Código: Text
  1. import java.io.*;
  2. import javax.swing.*;
  3.  
  4. public class Lista
  5. {
  6.  
  7.   private Nodo P,Q,T,X,R;
  8.   boolean Flag;
  9.   int Refer;
  10.   BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
  11.  
  12.   private class Nodo
  13.   {
  14.     private int Informacion;
  15.     private Nodo Enlace;
  16.     }
  17.  
  18.   Lista()
  19.   {
  20.     Refer=0;
  21.  
  22.     P=null; Q=null; R=null; T=null; X=null;
  23.    
  24.   }
  25.  
  26.   public void InsertarInicio(int Dato)
  27.   {
  28.       Nodo Q=new Nodo();
  29.       Q.Informacion=Dato;
  30.       Q.Enlace=P;
  31.       P=Q;
  32.       System.out.println("\nInsercion hecha\nRecorre la lista para verificar los datos");
  33.   }
  34.  
  35.   public void InsertarFinal(int Dato)
  36.   {
  37.     T=P;
  38.     while(T.Enlace!=null)
  39.     {T=T.Enlace;}
  40.    
  41.     Nodo Q=new Nodo();
  42.     Q.Informacion=Dato;
  43.     Q.Enlace=null;
  44.     T.Enlace=Q;
  45.     System.out.println("\nInsercion hecha\nRecorre la lista para verificar los datos");
  46.   }
  47.   public void Recorrer()
  48.   {System.out.println("\nLISTA DE DATOS ");
  49.     if(P!=null)
  50.     {
  51.       Q=P;
  52.       while(Q!=null)
  53.       {
  54.         System.out.println("\n\t"+Q.Informacion+"");
  55.         Q=Q.Enlace;
  56.       }
  57.     }
  58.     else
  59.     System.out.println("\nNo Hay Datos en la Lista");
  60.   }
  61.  
  62.   public void InsertarAntes(int Refer,int Dato)
  63.   {
  64.     Q=P;
  65.     Flag=true;
  66.     while((Q.Informacion!=Refer)&&(Flag==true))
  67.     {
  68.       if(Q.Enlace!=null)
  69.       {
  70.         T=Q;
  71.         Q=Q.Enlace;
  72.       }
  73.       else{
  74.         Flag=false;  
  75.       System.out.println("\nNo existe la referencia");}
  76.     }
  77.  
  78.   if(Flag==true)
  79.   {
  80.     Nodo X=new Nodo();
  81.     X.Informacion=Dato;
  82.     if(P==Q)
  83.     {
  84.       X.Enlace=P;
  85.       P=X;
  86.       System.out.println("Insercion hecha\nRecorre la lista para verificar los datos");
  87.     }
  88.     else
  89.       T.Enlace=X;
  90.       X.Enlace=Q;
  91.       System.out.println("Insercion hecha\nRecorre la lista para verificar los datos");
  92.   }
  93.   }
  94.  
  95.   public void InsertarDespues(int Refer,int Dato)
  96.   {
  97.     Q=P;
  98.     Flag=true;
  99.     while((Q.Informacion!=Refer)&&(Flag==true))
  100.     {
  101.       if(Q.Enlace!=null)
  102.       {
  103.         Q=Q.Enlace;
  104.       }
  105.       else
  106.       {
  107.         Flag=false;
  108.         System.out.println("\nNo existe la referencia");
  109.       }
  110.     }
  111.     if(Flag==true)
  112.     {
  113.       Nodo T=new Nodo();
  114.       T.Informacion=Dato;
  115.       T.Enlace=Q.Enlace;
  116.       Q.Enlace=T;
  117.       System.out.println("Insercion hecha\nRecorre la lista para verificar los datos");
  118.     }
  119.   }
  120.  
  121.   public void EliminaPrimero()
  122.   {
  123.       Q=P;
  124.       if(Q.Enlace!=null)
  125.         {
  126.          P=Q.Enlace;
  127.          Q=null;
  128.         }
  129.       else
  130.        P=null;
  131.        System.out.println("Eliminacion hecha..!!\nRecorre la lista para verificar los datos");
  132.   }
  133.  
  134.   public void ElminaUltimo()
  135.   {
  136.       if(P.Enlace==null)
  137.        {
  138.         P=null;
  139.        }
  140.       else
  141.       Q=P;
  142.    while(Q.Enlace!=null)
  143.    {
  144.        T=Q;
  145.       Q=Q.Enlace;
  146.    }
  147.      T.Enlace=null;
  148.      Q=null;
  149.      System.out.println("Eliminacion hecha..!!\nRecorre la lista para verificar los datos");
  150. }
  151.  
  152.   public void EliminaX(int X)
  153.   {
  154.     Q=P;
  155.     Flag=true;
  156.     while((Q.Informacion!=X)&&(Flag==true))
  157.     {
  158.       if(Q.Enlace!=null)
  159.       {
  160.         T=Q;
  161.         Q=Q.Enlace;
  162.       }
  163.       else
  164.         Flag=false;
  165.     }
  166.     if(Flag==false)
  167.     {
  168.       System.out.println("\nNo esxiste el elemento X");
  169.     }
  170.     else
  171.       if(P==Q)
  172.       {
  173.         P=Q.Enlace;
  174.       }
  175.       else
  176.         T.Enlace=Q.Enlace;
  177.         Q=null;
  178.         System.out.println("El elemento "+X+ " fue encontrado\nEliminacion hecha..!!"
  179.         +"\nRecorre la lista para verificar los datos");
  180.   }
  181.  
  182.   public void EliminaAntesX(int X)
  183.   {
  184.     if(P.Informacion==X)
  185.     {
  186.       System.out.println("\nNo hay nodo que preceda a X");
  187.     }
  188.     else
  189.       Q=P;
  190.       T=P;
  191.       Flag=true;
  192.     while((Q.Informacion!=X)&&(Flag==true))
  193.     {
  194.       if(Q.Enlace!=null)
  195.       {
  196.         R=T;
  197.         T=Q;
  198.         Q=Q.Enlace;
  199.       }
  200.       else
  201.         Flag=false;
  202.     }
  203.     if(Flag==false)
  204.     {
  205.       System.out.println("\nNo existe el elemento X");
  206.     }
  207.     else
  208.       if(P.Enlace==Q)
  209.       {
  210.         P=Q;
  211.         T=null;
  212.         System.out.println("El elemento "+X+ " fue encontrado\nEliminacion hecha..!!"
  213.         +"\nRecorre la lista para verificar los datos");
  214.       }
  215.       else
  216.         R.Enlace=Q;
  217.         T=null;
  218.         System.out.println("El elemento "+X+ " fue encontrado\nEliminacion hecha..!!"
  219.         +"\nRecorre la lista para verificar los datos");
  220.   }
  221.  
  222.   public void EliminaDespuesX(int X)
  223.   {
  224.     Q=P;
  225.     if(P.Enlace==null)
  226.     {
  227.       System.out.println("No hay nodo que le suceda a X");
  228.     }
  229.     else
  230.       T=P; Flag=true;
  231.     while((Q.Informacion!=X)&&(Flag==true))
  232.     {
  233.       if(Q.Enlace!=null)
  234.       {
  235.         R=T;
  236.         T=Q;
  237.         Q=Q.Enlace;
  238.       }
  239.       else
  240.         Flag=false;        
  241.       }
  242.      
  243.       if(Flag==false)
  244.       {
  245.         System.out.println("El elemento no fue encontrado");
  246.       }
  247.       else
  248.         System.out.println("El elemento "+X+ " fue encontrado\n");
  249.         System.out.println("Eliminacion Hecha..:!!");
  250.         System.out.println("\nRecorre la lista para verificar los datos");
  251.        
  252.         T=Q.Enlace;
  253.         Q.Enlace=T.Enlace;
  254.         T=null;
  255.     }
  256.    
  257.   public void Busqueda(int X)
  258.   {
  259.     Q=P;
  260.     while((Q!=null)&&(Q.Informacion!=X))
  261.     {
  262.       Q=Q.Enlace;
  263.     }
  264.     if(Q==null)
  265.     {
  266.       System.out.println("\nEl elemento no fue encontrado");
  267.     }
  268.     else
  269.       System.out.println("\nEl elemento "+X+" se encuentra en la lista");
  270.   }
  271.  
  272.   public static void main(String args[])
  273.   {
  274.     Lista obj=new Lista();
  275.     int Dato,opcion,Refer,X;
  276.     String data,opc,ref,x;
  277.     BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
  278.     try{
  279.     do
  280.     {
  281.       System.out.println("\n\n\t---****<MENU DE OPCIONES>****----\n\n"+
  282.       "1.-Insertar al inicio de la lista\n2.-Insertar al final de la lista\n"+
  283.       "3.-Insertar Antes de\n4.-Insertar Despues de"+
  284.       "\n5.-Recorrer la lista \n6.-Eliminar el primer nodo\n7.-Eliminar el ultimo nodo"+
  285.       "\n8.-Eliminar un determinado nodo \n9.-Eliminar un nodo antes de... \n10.-Elimina"
  286.       +" un nodo despues de..."
  287.       +"\n11.-Busqueda de un determinado nodo \n12.-<<Salir>> \n\nSelecciona una opcion:");
  288.       opc=teclado.readLine();
  289.       opcion=Integer.parseInt(opc);
  290.    
  291.       switch(opcion)
  292.       {
  293.       case 1: try{System.out.println("\nIntroduce un valor para un dato nuevo(entero)");
  294.       data=teclado.readLine();
  295.       Dato=Integer.parseInt(data);
  296.       obj.InsertarInicio(Dato);}
  297.       catch(IOException variablerror) {System.out.println("error de captura ");}
  298.      
  299.       break;
  300.      
  301.       case 2: try{System.out.println("\nIntroduce un valor para un dato(entero)");
  302.       data=teclado.readLine();
  303.       Dato=Integer.parseInt(data);
  304.       obj.InsertarFinal(Dato);}
  305.       catch(IOException variablerror) {System.out.println("error de captura ");}
  306.       break;
  307.      
  308.       case 3:try{System.out.println("\nIntroduce un valor para un dato nuevo(entero)");
  309.       data=teclado.readLine();
  310.       Dato=Integer.parseInt(data);
  311.       System.out.println("\nIntroduce un valor de la lista como referencia");
  312.       ref=teclado.readLine();
  313.       Refer=Integer.parseInt(ref);
  314.       obj.InsertarAntes(Refer,Dato);}
  315.       catch(IOException variablerror) {System.out.println("error de captura ");}
  316.       break;
  317.      
  318.       case 4:try{System.out.println("\nIntroduce un valor para un dato nuevo(entero)");
  319.       data=teclado.readLine();
  320.       Dato=Integer.parseInt(data);
  321.       System.out.println("\nIntroduce un valor de la lista como referencia");
  322.       ref=teclado.readLine();
  323.       Refer=Integer.parseInt(ref);
  324.       obj.InsertarDespues(Refer,Dato);}
  325.       catch(IOException variablerror) {System.out.println("error de captura ");}
  326.       break;
  327.            
  328.       case 5: obj.Recorrer();
  329.       break;
  330.      
  331.       case 6:obj.EliminaPrimero();
  332.       break;
  333.      
  334.       case 7:obj.ElminaUltimo();
  335.       break;
  336.      
  337.       case 8:try{System.out.println("Introduce el valor de un elemento de la lista");
  338.       x=teclado.readLine();
  339.       X=Integer.parseInt(x);
  340.       obj.EliminaX(X);}
  341.       catch(IOException variablerror) {System.out.println("error de captura ");}
  342.       break;
  343.      
  344.       case 9:try{System.out.println("Introduce el valor de un elemento de la lista");
  345.       x=teclado.readLine();
  346.       X=Integer.parseInt(x);
  347.       obj.EliminaAntesX(X);}
  348.       catch(IOException variablerror) {System.out.println("error de captura ");}
  349.       break;
  350.      
  351.       case 10:try{System.out.println("Introduce el valor de un elemento de la lista");
  352.       x=teclado.readLine();
  353.       X=Integer.parseInt(x);
  354.       obj.EliminaDespuesX(X);}
  355.       catch(IOException variablerror) {System.out.println("error de captura ");}
  356.       break;
  357.      
  358.       case 11:try{System.out.println("Introduce el valor de un elemento de la lista");
  359.       x=teclado.readLine();
  360.       X=Integer.parseInt(x);
  361.       obj.Busqueda(X);}
  362.       catch(IOException variablerror) {System.out.println("error de captura ");}
  363.       break;
  364.      
  365.       case 12:
  366.            System.out.println("\nHaz elegido la opcion de salida\n\nGracias Por utilizar Dra@ckzer software");
  367.       System.exit(0);
  368.       break;
  369.       }
  370.   }
  371.   while(opcion!=12);
  372.   }
  373.     catch(IOException variablerror) {System.out.println("error de captura ");}
  374.   }
  375.   }
  376.  
  377.  

Un poko largo, no??  :P

Es un ejemplo CODIGO de un programa que simula una lista de datos para guardar datos tipo entero, es decir, numeros, pero los algoritmos aqui implementados, son algoritmos universales, para todo lenguaje de programacion, y para todo tipo de datos, asi que no hay pierde..!!

Nota: La fuente de estos algoritmos, lo puedes encontrar en el libro "Estructura de datos" de la Ed. Mc Graw Hill..

Si te fijas, los nodos los cree en una clase llamada Nodo, que tambien cree.. pero estan siendo inicializados en el constructor, y en la clase principal...

sale y Suerte compa..!!
INGENIERIA EN SISTEMAS - Prox. Sitio Web
"BETTA GLOBAL SYSTEMS"


Drackzer

  • Miembro activo
  • **
  • Mensajes: 40
  • Nacionalidad: mx
    • Ver Perfil
Re: Simular "dos" En Java
« Respuesta #2 en: Jueves 9 de Noviembre de 2006, 01:19 »
0
de hecho, no se porque llame a la libreria del Swing....  :blink:

jejej :unsure:  don't worry..!!
INGENIERIA EN SISTEMAS - Prox. Sitio Web
"BETTA GLOBAL SYSTEMS"


gabpull

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Simular "dos" En Java
« Respuesta #3 en: Sábado 11 de Noviembre de 2006, 07:20 »
0
hey muchas gracias ...  Drackzer
de hecho yo hasta ahora estoy conociendo lo que son Nodo ... Listas... Pilas... y Colas...
lo que me cuesta un poco es como integrar las direcciones de los archivos en un Nodo de tal manera que pueda crear una carpeta y luego acceder a ella, y de igual manera devolverme a la anterior .... en estos dias he podido realizar estas funciones, utilizando mis pocos conocimientos con las pilas...
pero igual gracias. el codigo que pusiste me va a alludar un poco mas con esta simulacion del "DOS"...
Talvez despues, cuando tenga mas amarrado mi codigo lo ponga aqui para aquellas personas que les interese...

Drackzer

  • Miembro activo
  • **
  • Mensajes: 40
  • Nacionalidad: mx
    • Ver Perfil
Re: Simular "dos" En Java
« Respuesta #4 en: Sábado 11 de Noviembre de 2006, 19:55 »
0
De nada, y ojala puedas terminar con tu proyecto....

sale compa y despues nos leemos, al radio.. ROCK!!
INGENIERIA EN SISTEMAS - Prox. Sitio Web
"BETTA GLOBAL SYSTEMS"


gabpull

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Simular "dos" En Java
« Respuesta #5 en: Domingo 12 de Noviembre de 2006, 05:29 »
0
pido ayuda otra vez... esta vez es para preguntar como puedo cambiar los colores del texto en la consola java.... algo asi como
System.out.println("Diferente");
y que la palabra "Diferente" salga de otro color...