M1202 - TP Séance 5
Durée : 2h00
Objectifs
- Créer un programme d'entrée de notes.
- Manipuler les tableaux et les fonctions en Java.
Au menu
- Consignes
- Création de la fonction de saisie
- Création du tableau des notes
- 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.
question(); ?>Créez un dossier dédié à ce TP5
(de la même manière que vous en aviez créé un dédié au TP4).
question(); ?>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).
question(); ?>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.
question(); ?>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.
question(); ?>Écrivez l'instruction
permettant de créer la variable qui stockera le résultat.
question(); ?>É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.
question(); ?>Écrivez l'instruction
permettant de demander à l'utilisateur le nom de cet étudiant,
et d'enregistrer le résultat.
question(); ?>É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.
question(); ?>É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.
question(); ?>Écrivez l'instruction
permettant de renvoyer ces informations en sortie.
question(); ?>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,
question(); ?>écrivez une instruction
qui demande à l'utilisateur le nombre d'étudiants.
Réfléchissez à l'endroit du code où vous devez ajouter cette instruction...
question(); ?>Écrivez ensuite
l'instruction qui permet de créer le tableau infosEtudiants du bon type,
et de la bonne longueur.
question(); ?>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.
question(); ?>À 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.