Q1)



Q1)

Soit la classe Employe suivante :

public class Employe

{

private String nom; // nom de l’employé

private String assSoc; // numéro d’assurance sociale de l’employé

private double salaire;

public Employe(String nom, String assSoc, double salaire)

{

this.nom = nom;

this.assSoc = assSoc;

this.salaire = salaire;

}

public void setNom(String nom) { this.nom = nom; }

public void setAssSoc(String assSoc) { this.assSoc = assSoc; }

public void setSalaire(double sal) { this.salaire = salaire; }

public String getNom() { return nom ; }

public String getAssSoc() { return assSoc; }

public double getSalaire() { return salaire; }

// paye hebodamadaire

public double paye()

{

return 0;

}

public String toString() {

return nom + " (ass-sociale = " + assSoc + ")";

}

} // fin Employe

Soient deux sous-classes de Employe, respectivement appelées EmployeCommission et EmployeHoraire.

Voici les détails de ces deux classes :

o un employé à commission a en plus de son salaire de base un taux de commission et le nombre d’items vendus dans la semaine. La paie hebdomadaire de cet employé est son salaire de base plus le montant de sa commission.

o un employé horaire a en plus de son salaire horaire un nombre d’heures travaillées dans la semaine.

Donnez le code des deux sous classes EmployeCommission et EmployeHoraire.

Q2)

Sachant qu’on voudra créer dans une application des machines distributrices qui ne vendent que du café coûtant 1$ et qu’on pourra acheter le café en payant seulement avec des pièces de 1$ ou de 2$ :

a) Complétez la classe Distributrice avec :

• ses 3 attributs

• le constructeur sans paramètre et celui à 2 paramètres

• les méthodes « set » et les méthodes « get »

• la méthode payerCafe (qui doit retourner un des messages suivants : Bonne journée ou Voici votre monnaie ou Désolé! je n’ai plus de 1$ ou La pièce est refusée ou Désolé! il n’y a plus de café)

• la méthode toString qui retourne une chaîne donnant le contenu de la distributrice

b) Complétez le diagramme de la classe Distributrice

|TestDistributrice |

| |

c) Complétez l'application TestDistributrice qui va créer une distributrice contenant au départ 25 pièces de 1$ et 50 tasses de café. L'application doit ensuite simuler l’achat de café par 40 clients à l’aide d’une boucle for (le client paie avec un 1$ lorsque le compteur de la boucle est un multiple de 3 ou de 5, sinon il paie avec un 2$). Faites afficher les messages concernant les ventes de café et l’état de la distributrice à la fin de la journée dans une zone de texte à défilement sur 10 lignes.

Q3)

Complétez la classe Exemple suivante, sachant que les objets Exemple, qui seront créés par la suite, doivent partager les attributs somme et nbObjets. L'attribut nbObjets permet de compter le nombre d'objets qui seront créés et l'attribut somme permet de faire la somme des différentes valeurs conservées dans l'attribut d'instance valeur des différents objets créés.

public class Exemple

{

________________________________ nbObjets = 0;

________________________________ somme = 0;

________________________________ valeur;

public Exemple(int nb)

{

_______________________________________________;

_______________________________________________;

_______________________________________________;

}

public _______________ setValeur(int nb)

{

_______________________________________________;

_______________________________________________;

_______________________________________________;

}

public _______________ getValeur()

{

_______________________________________________;

}

public _______________ getNbObjets()

{

_______________________________________________;

}

public _______________ getSomme()

{

_______________________________________________;

}

public _______________ toString()

{

return "L'attribut valeur est de " + valeur + ", somme = " + somme +

", nombre d'objets créés = " + nbObjets;

}

} // fin de la classe Exemple

Complétez maintenant l'application TestExemple :

public class TestExemple

{

public static void main(String args[])

{

Exemple obj1 = new Exemple(5);

System.out.println("objet 1 : " + obj1);

Exemple obj2 = new Exemple(10);

System.out.println("objet 1 : " + obj1);

System.out.println("objet 2 : " + obj2);

System.out.println("\nLa somme des attributs valeur = " +

___________________________________);

System.out.println("Le nombre d'objets Exemple = " +

___________________________________);

}

}

Quels seront les résultats affichés lors de l'exécution de la classe TestExemple ?

| |

| |

| |

| |

| |

| |

| |

Q4)

Soient les 2 classes suivantes:

// classe Stagiaiare

public class Stagiaire {

private String nom; // nom du stagiaire

private int duree; // nombre de semaines

private String college; // college du stagiaire

public Stagiaire(String nom, int duree, String college){

setNom(nom);

setDuree(duree);

setCollege(college);

}

public String getNom() { return nom; }

public int getDuree() { return duree; }

public String getCollege() { return college; }

public void setDuree(int duree) { this.duree = duree; }

public void setNom(String nom) { this.nom = nom; }

public void setCollege(String college){this.college = college;}

public String toString() {

return nom + "\t\t " + duree + "\t\t " + college ;

}

}//fin Stagiaire

// Classe GestionStage

import java.io.*;

import java.util.StringTokenizer;

public class GestionStage{

public static void main(String args[]) throws IOException {

final int MAX_STAGES = 50; // nombre maximal de stages

int nbStages; // nombre effectif de stagiaires

Stagiaire tabStages[]= new Stagiaire[MAX_STAGES];

// remplir le tableau a partir du fichier Stages.txt en

// extrayant les informations séparées par des virgules (,) avec

// un Strinktokenizer

nbStages= remplirTab(tabStages);

// afficher la liste des stagiaires

afficher(nbStages, tabStages);

// Comparer si le stagiaire 2 et le stagiaire 4 viennent du même //collège,ont la même durée de stage et afficher un message adéquat

comparerCollege( tabStages[2], tabStages[4]);

// changer le nom du collège "AH" par "Ahuntsic"

modifierCollege(nbStages, tabStages, "AH", "Ahuntsic");

// réafficher la liste des stagiaires

afficher(nbStages, tabStages);

} // fin main

static int remplirTab (){ } //à ne pas coder

static void afficher (_________________________){ } // à coder

static void modifierCollege ( ________________________){ } // à coder

static void comparerCollege(_________________________){ } // à coder

} // fin GestionStage

Complétez la signature et donnez le code des méthodes comparerCollege(), modifierCollege(), afficher() en tenant compte des commentaires indiqués dans la classe GestionStage

Q5)

Soient les 3 classes suivantes :

// classe Cle

class Cle {

private int code;

private String marque;

public Cle (String marque) {

this(999,marque);

}

public Cle (int code, String marque) {

setCode( code);

setMarque(marque);

}

public int getCode() {return code;}

public void setCode(int code) {this.code = code;}

public String getMarque() {return marque;}

public void setMarque(String marque) {this.marque = marque;}

public String toString(){

return ("cle " + marque + ", " + code);

}

}//fin Cle

// classe Porte

public class Porte {

private int numero;

private Cle cle;

public Porte() {

this(1111, null);

}

public Porte(int n, Cle c) {

setNumero(n);

setCle(c);

}

public Cle getCle() {return cle;}

public int getNumero() {return numero;}

public void setCle(Cle cle) {this.cle = cle;}

public void setNumero(int numero) {this.numero = numero;}

public String toString() {

String message = numero + " : ";

if( cle == null )

message += "pas de clé";

else message += cle;

return message;

}

} // fin Porte

// classe TestPorte

public class TestPorte{

public static void main (String argv[]) {

Cle cle1 = new Cle(1234, "Ilco");

Porte porte1 = new Porte(1144, cle1);

Porte porte2 = new Porte();

Porte porte3 = new Porte(1127, new Cle("Weiser") );

//porte1

System.out.println("Porte1 " +porte1);

//porte2

System.out.println("Porte2 " + porte2);

porte2.setCle(new Cle(1356,"Sargent"));

System.out.println("Porte2 " + porte2);

//porte3

System.out.println("Porte3 " +porte3);

porte3.getCle().setCode(1456);

System.out.println("Porte3 " + porte3);

} // fin main

} // fin TestPorte

Donnez le résultat de l'exécution de la classe TestPorte.

Q6)

Compléter la classe ClubAmis suivante, qui permet, à l’aide du constructeur, d’amener un fichier, déjà ordonné par ordre croissant du mois de la date d’anniversaire , dans un tableau d’amis :

import java.io.*;

public class ClubAmis

{

private static final int MAX_AMIS = 25;

private Ami tabAmis[] = ________________________;

private int nbAmis = 0; // compteur des amis placés dans le tableau

public ClubAmis() throws IOException

{

BufferedReader fichier = new BufferedReader(new FileReader("amis.txt"));

String ligne;

ligne = fichier.readLine();

while (ligne != null && nbAmis < MAX_AMIS)

{

String nomAmi = ligne.substring(0,20);

String phone = ligne.substring(21,31);

int jr = Integer.parseInt(ligne.substring(32,34));

int mois = Integer.parseInt(ligne.substring(35,37));

int annee = Integer.parseInt(ligne.substring(38);

| |

| |

| |

}

}

/* La méthode suivante permet d’insérer, s’il reste de la place, un nouvel ami dans le tableau des amis, de façon à ce que le tableau reste ordonné par ordre croissant du mois d’anniversaire. Si pas assez de place, afficher un message d’erreur

REMARQUE : utiliser le service compareTo de la classe Ami */

public void insererAmi(Ami monAmi)

{

boolean trouvePlace;

int ind;

if (______________________________)

System.out.println("Il n’y a plus de place dans le tableau") ;

else

{

trouvePlace = false ;

ind = _______________________________

while (ind >=0 && !trouvePlace)

{

if (_______________________________________________________)

{

______________________________________;

ind--;

}

else

trouvePlace = true;

}

______________________________________________

______________________________________________

}

}

// La méthode suivante retourne l’ami placé dans le tableau à la

// position ind

public Ami getAmi(int ind)

{

return ____________________ ;

}

}

Écrire la classe GestionClubAmis qui est une application permettant :

• de créer le club d'amis et par la suite

• d'aller modifier le jour d'anniversaire de l'ami placé à la quatrième position dans le tableau (mettre le jour à 13) et

• d'insérer au club l'ami suivant : Marc Legris né le 23 février 1985 dont le téléphone est (450)234-1234.

public class GestionClubAmis

{

public static void main(String args[]) throws IOException

{

| |

| |

| |

| |

| |

| |

| |

}

}

-----------------------

|Distributrice |

| |

| |

| |

| |

| |

| |

| |

| |

| |

| |

| |

utilise

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download