TP 3 Exercice 1: ===============La classe Volaille=============== abstract class Volaille { public double poids; public int num; Volaille( int ord , double pds){ num=ord; poids=pds; } abstract boolean verifierPoidsAbatt(); abstract double calculPrix(); public String toString() { String ch =null; ch="Numero d'inscription : "+num+ " Poids: "+poids; return ch; } } =============== La classe Poulet =============== public class Poulet extends Volaille { static double prixAuKilo; static double poidsAbatt; Poulet(int ord, double pds ,double pk, double pa) { super(ord, pds); prixAuKilo = pk; poidsAbatt=pa; } public boolean verificationPoidsAbatt() { boolean res =false; if(poids>=poidsAbatt) res=true; return res; } public double calculPrix(){ double pr=0; pr=poids*prixAuKilo; return pr; } public String toString() { String ch = null; ch=super.toString()+"Prix au kilo :"+prixAuKilo+" Poids d'abattage :"+poidsAbatt; return ch; } } =============== La classe Canard =============== public class Canard extends Volaille { static double prixAuKilo; static double poidsAbatt; Canard(int ord, double pds ,double pk, double pa) { super(ord, pds); prixAuKilo = pk; poidsAbatt=pa; } public boolean verificationPoidsAbatt() { boolean res =false; if(poids>=poidsAbatt) res=true; return res; } public double calculPrix() { double pr=0; pr=poids*prixAuKilo; return pr; } public String toString() { String ch = null; ch=super.toString()+"Prix au kilo :"+prixAuKilo+" Poids d'abattage :"+poidsAbatt; return ch; } } =============== La classe GestionVolaille =============== import java.util.Scanner; public class GestionVolaille { private int max; private int nb; private int nbv; private Volaille[] tab; GestionVolaille(int mx){ max=mx; nb=0; nbv=0; tab=new Volaille[max]; } static String clavier() { Scanner clav =new Scanner(System.in); String ch =clav.next(); return ch; } public void ajoutVolaille(Volaille v) { if(nb<max) { tab[nb]=v; nb++; } else System.out.println("Depacement de la capacite"); } public void afficheVolaille() { Volaille v; Poulet p; Canard c; for(int i=0; i<nb; i++) { v=tab[i]; if(v instanceof Poulet ) { p=(Poulet) v; System.out.println(p.toString()+"\n"); } if(v instanceof Canard ) { c=(Canard) v; System.out.println(c.toString()+"\n"); } } } public Volaille[] volailleAbattre() { Volaille[] tabv =new Volaille[nb]; Volaille v; Poulet p; Canard c; for( int i=0; i<nb ; i++) { v= tab[i]; if(v instanceof Poulet) { p= (Poulet)v; if(p.verificationPoidsAbatt()==true) { tabv[nbv]=p; nbv++; } } if(v instanceof Canard) { c= (Canard)v; if(c.verificationPoidsAbatt()==true) { tabv[nbv]=c; nbv++; } } } return tabv; } public double calculerPrixTotal() { double s=0; Volaille[] A = volailleAbattre(); Volaille v; Poulet p; Canard c; for(int i=0; i<nbv ; i++) { v= A[i]; if(v instanceof Poulet ) { p=(Poulet) v; s = s +p.calculPrix(); } if(v instanceof Canard ) { c=(Canard) v; s = s +c.calculPrix(); } } return s; } } =============== La classe VolaillePrincipale =============== public class VolaillePrincipale { public static void main(String[] args) { System.out.println("Entrer le nombre maximum à gerer "); int mx = Integer.parseInt(GestionVolaille.clavier()); GestionVolaille gv = new GestionVolaille(mx); System.out.println("Entrer le nombre de poulets à enregistrer : "); int nbp = Integer.parseInt(GestionVolaille.clavier()); for(int i=0; i< nbp ; i++) { System.out.println("Poulet N ° :"+(1+i)); System.out.println("Ord :"); int ord = Integer.parseInt(gv.clavier()); System.out.println("Poids :"); double pds =Double.parseDouble(gv.clavier()); System.out.println("Prix au kilo :"); double pk =Double.parseDouble(gv.clavier()); System.out.println("Poids d'abattage :"); double pa=Double.parseDouble(gv.clavier()); Poulet p= new Poulet(ord,pds,pk,pa); gv.ajoutVolaille(p); } System.out.println("Entrer le nombre de canards à enregistrer :"); int nbc =Integer.parseInt(GestionVolaille.clavier()); for(int i=0; i< nbc ; i++) { System.out.println("Canard N ° :"+(1+i)); System.out.println("Ord :"); int ord = Integer.parseInt(gv.clavier()); System.out.println("Poids :"); double pds =Double.parseDouble(gv.clavier()); System.out.println("Prix au kilo :"); double pk =Double.parseDouble(gv.clavier()); System.out.println("Poids d'abattage :"); double pa=Double.parseDouble(gv.clavier()); Canard c= new Canard(ord,pds,pk,pa); gv.ajoutVolaille(c); } System.out.println("Liste des volailles enregistrés :"); gv.afficheVolaille(); System.out.println("Prix total des volailles à abattre ::" + gv.calculerPrixTotal() ); } } Exercice 2: =============== La classe Fichier =============== import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.PrintWriter; import java.util.Scanner; public class Fichier { String nomFichier; public Personne [] tab = new Personne[50]; Fichier(String nom) { nomFichier = nom; } static String clavier() { Scanner clav = new Scanner(System.in); return clav.next(); } public void ecrire() throws IOException { PrintWriter write = new PrintWriter(nomFichier); System.out.println("Donner le nombre de personnes :"); int nb = Integer.parseInt(clavier()); for (int i = 0; i < nb; i++) { System.out.println("Personne n° :" + (i + 1)); System.out.println("Entre le Nom :"); String nom = clavier(); System.out.println("Entrer le prenom"); String prenom = clavier(); System.out.println("Entrer la date de naissance :"); String naissance = clavier(); String ch = nom + " " + prenom + " " + naissance; write.println(ch); } write.close(); } public void lire() throws IOException{ FileReader read = new FileReader(nomFichier); BufferedReader ligne =new BufferedReader(read); int i= 0; String[] chaines; String ch; while((ch=ligne.readLine())!= null){ chaines = ch.split(" "); tab[i] = new Personne(chaines[0] , chaines[1], chaines[2]); i++; } Personne p; for( int k=0; k<i; k++) { for(int j=0; j<i-1; j++) { if( tab[j].nom.compareTo(tab[j+1].nom) > 0) { p= tab[j]; tab[j]= tab[j+1]; tab[j+1]= p; } } } System.out.println("Listes par ordre Alphabetique des Noms :"); for(int k=0; k<i; k++) { ch = tab[k].nom +" " +tab[k].prenom +" " +tab[k].naissance ; System.out.println(ch); } } } =============== La classe Personne =============== public class Personne { public String nom; public String prenom; public String naissance; Personne(String n, String p, String na){ nom= n; prenom =p; naissance= na; } } =============== La classe Principale =============== import java.io.IOException; public class Principale { public static void main(String[] args) throws IOException { // QUESTION 1 System.out.println("Donner le nom du Fichier :"); String nom = Fichier.clavier(); Fichier exp = new Fichier(nom); exp.ecrire(); // QUESTION 2 exp.lire(); } }