Exercice Programmation OO – Cours 2 (2026)

Exercice 1

 Créez un projet “Exercice_Cours2” dans Visual Studio (Projet de type Console en C#).

Exercice 2

 Créez une classe Ordinateur. Cette dernières a les attributs “nombre_de_coeur” (int), “memoire_vive” (int), “espace_disque” (int) et “marque” (string). Définir des assesseurs et mutateur pour modifier les attributs. Définir également un constructeur avec paramètre qui permet d’initialiser les valeurs avec les paramètre fournis. Démontrer la création de 4 instances différentes depuis le “Main” de votre programme. Par exemple:

  • 4 coeurs, 16 (GB) de mémoire, 1024 (GB) d’espace disque, marque “HP”.
  • 2 coeurs, 4 (GB) de mémoire, 256 (GB) d’espace disque, marque “Dell”.
  • 2 coeurs, 8 (GB) de mémoire, 512 (GB) d’espace disque, marque “Asus”.
  • 4 coeurs, 32 (GB) de mémoire, 2048 (GB) d’espace disque, marque “Celeron”.

Exercice 3 (Défi)

Créez une classe “Moteur”, celle-ci a comme attribut un “kilometrage” (int) et une “puissance” en chevaux-vapeur (int). Définissez son constructeur et ses assesseurs. Créez une méthode “rouler()” qui augmente le kilométrage de 20. Créez un moteur de 120 chevaux-vapeur ayant un kilométrage de 180000 kilomètres.

Créez une classe “Voiture”. Celle-ci a une “annee” (int), une “marque” (string), un “modele” (string) et un “Mon_Moteur” (Moteur).

Le constructeur de la classe Voiture prend 5 paramètres: annee, marque, modele, kilometrage, puissance.

Lorsque la voiture est créée, les 3 premières informations servent à initialiser les attributs de la voiture. Les 2 dernière sont transféré au constructeur du moteur.

Créez une méthode “Afficher_Specification()” qui affiche toutes les caractéristiques de la voiture et de son moteur.

Exercice 4

Créer une classe “Etudiant”. Cette dernière a les attributs “nom” (string), “prenom” (string) et “code_permanent” (string). Définir les assesseurs et mutateurs ainsi qu’un constructeur avec paramètre. Démontrer quelques instanciations de votre classe et l’utilisation des assesseurs et mutateurs.

Exercice 5

 Créer une classe “Cours”. Cette dernière a les attributs “sigle” (string), “nombre_credit” (int) et “session” (string). Définir les assesseurs et mutateurs ainsi qu’un constructeur avec paramètre. Démontrer quelques instanciations de votre classe et l’utilisation des assesseurs et mutateurs.

Exercice 6

Modifier la classe “Etudiant” pour inclure une variable statique qui compte le nombre d’étudiant créé. Cette valeur est privée et peut être accéder par la méthode statique “Obtenir_Nombre_Etudiant()”

Exercice 7

Modifier la classe “Cours” pour ajouter un attribut privé “inscrit” (Tableau d’étudiant). Ajouter une méthode “Inscrire_Etudiant(Etudiant e)” (Taille de 20 éléments) qui permet d’inscrire un étudiant au cours. Concrètement, l’objet passé en paramète est ajouté au tableau. Utilisé une variable “pointeur” qui indique à votre classe le nombre d’étudiant inscrit. Créez une autre méthode statique “Get_Etudiant_Inscrit()” qui retourne ce nombre d’étudiant inscrit. Faite quelques inscriptions à partir de vos objets étudiants et afficher le nombre d’étudiant inscrit. Créez ensuite une méthode “Afficher_Classe()” qui affiche ligne par ligne le nom et prénom de chacun des étudiants inscrit.

Exercice 8

Créez une classe abstraite “Personne”. Cette dernière est caractérisée par un poids (int), une taille (int), un age (int), salaire (int), un nom (string) et un prenom (string). Les attributs sont “protected”. Définissez les sous-classes suivantes: Travailleur, Retraite, Etudiant, Chomeur. Ces derniers ont chacun un constructeurs qui permet de définir tous leurs attributs à partir de paramètre fournit. Le seul paramètre qui ne l’est pas est le salaire. Celui-ci est déterminé de facon fixe selon le type d’objet

  • Travailleur: 50000
  • Retraite: 25000
  • Etudiant: 10000
  • Chomeur: 15000

Finalement, effectuer un polymorphisme de surcharge sur le constructeur de sorte à ce que l’age puisse être fournit à partir d’une chaine de caractère plutot que d’une valeur numérique. (Ex. “32” plutot que 32).

 Exercice 9

 Créez l’arborescence hiérarchique suivante en utilisant l’orienté objet

Animal

  • Chat
    • Bengal
    • Siamois
    • Sphynx
  • Chien
    • Berger_Allemand
    • Caniche
    • Golden_Retriever

Assurez-vous que la classe “Animal” soit abstraite et possède les attributs “taille”, “poids” et “age” ainsi que les méthode “Marcher()”, “Manger()” et “Dormir()”. Ces méthodes affiche un message “Je marche”, “Je mange”, etc. Définissez également une méthode abstraite “Se_Presenter()”.

Les classes Chat et Chien on respectivement les méthodes “Miauler” et “Japper”. Ces méthodes affiche les messages “Je miaule” et “Je jappe”. Redéfinir la méthode “Se_Presenter” pour afficher les messages “Je suis un chien” et “Je suis un chat”.

Toutes les classes de races redéfinisse la méthode “Se_Presenter()” pour dire “Je suis un <nom de la race>”.

Assurez-vous que les classes de race soit des classes scellées.

 Exercice 10

Créez une méthode statique dans la classe “Program” qui s’appelle Factoriel(int x). une factoriel est une méthode récursive qui permet de connaitre le produit d’un nombre avec tous les produits inférieur à lui-même. La méthode se lit comme suit:

public static int Factoriel (int x){

if (x == 0) { return 1;}

return x * Factoriel(x-1);

}

Créez deux classes “ValeurNegativeException” et “ValeurTropGrandeException” qui sont dérivée de la classe Exception.

Ces dernière sont déclenchée au début de Factoriel si

  • La valeur de x est négative
  • La valeur de x est supérieure ou égal à 20.

Assurez-vous que ces exceptions soit rattraper depuis la méthode Main et qu’un message d’erreur soit affiché dans la console. Autrement, afficher le résultat de la factoriel. Faites une démonstration des 3 scénario en effectuant 3 appels pour les valeur -2, 5 et 22.