Conversation with Merlin [email protected] · Tue Jan 09 2024

Exercice n° 2 (= 8 points):

  1. Développer une classe CodeaBarre qui possède un attribut code correspondant aux 13 chiffres d'un code à barre d'un produit. Pour une raison de simplification de traitement, cet attribut sera représenté par un tableau d'entier (voir annexe). Cette classe possède aussi : Une méthode public void remplirCode() qui permet de remplir les cases de l'attribut à partir des entiers saisis au clavier. Chaque case de code doit contenir un chiffre entre 0 et 9. Une méthode public void paysCode () qui affiche le message « Ce produit est Tunisien >> ou bien << Ce produit est étranger >> selon la valeur de code à barre qui se trouve dans l'attribut. Un code à barre correspond au celui d'un produit Tunisien s'il commence par 619.
  • Une méthode public void verifCode () qui affiche true, si le code est valide, affiche false sinon. Un code à barre est valide si la parité de la somme de ses entiers sauf le dernier chiffre est égale à la parité du dernier chiffre du code. La parité est une propriété qui indique si un entier est pair ou impair.
  1. Développer une classe exécutable TestCode qui utilise la classe précédente pour créer, remplir, tester la validation et déterminer si ce code à barre est Tunisien ou non. Annexe : Rappel déclaration : int code[] = new int[13];

Saisie d'un entier du clavier : Scanner sc = new Scanner(System.in); int n sc.nextInt(); L'opérateur modulo en java :

Based on the given exercise instruction, let's develop the Java classes as requested.

  1. Create a CodeaBarre class with specifications provided.
import java.util.Scanner; public class CodeaBarre { private int[] code = new int[13 public void remplirCode() { Scanner sc = new Scanner(System.in); for (int i =0; i < code.length; i++) { do { System.out.println("Enter digit " + (i + 1) + " of the barcode (0-9): "); [i] = sc.nextInt(); } while (code[i < 0 || code[i] > 9); } } public void paysCode() { if (code[0] ==6 && code[1] == 1 && code[2] == 9) { System.out("Ce produit est Tunisien"); } else { System.out.println("Ce produit est étranger"); } } public void verifCode() { sum = 0; for (int i = 0; i < code.length - 1; i++) { += code[i]; } boolean isValid = (sum 2 == code[code.length - 1] % 2); System.out.println(isValid); } }
  1. Develop the TestCode which utilizes the CodeaBarre class for creating filling, testing the validation, and determining whether the barcode is Tunisian or not.
public class TestCode { public static main(String[] args) { CodeaBarre myCode = new CodeaBarre(); // Fill the code my.remplirCode(); // Test if the product Tunisian myCode.paysCode(); // Check if the code is valid myCode.verifCode(); } }

This pair of classes fulfills the given in the exercise. The class CodeaBarre has methods to fill the barcode from input, check the country origin, and verify the barcode's. The TestCode class uses an instance of `CodeaBarre to prompt the user for input and then determine if the barcode meets the specified conditions.

Note: The exercise description did not provide details for when or how to use the operator modulo in Java, referred to %, but in the verifCode() method, it is used to determine the parity of the sums the final digit to check the validity of the barcode.