Pages: [1]   Go Down
Print
Author Topic: aiuto esercizio UML  (Read 1773 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Alex_47
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 409


The spiral's King


« on: 18-01-2009, 15:56:03 »

Qualcuno è riuscito a risolvere l'esercizio proposto da cincotti in vista per la parte di UML?

sarebbe questo cmq http://www.dmi.unict.it/~cincotti/prog1/file/prova3.pdf
Logged
Fr3d3R!K
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.463



« Reply #1 on: 18-01-2009, 16:35:14 »

l'ideale sarebbe che dicessi qual è il problema che hai avuto, ad esempio non ti riesce qualche metodo etc...cosa non va?
Logged

Search Button, CODE Tag, Google & Italian language are your friends! Use Them!
Alex_47
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 409


The spiral's King


« Reply #2 on: 22-01-2009, 14:45:45 »

HO problema in questo punto del codice , ora vi mostro il codice java che ho fatto , dopo che il professore ieri ha fatto il diagramma uml...


P.S: per ora ho creato solo le classi

Code:
import java.io.*;
import java.lang.*;
import java.math.*;
import java.util.*;
import javax.swing.*;


class uml
{

public static void main(String[] args)
{
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader tastiera = new BufferedReader(input);









}

abstract class chiave
{
private String descrizione;
private float peso;
protected final float c=315;

public chiave(String A,float B)
{
descrizione = A;
peso = B;
}


float getPeso()
{
return peso;
}

}



abstract class scorrimento extends chiave
{

private float lunghezza;

public scorrimento(String _A,float _B,float L)
{
super(_A,_B);
lunghezza=L;
}

public float getLunghezza()
{
return lunghezza;
}


abstract public boolean blocca();
abstract public int getCosto();

}



    public class meccanica extends scorrimento
{

private Dente [] Dentelli = new Dente[10];

//for(int j=0;j<10;j++)
//{
// Dentelli[j] = new Dente(10*Math.random(),10*Math.random(),12*Math.random());
//}

public boolean blocca()
{
return true;
}


public int getNumDenti()
{
return Dentelli.length;
}


public Dente getDente(int p)
{
return Dentelli[p];
}


public int getCosto()
{
return (int)(c * getPeso());

}
}


class Dente
{
private float altezza;
private float attrito;
private int profilo;

public Dente(float q,float w,int e)
{
altezza = q;
attrito = w;
profilo = e;
}
}



abstract class elettronica extends scorrimento
{
protected InfoAbilitazione info = new InfoAbilitazione(5*Math.random()+1);

public boolean blocca()
{
return true;
}


abstract public int getCosto();
}


class microchip extends elettronica
{
private chip P = new chip();

public void aggiornamentoFirmware()
{
System.out.println("Firmware aggiornato");
}


public int getCosto()
{
return (int)((8 * c) + getLunghezza() * P.getAnzianita());

}
}


class chip
{
private data aggiornamento = new data();
private memoria V=new memoria();
private int F;

public int getAnzianita()
{
return F;
}


}

class memoria
{
byte V = (byte)3072;
}


class magnetica extends elettronica
{
private int ampiezza;

public int getAmpiezza()
{
return ampiezza;
}


public int geCosto()
{
return (int)(c * getAmpiezza() + info.getLivelloS());
}
}


public class InfoAbilitazione
{
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader tastiera = new BufferedReader(input);


private double livelloS;
private String zona;


public InfoAbilitazione(double h)
{
livelloS = h;
zona = tastiera.readLine();


}

data d = new data(30*Math.random()+1,12*Math.random()+1,2009);


public double getLivelloS()
{
return livelloS;

}
}



public class data
{
private double giorno;
private double mese;
private int anno;

public data(double b,double n,int m)
{
giorno = b;
mese = n;
anno = m;

}
}


}


mi da un errore in for dicendomi che è un illegal start of type e poi mi da questi altri errori...

.java:72: cannot find symbol
symbol  : constructor scorrimento()
location: class uml.scorrimento
    public class meccanica extends scorrimento
           ^

java:124: cannot find symbol
symbol  : constructor scorrimento()
location: class uml.scorrimento
   abstract class elettronica extends scorrimento
            ^

.java:158: cannot find symbol
symbol  : constructor data()
location: class uml.data
      private data aggiornamento = new data();
                                   ^

.java:176: uml.magnetica is not abstract and does not override abstract method getCosto() in uml.elettronica
   class magnetica extends elettronica
   ^

4 errors

Process completed.



qualcuno potrebbe darmi una mano?
« Last Edit: 22-01-2009, 15:34:38 by Alex_47 » Logged
Alex_47
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 409


The spiral's King


« Reply #3 on: 22-01-2009, 16:24:33 »

per favore vorrei un aiuto!

Anche perchè il 26 c'è l'esame ma queste classi sono un pò complicate e ancora non ho capito al 100% il funzionamento!
Logged
Alex_47
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 409


The spiral's King


« Reply #4 on: 22-01-2009, 19:45:49 »

Aggiorno il problema ,


Code:
import java.io.*;
import java.lang.*;
import java.math.*;
import java.util.*;
import javax.swing.*;

abstract class chiave
{
protected String descrizione;
protected float peso;
protected final float c=315;

public chiave(String A,float B)
{
descrizione = A;
peso = B;
}


float getPeso()
{
return peso;
}

}



abstract class scorrimento extends chiave
{

private float lunghezza;

public scorrimento(String _A,float _B,float L)
{
super(_A,_B);
lunghezza=L;
}

public float getLunghezza()
{
return lunghezza;
}


abstract public boolean blocca();
abstract public int getCosto();

}



class meccanica extends scorrimento
{
public meccanica(String _d,float _g,float _l)
{
super(_d,_g,_l);
}


int K = (int)(100*Math.random()+1);

protected Dente [] Dentelli = new Dente[K];


//for(int j=0;j<K;j++)
//{
// Dentelli[j] = new Dente((float)(10*Math.random()),(float)(10*Math.random()),(int)(12*Math.random()));
//}


public boolean blocca()
{
return true;
}


public int getNumDenti()
{
return Dentelli.length;
}


public Dente getDente(int p)
{
return Dentelli[p];
}


public int getCosto()
{
return (int)(c * getPeso());

}
}


class Dente
{
private float altezza;
private float attrito;
private int profilo;

public Dente(float q,float w,int e)
{
altezza = q;
attrito = w;
profilo = e;
}
}



abstract class elettronica extends scorrimento
{


protected InfoAbilitazione info = new InfoAbilitazione(5*Math.random()+1);

public elettronica(String _a, float _b , float _l)
{
super(_a,_b,_l);
}


public boolean blocca()
{
return true;
}

}


class microchip extends elettronica
{
private chip P = new chip();

public microchip(String _a, float _b, float _c)
{
super(_a,_b,_c);
}



public void aggiornamentoFirmware()
{
System.out.println("Firmware aggiornato");
}


public int getCosto()
{
return (int)((8 * c) + getLunghezza() * P.getAnzianita());

}
}


class chip
{
private data aggiornamento = new data();
private memoria V=new memoria();
private int F;

public int getAnzianita()
{
return F;
}


}


class memoria
{
byte V = (byte)3072;
}


class magnetica extends elettronica
{
private int ampiezza;

public magnetica(String _a , float _b, float _c , int _d)
{
super(_a,_b,_c);

ampiezza = _d;

}

public int getAmpiezza()
{
return ampiezza;
}


public int geCosto()
{
return (int)(c * getAmpiezza() + info.getLivelloS());
}
}


class InfoAbilitazione
{
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader tastiera = new BufferedReader(input);


private double livelloS;
private String zona;


public InfoAbilitazione(double h)
{
livelloS = h;
zona = tastiera.readLine();
}

data d = new data(30*Math.random()+1,12*Math.random()+1,2009);


public double getLivelloS()
{
return livelloS;
}
}



class data
{
private double giorno;
private double mese;
private int anno;


public data(double b,double n,int m)
{
giorno = b;
mese = n;
anno = m;
}
}


class uml
{

public static void main(String[] args)
{
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader tastiera = new BufferedReader(input);


chiave []A = new chiave[400];

int x;

for(int i=0;i<400;i++)
{
x=(int)(3*Math.random());

switch(x)
{
case 0:A[i] = new meccanica("mekka",(float)(10*Math.random()+1),(float)(5*Math.random()+1));
    break;


case 1: A[i] = new magnetica("magnetik",(float)(10*Math.random()+1),(float)(5*Math.random()+1),(int)(8*Math.random()+1));
    break;
   
   
case 2:A[i] = new microchip("microchip",(float)(10*Math.random()+1),(float)(5*Math.random()+1));
    break;
}

}


int temp = 0; //massimo dentelli

for(i=1;i<400;i++)
{
if(A[i] istanceof meccanica)
{
if( A[tempo].getNumDenti() < A[i].getNumDenti())
{
temp = i;

}
}
}

System.out.println("la chiave che possiede il massimo numero di dentelli e':"+A[temp]);


//ordinamento in base al costo

chiave [] O = new chiave[400];

chiave P;
chiave L;


temp =0;
int index=0;

for(index=0;index < O.length-1;index++)
{
temp = index;

            for (i = index+1; i < A.length; i++)
            {
               if (A[i].getCosto() < A[temp].getCosto())
               {
                   temp = i;
               }
               
               P=A[temp];
               L=A[index];

               swap(O, P, L);
            }
}






static void swap ( chiave [] O, chiave P, chiave L ,)
        {
           chiave flag;
     
            = O[P];         
           a[primo] = a[secondo]; 
           a[secondo] = tmp;
        }
   









}
}





ora sono bloccato in punto in cui mi dice di implementare questa funzione..

si ordinino (in base al costo) in un array indipendente tutte le chiavi della collezione (gli
oggetti non devono essere clonati),
Logged
Pages: [1]   Go Up
Print
Jump to: