//-----------------------------------------------------------------------------
// Ex2bis.java
// Attention : la bonne programmation de cet exercice est Ex2.java.
// Mais comme l'application de mettre les donnees en champs de classe, meme si
// la materiel a ete vu au bloc 4, n'a ete fait qu'au bloc 6, la correction 
// suivante etait possible. Comparer avec Ex2.java.
// Attention : cette correction est MAUVAISE et NE DOIT PAS ETRE IMITEE.
//-----------------------------------------------------------------------------
class Ex2bis {

    static double prixKm;
    static int nbBillets = 0;

    static void afficherPrixKm() {
    	System.out.println("prix km : "+prixKm);
    }

    static void saisirPrixKm(String[] args) {
	prixKm = Double.parseDouble(args[0]);
    }

    static void afficherNbBillets() {
	System.out.println("nb billets : "+nbBillets);
    }

    static double prix(int[] lesKilometrages, int[] lesNbPlaces, int b) {
	return lesKilometrages[b]*prixKm*lesNbPlaces[b]; 
    }

    static void afficher(String[] lesClients, String[] lesDestinations, 
			  int[] lesKilometrages, int[] lesNbPlaces, int b) {
	System.out.println(lesClients[b]+" va a "+lesDestinations[b]+", "
			   +lesKilometrages[b]+" km, "+lesNbPlaces[b]
			   +" places, "+prix(lesKilometrages,lesNbPlaces,b)
			   +" euros");
    }

    static String[] creerLesClients() {
	String[] lesClients = { "Riton", "Rita" }; 
	return lesClients; 
    }

    static String[] creerLesDestinations() {
	String[] lesDestinations = { "NewYork", "Rio" }; 
	return lesDestinations; 
    }

    static int[] creerLesKilometrages() {
	int[] lesKilometrages = { 5000, 8000 }; 
	return lesKilometrages; 
    }

    static int[] creerLesNbPlaces() {
	int[] lesNbPlaces = { 2, 3 }; 
	return lesNbPlaces; 
    }

    static void initialiserNbBillets(String[] lesClients) {
	nbBillets = lesClients.length; 
    }

    static void afficherLesBillets(String[] lesClients, 
				   String[] lesDestinations, 
				   int[] lesKilometrages, int[] lesNbPlaces) { 
	for (int i=0; i<nbBillets; i++) 
	    afficher(lesClients,lesDestinations,lesKilometrages,lesNbPlaces,i);
    }

    static void afficherPlusLoinEtModifierLesBillets(String[] lesClients, 
						     String[] lesDestinations, 
						     int[] lesKilometrages) { 
	int plusLoin = 0;
	for (int i=1; i<nbBillets; i++) 
	    if (lesKilometrages[i] > lesKilometrages[plusLoin])
		plusLoin = i;
	System.out.println(lesClients[plusLoin]);   
	lesDestinations[0] = lesDestinations[plusLoin]; 
	lesKilometrages[0] = lesKilometrages[plusLoin]; 
    }

    public static void main(String[] args) {

	String[] lesClients = creerLesClients();
	String[] lesDestinations = creerLesDestinations();
	int[] lesKilometrages = creerLesKilometrages();
	int[] lesNbPlaces = creerLesNbPlaces();
	initialiserNbBillets(lesClients);
	saisirPrixKm(args);

	afficherPrixKm();
	afficherNbBillets();
        afficherLesBillets(lesClients, lesDestinations, lesKilometrages, 
			   lesNbPlaces);

	afficherPlusLoinEtModifierLesBillets(lesClients, lesDestinations, 
					     lesKilometrages); 
        afficherLesBillets(lesClients, lesDestinations, lesKilometrages, 
			   lesNbPlaces);
    }
}

//-----------------------------------------------------------------------------
/*
java Ex2bis 0.11
prix km : 0.11
nb billets : 2
Riton va a NewYork, 5000 km, 2 places, 1100.0 euros
Rita va a Rio, 8000 km, 3 places, 2640.0 euros
Rita
Riton va a Rio, 8000 km, 2 places, 1760.0 euros
Rita va a Rio, 8000 km, 3 places, 2640.0 euros
 */
//-----------------------------------------------------------------------------
