//-----------------------------------------------------------------------------
// Ex2.java
// C'est la bonne programmation de l'exercice 2 du partiel, avec les donnees en 
// champs de classe, comme on l'a vu au bloc 6 (hors programme partiel). 
// Une programmation mauvaise mais correspondant au programme du partiel, et 
// acceptee au partiel, est dans Ex2bis.java. 
//-----------------------------------------------------------------------------
class Ex2 {

    static double prixKm;

    static int nbBillets;
    static String[] lesClients;
    static String[] lesDestinations;
    static int[] lesKilometrages;
    static int[] lesNbPlaces;

    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 b) {
	return lesKilometrages[b]*prixKm*lesNbPlaces[b]; 
    }

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

    static void creerLesBillets() {
	String[] c = { "Riton", "Rita" }; 
	lesClients = c;
	String[] d =  { "NewYork", "Rio" }; 
	lesDestinations = d;
	int[] k = { 5000, 8000 }; 
	lesKilometrages = k;
	int[] p = { 2, 3 }; 
	lesNbPlaces = p; 
	nbBillets = lesClients.length; 
    }

    static void afficherLesBillets() {
	for (int i=0; i<nbBillets; i++) 
	    afficher(i);
    }

    static void afficherPlusLoinEtModifierLesBillets() {
	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) {
	creerLesBillets();
	saisirPrixKm(args);

	afficherPrixKm();
	afficherNbBillets();
        afficherLesBillets();

	afficherPlusLoinEtModifierLesBillets(); 
        afficherLesBillets(); 
    }
}

//-----------------------------------------------------------------------------
/*
java Ex2 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
 */
//-----------------------------------------------------------------------------
