TP-SI_POO2019-Corrigé – Maths BTS
Retour aux ressources
Corrigés

TP-SI_POO2019-Corrigé


REPUBLIQUE DU CAMEROUN

Paix-Travail-Patrie

REPUBLIC OF CAMEROON

Peace-Work-Fatherland

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR

MINISTRY OF HIGHER EDUCATION

COMMISSION NATIONALE D’ORGANISATION DE L’EXAMEN NATIONAL DU BREVET DE TECHNICIEN SUPERIEUR (BTS)

NATIONAL COMMISSION FOR THE ORGANIZATION OF BTS EXAM


Examen National Du Brevet De Technicien Supérieur - Session 2019


Spécialité/Option : IGL

Épreuve : Travaux Pratiques Système d’Information et Programmation Orientée Objet

Crédit : 5

Corrigé



Introduction


Ce document présente une correction détaillée de l’épreuve de Travaux Pratiques de Système d’Information et Programmation Orientée Objet du Brevet de Technicien Supérieur, session 2019, spécialité IGL. L’épreuve est composée de deux parties : l’analyse et base de données (60 points) et programmation orientée objet (40 points). Les réponses sont expliquées de manière pédagogique avec des extraits de code et des schémas.



1 Partie A : Analyse et Base de données (60 points)



1.1 Section 1 : MERISE et modélisation (35 points)



1.1.1 1. Dictionnaire de données (10 points)

Le dictionnaire de données recense les données manipulées dans le système.



Dictionnaire de données














Entité/RelationAttributTypeCommentaire
CLIENTNumClientEntierClé primaire, auto-incrément
CLIENTNomClientChaîne (50)
CLIENTTelephoneChaîne (20)
CLIENTAdresseChaîne (200)
TERRAINNumTerrainEntierClé primaire, auto-incrément
TERRAINAdresseTerrainChaîne (200)
TERRAINSuperficieRéelen m²
TERRAINNomVendeurChaîne (50)
TERRAINNumClientEntierClé étrangère vers CLIENT

Explication : Le client possède plusieurs terrains. Chaque terrain appartient à un seul client. D’où une relation 1,n entre CLIENT et TERRAIN.



1.1.2 2. MCD (Modèle Conceptuel des Données) (10 points)

Le MCD représente les entités et les associations entre elles.



  • Entité CLIENT : NumClient (identifiant), NomClient, Telephone, Adresse.

  • Entité TERRAIN : NumTerrain (identifiant), AdresseTerrain, Superficie, NomVendeur.

  • Association POSSÈDE : Un CLIENT possède plusieurs TERRAINS (0,n). Un TERRAIN est possédé par un seul CLIENT (1,1).


Représentation textuelle :

CLIENT (NumClient, NomClient, Telephone, Adresse)

