Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    5

    [Java] Possibile soluzione problema

    Ciao ragazzi...
    Ho eseguito un esercizio...
    Traccia:
    Scrivere un programma Java adatto a rappresentare i dipendenti di una azienda.
    Implementare le seguenti funzionalità:
    1) Inserimento da terminale in un array dei dati:
    nome
    cognome
    stipendio
    tipologia (direttore,impiegato, lavoratore a cottimo).
    2) ordinamento dei dati secondo un criterio di ordinamento tra cognome-tipologia stipendio;

    Per ora ho fatto solo secondo lo stipendio volevo sapere perchè non funge perchè nel codice non mi da nessun errore ma in realtà non mi ordina niente...ecco il link ai file:

    http://www.mediafire.com/?qfywwaar80ngsor

    Se volete lo metto nei tag code
    Grazie in anticipo a chi mi può aiutare

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Si, posta il source che è meglio...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    5
    Classe Dipendente:
    codice:
    public class Dipendente 
    {
    	private String nome;
    	private String cognome;
    	private double stipendio;
    	private String tipologia;
    	
    	public Dipendente(String nom, String cogn, double sti, String tip)
    	{
    		nome = nom;
    		cognome = cogn;
    		stipendio = sti;
    		tipologia = tip;
    	}
    	
    	public double getStipendio()
    	{
    		return stipendio;
    	}
    	
    	public String getNome()
    	{
    		return nome;
    	}
    	
    	public String getCognome()
    	{
    		return cognome;
    	}
    	
    	public String getTipologia()
    	{
    		return tipologia;
    	}
    	
    	public static void stampa(Dipendente b[])
    	{
    		for(int i = 0; i<3; i++)
    		{
    				System.out.println(b[i].getNome()+" - "+b[i].getCognome()+" - "+b[i].getStipendio()+" - "+b[i].getTipologia());
    		}
    	}
    	
    	public static void oridinStipend(Dipendente b[], boolean crescente)
    	{
    		int i=0; 
    		int j=b.length;
    		boolean ordinato=false;
    		int CrescDecresc;
    		
    		if(crescente==true) CrescDecresc = 1;
    		else                CrescDecresc =-1;
    			
    			while(i<j && ordinato==true)
    			{
    				ordinato=true;
    				i++;
    				for(int p=j-1; p>=i; i--)
    				{
    					if(b[i].compareTo(i-1)*CrescDecresc<0)
    					{
    						ordinato= false;
    						Dipendente tmp = b[i];
    						b[i]=b[i-1];
    						b[i-1]=tmp;	
    					}
    				}
    			}
    	}
    	
    	public int compareTo(Object OtherObject)
    	{	
    		int ret;
    		Dipendente other = (Dipendente)OtherObject;
    		if (stipendio>other.stipendio)ret=1;
    		else if (stipendio==other.stipendio)ret=0;
    			else ret=-1;
    		return ret;		
    	}
    }
    Classe DipendenteTester
    codice:
    import java.util.Scanner;
    
    public class DipendenteTester 
    {
    	public static void main(String[] args)
    	{
    		int scelta;
    		Scanner in=new Scanner(System.in);
    		
    		Dipendente lista[] = new Dipendente[3];
    		Poparray(lista);
    		
    		do
    		{
    			System.out.println("\n\n-------Menu-------\n\n"+
    								"1. Ordina dipendenti per stipendio(Crescente)\n"+
    								"2. Ordina dipendenti per stipendio(Decrescente)\n");
    		
    			System.out.println("Inserisci una scelta:");
    			scelta=in.nextInt();
    			
    	
    			switch(scelta)
    			{
    			case 1:
    				System.out.println("\n\n---Ordinamento crescente (per stipendio):---\n");
    				Dipendente.oridinStipend(lista, true);
    				Dipendente.stampa(lista);
    				break;
    			case 2:
    				System.out.println("\n\n---Ordinamento decrescente (per stipendio):---\n");
    				Dipendente.oridinStipend(lista, false);
    				Dipendente.stampa(lista);
    				break;
    			}
    		}while (scelta!=3);		
    	}
    	
    	public static void Poparray(Dipendente[] b)
    	{
    		b[0] = new Dipendente("Vincenzo", "Rossi", 900, "Lavoratore a cottimo");
    		b[1] = new Dipendente("Antonio", "Grassi", 1500, "Impiegato");
    		b[2] = new Dipendente("fa", "gsfi", 2000, "Impiegato");
    	}
    	
    	
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Gli ho dato solo uno sguardo, non ho molto tempo...

    Per confrontare dei tuoi oggetti dovresti implementare comparator.

    http://docs.oracle.com/javase/7/docs...omparator.html

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.