Algorithme "Méthode et Appels de Méthode"

Fermé
Jiko-java Messages postés 186 Date d'inscription dimanche 25 septembre 2016 Statut Membre Dernière intervention 22 juillet 2017 - Modifié par Jiko-java le 16/02/2017 à 19:00
Chekchak Messages postés 29 Date d'inscription mardi 31 juillet 2012 Statut Membre Dernière intervention 21 mai 2019 - 13 mars 2017 à 02:24
Bonjour, voilà je suis sur un mini programme qui consiste a entré le nombre d'Etudiant d'une classe , et leurs différentes cotes (Les cotes étant les mêmes pour chaque étudiant) , A la Fin mon programme affiche la meilleur Moyenne de la classe , la moins bonne Moyenne , et la Moyenne de l'ensemble de la classe . Toute fois je ne suis pas du tout satisfait de mon code car j'ai pris beaucoup de "Mauvaises habitudes " comme le fait d'utilisé des (Scanner et System) dans mes méthodes chose intolérable en programmation ... Quelqu'un peut il m'aider a amélioré cela , et rendre mon code plus performant je me rend compte que j'ai encore beaucoup de mal a séparé les choses , je ne vois pas de solutions :/

public class MoyenneClasse {
   public static java.util.Scanner scanner = new java.util.Scanner(System.in);
   public static void main(String[]args){
      System.out.println("Entré le nombre d'Etudiant");
      int nbrEtudiant = scanner.nextInt();
      System.out.println("Veuillez entré le nombre de cote");
      int nbrCote = scanner.nextInt();
      double moyenneEtudiant = 0;
      double moyenneMax = 0;
      double moyenneMin = 20;
      double temp = 0;
      double moyenneDeLaClasse = 0;
   
      for(int i = 1; i <= nbrEtudiant; i++){
         System.out.println("Etudiant : " +i);
         moyenneEtudiant = moyenne(nbrCote);
         System.out.println("La Moyenne de l'étudiant " + i + " : " + moyenneEtudiant);
         if(moyenneEtudiant > moyenneMax){
            temp = moyenneEtudiant;
            moyenneMax = temp;
         }   
         if(moyenneMin > moyenneEtudiant){
            temp = moyenneEtudiant;
            moyenneMin = temp;   
         }
      
         moyenneDeLaClasse = moyenneDeLaClasse + moyenneEtudiant/ nbrEtudiant;
      }
      System.out.println("Voici la Moyenne de La classe : "+ moyenneDeLaClasse);
      System.out.println("Voici la Moyenne Max des " + nbrEtudiant + " Etudiant " + moyenneMax);
      System.out.println("Voici la Moyenne Min des " + nbrEtudiant + " Etudiant " + moyenneMin);
   }
   public static double moyenne(int nbrCote){
      int somme = 0;
      double moyenne = 0;
      for(int i = 1; i <= nbrCote; i++){
         System.out.println("Veuillez entré la cote: " + i);
         int cote = scanner.nextInt();
         somme = somme + cote;
         moyenne = somme/nbrCote;
      }
      return moyenne;
   }
}


j

1 réponse

Chekchak Messages postés 29 Date d'inscription mardi 31 juillet 2012 Statut Membre Dernière intervention 21 mai 2019 3
13 mars 2017 à 02:24
pour eviter de scanner dans la methode moyenne dans ton cas tu peux demander a l'utilisateur les cotes dans le main , et les mettre dans un tableau ou un ArrayList , et tu le prend en parametre dans ta méthode .
ps. System.out.println("É é é "); ça donne des symbole genre é... utilise E e c'est plus simple ...
0