Génie Logiciel - Java (IGL245)
Thème :
Junior
1 vues ·9/10 leçons

Correction : CC - IGL245 - 2026

Exercice 1 : Les Fichiers (Langage C)

Question 1 : Fichier Texte vs Binaire (2 pts)

  • Fichier Texte : Stocke les données sous forme de caractères lisibles (ASCII/UTF-8). Chaque ligne se termine généralement par un caractère de fin de ligne.
    • Exemple : Un fichier .txt ou .csv.
  • Fichier Binaire : Stocke les données sous la même forme qu’elles sont représentées en mémoire RAM (suites de 0 et 1). Non directement lisible par un humain.
    • Exemple : Un fichier exécutable .exe ou une image .png.

Question 2 : Modes d’Ouverture (2 pts)

  • "r" : Lecture seule. Le fichier doit exister.
  • "w" : Écriture seule. Écrase le contenu existant ou crée le fichier s’il n’existe pas.
  • "a" : Ajout (Append). Écrit à la fin du fichier sans supprimer le contenu existant.
  • "r+" : Lecture et écriture. Le fichier doit exister.
  • Réponse : Pour ajouter des produits sans perdre les anciens, on utilise le mode "a".

Question 3 : Gestion des Erreurs (2 pts)

#include <stdio.h>

int main() {
    FILE *fp = fopen("produits.txt", "a");
    if (fp == NULL) {
        printf("Erreur lors de l'ouverture du fichier.\n");
        return 1;
    }
    // ... utilisation du fichier ...
    fclose(fp);
    return 0;
}

Exercice 2 : Listes Linéaires Chaînées (Langage C)

1. Définition de struct Node (1 pt)

struct Node {
    int data;
    struct Node* next;
};

2. Fonction push (Insertion au début) (2 pts)

void push(struct Node** head_ref, int new_data) {
    struct Node* new_node = (struct Node*)malloc(sizeof(struct Node));
    new_node->data = new_data;
    new_node->next = (*head_ref);
    (*head_ref) = new_node;
}

3. Implémentation complète (4 pts)

#include <stdio.h>
#include <stdlib.h>

struct Node {
    int data;
    struct Node* next;
};

void insertAtHead(struct Node** head, int data) {
    struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
    newNode->data = data;
    newNode->next = *head;
    *head = newNode;
}

int main() {
    struct Node* head = NULL;
    insertAtHead(&head, 10);
    insertAtHead(&head, 20);

    // Test d'affichage
    struct Node* temp = head;
    while(temp != NULL) {
        printf("%d -> ", temp->data);
        temp = temp->next;
    }
    printf("NULL\n");

    return 0;
}

Exercice 3 : Introduction Java & POO (Langage Java)

Classe Livre (7 pts)

public class Livre {
    // 1. Attributs privés (2 pts)
    private String titre;
    private String auteur;
    private double prix;

    // 2. Constructeur (2 pts)
    public Livre(String titre, String auteur, double prix) {
        this.titre = titre;
        this.auteur = auteur;
        this.prix = prix;
    }

    // 3. Méthode afficherDetails (2 pts)
    public void afficherDetails() {
        System.out.println("Livre : " + titre);
        System.out.println("Auteur : " + auteur);
        System.out.println("Prix : " + prix + " €");
    }

    // 4. Méthode main pour tester (1 pt)
    public static void main(String[] args) {
        Livre monLivre = new Livre("Le Petit Prince", "Antoine de Saint-Exupéry", 15.50);
        monLivre.afficherDetails();
    }
}

Prêt à passer à la suite ?

Vous avez terminé cette leçon sur Correction : CC - IGL245 - 2026. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.