|
Forum Flash, Actionscript, PHP e MySQL
|
|
|
|
|
|
| Autore |
Messaggio |
topolus
nuovo utente

Registrato: 12/05/08 16:43
Messaggi: 1
|
Oggetto: Programma cn i thread (ricerca nel vettore più ordinamento)
Inviato: 12.05.08 | 18:02 |
|
|
devo realizzare il seguente programma:
All'interno di una scuola sono presenti 4 classi.
All'interno delle classi sono presenti un numero
di studenti X dove 15 <= X <= 25
Ad ogni studente dovrà essere assegnato un voto da O .. 10 (con
almeno una cifra decimale) che rappresenta la propria media scolastica
Si vuole stilare una lista degli studenti dell'istituto con la media
più alta dopo avere estratto il migliore studente di ogni classe.
Per la soluzione del problema viene richiesto l'utilizzo di
2 tipologie di Thread :
1) il primo thread realizzi la ricerca all'interno della
singola classe dello studente con la media più alta
2) il secondo thread ordini la lista dei migliori studenti di
ogni classe e visualizzi la lista complessiva dell'istituto in cui
siano presenti le seguenti informazioni :
Classe di appartenenza
Indice dello studente all'interno della classe
Media dello studente
Per la gestione dell'ordinamento della lista si richiede l'utilizzo
della seguente classe :
| Codice: | class Studente {
private String classe;
private int id;
private double media;
public String getClasse()
{
return classe;
}
public void setClasse(String classe)
{
this.classe=classe;
}
public int getId()
{
return id;
}
public int getId(int id)
{
this.id=id;
}
public double getMedia()
{
return media;
}
public double getMedia(double media)
{
this.media=media;
}
} |
questo è il mio codice fin'ora:
| Codice: | class Clessidra {
private int i=0;
char s[]={'-','\b','\\','\b','|','\b','/','\b','-','\b','\\','\b','|','\b','/','\b'};
public void init(String s)
{
System.out.print("\n"+s+" ");
i=0;
}
public void attendi()
{
i = (++i) % (s.length) ;
System.out.print(s[i]);
}
}
class Ordina extends Thread{
private boolean si=false;
private double []v;
public Ordina(double []a){
v=new double [a.length];
for(int i=0;i<a.length;i++)
v[i]=a[i];
}
public void run(){
double app;
try{
for(int i=0;i<v.length-1;i++)
for(int j=i+1;j<v.length;j++)
{
if(v[i]<v[j]){
app=v[j];
v[j]=v[i];
v[i]=app;
}
}
}catch(Exception e){
System.out.println(e);
}
si=true;
}
public double[]getVet(){
return v;
}
public boolean getStato(){
return si;
}
}
public class ClasseJava{
public static void main(String args[]){
double v1[];
double v2[];
double v3[];
double v4[];
v1 = creaClasse();
v2 = creaClasse();
v3 = creaClasse();
v4 = creaClasse();
System.out.println("\n\n Stampa classi non ordinate");
//Stampa classi non ordinate
System.out.println("\n\n ###nella classe 4a Inf ci sono "+v1.length+" alunni### \n\n ");
stampaClasse(v1);
System.out.println("\n\n ###nella classe 4b Inf ci sono "+v2.length+" alunni### \n\n ");
stampaClasse(v2);
System.out.println("\n\n ###nella classe 4a Tele ci sono "+v3.length+" alunni### \n\n ");
stampaClasse(v3);
System.out.println("\n\n ###nella classe 4a Ele ci sono "+v4.length+" alunni### \n\n ");
stampaClasse(v4);
Clessidra c = new Clessidra();
Ordina t1=new Ordina(v1);
Ordina t2=new Ordina(v2);
Ordina t3=new Ordina(v3);
Ordina t4=new Ordina(v4);
t1.start();
t2.start();
t3.start();
t4.start();
c.init(".....aspetto gli ordinamenti");
while(!(t1.getStato() && t2.getStato() && t3.getStato() && t4.getStato()))
{
c.attendi();
}
System.out.println();
v1=t1.getVet();
v2=t2.getVet();
v3=t3.getVet();
v4=t4.getVet();
//Stampa classi ordinate
System.out.println("\n\n ###Classe n° 1### "+v1.length+" alunni### \n\n ");
stampaClasse(v1);
System.out.println("\n\n ###Classe n° 2### "+v2.length+" alunni### \n\n ");
stampaClasse(v2);
System.out.println("\n\n ###Classe n° 3### "+v3.length+" alunni### \n\n ");
stampaClasse(v3);
System.out.println("\n\n ###Classe n° 4### "+v4.length+" alunni### \n\n ");
stampaClasse(v4);
ricerca t5 = new ricerca(v1);
ricerca t6 = new ricerca(v2);
ricerca t7 = new ricerca(v3);
ricerca t8 = new ricerca(v4);
t5.start();
t6.start();
t7.start();
t8.start();
while(!((t5.getStato()) && (t6.getStato()) && (t7.getStato()) && (t8.getStato()))){
System.out.println("...aspetto la ricerca");
}
System.out.println("\n\n");
//alunni migliori per ogni singola classe
System.out.println("Alunno migliore della 1° classe: "+v1[0]);
System.out.println("Alunno migliore della 2° classe: "+v2[0]);
System.out.println("Alunno migliore della 3° classe: "+v3[0]);
System.out.println("Alunno migliore della 4° classe: "+v4[0]);
}
// da qui nn so che fare
studente[] = new studente[4];
String[] classi = new String[4];
v1[i] = "Classe 1";
v2[i] = "Classe 2";
v3[i] = "Classe 3";
v4[i] = "Classe 4";
double[] media = new double[4];
v1[i] = t5.getBravo();
v2[i] = t6.getBravo();
v3[i] = t7.getBravo();
v4[i] = t8.getBravo();
/*
int[] id = new int[4];
*/
// fino qui
public static double[] creaClasse(){
int dimMax=15;
int x=10;
double v[]=new double[dimMax + ((int)(Math.random() * x))];
for(int i=0;i<v.length;i++){
v[i]=(int)(Math.random()*100);
v[i]=v[i]/10;
}
return v;
}
public static void stampaClasse(double[] v){
for(int i=0;i<v.length;i++){
System.out.println("v["+(i+1)+"]: "+v[i]);
}
}
} |
nn so come collegare la classe sudente al programma per ritornare i valori e mi serve la ricerca del migliore
Ultima modifica di topolus il 12.05.08 | 19:02, modificato 2 volte in totale |
|
| Torna in cima |
|
|
Sponsor
|
|
 |
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4546
Località: Verona
|
Oggetto:
Inviato: 12.05.08 | 18:55 |
|
|
Ciao topolus e Benvenuto nel Forum.
Ti invito ad editare il tuo topic, dandogli un titolo che rispecchi il tema appunto del topic/problema.
Inoltre ti invito quando posti del codice, a racchiuderlo tra tag CODE per renderlo più leggibile. (vedi BBCode)
. ____________________________________________________________
Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE! |
|
| Torna in cima |
|
|
|
|
Non puoi inserire nuovi Topic in questo forum Non puoi rispondere ai Topic in questo forum Non puoi modificare i tuoi messaggi in questo forum Non puoi cancellare i tuoi messaggi in questo forum Non puoi votare nei sondaggi in questo forum Non puoi allegare files in questo forum Puoi downloadare gli allegati in questo forum
|
|