TP Supervise

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 3

TP S 0(Révisions)

On désire écrire un programme de prise en main de C# à travers Visual


Studio.
1. Créer un projet java contenant une classe Test positionné dans le
paquetage com.istag
2. Vérifier que votre projet comporte un point d’entrée.
3. Dans la méthode main ajoutez un code qui permet d’afficher le message
« Bonjour Tout Le monde »
4. Toujours dans le main, ajouter un bout de code qui demande à l’utilisateur de
donner son nom un message sous la forme « BONJOUR nom »
Indication :
Utiliser la classe Scanner pour la lecture
5. Ajouter à votre classe la déclaration double[] v ;
Que représente v ?
6. Ajouter à la classe Principale la méthode suivante :
static void lecture(){
Scanner keyb=new Scanner(System.in) ;
System.out.println("Entrez le nombre de valeurs");
int n = keyb.nextInt() ;
v = new double[n];
for(int i=0 ;i<n ;i++){
System.out.println("Valeur de rang " + (i + 1) + " :");
v[i] = keyb.nextInt() ;
}
}
a) Quelle différence faites-vous entre System.out.println et
System.out.print
7. Faites le nécessaire pour placer vos classes dans le namespace
com.istag.novice
TP 1
Partie 1 – Facture d’eau simplifié
On cherche à créer une classe Facture permettant de représenter une facture
d’eau. Cette classe sera positionné dans le paquetage com.istag.gestion. Une
facture est caractérisée par son numéro, son ancien et nouvel index et le prix du
m3(initialisé à 350 F). Pour une facture, on doit pouvoir calculer la consommation, le
montant de la Facture.
1. Déclarer une classe Facture contenant les deux champs
privés numero, ancienIndex, nouvelIndex, prixUnitaire ainsi que les méthodes
consommation et montant.
2. Dans la classe Test(confère TP 0), essayer le code suivant dans la
méthode main.
Facture f=new Facture();
System.out.println(f.ancienIndex+" "+f.nouvelIndex);
Expliquer pourquoi il y a des erreurs.
3. Changer le niveau d’encapsulation de l’attribut ancienIndex de Facture en
public.
a. Que se passe t-il ?
b. Est-ce conseillé de déclaré un attribut en public ? Expliquer.
c. Que faut-il alors faire ?
4. Ajouter une méthode affiche() qui affiche les information de la facture(N°,
ancienIndex, nouvelIndex,
5. Ajouter des accesseurs et mutateurs aux attributs ancienIndex et nouvelIndex.
6. Ajouter un constructeur initialisant le numéro, ancien et nouvel index d’une
Facture.
a. Que se passe t’il ?
b. Que doit faire si l’on souhaite pouvoir créer une Facture sans indiquer le
numéro, ancien et nouvelIndex ?
7. Ajouter un constructeur initialisant l’ancien et nouvel index d’une Facture(le
numéro vaut alors 0).
8. Ajouter un constructeur de recopie à la classe
9. Le prix du m3 est le même pour toutes factures.
a. La classe Facture est-elle cohérente avec cette définition ?
b. Apportez les modifications nécessaires ?
10. Comment faire en sorte de connaître, à tout moment, le nombre total de
Facture qui ont été créés par la classe depuis le lancement de l'application ?
Créer une méthode totalCreated() de sorte à obtenir le comportement suivant:

public static void main(String[] args) {


Facture p = new Facture();
p.affiche() ;
System.out.println("Total: " + Facture.totalCreated()); // Total: 1
Facture p1 = new Facture (1,1);
System.out.println("Total: " + Facture.totalCreated()); // Total: 2
}

11. On souhaite pouvoir générer automatiquement le numéro des Factures.


Le numéro de la Facture est auto incrément. Apportez les modifications
nécessaires à la classe Facture.

Partie 2 – Facture d’eau avec port


Une Facture complète est une Facture qui possède en plus les frais
d’entretien. Ces frais d’entretien sont le même pour toutes les factures complètes
et valent actuellement 1500.

12. Donnez le corps de la classe FactureComplete. Pensez à bien redéfinir


les méthodes.
a. Quelle différence faites vous entre redéfinir et surcharcher ?
13. Exécutez le code ci après :
Facture f1=new Facture(1,1,300);
Facture f2=new Facture(1,1,300);
Facture copief1=new Facture(f1);
Facture f3=new FactureComplete(1,300);
System.out.println("F1= "+f1) ;
System.out.println("F3= "+f3) ;
System.out.println("Test 1 : ") ;
System.out.println(f1==copief1);
System.out.println("Test 2 : ") ;
System.out.println(f1==f2);
14. Qu'affiche le code ci-dessus ? Expliquez.
15. Que faut-il redéfinir pour avoir des résultats adéquats

Partie 2 – Gestion des collections

On souhaite maintenant représenter une classe Client. Un client a un nom, ainsi que
l’ensemble de ses Factures. On doit pouvoir :
 Ajouter une Facture à un client
 Calculer le montant total des factures d’un client
 Une methode nombreFacture() qui renvoie le nombre de Facture
 Une méthode afficher() qui affiche la liste des factures
On souhaite gérer l’ensemble des Factures par un ArrayList
16. Proposer la définition de La classe Client
17. Exécutez le code suivant :

Point p1=new Point(1,2);


Client c=new Client("ISTAG") ;
Facture f1=new Facture(1,1,300);
Facture f2=new Facture(1,1,300);
Facture copief1=new Facture(f1);
Facture f3=new FactureComplete(300,400);
Facture f4=new Facture(400,800);
c.ajouter(f1) ;
c.ajouter(copief1) ;
c.ajouter(f2) ;
c.ajouter(f3) ;
c.ajouter(f4) ;
c.afficher() ;

18. Que faut-il faire pour éviter des doublons de factures ?


Remplacer la classe List par Set dans la classe Client.
19. Ré exécuter le code précédent. Que constatez-vous ? Que faut-il faire ?

Vous aimerez peut-être aussi