TERRAIN (NumTerrain, AdresseTerrain, Superficie, NomVendeur, #NumClient)

Lien : CLIENT (1,1) – (0,n) TERRAIN



1.1.3 3. Utilisation de PowerAMC pour dessiner le MCD (10 points)

Dans PowerAMC, créer deux entités avec leurs attributs et une association de type « 1,n » entre CLIENT et TERRAIN. L’association est nommée « POSSÈDE ».



1.1.4 4. MLDR (Modèle Logique de Données Relationnelles) (5 points)

Le MLDR dérive du MCD en appliquant les règles de passage.



  • Table CLIENT :

    – NumClient (INT, PRIMARY KEY, AUTO_INCREMENT)

    – NomClient (VARCHAR(50))

    – Telephone (VARCHAR(20))

    – Adresse (VARCHAR(200))

  • Table TERRAIN :

    – NumTerrain (INT, PRIMARY KEY, AUTO_INCREMENT)

    – AdresseTerrain (VARCHAR(200))

    – Superficie (DECIMAL(10,2))

    – NomVendeur (VARCHAR(50))

    – NumClient (INT, FOREIGN KEY REFERENCES CLIENT(NumClient))



1.2 Section 2 : Gestion des bases de données (25 points)



1.2.1 5. Création de la base de données avec MySQL (15 points)


-- Création de la base de données
CREATE DATABASE IF NOT EXISTS gestion_terrain;
USE gestion_terrain;

-- Création de la table CLIENT
CREATE TABLE CLIENT (
NumClient INT PRIMARY KEY AUTO_INCREMENT,
NomClient VARCHAR(50) NOT NULL,
Telephone VARCHAR(20),
Adresse VARCHAR(200)
);

-- Création de la table TERRAIN
CREATE TABLE TERRAIN (
NumTerrain INT PRIMARY KEY AUTO_INCREMENT,
AdresseTerrain VARCHAR(200) NOT NULL,
Superficie DECIMAL(10,2),
NomVendeur VARCHAR(50),
NumClient INT,
FOREIGN KEY (NumClient) REFERENCES CLIENT(NumClient)
);


1.2.2 6. Insertion d’enregistrements dans la table CLIENT (10 points)


-- Insertion de quelques clients
INSERT INTO CLIENT (NomClient, Telephone, Adresse) VALUES
('Jean Dupont', '699123456', 'Yaoundé, rue 123'),
('Marie Loum', '677987654', 'Douala, boulevard 456'),
('Paul Atangana', '699555555', 'Bafoussam, avenue 789');

-- Insertion de terrains pour ces clients
INSERT INTO TERRAIN (AdresseTerrain, Superficie, NomVendeur, NumClient) VALUES
('Mbalmayo, quartier centre', 500.75, 'Vendeur1', 1),
('Ngousso, parcelle 45', 1200.00, 'Vendeur2', 1),
('Bonabéri, lot 12', 750.50, 'Vendeur3', 2);


2 Partie B : Programmation Orientée Objet (40 points)



2.1 1. Diagramme de classes (5 points)


Le diagramme de classes reprend les entités du MCD en les transformant en classes.



  • Classe Client :

    – Attributs : numClient (int), nomClient (String), telephone (String), adresse (String)

    – Méthodes : constructeurs, getters/setters

  • Classe Terrain :

    – Attributs : numTerrain (int), adresseTerrain (String), superficie (double), nomVendeur (String), client (Client)

    – Méthodes : constructeurs, getters/setters



2.2 2. Conception des interfaces avec Netbeans ou Visual Studio



2.2.1 • Fenêtre de connexion à l’application (5 points)

Cette fenêtre permet de saisir les identifiants de connexion à la base de données (utilisateur et mot de passe) et de se connecter.

Éléments :



  • Deux champs de texte : utilisateur et mot de passe.

  • Bouton ‘Connexion’ et ‘Annuler’.

  • Validation des champs et tentative de connexion à la base.



2.2.2 • Interface de création des clients (10 points)

Cette interface permet d’ajouter, modifier, supprimer des clients.

Éléments :



  • Champs de saisie : nom, téléphone, adresse.

  • Boutons : Enregistrer, Modifier, Supprimer.

  • Tableau affichant la liste des clients.

  • Interaction avec la base de données : les boutons déclenchent des requêtes SQL appropriées (INSERT, UPDATE, DELETE).



2.2.3 • Interface de création des terrains (10 points)

Similaire à l’interface client, mais pour les terrains.

Éléments :



  • Champs de saisie : adresse, superficie, nom du vendeur, et un menu déroulant pour sélectionner le client propriétaire.

  • Boutons : Enregistrer, Modifier, Supprimer.

  • Tableau affichant la liste des terrains.

  • Interaction avec la base de données.



2.2.4 • Interface d’affichage des clients (10 points)

Cette interface permet d’afficher la liste des clients avec un bouton ‘Afficher’.

Éléments :



  • Un bouton “Afficher” qui rafraîchit la liste.

  • Un tableau listant les clients avec leurs informations.

  • Optionnel : possibilité de filtrer ou de rechercher.



2.2.5 Remarques :


  • Toutes ces interfaces sont regroupées dans un menu déroulant (ou une barre de menus) dans l’application principale.

  • Les interfaces se connectent à la base de données MySQL créée précédemment. Utiliser un connecteur JDBC (pour Java) ou ADO.NET (pour .NET).



2.3 Exemple de code Java pour la connexion à la base



import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnexionBD {
private static Connection conn = null;

public static Connection getConnection() {
if (conn == null) {
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/gestion_terrain";
String user = "root";
String password = "";
conn = DriverManager.getConnection(url, user, password);
System.out.println("Connexion établie");
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
return conn;
}

public static void closeConnection() {
if (conn != null) {
try {
conn.close();
System.out.println("Connexion fermée");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}


2.4 Exemple de classe Client en Java



public class Client {
private int numClient;
private String nomClient;
private String telephone;
private String adresse;

// Constructeurs
public Client() {}

public Client(String nomClient, String telephone, String adresse) {
this.nomClient = nomClient;
this.telephone = telephone;
this.adresse = adresse;
}

// Getters et setters
public int getNumClient() { return numClient; }
public void setNumClient(int numClient) { this.numClient = numClient; }
public String getNomClient() { return nomClient; }
public void setNomClient(String nomClient) { this.nomClient = nomClient; }
public String getTelephone() { return telephone; }
public void setTelephone(String telephone) { this.telephone = telephone; }
public String getAdresse() { return adresse; }
public void setAdresse(String adresse) { this.adresse = adresse; }
}


2.5 Exemple de classe Terrain en Java



public class Terrain {
private int numTerrain;
private String adresseTerrain;
private double superficie;
private String nomVendeur;
private Client client;

// Constructeurs
public Terrain() {}

public Terrain(String adresseTerrain, double superficie,
String nomVendeur, Client client) {
this.adresseTerrain = adresseTerrain;
this.superficie = superficie;
this.nomVendeur = nomVendeur;
this.client = client;
}

// Getters et setters
public int getNumTerrain() { return numTerrain; }
public void setNumTerrain(int numTerrain) { this.numTerrain = numTerrain; }
public String getAdresseTerrain() { return adresseTerrain; }
public void setAdresseTerrain(String adresseTerrain) { this.adresseTerrain = adresseTerrain; }
public double getSuperficie() { return superficie; }
public void setSuperficie(double superficie) { this.superficie = superficie; }
public String getNomVendeur() { return nomVendeur; }
public void setNomVendeur(String nomVendeur) { this.nomVendeur = nomVendeur; }
public Client getClient() { return client; }
public void setClient(Client client) { this.client = client; }
}


Conclusion


Cette correction détaille les étapes de modélisation, de création de base de données et de programmation orientée objet pour le TP. Les candidats doivent veiller à la cohérence entre les différents modèles et à la robustesse du code (gestion des erreurs, validation des saisies, etc.). Les interfaces graphiques doivent être fonctionnelles et ergonomiques.






Résumé du document



Ce document est le corrigé de l’épreuve de Travaux Pratiques (Système d’Information et Programmation Orientée Objet) du BTS IGL (session 2019). Il comporte deux grandes parties.



La Partie A (60 points) traite de l’analyse et de la base de données. Elle comprend la construction d’un dictionnaire de données, un modèle conceptuel des données (MCD) avec les entités CLIENT et TERRAIN, l’utilisation de PowerAMC, le modèle logique relationnel (MLDR), puis la création de la base MySQL et l’insertion d’enregistrements.



La Partie B (40 points) est consacrée à la programmation orientée objet. On y trouve un diagramme de classes, la conception de quatre interfaces graphiques (connexion, gestion des clients, gestion des terrains, affichage des clients) avec les éléments attendus, ainsi que des exemples de code Java pour la connexion JDBC et les classes Client et Terrain.



Le corrigé fournit également des extraits de code SQL et Java, et des remarques sur l’ergonomie et la robustesse.


Pour plus de détails, consulter le PDF ci-joint.
Discuter sur le forum
Lien copié !