Université Ibn Zohr Faculté des Sciences Agadir Filière Sciences Mathématique &
Université Ibn Zohr Faculté des Sciences Agadir Filière Sciences Mathématique & Informatique (SMI) 1 Filière : SMI5 & LPI (licence Professionnelle) Module : programmation Distribuée Cours : Programmation Orienté Objet avec Java Responsable du cours : Karim AFDEL Série TD/TP N°1 et N°2 Exercice 1 Vous avez déposé 10000F à la Caisse d'Epargne et vous souhaitez savoir comment cette somme va évoluer. Chaque année elle rapporte 4,5% d'intérêts, ce qui signifie qu'elle est multipliée par 1,045. Essayez de connaître le montant de votre capital après 5 ans en utilisant la boucle FOR. Nous avons déposé 10000F à la Caisse d'Epargne et nous souhaitons savoir combien d'années il faudra attendre pour que le capital obtenu dépasse 15000F. Nous allons utiliser une boucle WHILE pour indiquer que tant que le capital ne dépasse pas 15000F il faut attendre une année de plus. Exercice 2 Ecrire un programme qui lit trois paramètres : un nombre entier, un caractère représentant une opération (+,-,x ou /) et un second nombre entier, puis qui effectue le calcul ainsi indiqué et affiche le résultat. (Attention à éviter les divisions par 0) Note : 1- on ne peut pas utiliser le signe * comme paramètre, il a une signification particulière. 2- Utilisez l’instruction switch Exercices n°3 Soit les notes d'une classe de 10 étudiants : 12.0 15.50 13 8 7.25 18 10 11 15 16 Ecrire un programme Java permettant de 1- Calculer et afficher la note maximum et minimum de la classe; 2- Calculer et afficher la moyenne de la classe; 3- Déterminer combien d'étudiant ayant une note supérieur à la note de la classe ; 4- Déterminer la mention de chaque étudiant. note <10 mention aucun note <=12 && note >=10 mention passable; note <14 && note >12 mention assez bien; note <16 && note >=14 mention bien. Série TD/TP n°2 Exercices 1 Un compte bancaire possède à tout moment une donnée : son solde. Ce dernier peut être positif (compte créditeur) ou négatif (compte débiteur). Chaque compte est caractérisé par un code incrémenté automatiquement. A sa création, un compte bancaire a un solde nul et son code incrémenté. Il est aussi possible de créer un compte en précisant son solde initial. Utiliser son compte consiste à pouvoir y faire des dépôts et des retraits. Pour ces deux opération, il faut aussi consulter le solde de son compte par la méthode toString(). Un compte Epargne est u compte bancaire qui possède en plus un champ "TauxIntérêt=6" et une méthode calculIntérêt() qui permet de mettre à jour le solde en tenant compte des intérêts. Un compte payant est un compte bancaire pour lequel chaque opération de retrait et de versement est payante et vaut 5dh Question: 1. Faire le diagramme des classes 2. Définir la classse CompteBancaire 3. Définir la classe CompteEpargne 4. Définir la classe comptePayant. Université Ibn Zohr Faculté des Sciences Agadir Filière Sciences Mathématique & Informatique (SMI) 2 5. Définir la classe contenant la fonction main() permettant de tester les classe: Comptebancaire et CompteEpargne avec les actions suivates: a. Créer une instance de la classe Compte bancaire, une autre de la classe Compte Epargne et une instance de la classe ComptePayant. b. Faire appel à la méthode deposer() de chaque instance pour déposer une somme quelconque dans son ces comptes. c. Faire appel à la méthode retirer() de chaque instance pour retirer une somme quelconque dans son ces comptes. d. Faire appel à la méthode CalculIntérêt du compte Epargne. e. Afficher le solde des 3 comptes. Exercice 2 On souhaite développer un programme de calcul de salaire pour une entreprise PME, l’analyse du service « salaire » de cette entreprise a permis d’aboutir aux informations suivantes : Information Description Matricule Unique pour chaque employé e ne peut être modifié Nom Chaîne de caractère Adresse Chaîne de caractère Caractères Salaire Réel 1- Donner la déclaration de la classe Employé Comportant au moins un constructeur et les méthodes d’accès. 2- Cette entreprise comporte plusieurs types d’employés : i. Des employés qui sont payés suivant le nombre d’heures qu’ils ont travaillé dans la semaine. Ils sont payés à un certain tarif horaire. ii. D’autres employés, payés au forfait par jour. iii. Les commerciaux sont payés avec une somme fixe pour la semaine. 2.1 Donnez les classes qui héritent de la classe Employe et redéfiniront la méthode SetSalaire() pour chaque type des employés. Les classes comporteront deux contructeurs : un qui ne prend en paramètre que le matricule, le nom et l’adresse de l’employé et l’autre qui prend en paramètres en plus toutes les informations pour le calcule du salaire. 3- Une classe Paie comportera une unique méthode main() qui entrera les informations sur des employés des différents types(3 commerciaux, 2 de type i.et 2 de type ii.). a. Les employées seront enregistrées dans un tableau Employé. b. Au moins un des employés sera créé avec le constructeur ne possédant comme paramètres que le Matricule, le Nom et l’Adresse et vous entrerez ensuite les informations pour son salaire avec la méthode setSalaire(). c. Pour un autre employé, vous utilisez le constructeur pour entrer les informations sur le salaire. d. Ecrire une méthode qui affichera le salaire hebdomadaire de chacun des employés et la masse salariale Hebdomadaire des employés enregistrés dans le tableau. Université Ibn Zohr Faculté des Sciences Agadir Filière Sciences Mathématique & Informatique (SMI) 3 Solution n°1 & n°2 Exercise 1 public class epargne2 { public static void main(String args[]) { int n=0; //nombre d'années double capital=10000; while (capital<15000) { capital=capital*1.045; n++; } System.out.println("Le capital dépasse 15000F après "+n+" années."); System.out.println("Sa valeur est alors "+capital+"F."); } } Exercice 2 import java.lang.*; import java.io.*; public class calculette { public static void main(String args[])throws IOException { BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in)); int n1; String op, inData1,inData2,inData3; int n2; int rep=0; System.out.println("entre un nombre entier n1"); inData1 = stdin.readLine(); n1= Integer.parseInt( inData1 ); System.out.println("entre un nombre entier n2"); inData2 = stdin.readLine(); n2= Integer.parseInt( inData2 ); System.out.println("entre un caractère"); op = stdin.readLine(); switch (op.charAt(0)) { case '+' : rep=n1+n2; break; case '-' : rep=n1-n2; break; case 'x' : rep=n1*n2; break; case '/' : if (n2==0) { System.out.println("Division par zéro !"); System.exit(1); } else rep=n1/n2; break; default : System.out.println("Opérateur inconnu."); System.exit(2); } System.out.println(rep); } } Exercice 3 import java.lang.*; import java.io.*; public class minmax { public static void main(String args[]) throws IOException Université Ibn Zohr Faculté des Sciences Agadir Filière Sciences Mathématique & Informatique (SMI) 4 { //double [] note ={10,12.5,7,8.5,19}; double [] note =new double [5]; double min=21.5,max=0.0,s=0,moyen_classe; int nbetudiantsupmax=0; BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in)); String inData; for(int i=0; i<note.length; i++) { System.out.println("entrez la note n "+i+ ":"); inData= stdin.readLine(); note[i]=Double.parseDouble(inData); } // l'affichage des notes for(int i=0; i<note.length; i++) System.out.println("l'element i du tableau vaut "+ note[i]); // determination la note min et max for(int i=0; i<note.length; i++) { if (note[i] > max ) max = note [i]; if (note[i] < min ) min = note [i];} System.out.println("le max du tableau vaut "+ max); System.out.println("le min du tableau vaut "+ min); // determination de la note moyen de la classe for(int i=0; i<note.length; i++) s+=note[i]; moyen_classe=s/(double)5; System.out.println("le min du tableau vaut "+moyen_classe); // determination nbr etudiant for(int i=0; i<note.length; i++) if (note[i]> moyen_classe) nbetudiantsupmax++; System.out.println("nb etudaint ayant une note superieur à la + moyen de la classe "+nbetudiantsupmax); } } Série n°2 package Banque; public class COMPTE { public static int nbComptes=0; protected float solde; private int code; public COMPTE(float soldeInitial){ nbComptes++; code=nbComptes; solde=soldeInitial; } public int getCode(){return code;} public float getSolde(){return solde;} public void retirer(float mt){if(mt<solde)solde-=mt;} public String toString(){ return("Code: "+Integer.toString(code)+" | Solde: "+Float.toString(solde));} public void verser(float mt){solde+=mt; } } Université Ibn Zohr Faculté des Sciences Agadir Filière Sciences Mathématique & Informatique (SMI) 5 ++++++++++++++++++++Classe COMPTE_PAYANT++++++++++++++++++++++++++++++++++++++++++ package Banque; public class COMPTE_PAYANT extends COMPTE{ private final float tauxOperation=5; public COMPTE_PAYANT(float soldeInitial){ super(soldeInitial);} public void retirer(float mt){super.retirer(mt+tauxOperation);} public String toString(){ return(super.toString()+" | Montant de l'opération: "+tauxOperation+"\n"); } public void verser(float mt){ super.verser(mt-tauxOperation); }} ++++++++++++++++++++++++++++ Classe COMPTE_EPARGNE+++++++++++++++++++++++++ package Banque; public class COMPTE_EPARGNE extends COMPTE{ private float taux; public COMPTE_EPARGNE(float soldeInitial){ super(soldeInitial);} public void calculInterets(){ solde=solde*(1+taux);} public float getTaux(){ return taux;} public void setTaux(float t){ taux=t; } public String toString(){ return(super.toString()+" | Taux: "+taux+"\n"); } } +++++++++++++++++++++++++++++++++++++++++++++++Classe Teste+++++++++++++++++++++++++ package Banque; class TESTE_COMPTES{ public static void main(String[] arg){ COMPTE c=new COMPTE(2300); c.verser(700); c.retirer(500); System.out.println(c.toString()+"\n"); System.out.println("Solde= "+c.getSolde()+"\n"); COMPTE_EPARGNE c2=new COMPTE_EPARGNE(4000); c2.setTaux(0.06F); System.out.println(c2.toString()+"\n" ); COMPTE_PAYANT c3=new COMPTE_PAYANT(5000); c3.verser(1000); System.out.print(c3.toString()); } } deposer Université Ibn Zohr Faculté des Sciences Agadir Filière Sciences Mathématique & Informatique (SMI) 6 package employe; class Employe { protected String nom; protected double salaire; public Employe(String _nom) { this.nom = _nom; } public String getNom() { return nom; } public void setSalaire(){}; public double getSalaire(){return salaire;} public String toString() { return " nom=" + this.getNom()+ "salaire="+this.getSalaire(); } } // class EmployeHoraire package employe; class EmployeHoraire extends Employe { private double nbHeures ; private double tarifHoraire; public EmployeHoraire(String _nom, double nbHeures, double tarifHoraire) { super(_nom); this.nbHeures = nbHeures; this.tarifHoraire = tarifHoraire;} public double getNbHeures() {return nbHeures;} public double getTarifHoraire() {return tarifHoraire;} @Override public void setSalaire() {salaire= tarifHoraire uploads/Finance/ td1-td2-corr-java-s5.pdf
Documents similaires
-
13
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 10, 2021
- Catégorie Business / Finance
- Langue French
- Taille du fichier 0.2116MB