TD/TP PAC - Programmation n 3



Documents pareils
TD/TP PAC - Programmation n 3

Package Java.util Classe générique

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Programmation Par Objets

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Programmer en JAVA. par Tama

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Auto-évaluation Programmation en Java

Corrigé des exercices sur les références

Corrigés des premiers exercices sur les classes

Premiers Pas en Programmation Objet : les Classes et les Objets

Chapitre V. Les classes : Object, Vector, etc.

Programmation par les Objets en Java

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Tp 1 correction. Structures de données (IF2)

Chapitre 10. Les interfaces Comparable et Comparator 1

Langage Java. Classe de première SI

Gestion distribuée (par sockets) de banque en Java

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Une introduction à Java

TP1 : Initiation à Java et Eclipse

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Cours 1: Java et les objets

Projet de programmation (IK3) : TP n 1 Correction

TP, première séquence d exercices.

Java Licence Professionnelle CISII,

Généralités sur le Langage Java et éléments syntaxiques.

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

UML. Diagrammes de classes (suite) Delphine Longuet.

Remote Method Invocation (RMI)

Développement Logiciel

INITIATION AU LANGAGE JAVA

RMI le langage Java XII-1 JMF

ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C

Chapitre VI- La validation de la composition.

UML et les Bases de Données

Objets et Programmation. origine des langages orientés-objet

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Héritage presque multiple en Java (1/2)

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

as Architecture des Systèmes d Information

Programmation Objet I

Utilisation d objets : String et ArrayList

Programmation Orientée Objet Java

Application web de gestion de comptes en banques

Programmation Objet Java Correction

Ingénérie logicielle dirigée par les modèles

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Synchro et Threads Java TM

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

Chapitre 2. Classes et objets

Programmation avec des objets : Cours 7. Menu du jour

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Les frameworks au coeur des applications web

Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object

Introduction à JDBC. Accès aux bases de données en Java

TD2 Programmation concurrentielle

Un ordonnanceur stupide

4. Groupement d objets

Support de cours et TD Programmation Orientée Objet

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

Initiation à JAVA et à la programmation objet.

Introduction : les processus. Introduction : les threads. Plan

Classe Interne, Anonyme & Enumération

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

1 Définition d une classe en Java

Structurer ses données : les tableaux. Introduction à la programmation

Design patterns. Design patterns - définition. Design patterns - avantages

Programme Compte bancaire (code)

Introduction au langage de programmation Java

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Environnements de développement (intégrés)

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

Solutions du chapitre 4

2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN :

Programmation par composants (1/3) Programmation par composants (2/3)

Langage à objets : JAVA (1)

Exercices sur les interfaces

Traduction des Langages : Le Compilateur Micro Java

alg - Classes, instances, objets [oo] Exercices résolus

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

C++ - Classes, instances, objets [oo] Exercices résolus

PROGRAMMATION PAR OBJETS

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Bases Java - Eclipse / Netbeans

2 Grad Info Soir Langage C++ Juin Projet BANQUE

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

Dis papa, c est quoi un bus logiciel réparti?

Transcription:

