Académique Documents
Professionnel Documents
Culture Documents
beans;
2.
3. public class Livre {
4. private int id;
5. private String titre;
6. private String auteur;
7. private int prix;
8. public static int count;
9.
10. public Livre(String titre, String auteur, int prix) {
11. this.id = ++count;
12. this.titre = titre;
13. this.auteur = auteur;
14. this.prix = prix;
15. }
16.
17. public int getId() {
18. return id;
19. }
20.
21. public void setId(int id) {
22. this.id = id;
23. }
24.
25. public String getTitre() {
26. return titre;
27. }
28.
29. public void setTitre(String titre) {
30. this.titre = titre;
31. }
32.
33. public String getAuteur() {
34. return auteur;
35. }
36.
37. public void setAuteur(String auteur) {
38. this.auteur = auteur;
39. }
40.
41. public int getPrix() {
42. return prix;
43. }
44.
45. public void setPrix(int prix) {
46. this.prix = prix;
47. }
48.
49. @Override
50. public String toString() {
51. return "Le prix du livre " + this.titre + " de
l'auteur " + this.auteur
52. + " est :" + this.prix + " DH";
53. }
54.
55. }
1. package ma.projet.beans;
2.
3. import java.util.Scanner;
4.
5. public class TestLivre {
6.
7. public static void main(String[] args) {
8. Livre[] livres = new Livre[3];
9. Scanner sc = null;
10. for (int i = 0; i < livres.length; i++) {
11. sc = new Scanner(System.in);
12. System.out.print("Donner le titre du livre
n° " + (i + 1) + " :");
13. String titre = sc.nextLine();
14. System.out.print("Donner l'auteur du livre
n° " + (i + 1) + " :");
15. String auteur = sc.nextLine();
16. System.out.print("Donner le prix du livre
n° " + (i + 1) + " :");
17. int prix = sc.nextInt();
18. livres[i] = new Livre(titre, auteur,
prix);
19. }
20. sc.close();
21. for (Livre l : livres)
22. System.out.println(l);
23.
24. System.out.println("Le nombre de livres est " +
Livre.count);
25. }
26.
27. }
//Source : www.exelib.net
2/
1. package ma.exelib.projet.classe;
2.
7.
14. }
15.
16. @Override
19. + this.prenom.substring(0,
1).toUpperCase() + ""
20. +
this.prenom.substring(1).toLowerCase();
21. }
22. }
1. package ma.exelib.projet.classe;
2.
4.
8. super(nom, prenom);
9. this.cne = cne;
10. }
11.
12. @Override
15. }
16.
17. }
1. package ma.exelib.projet.classe;
2.
4.
6.
8. super(nom, prenom);
9. this.salaire = salaire;
10. }
11.
14. }
15.
16. }
1. package ma.exelib.projet.classe;
2.
4.
6.
8. String specialite) {
11. }
12.
13. @Override
16. }
17.
18. }
1. package ma.exelib.projet.test;
2.
3. import ma.exelib.projet.classe.Employe;
4. import ma.exelib.projet.classe.Etudiant;
5. import ma.exelib.projet.classe.Professeur;
6.
15.
22.
26. "Mathématique");
30. }
31. }
//Source : www.exelib.net
1. 3/package ma.projet.beans;
2.
4. //Attribut de l'objet
9.
14.
20. }
21.
22. @Override
26. }
27.
28. }
1. package ma.projet.beans;
2.
3.
5.
11.
14. }
15.
19.
21.
22. }
23. }
//Source : www.exelib.net
1. import java.util.Scanner;
2.
3. /**
4. *
5. * @author lachgar
6. */
7. public class Exo4 {
8.
16. }
//Source : www.exelib.net
2.
4.
5. }
La classe Carre:
2.
4.
6. this.cote = cote;
7. }
8.
9. @Override
12. }
13.
16. }
17.
18. }
2.
3. private double rayon;
4.
6. this.rayon = rayon;
7. }
8.
9. @Override
12. }
13.
16. }
17.
18. }
//Source : www.exelib.net
6/
1. Pour lire une valeur à partir du clavier comme on fait en c avec la méthode
scanf() vous devez utiliser un objet de type Scanner qui propose un ensemble
de fonctions de lecture .
import java.util.Scanner;
Enfin on peut utiliser cet objet pour lire les valeurs des variables suivant leurs
types.
float note1=lecture.nextFloat();
int a =lecture.nextInt();
....
import java.util.Scanner;
float note1=lecture.nextFloat();
float note3=lecture.nextFloat();
Float moy=(note1+note2+note2)/3;
System.out.println(s);
System.out.println("Bien");
System.out.println("Passable");
else {
System.out.println("Non Admis");
}
6. int a =lecture.nextInt();
7. if(a%2==0){
9. }
10. else{
12.
13. }
21.
22. break;
24. break;
25.
26. default:
28. break;
}
//Source : www.exelib.net
1. class Program
2. {
4. {
5. int a;
6. try
7. {
9. a = Int16.Parse(Console.In.ReadLine());
//Instruction susceptible de générer une exception
11. }
13. {
14. Console.Out.WriteLine(e.Message);
//Gestion de l'exception
15. }
16. Console.ReadKey();
17. }
Question 2: Méthode 1
1. class Program
2. {
4. {
5.
6. int a;
7. bool r;
8. do
9. {
10. try
11. {
12. r = true;
14. a = Int16.Parse(Console.In.ReadLine());
16. }
18. {
19. Console.Out.WriteLine(e.Message);
20. r = false;
21. }
24. }
Question 2: Méthode 2:
1. class Program
2. {
4. {
5.
6. int a;
7. e: try
8. {
9.
11. a = Int16.Parse(Console.In.ReadLine());
13. }
15. {
16. Console.Out.WriteLine(e.Message);
17. goto e;
18.
19. }
20.
21. Console.ReadKey();
22. }
Question 3:
1. class Program
2. {
4. {
5.
6. l: try
//Marquer une étiquette nommée l
7. {
9. DateTime d =
DateTime.Parse(Console.In.ReadLine()); //
Instruction susceptible de générer une exception
11. }
13. {
14. Console.Out.WriteLine(e.Message);
//Gestion de l'exception
15. goto l;
//Aller à l'étiquette l
16. }
17. Console.ReadKey();
18. }
Question 4:
1. class Program
2. {
4. {
5.
7. DateTime dp = DateTime.Parse(Console.In.ReadLine());
9. DateTime da = DateTime.Parse(Console.In.ReadLine());
12. else
13. {
14. Console.Out.WriteLine("Date de départ: " +
dp.ToShortDateString());
16. }
17. Console.ReadKey();
18. }
Question 5:
La classe InvalidAgeException:
2. {
3. public InvalidAgeException()
4. : base()
5. {
6. }
7.
9. {
10. get
11. {
13. }
14. }
15. }
La classe InvalidNoteException:
2. {
4.
6. {
7. get
8. {
10. }
11. }
12. }
La classe Eleve:
1. class Eleve
2. {
8. {
11. }
12.
14. {
16. set
17. {
20. else
22. }
23. }
24.
26. {
27. get { return moyenne; }
28. set
29. {
32. else
34. }
35. }
36.
38.
40. {
41. nom = n;
42. Age = a;
//Initialiser l'age à travers sa propriété pour tenir compte de
l'exception InvalidAgeException
43. Moyenne = m;
//Initialiser la moyenne à travers sa propriété pour tenir compte
de l'exception InvalidNoteException
44. }
45.
46. public override string ToString()
47. {
49. }
50.
51. }
Le programme de test:
2. Console.Out.WriteLine(e);
3. Console.ReadKey();
//Source : www.exelib.net
Matricule
Nom
Prénom
Date de naissance
un constructeur d’initialisation
des propriétés pour les différents attributs
la méthode Tostring
une méthode abstraite GetSalaire.
Travail à faire:
1. //Auteur : CHAOULID
2. //Copyright: Exelib.net
3.
4. abstract class Employe
5. {
10.
12. {
15. }
16.
18. {
21. }
22.
24. {
27. }
28.
30. {
33. }
34.
36. {
41. }
42.
44. {
47.
49.
50. }
51. }
La classe Ouvrier:
1. class Ouvrier : Employe
2. {
5.
7. {
9.
10. }
11.
13. {
16. }
17.
20. {
22. }
23.
25. {
27. }
28.
30. {
34. Anciennete--;
35. if (sMIG + Anciennete * 100 <= 2 * sMIG)
37. else
39.
41. }
42. }
La classe Cadre:
1. class Cadre : Employe
2. {
4.
6. {
9. }
10.
15. }
16.
18. {
20. }
21.
23. {
24. if (indice == 1)
32. else
35. }
La classe Patron:
1. class Patron : Employe
2. {
5.
7. {
9. set { ca = value; }
10. }
11.
13. {
16. }
17.
20. {
21. this.pourcentage = p;
22. }
23.
25. {
27. }
28.
30. {
32. }
33. }
2. {
4. {
7. Console.Out.WriteLine(o);
9.
Console.Out.WriteLine("***********************************");
11. Console.Out.WriteLine(c);
13.
Console.Out.WriteLine("***********************************");
16. Console.Out.WriteLine(p);
18. Console.ReadKey();
19. }
20. }
//Source : www.exelib.net
// Interface
interface Animal {
System.out.println("Zzz");
class Main {
myPig.animalSound();
myPig.sleep();
}
Exercice 2 : Nous allons présenter dans cet exercice une interaction classique entre deux entités :
un Producteur et un Consommateur. Un Producteur crée des messages et les place dans une file,
tandis qu’un Consommateur les lit et les affiche.
Pour être réalistes, nous donnerons à la file une taille maximale. Et pour rendre les choses plus intéressantes,
nous rendrons le consommateur un peu feignant, en faisant en sorte qu’il s’exécute plus lentement que le
producteur. Cela signifie que le producteur doit parfois s’arrêter et attendre que le consommateur se mette à
travailler.
1. Identifier sur un diagramme UML les classes de cette application (propriétés et méthodes).
2. Dans une première version de cet exercice et pour des raisons de simplification, nous allons dériver les
classes Producteur et Consommateur de la classe Thread.
2.1. Quel problème soulève l’interaction Production/Consommation sur l’objet unique « file de
message ». Comment le résoudre en java ?
2.2. Après avoir commenté le code des classes Producteur et Consommateur (donné), écrire la classe
principale Distributeur qui simule l’application.
import java.util.Vector ;
class Producteur extends Thread
{
static final int MAXFILE = 5;
static final int MAXMESSAGES = 50;
private Vector messages;
private int nbMessage;
public Producteur() {
messages = new Vector();
nbMessage = 0;
}
public void run(){
try {
while (nbMessage < MAXMESSAGES) {
insererMessage();
System.out.println("Message numéro "+nbMessage+" produit");
nbMessage++;
sleep(1000);
}
}
catch (InterruptedException e) {}
}
private void insererMessage () {
while (messages.size() == MAXFILE) {
System.out.println("File pleine");
}
messages.addElement(new java.util.Date().toString());
}
public String recupererMessage() {
while (messages.size() == 0) {
System.out.println("File vide");
}
String message = (String)messages.firstElement();
messages.removeElement(message);
return message;
}
}
class Consommateur extends Thread
{
static final int MAXMESSAGES = 50;
private int nbMessage;
Producteur producteur;
Consommateur(Producteur p) {
producteur = p ;
nbMessage++;
}
public void run(){
try {
while (nbMessage < MAXMESSAGES) {
String message = producteur.recupererMessage();
System.out.println("Message numéro "+nbMessage+" recu : " +message);
nbMessage++;
sleep(2000);
}
}
catch (InterruptedException e) {}
}
}