MMaattiièèrree PPrrooggrraammmmaattiioonn OOrriieennttééee OObbjjeett

Programmation, Math · exam

Voir tous les documents en programmation

MMaattii rree :: PPrrooggrraammmmaattiioonn OOrriieenntt ee OObbjjeett

TTPP33

Niveau : 2 re ann e TSI,ECOM,LFIG

AU : 2019-2020

Objectifs : Apprendre quelques concepts de la Programmation Orient e Objet en Java:

classe, objet et instanciation.

-----------------------------------------------------------------------------------------------------------------

Exercice 1:

Cr er une classe Point caract ris e par :

  • deux coordonn es de types doubles
  • un constructeur pour initialiser les donn es
  • une m thode translation qui permet de d caler le point
  • une m thode qui permet d'afficher les coordonn es avant et apr s translation.

Une m thode main pour le test. Ainsi, cr er un tableau contenant des objets Point et l'afficher.

Exercice 2 :

Publicité

Ecrire une classe nomm e Personne permettant de d crire compl tement une personne,

sachant quune personne est caract ris e par les informations suivantes : nom, pr nom, sexe

(male ou femelle), ann e de naissance, tat civil (c libataire, mari ou veuf) et conjoint (cest

variable de type boolean gale vrai si la personne est mari e et gale faux si non)

1.

Cr er la classe Personne avec les attributs n cessaires.

2.

Ajouter un constructeur la classe Personne.

3.

Ajouter, la classe Personne, une m thode void retourneInfos(). Cette m thode peut

retourner 3 types de messages.

Exemples :

"M. ABIDI Ali est n en 1975, il est c libataire." : si la personne est un monsieur.

1

"Mme. AMRI Sarra est n e en 1970, elle est mari e." Si la personne est une madame.

Publicité

"Mlle. ALLANI Wassila est n e en 1980, elle est c libataire." Si la personne est une

mademoiselle.

4.

Ajouter, la classe Personne, une m thode int age(Personne p) qui renvoie l ge de

l'individu en fonction lann e de sa naissance.

5. Ajouter, la classe Personne, une m thode void marier (Personne p1, Personne p2) qui

permet de marier une personne une autre.

Cette m thode doit permettre de changer l tat civil des 2 mari s, l tat de la variable conjoint

et le nom de famille de la femme.

Pour simplifier : quand une femme se marie son nom devient : "nom de l' poux + nom de

jeune fille", par exemple : si Mlle. ALLANI Wassila se marie avec M. ABIDI Ali, son nom

deviendra Mme " ABIDI ALLANI "

Attention: un homme peut se marier avec une seule femme et une femme peut se marier

avec un seul homme.

6. Ecrire un programme qui d clare 2 variables de type Personne, cr e 2 instances de personne

Publicité

(un homme c libataire et une mademoiselle) pour les affecter dans les variables et afficher les

informations qui leurs concernent.

Appeler la m thode marier (Personne p1, personne p2) pour marier les 2 personnes puis

afficher leurs informations misent jour.

Exercice 3 :

Repr sentation des dates. Ecrivez une classe Date dont chaque instance repr sente une date

pr cise. Mettez-y 3 variables dinstance priv es : an (un entier non n gatif),mois(un entier

compris entre 1 et 12 ), jour (un entier compris entre 1 et une borne sup rieure qui d pend du

mois) .

Ecrivez les m thodes :

2

public Date(int jour, int mois, int an) : initialisation dune date, partir des trois nombres

donn es . La validit des ces nombres doit tre v rifi e (voyez ci-dessous comment) et, en cas

de date incoh rente, un message doit tre affich .

int getJour(),int getMois(),int getAn() : pour obtenir les valeurs correspondantes.

Publicité

public String toString() : renvoie lexpression dune date sous forme de texte, comme " 8

/nouvembre /2019".

public boolean infeg(Date d) comparaison : a.infeg(b) renvoie true si la date a est ant rieure

ou gale la date b, sinon cela renvoie false.

Indications :

Voici une expression valuant la validit dune date (ann es bissextiles simplifi es). Vous

pouvez vous contenter de la copier-coller dans votre programme, lequel se contentera de

tester la valeur de date Invalide:

boolean dateInvalide = mois < 1 || mois > 12|| jour < 1 || jour > 31|| jour > 30 && (mois == 4 ||

mois == 6 || mois == 9 || mois == 11)|| jour > 29 && mois == 2|| jour > 28 && mois == 2 &&

!(an % 4 == 0 && an % 100 != 0 || an % 400 == 0);

3

4