Université Paris Sud Licence d informatique/iup-miage2 - Année 2004-2005 auteur : Frédéric Vernier semaine : 11-16 octobre 2004 conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html TD/TP PAC - Programmation n 3 Exercice 1 En supposant que nous disposons du code Java suivant : Personne.java public class Personne { private String nom = ""; private String prenom = ""; private int numerosecu = 0; * Constructeur avec un nom et unnumero de secu public Personne(String nom_arg, String prenom_arg, int nss_arg){ nom = nom_arg; prenom = prenom_arg; numerosecu = nss_arg; * @return la description de l'instance en chaîne de caractère return("nom : " + nom + " Prénom : " + prenom + " Numéro SS : "+numerosecu); Employe.java * Un employe est pour l'instant une personne avec un numero d'employe * et un salaire. public class Employe extends Personne{ public static final float SMIC = 1023.34f; private int numeroemploye = -1; private float salaire = SMIC; public Employe (String nom_arg, String prenom_arg, int nss_arg, int numempl_arg) { super(nom_arg, prenom_arg, nss_arg); numeroemploye = numempl_arg; public String tostring() { return (super.tostring() + " Numéro d'employé: " + numeroemploye + "touchant " + salaire);

Client.java * un client est une personne avec un numero de client public class Client extends Personne { private int numeroclient; public Client (String nom_arg, String prenom_arg, int nss_arg, int numclient_arg) { super(nom_arg, prenom_arg, nss_arg); numeroclient = numclient_arg; public String tostring() { return (super.tostring() + " Numéro Client : " +numeroclient); ClientPrefere.java public final class ClientPrefere extends Client { // entre 0.0 et 1.0. 0.1 = 10% de marge sur un credit private float margecredit; public ClientPrefere (String nom_arg, String prenom_arg, int nss_arg, int numclient_arg, float margecredit_arg) { super(nom_arg, prenom_arg, nss_arg, numclient_arg); margecredit = margecredit_arg; public String tostring() { return (super.tostring() + " Marge Crédit: " + margecredit); Test.java public class Test { public static void main (String [] args) { Personne personne1; Personne personne2; Personne personne3; personne1 = new Employe ("Brian", "Mulroney", 546241895, 237); personne2 = new Client ("Brian", "Savage", 162738904, 2633); personne3 = new ClientPrefere ("Jean", "Chrétien", 268490123, 1429, 0.3f); System.out.println(personne1); System.out.println(personne2); System.out.println(personne3); 1. Ecrivez graphiquement la hiérarchie des classes. 2. Rajoutez les classes suivantes : Fournisseur, Stagiaire(CDD), ClientEnLitige et proposez les champs principaux ainsi que les fonctionnalités principales. 3. Pourquoi n'y a t-il pas d'argument salaire dans le constructeur de Employe? 4. Qu affiche le morceau de programme suivant?

5. L entreprise veut désormais pouvoir savoir à tout moment le nombre de clients préférés qu elle a et surtout connaître le pourcentage des clients préférés par rapport à l'ensemble de ses clients. Modifiez la classe ClientPrefere et Client pour répondre aux besoins de l entreprise : la classe ClientPrefere doit posséder la méthode de classe suivante : float getpourcentagedeclientspreferes() qui renvoie le pourcentage de clients préférés. 6. A partir d un tel programme, est-il possible de définir un type de client ChefEntreprise qui seront des clients préférés pour lesquels on doit aussi pouvoir connaître le chiffre d affaires de l entreprise? Proposez une solution. Exercice 2 On considère la banque X. Cette banque permet à ses clients d ouvrir des comptes qu elle gère. Un compte est défini par un numéro d agence, un numéro de compte et un solde. La banque X gère deux types de compte : des comptes courants et des comptes «épargne». Les clients doivent pouvoir déposer et retirer de l argent sur un compte, consulter le solde d un compte. Un client doit pouvoir effectuer un virement d un compte courant vers un autre de ses compte (courant ou épargne ). Un client doit pouvoir effectuer un virement vers le compte d'un autre client en payant le rpix de 1,5 euros par transaction. Les comptes épargne rapportent de l argent : ils ont un taux d intérêt tx et chaque dépôt d argent d un montant M sur un compte épargne provoque une augmentation du solde de ce compte de M +M*tx. Modéliser les Classes, leur hiérarchie en respectant la contrainte suivante: le sommet de la hiérarchie est une classe Compte sur laquelle on ne gérera pas des dépôts directement (Compte doit être une classe abstraite). Cette classe doit toutefois regrouper le maximum d attributs et méthodes de ses descendantes. Coder et tester en créant un compte courant cc1, un compte épargne ce1 dont le taux est 0.05, réaliser un versement de 2000 euros sur cc1 puis effectuer un virement de 500 euros de cc1 vers ce1. On imaginera un autre compte épargne ce2 du proprio de votre logement à qui vous verserez un loyer de 1000euros. Exercice 3 En Java nous disposons de la classe Vector, un vecteur d objet de type Object. Tout objet en java hérite par défaut de la classe Object. Nous voulons créer et manipuler un vecteur d entiers. Nous voulons : 1. créer un vecteur d entiers dont les entrées sont données en ligne de commande, 2. afficher un vecteur d entiers,

3. calculer la somme des éléments d un vecteur d entiers. La classe Vector de Java nous propose les méthodes suivantes de manipulation de vecteurs : 1. Vector() constructeur de vecteur. 2. Vector(int capacite_arg) constructeur de vecteur de capacité initiale est égale à capacite_arg. 3. boolean add(int index_arg, Object element_arg)insère l objet element_arg à la position index_arg du vecteur. 4. boolean add(object element_arg) ajoute l objet element_arg à la fin du vecteur. 5. int size() renvoie la taille vecteur. 6. Object elementat(int index_arg) renvoie l objet stocké à l indice index_arg du vecteur. Exercice 4 L objectif de cet exercice est de corriger le programme suivant : villes/ville.java package villes; public class Ville{ protected String nom; protected int nombrehabitants; public Ville(String n){ n = nom; nombrehabitants = 0; public Ville(String n, int nh){ n = nom; nombrehabitants = nh; return (nom + " - "+nombrehabitants+" habitants"); // retourne le nom de la ville public String getnom() { return nom; // change le nombre d'habitants public void setnombrehabitants(int n) { nombrehabitants = n; // retourne le nombre d'habitants de la ville public int getnombrehabitants(int n) { return nombrehabitants;

villes/petiteville.java package villes; public class PetiteVille extends Ville{ public PetiteVille(String nom_arg, int nh_arg){ return (super.tostring()+" - Statut : petite ville"); public void setnombrehabitants(int n) { nombrehabitants = n; public int getnombrehabitants(int n) { return nombrehabitants; package pays; import java.util.*; class Pays extends Object{ private String nom = ""; private Ville lacapitale = null; private Vector VillesPrincipales = null; public Pays(String nom_arg){ VillesPrincipales = new Vector(); pays/pays.java public void setcapitale(ville capitale_arg){ VillesPrincipales.add(lacapitale); lacapitale = capitale_arg; return ("["+nom+"]");

pays/capitale.java package pays; class Capitale extends Ville{ private Pays pays; public Capitale(String nom_arg, Pays pays_arg){ pays = pays_arg; public Pays getpays() { return pays; public String getnom(){ return pays+" - "+nom; return (nom + " - "+nombrehabitants+" habitants Statut"+ " : capitale de "+pays); pays/capitaleeconomique.java class CapitaleEconomique extends Capitale{ public CapitaleEconomique(String nom_arg, Pays pays_arg){ pays = pays_arg; return (nom + " - "+nombrehabitants+" habitants - Statut :"+ " capitale de "+pays); QUESTION SUBSIDIAIRE : une petite ville peut-elle être capitale? Comment faire pour que se soit le contraire?