Vous êtes sur la page 1sur 8

Ministère de l’Enseignement Supérieur Institut Supérieur d’Informatique

et de Recherche Scientifique

POO (Java)
Correction de TP1

Exercice 1 :

1. Créer un programme java contenant les classes suivantes (elles se trouvent dans le
même package) :

 Classe Compte :

public class Compte {


int ncompte;
int annee_ouverture;
int solde;}

 Classe Client :

public class Client {


int ncin;
String nom, prenom;
Compte compte;}

 Classe Test : créer deux objets de types Compte et deux objets de type Client.
Afficher le nicn et le solde de chaque client. Quels sont les problèmes que vous
avez rencontrés ? Donner la/les solution(s) possible(s).

2. Créer le même programme et mettre chaque classe dans un package différent.


Exécuter la classe test et donner le résultat.

Correction :

Pour éviter les erreurs de compilation au moment de l’initialisation de certains


attributs, il faut :
 Changer le type de ncin à String
 Changer le type de ncompte à String
1/8 Mr YAHIA F. Année Universitaire 2022/2023
Ministère de l’Enseignement Supérieur Institut Supérieur d’Informatique
et de Recherche Scientifique

 Changer le type de solde à float


Remarque : vous pouvez changer le type de l’attribut « annee_ouverture » à
short afin de gagner plus d’espace mémoire,

package exercice1;

public class Client {


String ncin;
String nom, prenom;
Compte compte;
}

package exercice1;
public class Compte {
String ncompte;
short annee_ouverture;
float solde;
}

package exercice1;
public class Test {
public static void main(String[] args) {
Compte cp1 = new Compte();
cp1.annee_ouverture=2017;
cp1.ncompte="78210640000127006412";
cp1.solde=1200.500

Compte cp2 = new Compte();


cp2.annee_ouverture=2019;
cp2.ncompte=="10200064000012700398";
cp2.solde=850.800;

Client cl1 = new Client();


cl1.compte=cp1;
cl1.ncin="07270064";

2/8 Mr YAHIA F. Année Universitaire 2022/2023


Ministère de l’Enseignement Supérieur Institut Supérieur d’Informatique
et de Recherche Scientifique

cl1.nom = "BEN SALAH";


cl1.prenom = "Mohamed";

Client cl2 = new Client();


cl2.compte=cp2;
cl2.ncin="07620055";
cl2.nom = "RIAHI";
cl2.prenom = "Ali";

System.out.println("le client qui a le ncin "+cl1.ncin+ " à


"+cl1.compte.solde+" dans le compte");
System.out.println("le client qui a le ncin "+cl2.ncin+ " à
"+cl2.compte.solde+" dans le compte");
}
}

Si les trois classes n’appartiennent pas au même package, dans ce cas, changez le
modificateur des attributs des classes Client et Compte à Public.

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 dont le nom et la première lettre de
prénom en majuscule.

Remarque : On ne peut pas modifier la valeur de ncin après la création de l’objet.

3/8 Mr YAHIA F. Année Universitaire 2022/2023


Ministère de l’Enseignement Supérieur Institut Supérieur d’Informatique
et de Recherche Scientifique

Correction
Pour ne pas modifier la valeur de ncin après la création de l’objet, il s’agit d’ajouter la
méthode getNcin() seulement.
La classe Etudiant :

package exercice2;
import java.util.Arrays;

public class Etudiant {


private String ncin;
private String nom, prenom;
private String niveau_scolaire;
private String email;
private float[] notes;
private float moyenne;

public Etudiant(String ncin, String nom, String prenom, String


niveau_scolaire, String email, float[] notes) {
this.ncin = ncin;
this.nom = nom;
this.prenom = prenom;
this.niveau_scolaire = niveau_scolaire;
this.email = email;
this.notes = notes;
}

public String getNom() {


return nom;
}

public void setNom(String nom) {


this.nom = nom;
}

public String getPrenom() {


return prenom;
}

public void setPrenom(String prenom) {


this.prenom = prenom;
}

public String getNiveau_scolaire() {


return niveau_scolaire;
}

public void setNiveau_scolaire(String niveau_scolaire) {


this.niveau_scolaire = niveau_scolaire;
}

4/8 Mr YAHIA F. Année Universitaire 2022/2023


Ministère de l’Enseignement Supérieur Institut Supérieur d’Informatique
et de Recherche Scientifique

public String getEmail() {


return email;
}

public void setEmail(String email) {


this.email = email;
}

public float[] getNotes() {


return notes;
}

public void setNotes(float[] notes) {


this.notes = notes;
}

public float getMoyenne() {


return moyenne;
}

public void setMoyenne(float moyenne) {


this.moyenne = moyenne;
}

// le ncin en mode lecture


public String getNcin() {
return ncin;
}

public float calculerMoyenne() {


float somme = 0;
for (float note : notes) {
somme += note;
}
moyenne = somme / notes.length;
return moyenne;
}

public static String premiere(String prenom) {


prenom = prenom.substring(0, 1).toUpperCase() +
prenom.substring(1).toLowerCase();
return prenom;
}

@Override
public String toString() {
return "Etudiant [ncin=" + ncin + ", nom=" + nom + ", prenom="
+ prenom + ", niveau_scolaire=" + niveau_scolaire
+ ", email=" + email + ", notes=" +
Arrays.toString(notes) + ", moyenne=" + moyenne + "]";
}
}

5/8 Mr YAHIA F. Année Universitaire 2022/2023


Ministère de l’Enseignement Supérieur Institut Supérieur d’Informatique
et de Recherche Scientifique

La classe Test :

package exercice2;
import java.text.DecimalFormat;

public class Test {


private static final DecimalFormat df = new DecimalFormat("0.00");
public static void main(String[] args) {
float[] notes1 = { 12, 13, 10, 08.5f, 15.75f, 11 };
Etudiant et1 = new Etudiant(19564720, "ben mahjoub", "mohamed",
"1ING3", "mounirb@gmail.com", notes1);
et1.setNom(et1.getNom().toUpperCase());
et1.setPrenom(Etudiant.premiere(et1.getPrenom()));

et1.calculerMoyenne();
System.out.println(et1);

float[] notes2 = { 18, 16, 19, 13.5f, 17.5f, 17 };


Etudiant et2 = new Etudiant(10213654, "thabet", "ali", "2IRS2",
"thabetali@gmail.com", notes2);
et2.setNom(et2.getNom().toUpperCase());
// et2.prenom = prenomPremiereLettre(et2.prenom);
et2.setPrenom(Etudiant.premiere(et2.getPrenom()));

// comment arrondir la moyenne à deux chiffres après la virgule


// System.out.println("la moyenne (2 chiffres) :
// "+df.format(et2.calculerMoyenne()));
String m = df.format(et2.calculerMoyenne());
m = m.replace(',', '.');
et2.setMoyenne(Float.parseFloat(m));
System.out.println(et2);
}
}

6/8 Mr YAHIA F. Année Universitaire 2022/2023


Ministère de l’Enseignement Supérieur Institut Supérieur d’Informatique
et de Recherche Scientifique

Exercice 3 :

Réaliser un programme java qui permet d’effectuer les opérations suivantes :


addition, soustraction, multiplication et division. La saisie de deux chiffres et de
l’opérateur (+ ou – ou * ou /) sera réalisé au niveau de la console. Le programme
doit fonctionner selon le modèle suivant :

Entrez le 1er chiffre :


10
Entrez le 2ème chiffre :
20
Entrez l’opérateur :
+
Le résultat est : 30

Remarque : l’utilisateur peut réaliser une ou plusieurs opérations.

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;
}
}

7/8 Mr YAHIA F. Année Universitaire 2022/2023


Ministère de l’Enseignement Supérieur Institut Supérieur d’Informatique
et de Recherche Scientifique

La classe Test :

package exercice3;
import java.util.Scanner;

public class Test {

public static void main(String[] args) {


float a=0 ;
do {
Calculatrice cal = new Calculatrice();
Scanner sc = new Scanner(System.in);
System.out.println("Entrez le nombre 1 : ");
a = sc.nextFloat();
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);

}
}

8/8 Mr YAHIA F. Année Universitaire 2022/2023

Vous aimerez peut-être aussi