M1202 - TP Séance 5

Durée : 2h00




Objectifs




Au menu

  1. Consignes
  2. Création de la fonction de saisie
  3. Création du tableau des notes
  4. Affichage du tableau des notes

Lisez attentivement cet énoncé de TP/TD en suivant les instructions. En cas d'interrogation, faites appel à moi, que ce soit pour en savoir plus sur un des points abordés pendant le TP, ou pour savoir comment effectuer une des tâches demandées (numérotées pour pouvoir y faire référence simplement).

Surtout ne restez pas bloqué(e) sur une des questions. Entre parenthèses, à côté des titres de sous-sections, est indiqué le temps que vous avez dû passer à effectuer les étapes précédentes.

Au cours de ce TP, nous allons créer un programme permettant de saisir des notes d'étudiants.

Voyons tout d'abord comment récupérer des données entrées par l'utilisateur au clavier en Java.

Point de cours 1
Comme nous le verrons lors du prochain cours, nous allons aujourd'hui appeler "fonctions" ce que nous appelions jusqu'à maintenant "algorithmes". Ceci permet d'insister sur le fait qu'une fonction prend des paramètres en entrée et renvoie un résultat en sortie, alors que le terme "algorithme" met plutôt en valeur la suite des opérations qui sont exécutées l'une après l'autre.


Point de cours 2
Pour demander à l'utilisateur d'entrer des données au clavier, il faut tout d'abord indiquer à Java qu'on va utiliser une "bibliothèque", c'est-à-dire un ensemble d'algorithmes déjà programmés. Les deux bibliothèques concernées sont io et util. Il faut donc ajouter au tout début du fichier Java les deux instructions suivantes :
import java.io.*; import java.util.*;

Ensuite, si vous voulez récupérer dans une chaîne de caractères chaineLue ce que tape l'utilisateur au clavier, il faut utiliser les instructions suivantes :
Scanner lectureClavier = new Scanner(System.in);
String chaineLue = lectureClavier.next();

Nous verrons plus précisément au second semestre comment sont construites ces lignes, qui utilisent la notation des "objets" en Java. On peut tout de même comprendre dès maintenant que lectureClavier est une variable de type Scanner, et qu'on affecte à chaineLue la valeur renvoyée par l'appel d'algorithme lectureClavier.next().

Enfin, si vous voulez récupérer dans un entier entierLu un nombre tapé par l'utilisateur au clavier, il faut utiliser les instructions suivantes :
Scanner lectureClavier = new Scanner(System.in);
int entierLu = lectureClavier.nextInt();

Bien sûr, si vous avez déjà déclaré et initialisé lectureClavier auparavant, la première de ces deux lignes n'est pas nécessaire.


Premier objectif : nous allons tout d'abord créer une fonction saisieEtudiant qui prend en entrée le nom de deux devoirs (par exemple "QCM" et "devoir final", ou bien "TP1" et "TP2"), puis demande à l'utilisateur le prénom, puis le nom, puis les notes de l'étudiant sur 20 à ces deux devoirs, et renvoie un tableau contenant toutes ces informations entrées par l'utilisateur.

Créez un dossier dédié à ce TP5 (de la même manière que vous en aviez créé un dédié au TP4).

En utilisant éventuellement un des TP précédents, créez une base de fichier TP5.java que vous compléterez lors de ce TP. Cette base doit contenir en particulier une fonction main, mais vous ne devriez pas avoir besoin d'autres fonctions des TP précédents. Pensez en particulier à ajouter les lignes nécessaires pour importer les bibliothèques requises pour récupérer les entrées clavier de l'utilisateur (voir encadré ci-dessus).

Déclarez la fonction saisieEtudiant. Interrogez-vous notamment sur les types des variables d'entrée (pour lesquelles vous choisirez un nom approprié) et le type de sortie, afin de répondre au "Premier objectif" défini ci-dessus.

Répondez au questionnaire ci-dessous puis cliquez sur "Envoyer".



Nous allons maintenant définir cette fonction saisieEtudiant en préparant toutes les instructions qu'elle contient.

Écrivez l'instruction permettant de créer la variable qui stockera le résultat.

Écrivez l'instruction permettant de demander à l'utilisateur le prénom de l'étudiant dont il va entrer les informations, et d'enregistrer le résultat.

Écrivez l'instruction permettant de demander à l'utilisateur le nom de cet étudiant, et d'enregistrer le résultat.

Écrivez l'instruction permettant de demander à l'utilisateur la note de cet étudiant au premier devoir (en affichant de quel devoir il s'agit, information récupérée dans la variable d'entrée) et d'enregistrer le résultat.

Écrivez l'instruction permettant de demander à l'utilisateur la note de cet étudiant au second devoir (en affichant de quel devoir il s'agit, information récupérée dans la variable d'entrée) et d'enregistrer le résultat.

Écrivez l'instruction permettant de renvoyer ces informations en sortie.

Recopiez dans le formulaire ci-dessous la fonction saisieEtudiant puis cliquez sur "Envoyer".


Nous allons maintenant créer un tableau infosEtudiants contenant toutes les informations pour tous les étudiants. Comme un tableau doit avoir une taille déterminée à l'avance, écrivez une instruction qui demande à l'utilisateur le nombre d'étudiants. Réfléchissez à l'endroit du code où vous devez ajouter cette instruction...

Écrivez ensuite l'instruction qui permet de créer le tableau infosEtudiants du bon type, et de la bonne longueur.

Créez l'ensemble d'instructions qui permet de récupérer les informations de tous les étudiants, sachant que les deux types de devoirs dont vous stockerez la note sont : un QCM et un TP. Pour cela, vous utiliserez bien sûr un appel de la fonction saisieEtudiant, avec les bons paramètres en entrée. À la fin de la saisie de toutes les informations, parcourez le tableau infosEtudiants pour afficher toutes les informations stockées, en dédiant une ligne à chaque étudiant.