Simulazione con allocazione dinamica di uno stack in Java

Programmazione con la JVM.

Moderator: Falcon

Simulazione con allocazione dinamica di uno stack in Java

Postby Falcon on 07 Nov 2007 22:43

Olà raga...scusate la mia prolungata assenza dal foro ma,con i miei vari impegni scolastici e non,non ho più molto tempo libero a disposizione da dedicarvi ma a volte vi penso!Penso a K8.. :lol: ...lasciando stare i preamboli inziali...ho realizzato un piccolo programmino stupido in Java che simula il funzionamento di uno stack con i limiti totali della memoria centrale.Il programma si basa sulla programmazione orientata agli oggetti.Sfrutta il funzionamento della lista ed implementa il funzionamento LIFO (l'ultimo che entra è il primo che esce)e delle operazioni push e di pop di semplici stringhe informative.Quello che voglio far notare nel mio programma è il funzionamento e non tanto l'utilità.Vi posto allora dopo aver fatto queste 2 premesse i sorgenti:
//Main
Code: Select all
/*
* Main.java
*/

package stacksimulator;
import java.io.*;
import java.lang.Thread;


/**
* @author Falcon
* @email fightingfalcon@hotmail.it
* @version:1.0
*/
public class Main extends Thread implements Runnable {
    public static void main(String[] args)  {
        int N,I,R;
        final int stop=1500;
        String Informazione;
        Stack S1=new Stack();
        System.out.println("**************************************************");
        System.out.println("StackSimulator ver.1.0 Coded by Falcon");
        System.out.println("**************************************************\n");
        try{
        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
   String line;
        do{
        System.out.println("Scegli l'operazione che vuoi effettuare");
        System.out.println("1)Acquisizione di un elemento");
        System.out.println("2)Pop e visualizzazione di tutto lo stack");
        System.out.println("3)Visualizzazione totale dello stack");
        System.out.println("4)Esci");
        System.out.println("Inserisci");
        line=input.readLine();
        R=Integer.parseInt(line);
        switch(R){
            case 1:
                try{
                   do{
                     System.out.println("Inserisci l'informazione ");
                     line=input.readLine();
                     Informazione=(line);
                     if(Informazione.equals(""))System.out.println("Errore nell'inserimento dei dati");
                    }while(Informazione.equals(""));
                    Nodo K=new Nodo(Informazione);
                    S1.Push(K);
                System.out.println("Acquisizione completata con successo");
                            try {
                                Thread.sleep(stop);
                            } catch (InterruptedException ex) {
                                ex.printStackTrace();
                            }
                }catch(IOException z){
                 System.out.println("Errore "+z);   
                }
                break;
            case 2:
                try{
                Nodo Generico=S1.Pop();
                System.out.println("Informazione "+Generico.Informazione);
                }catch(NullPointerException z){
                    System.out.println("Fine dello stack");
                }
                 try {
                    Thread.sleep(stop);
                } catch (InterruptedException ex) {
                                ex.printStackTrace();
                }
                break;
            case 3:
                S1.printAll();
                System.out.println("Fine visualizzazione");
                try {
                    Thread.sleep(stop);
                } catch (InterruptedException ex) {
                                ex.printStackTrace();
                }
                break;
            case 4:
                break;
            default:
                System.out.println("Errore nell'inserimento dei dati REINSERISCI");
                break;
        }
        }while(R!=4);
        System.out.println("Uscita dal programma");
        }catch(IOException e){
            System.out.println("Errore "+e);
        }
    }
   
}

//Classe Nodo.java
Code: Select all
/*
* Nodo.java
*/

package stacksimulator;

/**
* @author Falcon
* @email fightingfalcon@hotmail.it
* @version:1.0
*/
public class Nodo {
    public String Informazione;
    public Nodo Next;
    public Nodo(String Informazione) {
        this.Informazione=Informazione;
        this.Next=null;
    }
   
}

//Classe Stack.java
Code: Select all
/*
* Stack.java
*/

package stacksimulator;

/**
* @author Falcon
* @email fightingfalcon@hotmail.it
* @version:1.0
*/
public class Stack {
    private Nodo Top;
    public Stack() {
        this.Top=null;
    }
    public void Push(Nodo N){
        N.Next=this.Top;
        this.Top=N;
       
    }
    public Nodo Pop(){
        Nodo N=this.Top;
        this.Top=N.Next;
        return N;
    }
    public void printAll(){
        Nodo Temp;
        Temp=this.Top;
        while(Temp!=null){
            System.out.println("Informazione "+Temp.Informazione);
            Temp=Temp.Next;
        }
       
    }
}

Se volete che approfondisca teoricamente le liste,gli alberi ,ecc.. anche negli altri linguaggi fatemi sapere!
Linux Slackware User
User avatar
Falcon
Java Programmer
 
Posts: 541
Joined: 08 Jul 2006 08:38

Simulazione con allocazione dinamica di uno stack in Java

Sponsor

Google Adsense

Postby k8 on 08 Nov 2007 14:57

we falcon :*
grande :D
guarda nel topic sull'help C, c'è qualcuno che ha problemi con le liste :)
Free hosting.
Whois
Cerco gente interessata, bloggers,moderatori,programmatori & o scripter per far rinascere il progetto bigbug.
Topic di riferimento: http://forum.big-bug.net/news-dal-web-f7/apertura-nuovo-sito-t1798.html
User avatar
k8
Admin
 
Posts: 2022
Joined: 06 Jun 2006 16:00


Return to Java

Who is online

Users browsing this forum: No registered users and 1 guest

cron