Ultimi argomenti
» mancato invio posta
Mer Apr 13, 2011 12:17 am Da SasÓ

» Gallo Web Solutions.
Ven Ott 29, 2010 12:15 am Da SasÓ

» Accendere un Computer automaticamente o a distanza
Mer Ott 20, 2010 11:09 pm Da SasÓ

» Masterizzatore interno modello LG Slim SATA MULTI DVD 18x8 T20N/T40N
Ven Ott 08, 2010 9:32 am Da Sitzigorru

» P=NP sembra proprio di no, forse siamo alla soluzione.............
Mar Set 14, 2010 8:28 pm Da SasÓ

» Come installare windows xp da boot con usb
Gio Giu 03, 2010 9:07 pm Da DaviduX

» CPU a 36GHz? Con Phenom II X6 si pu˛!
Sab Mag 15, 2010 9:31 pm Da ElDorado

» Lucid Lynx: Ubuntu cambia pelle
Sab Mag 15, 2010 9:17 pm Da kevin

» iPhone 4G a pezzi: produrlo costa solo 175$
Sab Mag 15, 2010 9:06 pm Da kevin

Cerca
 
 

Risultati secondo:
 


Rechercher Ricerca avanzata

Navigazione
 Portale
 Indice
 Lista utenti
 Profilo
 FAQ
 Cerca
Sito Amico

salvatore gallo2.gif


alkem.gif

-----------------------------------

eyrene.jpg

-----------------------------------

GalloWebSolution.gif

----------------------------------- --Info:Per inserire il tuo sito nella lista "Sito Amico", richiedi ad un amministratore.
Flusso RSS




Esercizietto Esame [Restituzione DVD]

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso

Esercizietto Esame [Restituzione DVD]

Messaggio  SasÓ il Dom Ott 05, 2008 2:04 am

ciao a tutti??
Posto qua un tipico esercizietto d'esame della Facolta di Ingegneria Informatica La sapienza "Roma".
Era la traccia delle esame di Tecniche di Programmazione Prof. Iocchi.
Questa Ŕ la traccia - Clicca Qua - (Guardate Solo La Prima Domanda ci riferiamo solo a quella)

Per tutti gli amanti della programmazione a voi la mia implementazione..
Studiatevela. (attenzione ci potrebbe essere qualche errore nei costi non li o riguardati prima di postare)

Codice:
import java.io.*;
class NodoLista{
   Dvd info;
   NodoLista next;
   
   public NodoLista(Dvd i, NodoLista n){
      this.info=i;
      this.next=n;
   }
}

class Dvd{
   int codice;
   String genere;
   String titolo;
   
   public Dvd(int c, String g, String t){
      this.codice=c;
      this.genere=g;
      this.titolo=t;
   }
}

public class RestituzioneDvd{
   private NodoLista nodoInit;
   private String nome;
   
//Metodi
/***************************************
 costo in tempo:o(1)
 costo in spazio:o(1)
 **************************************/
    public RestituzioneDvd(String s){
      this.nome=s; 
      nodoInit=null;
   }
   
   
/***************************************
 costo in tempo:o(1)
 costo in spazio:o(1)
 **************************************/   
   
