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();
Adresse adr_en1 = new Adresse(200, "Rue de liberté", 1002,
"Tunis");
en1.adresse = adr_en1;
en1.departement = "GLSI";
en1.grade = "Assistant";
en1.ncin = 12345678;
en1.nom = "mbarki";
en1.prenom = "asma";
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 :
Réaliser un programme java qui permet de calculer la moyenne d’un étudiant. En fait,
un objet de type Etudiant se caractérise par : ncin, nom, prenom, email,
niveau_scolaire, 5 notes et moyenne. Par ailleurs, les attributs de la classe Etudiant
ne sont pas accessibles dans une autre classe.
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;
@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 :
+
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;
if (a<0) {
System.out.println("Programme terminé !");
System.exit(0);
}
System.out.println("Entrez le nombre 2 : ");
float b = sc.nextFloat();
System.out.println("Entrez l'opérateur : ");
String op = sc.next();
cal.calculer(a, b, op);
System.out.println("le résultat est : "+cal.c);
} while (true);
}
}
Exercice 4 :
Écrire une méthode merge qui prend comme paramètre deux tableaux contenant
des éléments de type int. La méthode doit renvoyer un nouveau tableau
d'entiers int qui contient les éléments des deux tableaux reçus en paramètre
intercalés.
Soit s1, s2, s3, ..., sm les éléments du premier tableau et t1, t2, t3, ..., tn les éléments du
second tableau.
Les éléments du tableau renvoyé sont s1, t1, s2, t2, s3, t3, etc.
Faites bien attention que les deux tableaux n'ont pas la même longueur.
Correction :
Correction :
Solution 1
package tp2;
Solution 2 (optimale) :
package tp2;
res[j++] = tab1[i];
}
for (int i = min; i < tab2.length; i++) {
res[j++] = tab2[i];
}
return res;
}