Visualizzazione dei risultati da 1 a 10 su 27

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    30
    codice:
    public class Studente {
    codice:
    public String matricola;
    private String nome;
    private GregorianCalendar data;
    public int altezza;
    private char genere;
    /**
    * Costruttore
    * @param matr matricola
    * @param nom cognome e nome
    * @param giorno giorno di nascita
    * @param mese mese di nascita
    * @param anno anno di nascita
    * @param alt altezza
    * @param gen genere(M o F)
    */
    public Studente(String matr, String nom,int giorno, int mese, int anno, int alt, char gen)
    {
    matricola=matr;
    nome=nom;
    data=new GregorianCalendar(anno, mese-1, giorno);
    altezza=alt;
    genere=gen;
    }
    
    /**
    * Ottiene il numero di matricola
    * @return matricola
    */
    public String getMatricola()
    {
    return matricola;
    }
    
    /**
    * Ottiene il cognome e nome dello studente
    * @return nome
    */
    public String getNome()
    {
    return nome;
    }
    
    /**
    * Ottiene la data di nascita
    * @return data
    */
    public GregorianCalendar getData()
    {
    return data;
    }
    
    /**
    * Ottiene la data di nascita dello studente in stringa
    */
    public String getDataString()
    {
    return String.format("%02d/%02d/%04d", data.get(GregorianCalendar.DATE), data.get(GregorianCalendar.MONTH)+1, data.get(GregorianCalendar.YEAR));
    }
    
    /**
    * Ottiene l'altezza
    * @return altezza
    */
    public int getAltezza()
    {
    return altezza;
    }
    /**
    * Ottiene il sesso dello studente
    * @return genere
    */
    public char getGenere()
    {
    return genere;
    }
    
    /**
    * Visualizza i dati dello studente in stringa
    */
    public String toString()
    {
    return "Matricola n. "+matricola+", "+nome+", Nato il "+getDataString()+", altezza "+altezza+", "+genere;
    }
    
    
    
    }
    
    
    public class Università {
    
    
    Studente[] stud= new Studente[0];
    
    /**
    * Aggiunge un nuovo studente
    * @param matricola matricola
    * @param nom cognome e nome
    * @param giorno giorno di nascita
    * @param mese mese di nascita
    * @param anno anno di nascita
    * @param altezza altezza dello studente
    * @param genere genere(M o F)
    */
    public void addStudente(String matricola, String nom,int giorno, int mese, int anno, int altezza, char genere)
    {
    Studente temp[]=new Studente[stud.length+1];
    if (stud.length>0)
    System.arraycopy(stud,0,temp,0,stud.length);
    temp[temp.length-1]= new Studente(matricola, nom,giorno,mese,anno,altezza,genere);
    stud=temp;
    }
    /**
    * Ottiene una stringa con una tabella contenente i dati degli studenti
    * @return str
    */
    public String getTable()
    {
    String format ="%-9s|%-20s|%-11s|%-7s|%-6s";
    String str;
    str=String.format(format,"=========","============ ========","===========","=======","======")+"\n";
    str+=String.format(format,"Matricola","Cognome e nome","DataNascita","Altezza","Genere")+"\n";
    str+=String.format(format,"=========","=========== =========","===========","=======","======")+"\n";
    for (Studente e:stud)
    str+=String.format(format,e.getMatricola(),e.getNo me(),e.getDataString(),e.getAltezza(),e.getGenere( ))+"\n";
    str+=String.format(format,"=========","=========== =========","===========","=======","======")+"\n";
    return str;
    }
    
    /**
    * Ottiene i dati dello studente più giovane
    * @return stringa
    */
    public String getYoungest()
    {
    
    Studente min;
    min=stud[0];
    for (int i=0;i<stud.length;i++)
    {
    if( stud[i].getData().after(min.getData()))
    min=stud[i];
    }
    return min.toString();
    }
    
    /**
    * Ordinamento per selezione in base all'altezza(crescente)
    */
    
    
    public void SelectionSort()
    {
    Studente min;
    int p=0;
    
    for(int i=0;i<stud.length;i++)
    {
    min=stud[i];
    p=i;
    for(int j=i+1;j<stud.length;j++)
    {
    if(stud[j].getAltezza()<min.getAltezza())
    {
    min=stud[j];
    p=j;
    }
    
    }
    stud[p]=stud[i];
    stud[i]=min;
    }
    }
    
    public static int ricBinaria(int[] stud, int altezza)
    {
    int indice;
    int inizio;
    int fine;
    int centro;
    inizio = 0;
    fine = stud.length-1;
    indice = -1;
    
    while(indice == -1 && inizio <= fine)
    {
    centro = (inizio + fine) / 2;
    if(stud[centro] == altezza)
    indice = centro;
    else
    if(altezza > stud[centro])
    inizio = centro +1;
    else
    fine = centro - 1;
    }
    return indice;
    }
    // public BinaryArray(int altezza)
    // {
    // stud = new Studente[altezza];
    // for (int i = 0; i < altezza; i++)
    
    // }
    /**
    * Ottiene l'altezza media distinta per genere
    * @param genere il sesso dello studente('M' o 'F'
    * @return altezza media
    */
    public double getAltezzaMedia(char genere)
    {
    int conta=0;
    for (int i=0;i<stud.length;i++)
    {
    if(stud[i].getGenere()==genere)
    {
    conta+=stud[i].getAltezza();
    }
    }
    return conta/stud.length;
    }
    
    
    
    /**
    * Menu dell'ufficio statistiche
    * @return stringa
    */
    public String getMenu()
    {
    return "================================================= ==========\n"+
    "Ufficio statistiche università - Menu \n" +
    "================================================= ==========\n"+
    "1. Visualizzare gli array degli studenti in forma tabellare \n"+
    "2. Visualizzare i dati dello studente più giovane \n"+
    "3. Ordinamento dell'array degli studenti per altezza \n"+
    "4. Calcolo dell'altezza media distinta per genere \n"+
    "5. Termina programma\n"+
    "================================================= ==========";
    }
    
    
    }
    
    
    public class Tester {
    
    public static void main(String[] args) {
    
    Università X= new Università();
    /**
    * Aggiunge dati di collaudo
    */
    X.addStudente("341208","Panucci Alda",13, 10,1991, 166, 'F');
    X.addStudente("140662","Lanzarote Ugo",02, 05,1990, 184, 'M');
    X.addStudente("218040","Ambrosi Carla",24,03,1992, 162, 'F');
    X.addStudente("210412","Bello Piera",15, 12,1992, 166, 'F');
    
    Scanner sc= new Scanner(System.in);
    int scelta;
    
    do
    {
    scelta=-1;
    /**
    * Stampa menu
    */
    System.out.println(X.getMenu());
    
    /**
    * Richede la scelta all'utente
    */
    while ((scelta<0)|| (scelta>6))
    {
    System.out.print("Opzione numero: ");
    scelta=sc.nextInt();
    }
    
    switch (scelta)
    {
    case 1:
    {
    System.out.println(X.getTable()+"\n\n");
    };break;
    case 2:
    {
    System.out.println(X.getYoungest()+"\n\n");
    };break;
    case 3:
    {
    X.SelectionSort();
    System.out.println(X.getTable()+"\n\n");
    };break;
    case 4:
    {
    System.out.print("Genere Maschile ");
    System.out.println(X.getAltezzaMedia('M'));
    System.out.print("Genere Femminile ");
    System.out.println(X.getAltezzaMedia('F')+"\n\n");
    };break;
    case 5:
    {
    int position;
    int cercato;
    System.out.println("Inserire altezza da cercare");
    cercato = sc.nextInt();
    System.out.println();
    int k;
    position = X.ricBinaria(null, cercato); // qui non so che fare
    
    if(position == -1)
    System.out.println("L'altezza " + cercato + " non è stata trovata.\n");
    else
    System.out.println("L'altezza " + cercato + " è stata trovata");
    
    }
    
    }
    
    } while (scelta!=6);
    
    
    System.out.println("Programma terminato");
    sc.close();
    
    
    }
    
    }
    Ultima modifica di LeleFT; 01-09-2014 a 17:12 Motivo: Aggiunti i tag CODE

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.