   public boolean nessunaRestituzione(){
      if(nodoInit==null) return true;
      else return false;
   }

/***************************************
 costo in tempo:o(1)
 costo in spazio:o(1)
 **************************************/   
   public String videoteca(){
      return this.nome;
   }
   
/***************************************
 dimensione imput: lunghezza lista = n
 costo in tempo:o(n)
 costo in spazio:o(1)
 caso pegiore: se il codice non e presente [vedere metodo riconsegato()]
 **************************************/   
   public void riconsegna(int cod,String g, String t){
      if(riconsegnato(cod)==true) throw new RuntimeException("codice "+cod+"gia presente"); //dominante
      else{
         Dvd d=new Dvd(cod,g,t);
         nodoInit=new NodoLista(d,nodoInit); //aggiunte in testa
      }
   }
   
/***************************************
 costo in tempo:o(1)
 costo in spazio:0(i)
 **************************************/   
   public void preleva(){
      if(nodoInit==null) throw new RuntimeException("Nessun Dvd presente");
      else nodoInit=nodoInit.next;
   }
   
   
/***************************************
 dimensione imput: lunghezza lista = n
 costo in tempo:o(n^2)
 costo in spazio:o(1)
 caso pegiore:codice presnete in ultima posizione
 **************************************/   
   public void prelevaConCodice(int cod){
      if(riconsegnato(cod)==false) throw new RuntimeException("codice "+cod+"non presente");
      else{
         nodoInit=new NodoLista(null,nodoInit); //nodo Generatore
         NodoLista q=nodoInit;
         while(q.next!=null && q.next.info.codice!=cod){ //dominante
            q=q.next;
         }
         if(q.next!=null) q.next=q.next.next;
         nodoInit=nodoInit.next; //delete nodo Generatore
      }
   }
   
/***************************************
 dimensione imput: lunghezza lista n
 costo in tempo:o(n)
 costo in spazio:o(1)
 caso pegiore:codice in ultima posizione
 **************************************/   
   public boolean riconsegnato(int cod){
      NodoLista q=nodoInit;
      while(q!=null && q.info.codice!=cod){  //dominate
         q=q.next;                         
      }
      if(q!=null) return true;
      else return false;
      
   }
   
/***************************************
 dimensione imput:lunghezza lista =n
 costo in tempo:o(n^2)
 costo in spazio:o(1)
 caso pegiore: codice in ultima posizione
 **************************************/   
   public String genere(int cod){
      if(riconsegnato(cod)==false) throw new RuntimeException("codice "+cod+"non presente");
      else{
         NodoLista q=nodoInit;
         while(q!=null && q.info.codice!=cod){
            q=q.next;
         }
         return q.info.genere;
      }
   }
   
   
/***************************************
 dimensione imput: lunghezza lista = n;
 costo in tempo:o(n^2)
 costo in spazio:o(1)
 caso pegiore:codice in ultima posizione
 **************************************/   
   public String titolo(int cod){
        if(riconsegnato(cod)==false) throw new RuntimeException("codice "+cod+"non presente");
      else{
         NodoLista q=nodoInit;

         while(q!=null && q.info.codice!=cod){ //dominate
            q=q.next;
         }
         return q.info.titolo;
      }
   }
   
/***************************************
 dimensione imput: linghezza lista
 costo in tempo:o(n)
 costo in spazio:o(1)
 **************************************/   
   public int quantiGenere(String g){
      NodoLista q=nodoInit;
      int conta=0;
      while(q!=null){            //dominate
         if(q.info.genere.equals(g)) conta++;
         q=q.next;
      }
      return conta;
   }
   
/***************************************
 dimensione imput: linghezza lista
 costo in tempo:o(n)
 costo in spazio:o(n)
 **************************************/      
   public int[] tuttiGenere(String g){
      //nodoInit=new NodoLista(null,nodoInit); //nodoGeneratore
      NodoLista q=nodoInit;
      int [] codG = new int[quantiGenere(g)];
      int i=0;
      while(q!=null){    //dominate
         if(q.info.genere.equals(g)){
             codG[i]=q.info.codice;
             i++;
         }   
         q=q.next;
     }
     return codG;
   }
   
   
   
   
   
   
   
   
   
   //Metodi ausiliari
   
   
   
/***************************************
 dimensione imput: linghezza lista
 costo in tempo:o(n)
 costo in spazio:o(n)
 **************************************/   
   public String toString(){
      NodoLista q=nodoInit;
      String ris=this.nome+"\n";
      while(q!=null){ //dominate
         ris+=q.info.codice+" "+q.info.genere+" "+q.info.titolo+"\n";
                  q=q.next;
      }
      return ris;
   }
   
   //Questo metodo non era richiesto
   
   public void tuttiConsegnati()throws IOException{
      FileWriter f=new FileWriter("tuttiConsegnati.txt");
      PrintWriter out= new PrintWriter(f);
      NodoLista q=nodoInit;
      while(q!=null){
         out.println(q.info.codice+" "+q.info.genere+" "+q.info.titolo);
         q=q.next;
      }
      f.close();
   }   
   
}
avatar
SasÓ
Admin
Admin

Numero di messaggi : 172
EtÓ : 30
Localizzazione : Roma oppure Cotronei (KR)
Data d'iscrizione : 03.12.07

Vedi il profilo dell'utente http://www.salvatoregallo.it

Tornare in alto Andare in basso

Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto

- Argomenti simili

 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum