Vous êtes sur la page 1sur 21

Université de Sousse Programmation Orientée Objet JAVA

ISITCOM 2020-2021 Raoudha Ben Djemaa

Sujet TD2
Exercice 1 :

public class Date


{
// les attributs
private int j; // jour
private int m; // mois
private int a; // an

Date()//constructeur sans paramètres


{
j = 1;
m = 5;
a = 2020;
}

Date(int j, int m, int a)//cons avec


paramètres
{
this.j = j;
this.m = m;
this.a = a;
}

1/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

void initialise(int jour, int mois,


int an)
{
j = jour;
m = mois;
a = an;
}

void afficher()
{
System.out.println(j + "/" + m + "/"
+ a);
}

String getDate()
{
return (j + "/" + m + "/" + a);
}

2/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

public static void main(String


args[])
{
//creation des objets
Date d1 = new Date();
Date d2 = new Date(1, 2, 2020);

//invocation des méthodes


d1.afficher();
d2.afficher();
d1.initialise(11, 2, 2020);
d1.afficher();
}
}//fin de la classe Date
Exercice 2 : Personne.java

public class Personne


{

private String nom, prenom,


adresse, telephone;
private Date naissance;
public Personne(
String n,
String p,
String adr,
String tel,
int j,
3/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

int m,
int a)
{
nom = n;
prenom = p;
adresse = adr;
telephone = tel;
naissance = new Date(j, m, a);
}

public void afficher()


{
System.out.println(
"Nom :"+ nom+ " \n"
+"Prénom :"+ prenom+ " \n"
+ "habite :"
+ adresse + " \n"
+ "date de naissance :"
+ naissance.getDate()
+ " \n"
+ "Tel:"+telephone+" \n");

Naissance.afficher();// invoque
la méthode afficher de la
classe Date

}
4/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

public String getNom()


{
return nom;
}
public String getPrenom()
{
return prenom;
}
public String getAdresse()
{
return adresse;
}
public String getTelephone()
{
return telephone;
}
public Date getNaissance()
{
return naissance;
}

5/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

public static void main(String[]


args)
{
Personne auteur1 =
new Personne("CELERE", "Jacques",
"Lyon", "04032945", 1, 2, 1970);

Personne auteur2 =
new Personne("Bon", "Jean", "Paris",
"01302040", 1, 4, 1964);

auteur1.afficher();
auteur2.afficher();
}
}

Exercice 3 : Compte.java
Class Date {…}// sans main
Class Personne {….}//sans main

class Compte
6/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

