TD 1 : Les classes
Exercice 1:
Exercice 2:
Exercice 3:
Exercice 4:
Exercice 5:
Ajouter une méthode age qui renvoie l’âge de l'individu en fonction d'une année
donnée en paramètre.
Exercice 6:
Exercice 7:
Ajouter une méthode marier(Personne p) qui permet de marier une personne à une
autre. Modifier la méthode retourneInfos de façon que le nom (traditionnel de la
femme devienne):
Pour simplifier : quand une femme se marie son nom devient : "[nom de l'époux]
née [nom de jeune fille]", par exemple : si Mlle Durant se marie avec M. Dupond,
son nom deviendra Mme "Dupond née Durant"
Attention: cet exercice ne prétend pas représenter l'état actuel de la loi qui stipule
que le nom d'une femme ne change pas, mais qu'elle peut, si elle le désire,
substituer le nom de son marie au sien, ou accoler les deux noms. Mais cela ne fait
pas partie de l'exercice.
Exercice 8:
Ecrire une classe Etudiant qui hérite de Personne. Dans cette classe on ajoutera
les informations suivantes: numéro d'étudiant, année de première entrée à
l'université. Modifier la méthode retoureInfos pour prendre en compte ces
nouvelles informations lors de l'affichage.
TD2 : Généalogie
On reprend l'exercice précédent sur les personnes.
Exercice 1 :
Exercice 2 :
Exercice 3 :
Exercice 4 :
Modifiez cette méthode (éventuellement en en créant d'autres) pour que l'arbre soit
bien indenté, c'est-à-dire que l'affichage donne ceci:
Mr Dupond Henri,
de père Dupond Yannick
de père Dupond Eric époux de Holly Jeanne
de père Dupond Jean époux de Durant Emilie
de mère Durant Emilie épouse de Dupond Jean
de mère Holly Jeanne épouse de Dupont Eric
de mère France Brigitte
de mère France Sylvie
TD 3: Tableau et Surcharge
1 Tableau d'objets et surcharge
Exos 2: Définir une classe Point qui modélise un point dans un espace à 2
dimensions (on supposera que les coordonnées sont représentées sous forme
d'entiers). En plus des accesseurs cette classe doit fournir une
méthode distance telle que, si p et q sont des instances de Point :
Exos 3: Définir une classe Polygone qui modélise un polygone dans un espace à 2
dimensions. Le nombre de cotés du polygone est donné en paramètre de
construction et ne pourra pas être changé par la suite, par contre les points
définissant les extrémités du polygone pourront être manipulés. Pour cela la classe
doit fournir les méthodes:
Exos 5: Ecrire un programme qui instancie un polygone à 6 cotés. Puis qui modifie
les coordonnées d'un des points extrémités choisi au hasard. Les nouvelles
coordonnées de ce point doivent chacune être tirées aléatoirement dans l'intervalle
[0;300]. L'opération est répétée avec un autre point jusqu'à ce que le périmètre du
polygone atteigne (ou dépasse) la valeur 600.
NB: La fonction Math.random() retourne une valeur décimale aléatoire comprise
dans l'intervalle [0;1[ .
Exos 1: On veut coder le jeu du Morpion. Pour cela, écrivez le code de la classe
Morpion. Celle-ci doit posséder les méthodes suivantes :
- void affiche() : affiche la grille à l'écran en mode console, pour cela utiliser
les caractères: | - X et O.
Par exemple:
l\c 1 2 3
1 X| |
------
2 X|O|
------
3 O| |X
TD 4: Héritage
1 Héritage
Exercice 1: Ecrire une classe Triangle telle qu'il soit possible de créer un triangle
à partir de 3 Point (classe vue au TD4), et que l'on puisse à tout moment changer la
position d'un des sommets du triangle. On créera un constructeur Triangle(Point
p0, Point p1, Point p2).
Exercice 7: Définir dans EnsemblePolygone, une méthode qui affiche tous les
polygones qu'il contient.
TD 5: Static / Vector
Exercice 1: On veut modéliser un compte en banque, les informations
primordiales sont : le solde , le titulaire et le numéro de compte. Ecrire pour cela la
classe Compte correspondante (on reprendra les définitions données en cours). Le
constructeur doit prendre 2 paramètres : le solde initial et le propriétaire du compte
(une Personne, reprendre la classe Personne des TD précédent). Le numéro de
compte est affecté automatiquement et vous devez garantir que 2 comptes
différents auront toujours des numéros de compte distincts.
Créer une classe CompteCredit, sous classe de Compte qui permet de calculer les
intérêts à partir d'un taux d'intérêt qui par défaut est de 5% (il y a deux
constructeurs pour cette classe).
Exercice 2: Créer une classe Banque qui permet de manipuler une liste de Compte
de tout type. Cette classe doit fournir les méthodes :
NB:
Constructeur:
public Vector()
Méthodes:
public void add(Object o) -> ajoute o dans la liste
public boolean contains(Object o) -> true ssi o appartient à la liste
public Object get(int i) -> retourne l'élément à la position i
public int indexOf(Object o) -> retourne la position de o
public void insertElementAt(Object o, int i) -> insère o à la position i
public boolean isEmpty() -> true ssi la liste est vide
public void removeAll() -> vide la liste
1 Héritage
Exercice 1: Ecrire une classe Triangle telle qu'il soit possible de créer un triangle
à partir de 3 Point (classe vue au TD4), et que l'on puisse à tout moment changer la
position d'un des sommets du triangle.
2 Interface
Exercice 3: Ecrire une classe ListeTrie qui modélise une liste d'objets
Ordonnables. La liste est triée par valeur croissante de getNum(). Cette classe doit
fournir les méthodes :
TD 8 : Les Exceptions
A partir d'un guichet, l'utilisateur entre son nom et son mot de passe. L'interface du
guichet lui retourne la liste de ses comptes, comme le montre la figure 1.
En cliquant sur l'un de ces comptes, on ouvre une fenêtre comprenant l'ensemble
des opérations que l'on peut faire sur un compte (déposer et retirer de l'argent). Il
suffit de mettre un montant dans le champ prévu à cet effet et de cliquer sur
l'opération correspondante. Le solde se met automatiquement à jour (cf. figure 2):
Figure 1 Figure 2
Exercice 1
Le premier problème qui se pose lors de la réalisation d'une application un tant soit
peu plus importante que celles qui ont été abordées jusqu'à maintenant dans les TD
et TP, c'est la compréhension générale de l'architecture de l'application.
Cette phase est très importante, car les exercices suivants en dépendent.
Exercice 2
A la fin de cet exercice on doit disposer d'une application qui fonctionne sans
interface.
Exercice 3
Voici quelques notions pour utiliser une telle liste de sélection. Une liste est
simplement un composant graphique. Il suffit de lui ajouter les chaînes de
caractères correspondantes.
List lst = new List(4); // 4 rangées sont visibles.
lst.add("Mercury");
lst.add("Venus");
lst.add("Earth");
lst.add("Mars");
lst.add("Jupiter");
lst.add("Saturn");
lst.add("Uranus");
lst.add("Neptune");
lst.add("Pluto");
monPanel.add(lst);
Quand on double clique sur un des éléments de cette liste ou bien quand on appuie
sur return après avoir sélectionné un élément, la liste envoie un
messageactionPerformed(ActionEvent e), comme un bouton. Les méthodes int