Elenet.net
0 voti
quesito posto 12 Febbraio 2014 in Classe quarta da Roberto De Rosalia Corsista (124 punti)
  

1 Risposta

0 voti
CLASSE INVITATO:
import java.io.*;
import java.lang.*;
import java.util.*;

public class Invitato {
private String nome;
private char sesso;
private String telefono;

public Invitato(String nome, char sesso, String telefono){
this.nome=nome;
this.sesso=sesso;
this.telefono=telefono;
}

public Invitato(Invitato invitato){
this.nome=invitato.getNome();
this.sesso=invitato.getSesso();
this.telefono=invitato.getTelefono();
}

public void setNome(String nome) {
this.nome=nome;   
}

public String getNome(){
return nome;
}

public void setSesso(char sesso){
this.sesso=sesso;   
}

public char getSesso(){
return sesso;
}

public void setTelefono(String telefono){
this.telefono=telefono;   
}

public String getTelefono(){
return telefono;
}

public String toString(){
    return nome + "," + sesso + "," + telefono;
}
}

CLASSE NODO:
import java.io.*;
import java.lang.*;
import java.util.*;

public class Nodo {
private Invitato info;
private Nodo link;

public Nodo(Invitato persona){
info= new Invitato(persona);
link=null;
}

public void setInfo(Invitato persona){
info= new Invitato(persona);
}

public Invitato getInfo(){
return new Invitato(info);   
}
public void setLink(Nodo link){
this.link=link;
}

public Nodo getLink(){
return link;   
}
}

CLASSE FESTA:
import java.io.*;
import java.lang.*;
import java.util.*;

public class Festa {
private Nodo head;
private int elementi;
private int n;

public Festa(){
head=null;
elementi=0;
}

private Nodo creaNodo(Invitato persona, Nodo link){
Nodo nuovoNodo=new Nodo(persona);
nuovoNodo.setLink(link);
return nuovoNodo;
}

private Nodo getLinkPosizione(int posizione) throws FestaException{
int i=1;
Nodo p=head;
if(head==null)
throw new FestaException("Lista vuota");
if ((posizione>elementi) || (posizione<1))
throw new FestaException("Posizione errata");
while((p.getLink()!=null) && (n<posizione)) {
p=p.getLink();
n++;   
}
return p;
}

public int getElementi(){
return elementi;   
}

public void inserisciInTesta(Invitato persona){
Nodo p= creaNodo(persona, head);
head=p;
elementi++;
return;
}

public void inserisciInCoda(Invitato persona){
if(head==null)
inserisciInTesta(persona);
else {
try {
Nodo p=getLinkPosizione(elementi);
p.setLink(creaNodo(persona,null));
elementi++;   
}
catch(FestaException exception)
{
}
return;
}
}

public void inserisciInPosizione(Invitato persona, int posizione)
throws FestaException {
if(posizione<=1){
inserisciInTesta(persona);
}
else{
if(elementi<posizione)
inserisciInCoda(persona);
else{
Nodo p=getLinkPosizione(posizione-1);
p.setLink(creaNodo(persona, p.getLink()));
elementi++;
}
}
return;
}

public void eliminaInTesta() throws FestaException{
if(head==null)
throw new FestaException("Lista vuota");
head=head.getLink();
elementi--;
return;
}

public void eliminaInCoda() throws FestaException{
if(head==null)
throw new FestaException("Lista vuota");
Nodo p=getLinkPosizione(elementi-1);
p.setLink(null);
elementi--;
return;
}

public void eliminaInPosizione(int posizione)
throws FestaException{
if(posizione==1)
eliminaInTesta();
else
if(posizione==elementi)
eliminaInCoda();
else {
Nodo ps= getLinkPosizione(posizione);
Nodo pp=getLinkPosizione(posizione-1);
pp.setLink(ps.getLink());
elementi--;
}
return;
}

private String visita(Nodo p){
if (p==null)
return "";
return p.getInfo().toString()+"\n"+visita(p.getLink());
}

public String elenco(){
return visita(head);   
}

public String toString(){
Nodo p= head;
String lista= new String("head->");

if (p==null)
return lista+"null";
while(p!=null){
lista= lista+"["+p.getInfo().toString()+"|";
if(p.getLink()==null)
lista=lista+"null]";
else
lista=lista+"+]->";
p=p.getLink();
}
return lista;
}

public static void main(String[] args){
Invitato i1= new Invitato("Bianchi Giovanni", 'M', "0586 854822");
Invitato i2= new Invitato("Rossi Marta", 'F', "0586 844853");
Invitato i3= new Invitato("Neri Marco", 'M', "0586 444722");
Invitato i4= new Invitato("Verdi Roberta", 'F', "0586 974824");
Festa f= new Festa();

f.inserisciInTesta(i1);
f.inserisciInTesta(i2);
f.inserisciInCoda(i3);
try{f.inserisciInPosizione(i4, 2);}
catch(FestaException exception) {
System.out.println(exception.getError());
}

System.out.println("Visita ricorsiva: ");
System.out.println(f.visita(f.head));
System.out.println("--------------");

System.out.println(f.toString());
System.out.println("--------------");
try{f.eliminaInPosizione(2);}
catch(FestaException exception) {
System.out.println(exception.getError());
}
System.out.println(f.toString());
System.out.println("---------------");
try{f.eliminaInCoda();}
catch(FestaException exception){
System.out.println(exception.getError());
}
System.out.println(f.toString());
System.out.println("---------------");
try{f.eliminaInTesta();}
catch(FestaException exception){
System.out.println(exception.getError());
}
System.out.println(f.toString());
System.out.println("---------------");
try{f.eliminaInPosizione(5);}
catch(FestaException exception){
System.out.println(exception.getError());
}
System.out.println(f.toString());
System.out.println("---------------");
try{f.eliminaInPosizione(1);}
catch(FestaException exception){
System.out.println(exception.getError());
}
System.out.println(f.toString());
System.out.println("---------------");
try{f.eliminaInPosizione(1);}
catch(FestaException exception){
System.out.println(exception.getError());
}
}
}

CLASSE FESTA EXCEPTION:
import java.io.*;
import java.lang.*;
import java.util.*;

public class FestaException extends Exception {
private String error="";

FestaException(String error){
this.error=error;   
}

String getError(){
return error;   
}
}
risposta inviata 21 Gennaio 2016 da Gianni Messina Esperto (736 punti)

Domande correlate

+1 voto
2 risposte
quesito posto 30 Ottobre 2013 in Classe quarta da Gianni Messina Esperto (736 punti) | 6,811 visite
0 voti
1 risposta
quesito posto 24 Aprile 2014 in Classe quarta da Adelfio Massimiliano Corsista (79 punti) | 176 visite
0 voti
1 risposta
quesito posto 28 Febbraio 2014 in Classe terza da Riccardo Rizzuto Corsista (125 punti) | 187 visite
777 domande
1,565 risposte
639 commenti
1,445 utenti