Scusate, non riesco a capire come svolgere l'ultima parte di questa traccia
Allora, io ho creato la classe OutOfRangeSampleSizecodice:Definire una classe OutOfRangeSampleSize per modellare una eccezione controllata da considerare qualora il numero k di cluster inserito da tastiera è maggiore maggiore rispetto al numero di centroidi generabili dall'insieme di transazioni. In tale case l'oggetto eccezione va creato e sollevato nella implementazione del metodo sampling(...). public int[] sampling(int k) throws OutOfRangeSampleSize // da Modificare Comportamento: Se k<=0 or k>distinctTuples allora si crea ed espelle un oggetto istanza di OutRangeSampleSize. Altrimenti si procede con implementazione definite in precedenza L'oggetto eccezione deve essere propagato fino al main (seguendo lo stack delle chiamate). Il gestore di tale eccezione deve essere opportunamente definito nel main della classe MainTest.
e nel metodo sampling ho aggiunto il seguente codice riguardante l'eccezionecodice:public class OutOfRangeSampleSize extends Exception{ public OutOfRangeSampleSize() {} public OutOfRangeSampleSize(String msg) { super(msg);} }
Come faccio ora a prorogare l'oggetto eccezione?codice:public int[] sampling(int k) throws OutOfRangeSampleSize{ if(k <= 0) throw new OutOfRangeSampleSize("k <= 0"); if(k>distinctTuples) throw new OutOfRangeSampleSize("k>distinctTuples"); ........(resto del codice)
La classe dove devo prorogare l'oggetto in questione, è la seguente
Graziecodice:import mining.KMeansMiner; import data.Data; import keyboardinput.Keyboard; public class MainTest { /** * @param args */ public static void main(String[] args) { Data data =new Data(); System.out.println(data); char continua; boolean uscita = true; //int k=3; do{ System.out.print("Inserisci k: "); //*****QUI VIENE INSERITO IL k CHE VIENE RICHIESTO NEL METODO sampling******// int k = Keyboard.readInt(); KMeansMiner kmeans=new KMeansMiner(k); int numIter=kmeans.kmeans(data); System.out.println("Numero di Iterazione:"+numIter); System.out.println(kmeans.getC().toString(data)); do{ System.out.print("Vuoi ripetere l'esecuzione? y/n: "); continua = Keyboard.readChar(); System.out.println("continua: " + continua); switch(continua){ case 'y': case 'Y': case 'n': case 'N': uscita = true; break; default: { uscita = false; System.out.println("Inserire il carattere corretto"); } } }while(uscita == false); }while(continua == 'y' || continua == 'Y'); } }

Rispondi quotando