Exercice Java corrigé calculer le prix de la connexion téléphonique

import java.util.Scanner;
class Connexion {
    private static Scanner scanner = new Scanner(System.in);
  public static void main(String[] args) {
    int debut = lireEntier("Début de la connexion : ");
    int fin = lireEntier("Fin de la connexion : ");

    boolean donneesOK = testerDonnees(debut, fin);

    if (donneesOK) {
      int nbHeures = fin - debut;
      int nbHeuresTarif1 = calculerNbHeuresTarif1(debut, fin);
      int nbHeuresTarif2 = nbHeures - nbHeuresTarif1;
      afficherPrix(nbHeuresTarif1, nbHeuresTarif2);
    }
  }
  /**
   * Demande à l'utilisateur d'entrer un entier.
   * @param message Le message affiché à l'utilisateur
   * @return L'entier entré par l'utilisateur (sans vérification)
   */
  static int lireEntier(String message) {

    System.out.print(message);
    int entier = scanner.nextInt();
    return entier;
  }
  /**
   * Vérifie si les données entrées sont cohérentes.
   * @param debut Heure du début de la connexion
   * @param fin Heure de la fin de la connexion
   * @return true si la fin est après le début
   */
  static boolean testerDonnees(int debut, int fin) {
    if (debut == fin) {
      System.out.println("Bizarre, vous n'avez pas été " +
             "connecté du tout ...");
      return false;
    } else if (debut > fin) {
      System.out.println("Bizarre, le début est après la fin ...");
      return false;
    }
    return true;
  }
  /**
   * Calcule le nombre d'heures passées en tarif 1
   * @param debut Heure du début de la connexion
   * @param fin Heure de la fin de la connexion
   * @return Le nombre d'heures passées en tarif 1
   */
  static int calculerNbHeuresTarif1(int debut, int fin) {
    int nb = 0;
    for (int heure = debut; heure < fin; heure++) {
      if ((heure >= 7) && (heure < 17)) {
        nb++;
      }
    }
    return nb;
  }
  /**
   * Affiche le prix à payer par l'utilisateur
   * @param nbHeuresTarif1
   * @param nbHeuresTarif2
   */
  static void afficherPrix(int nbHeuresTarif1, int nbHeuresTarif2) {
    int prix = nbHeuresTarif1 * 10 + nbHeuresTarif2 * 5;
    System.out.println("Vous avez été connecté " +
               (nbHeuresTarif1 + nbHeuresTarif2) +
               " heures pour " + prix + " francs");
  }
}

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *