Académique Documents
Professionnel Documents
Culture Documents
et de Recherche Scientifique
P.O.O (Java)
TP3
Exercice 1 :
Travail à faire :
Réaliser un programme java qui permet de :
Créer des objets de type Etudiant, Enseignant et Administrateur avec un
constructeur sans paramètre.
Créer des objets de type Etudiant, Enseignant et Administrateur avec un
constructeur paramétré.
Afficher les informations de ces objets par l’utilisation de la méthode toString().
Afficher le nombre total du personnel.
Afficher le nombre du personnel par catégorie.
Correction :
La classe Adresse :
package exercice1;
public class Adresse {
public int numero;
public String rue;
public int code_postal;
public String ville;
public Adresse() {
@Override
public String toString() {
return "[numero=" + numero + ", rue=" + rue + ", code_postal="
+ code_postal + ", ville=" + ville + "]";
}
Il faut utiliser la notion d’héritage qui nous permet d’éviter la redondance des
données.
La classe Personne :
package exercice1;
public Personne() {
comptePer++;
@Override
public String toString() {
return "Personne [ncin=" + ncin + ", nom=" + nom + ", prenom="
+ prenom + ", adresse=" + adresse + "]";
}
La classe Etudiant :
package exercice1;
public class Etudiant extends Personne {
public String niveau_scolaire;
public static int compteEtu;
public Etudiant() {
compteEtu++;
}
@Override
public String toString() {
return "Etudiant : " + super.toString() + " [niveau_scolaire="
+ niveau_scolaire + "]";
}
}
La classe Enseignant :
package exercice1;
public class Enseignant extends Personne {
public String grade;
public String departement;
public Enseignant() {
compteEns++;
}
@Override
public String toString() {
return "Enseignant : " + super.toString() + "[grade=" + grade +
", departement=" + departement + "]";
}
}
La classe Administrateur :
package exercice1;
public class Administrateur extends Personne {
public String service;
public Administrateur() {
compteAdm++;
}
@Override
public String toString() {
La classe Test :
package exercice1;
public class Test {
public static void main(String[] args) {
Enseignant en1 = new Enseignant();
System.out.println(en1);
System.out.println(en2);
System.out.println(et1);
System.out.println(et2);
System.out.println(en3);
System.out.println(ad1);
System.out.println(ad2);
}
Exercice 2 :
Pour tester le programme, ajouter la classe Test contenant la méthode « main » afin
de :
Créer deux objets de type Etudiant dont un doit utiliser un constructeur avec
paramètre.
Afficher toutes les données de chaque objet.
Remarque :
On ne peut pas modifier la valeur de ncin après la création de l’objet.
Le nom et la première lettre de prénom de chaque étudiant doivent être
affichés en majuscule.
Correction :
La classe Etudiant :
package exercice2;
import java.util.Arrays;
return notes;
}
@Override
public String toString() {
return "Etudiant [ncin=" + ncin + ", nom=" + nom + ", prenom="
+ prenom + ", niveau_scolaire=" + niveau_scolaire
+ ", email=" + email + ", notes=" +
Arrays.toString(notes) + ", moyenne=" + moyenne + "]";
}
}
La classe Test :
package exercice2;
import java.text.DecimalFormat;
et1.calculerMoyenne();
System.out.println(et1);
Exercice 3 :
20
Entrez l’opérateur :
+
Le résultat est : 30
Correction :
La classe Calculatrice :
package exercice3;
public class Calculatrice {
public float a,b,c;
public float calculer(float aa,float bb, String operateur) {
a =aa;
b=bb;
switch(operateur) {
case "+" : c = a+b; break;
case "-" : c = a-b; break;
case "*" : c = a*b; break;
case "/" : c = a/b; break;
}
return c;
}
}
La classe Test :
package exercice3;
import java.util.Scanner;
Exercice 4 :
Correction :
Correction :
Solution 1
package tp2;
int taille2 = l2 * 2;
int l3 = l1 + l2;
int t3[] = new int[l3];
if (l1 > l2) {
for (int i = 0, j = 0; j < taille2; i++, j++) {
t3[j] = t1[i];
t3[++j] = t2[i];
}
for (int i = l2, j = taille2; j < l3; j++, i++) {
t3[j] = t1[i];
}
}
else {
for (int i = 0, j = 0; j < taille1; i++, j++) {
t3[j] = t1[i];
t3[++j] = t2[i];
}
for (int i = l1, j = taille1; j < l3; j++, i++) {
t3[j] = t2[i];
}
}
return t3;
}
Solution 2 (optimale) :
package tp2;