Il programma continua a non compilare e non capisco perché


Aiuto!

codice:
import java.io.*;
import java.util.List;
import java.util.Vector;


public class Archivio implements Serializable{

private Vector <Dizionario> archivioDizionari=new Vector<Dizionario>();
	

	
	
	
	
	

	
	
	public Archivio(){
		Dizionario nuovoDizionario=new Dizionario();
		Vector <Dizionario> archivioDizionari = new Vector<Dizionario>();
		archivioDizionari.add(nuovoDizionario);
	}

	
	
	public static void main(String[] args) {
     
	
	Archivio listaDizionari=new Archivio();	

		
		
		char scelta;
	
		// ciclo principale
		
		do{
		scelta=menuPrincipale();
		
		switch(scelta){
		case 'V':
		case'v': 
		case 'S':
		case's': selezioneDizionario(listaDizionari);break;
		case 'I':
		case'i': inserimentoDizionario(listaDizionari);
		case 'C':
		case'c': rimozioneDizionario ();break;
		case 'Z':
		case'z': ;break;
		}
		
	}while(scelta!='e' && scelta!='E');
	System.out.println("\nBye!");
	
	}	
	
	
	// metodo che carica il menu principale
	public static char menuPrincipale(){
	
		String ok="VvIiCcRrSsUueE";
		
		
		char scelta;
		
		do{
			
			System.out.println("|| MENU' PRINCIPALE ||");
			System.out.println("");
			System.out.println("[V/v] Visualizza i dizionari");
			System.out.println("[S/s] Seleziona un  dizionario");
			System.out.println("[I/i] Inserisci un nuovo dizionario");
			System.out.println("[C/c] Rimuovi un dizionario");
			System.out.println("[R/r] Esegui una ricerca");
			System.out.println("[S/s] Salva la collezione di dizionari ");
			System.out.println("[U/u] Fai l'upload di una nuova collezione");	
			System.out.println("[e/E] Arrivederci!");	
			System.out.println("");
			scelta=Input.readChar("fai la tua scelta:");
			
			
			
		}while(ok.indexOf(scelta)<0);
	return scelta;
		}	
	

// metodo per la selezione del dizionario
	
	public static void selezioneDizionario(Archivio listaDizionari){
       listaDizionari.selezioneDizionario(listaDizionari);
	 }
	
	
	public  void selezione(){
	    
		 if(archivioDizionari.isEmpty()==true){
			 System.out.println("non ci sono dizionari, inserisci un nuovo dizionario");
			 menuPrincipale();
		 }
		 else{
			 String nome=Input.readString("Inserisci il nome del dizionario da cercare:");
			 ricercaNome(archivioDizionari,nome);
			 menuDizionario();
			 
		 }
		 
	        }
	
	//metodo per la visualizzazione dei dizionari
	 
	 public  void visualizzaDizionario(){ 
		 if(archivioDizionari.isEmpty()==true){
			 System.out.println("non ci sono dizionari, inserisci un nuovo dizionario");
			 menuPrincipale();
		 }
		 else{
		 for(int pos=0; pos<=archivioDizionari.size();pos++)	
			 System.out.print(archivioDizionari.indexOf(pos)+" "+archivioDizionari.get(pos).getNomeDizionario());
		 menuPrincipale();
		 
		 
		 
	 }   } 
	 
	// metodo per ricerca per nome
	  public static boolean ricercaNome(Vector <Dizionario> archivioDizionari, String nome){
	    	
	    	boolean nonTrovato=true;
	        for(int i=0; i<archivioDizionari.size() && nonTrovato; i++){
	            Dizionario d=archivioDizionari.elementAt(i);
	            
	            if(d.getNomeDizionario().equals(nome.trim())){
              
	            	
                  nome=d.getNomeDizionario();
	            }
	        }
	        if(nonTrovato){
	            System.out.println("Parola non trovata!");
	        }
			return nonTrovato;
	 
	    }               
	
	
// metodo per l'inserimento di un dizionario
	public void inserimento(Dizionario nuovoDizionario){ 
		
			
		/*if(pos<0 || pos>archivioDizionari.size() ||nuovoDizionario==null)	{ 

		       return false;
			}

			else	{ 
				
			
*/
				listaDizionari.add(nuovoDizionario);
				
			  
	}
	
	// metodo statico per l'inserimento di un dizionario
	
	public static  void inserimentoDizionario( Archivio listaDizionari){ 
		
		int pos=Input.readInt("Dammi una posizione valida: ");
		
		
			
    	Dizionario nuovoDizionario=Dizionario.leggiDizionario();
				
    listaDizionari.archivioDizionari.add(nuovoDizionario);
			  System.out.println(nuovoDizionario.getNomeDizionario());

			     menuPrincipale();
			   
				}