{
Private int num;
private int solde;
Personne titulaire;

Compte(int n, int s,Personne p)


{ num = n;
solde = s;
titulaire = p;
}

void crediter(int m)
{
solde = solde + m;
}

boolean debiter(int m)
7/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

{
if (m > 0 && m <= solde)
{
solde = solde - m;
return true;
}
return false;
}

int getNum()
{
return num;
}

void afficher()
{

8/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

System.out.println("Compte Nø : "
+ num);
System.out.println("Solde : "
+ solde);

titulaire.afficher();
}

public static void main(String


args[])
{
System.out.println("Creation de la
personne p1");
Personne p1 =
new Personne("CELERE", "Jacques",
"Lyon", "04032945", 1, 2, 1970);

System.out.println("Creation de la
personne p2");
Personne p2 = new Personne("Bon",
"Jean", "Paris", "01302040", 1, 4,
1964);

System.out.println("Creation du
compte c1 pour Monsieur CELERE");
Compte c1=new Compte(10,1000, p1);

9/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

System.out.println("Creation du
compte c2 pour Monsieur bon");
Compte c2=new compte(11,1000, p2);
System.out.println("Affichage des
comptes");
c1.afficher();
c2.afficher();

System.out.println("Operation de
credit de 2500d sur c1");
c1.crediter(2500);
c1.afficher();

System.out.println("Operation de
debit de 3000d sur c2");
if ( c2.debiter(3000))//if true
c2.afficher();
else// if false
System.out.println("Operation
impossible : solde insuffisant");
}//fin du main
}//fin de la classe Compte

10/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

class banque
{
public String nom;

public int nb_compte;


public int nb_client;
Compte les_comptes[];
Personne les_clients[];
//static int numcompte = 1;
banque(String n)
{
nom = n;
les_comptes = new compte[100];
les_clients =new Personne[100];
}
// --------------------------

void afficher()
{
11/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

System.out.println("*** Banque
" + nom + " ***");
System.out.println("--- les
clients ---");
for (int i = 0; i < nb_client;
i++)
les_clients[i].afficher();
System.out.println("--- les
comptes ---");
for (int i = 0; i < nb_compte;
i++)
les_comptes[i].afficher();
}
// --------------------------

void nouveau_client(
String n,
String p,
String adr,
String tel,
int j,
int m,
int a)

12/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

{
les_clients[nb_client] =
new Personne(n, p, adr, tel, j,
m, a);
nb_client++;
}
// --------------------------

int nouveau_compte(String n, String


p)
{
int ncompte;//var local

for (int i = 0; i < nb_client; i++)


if
((n.equals(les_clients[i].getNom()))
&&
(p.equals(les_clients[i].getPrenom())
))
{
les_comptes[nb_compte] =
new compte(numcompte,
1000, les_clients[i]);
nb_compte++;
ncompte = numcompte;
numcompte++;
return ncompte;
}
return 0;
13/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

}
// --------------------------

boolean virer(int cs, int cd, int m)


{
for (int i = 0; i < nb_compte; i++)

if (les_comptes[i].getNum() == cs)

for (int j = 0; j < nb_compte; j++)

if (les_comptes[j].getNum() == cd)

if (les_comptes[i].debiter(m))
{
les_comptes[j].crediter(m);
return true;
}
return false;
}

public static void main(String


args[])
{
System.out.println("Creation de la
personne p1");
Personne p1 =new Personne("CELERE",
"Jacques", "Lyon", "04032945", 1, 2,
1970);

14/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

System.out.println("Creation de la
personne p2");
Personne p2 =new Personne("Bon",
"Jean", "Paris", "01302040", 1, 4,
1964);
System.out.println("Creation du
compte c1 pour Monsieur Bon");
compte c1 = new compte(1000, 1000,
p1);
System.out.println("Creation du
compte c2 pour Monsieur Celere");
compte c2 = new compte(1000,
1000, p2);
System.out.println("Afichage
des comptes");
c1.afficher();
c2.afficher();
System.out.println("Operation
de credit de 2500 francs sur c1");
c1.crediter(2500);
c1.afficher();
System.out.println("Operation
de debit de 3000 francs sur c2");
if (c2.debiter(3000))
c2.afficher();
else

System.out.println("Operation
impossible : solde insuffisant");
}

15/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

import java.util.Vector;
class date {…}
class Personne {…}
classe Compte {…}

class banque
{
private String nom;
Vector les_comptes;// 2 listes (vecteurs)
Vector les_clients;

Static int numcompte = 1;// attribut de classe


// --------------------------
banque(String n)
{
nom = n;
les_comptes = new Vector();
les_clients = new Vector();
}
// --------------------------

16/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

void afficher()
{
System.out.println("*Banque"+nom+"*");
System.out.println("---les clients ---");

for (int i =0; i<les_clients.size(); i++)

((Personne) les_clients.get(i))).afficher();
//2(casting) 1(accès) 3 (affichage)
Forçage de type

System.out.println("--- les comptes --");

for (int i=0; i< les_comptes.size(); i++)

((Compte) les_comptes.get(i)).afficher();
}
// --------------------------

void nouveau_client(
String n, String p, String
adr, String tel, int j,int m,
int a)
{
les_clients.add(new Personne(n,
p, adr, tel, j, m, a));
}
// --------------------------

17/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

int nouveau_compte(String n, String p)


{
int ncompte;//var local
Personne pe;//var local
for (int i = 0; i < les_clients.size();
i++)
{
pe = (Personne) les_clients.get(i);
if ((n.equals(pe.getNom())) &&
(p.equals(pe.getPrenom())))
{
les_comptes.add(new
Compte(numcompte, 1000, pe));

ncompte = numcompte;
numcompte++;
return ncompte;
}
}
return 0;
}
// --------------------------

18/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

boolean virer(int cs, int cd, int m)


{
Compte cpts;// var local
Compte cptd;// var local
for (int i = 0; i < les_comptes.size(); i++)
{
cpts = (Compte) les_comptes.get(i);
if (cpts.getNum() == cs)
{
for (int j = 0; j < les_comptes.size(); j++)
{
cptd = (Compte) les_comptes.get(j);
if (cptd.getNum() == cd)
if (cpts.debiter(m))
{
cptd.crediter(m);
return true;
}
}
}
}
return false;
}// fin virer
Méthode main (Même code que l’étape 4)
}// FIN DE LA CLASSE
// **************************

19/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

public static void main(String


args[])
{
System.out.println("Creation de la
banque b1");
banque b1 = new banque("Bnp");

System.out.println("Nouveau client
(Jean Bon) pour la banque b1");
b1.nouveau_client("Bon", "Jean",
"Paris", "01302040", 1, 4, 1964);

System.out.println("Nouveau client
(Jacques Celere) pour la banque b1");
b1.nouveau_client("Celere","Jacques",
"Lyon","04032945", 1, 2, 1970);
System.out.println("Creation du
compte c1 pour Monsieur Bon");

System.out.println(
"Numero du compte cree : " +
b1.nouveau_compte("Bon", "Jean"));

20/21
Université de Sousse Programmation Orientée Objet JAVA
ISITCOM 2020-2021 Raoudha Ben Djemaa

System.out.println("Creation du
compte c2 pour Monsieur Celere");

System.out.println(
"Numero du compte cree : "
+ b1.nouveau_compte("Celere",
"Jacques"));
b1.afficher();

System.out.println(
"Virement de 20 euro du compte Numero
1 vers le compte Numero 2");

b1.virer(1, 2, 20);

System.out.println("Affichage de la
banque");
b1.afficher();
}
}//FIN DE LA CLASSE

21/21

Vous aimerez peut-être aussi