Exercice java traite le sujet suivant:
Gestion de résultats d’examens
Examinons ce petit Exercice java:
On se propose d’établir les résultats d’examen d’un ensemble d’élèves. Chaque élève sera représenté par un objet de type Eleve, comportant obligatoirement les champs suivants :
- le nom de l’élève (type String),
- son admissibilité à l’examen, sous forme d’une valeur d’un type énuméré comportant les valeurs suivantes : N (non admis), P (passable), AB ( Assez bien), B (Bien), TB (Très bien).
Idéalement, les noms des élèves pourraient être contenus dans un fichier. Ici, par souci de simplicité, nous les supposerons fournis par un tableau de chaînes placé dans le programme principal.
On demande de définir convenablement la classe Eleve et d’écrire un programme principal qui :
- pour chaque élève, lit au clavier 3 notes d’examen, en calcule la moyenne et renseigne convenablement le champ d’admissibilité, suivant les règles usuelles :
– moyenne < 10 : Non admis
– 10 <= moyenne <12 : Passable
– 12 <= moyenne <14 : Assez bien
– 14 <= moyenne <16 : Bien
– 16 <= moyenne : Très bien
- affiche l’ensemble des résultats en fournissant en clair la mention obtenue. Voici un exemple d’exécution d’un tel programme :
donnez les trois notes de l'eleve Dutronc 11.5 14.5 10 donnez les trois notes de l'eleve Dunoyer 9.5 10.5 9 donnez les trois notes de l'eleve Lechene 14.5 12 16.5 donnez les trois notes de l'eleve Dubois 6 14 11 donnez les trois notes de l'eleve Frenet 17.5 14 18.5 Resultats : Dutronc - Assez bien Dunoyer - Non admis Lechene - Bien Dubois - Passable Frenet - Tres bien
L’énoncé nous impose la définition du type énuméré contenant les différents résultats possibles de l’examen.
On notera qu’on nous demande d’afficher ces résultats sous une forme «longue », par exemple Passable et non simplement P. Nous associerons donc un texte à chacune des valeurs de notre type énuméré, en exploitant la possibilité de doter un tel type de méthodes, à savoir ici :
- un constructeur recevant en argument le texte associé à la valeur,
- une méhtode nommée details, permettant de trouver ce texte à partir d’une valeur.
Voici ce que pourrait être la définition de ce type énuméré :
enum Mention
{ NA ("Non admis"), P ("Passable"), AB ("Assez bien"),
B ("Bien"), TB ("Tres bien"), NC ("Non connu") ;
private Mention (String d)
{ mentionDetaillee = d ;
}
public String details ()
{ return mentionDetaillee ;
}
private String mentionDetaillee ;
}
Un champ privé nommé mentionDetaillee nous sert à conserver le texte associé à chaque valeur.
Notez que, pour des questions de sécurité, nous avons prévu une valeur supplémentaire (NC) correspondant à un résultat non connu, avec laquelle se trouvera automatiquement initialisée (par le constructeur) toute variable du type Mention, Nous avons prévu d’utiliser deux méthodes statiques :
- double moyenne (String n) qui demande de fournir trois notes pour le nom n et qui en calcule la moyenne,
- Mention resul (double m) qui fournit la mention correspondant à une moyenne donnée m.
Voici ce que pourrait être le programme demandé :
public class Examen
{ public static void main (String args[])
{ String noms[] = { "Dutronc", "Dunoyer", "Lechene", "Dubois", "Frenet" } ;
// creation du tableau d'eleves
int nel = noms.length ;
Eleve eleves [] = new Eleve [nel] ;
for (int i=0 ; i<nel ; i++)
eleves [i] = new Eleve (noms[i]) ;
// lecture des notes et détermination du résultat de chaque élève
for (Eleve el : eleves)
{ double moy = moyenne (el.getNom()) ;
el.setResul ((resul(moy))) ;
}
// affichage résultats
System.out.println ("Resultats : ") ;
for (Eleve el : eleves)
System.out.println (el.getNom() + " - " + el.getResul().details()) ;
}
// méthode qui demande au clavier trois notes pour un nom donne
// et qui fournit en retour la moyenne correspondante
static public double moyenne (String n)
{ System.out.println ("donnez les trois notes de l'eleve " + n) ;
double som = 0. ;
for (int i=0 ; i<3 ; i++)
{ double note = Clavier.lireDouble() ;
som += note ;
}
double moyenne = som / 3. ;
return moyenne ;
}
// méthode qui définit la mention en fonction de la moyenne
static public Mention resul (double m)
{ if ( m<10. ) return Mention.NA ;
if ( m<12.0) return Mention.P ;
if ( m<14.0) return Mention.AB ;
if ( m<16.0) return Mention.B ;
return Mention.TB ;
}
}
class Eleve
{ public Eleve (String n)
{ nom = n ;
resul = Mention.NC ; // valeur par défaut
}
public void setResul (Mention r)
{ resul = r ;
}
public Mention getResul()
{ return resul ;
}
public String getNom()
{ return nom ;
}
private String nom ;
private Mention resul ;
}
enum Mention
{ NA ("Non admis"), P ("Passable"), AB ("Assez bien"),
B ("Bien"), TB ("Tres bien"), NC ("Non connu") ;
private Mention (String d)
{ mentionDetaillee = d ;
}
public String details ()
{ return mentionDetaillee ;
}
private String mentionDetaillee ;
}
Termes de recherche utilisés:
- des exercices sur la programmation de language c pdf
- ecrire un programme en java qui représente un eleve
- exercice java eleve
- Java Sujet Examens
- examen java pdf
- java demander un nom pour chaque eleve exercice
- Les différents types de Java pdf
- sujet dexamen avec java
- type de resultat java
