IProgrammatori.it

Forum programmazione

Forum di supporto alla programmazione in generale e nei principali linguaggi.

Oggi è sab lug 31, 2010 6:51 pm

Tutti gli orari sono UTC + 2 ore




   [ 2 messaggi ] 
Autore Messaggio
 Oggetto del messaggio: Simulazione con allocazione dinamica di uno stack in Java
MessaggioInviato: mer nov 07, 2007 10:43 pm 
Java Programmer
Avatar utente
Iscritto il: sab lug 08, 2006 8:38 am
Messaggi: 547

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
Codice:
/*
* 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
Codice:
/*
* 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
Codice:
/*
* 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


   
 Oggetto del messaggio:
MessaggioInviato: gio nov 08, 2007 2:57 pm 
Admin
Avatar utente
Iscritto il: mar giu 06, 2006 4:00 pm
Messaggi: 2299
Località: Italia

we falcon :*
grande :D
guarda nel topic sull'help C, c'è qualcuno che ha problemi con le liste :)

_________________
Big-Bug cerca collaboratori.
Cerca di scrivere con un italiano corretto.


   
Visualizza ultimi messaggi:  Ordina per  
   [ 2 messaggi ] 

Tutti gli orari sono UTC + 2 ore


 Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a:  
 
cron