Ultimi argomenti attivi
Cerca
Esercizietto Esame [Restituzione DVD]
DebuggingZone :: Informatica :: Programmazione :: Java
Pagina 1 di 1
Esercizietto Esame [Restituzione DVD]
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)
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();
}
}
DebuggingZone :: Informatica :: Programmazione :: Java
Pagina 1 di 1
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.
|
|
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