Série 2 travaux pratiques en programmation avec c# - dotnet

Exercice 1

On veut écrire un programme permettant de résoudre les équations du second degré à coefficients réels : Ax2 +Bx+C=0. 1. Écrire une classe Equation avec les propriétés publiques : coefficients (a, b, c), discriminant (delta) et racines (r1 et r2). 2. Écrire un constructeur qui permet d'initialiser les coefficients. 3. On veut ajouter le comportement void calculRacines( ) aux instances de la classe Equation. Cette méthode doit calculer le discriminant puis les racines et affecter leurs valeurs aux attributs delta, r1 et r2. 4. Écrire une méthode String ToString( ) qui retourne les solutions de l'équation(r1 et r2); Si le discriminant est strictement négatif, ToString renvoie pas de racine réelle. 5. Écrire une classe Problème contenant la méthode Main( ). Dans cette méthode, créer une instance monEquation de la classe Equation puis, en utilisant les méthodes de cette instance, afficher l'équation, calculer ses racines et les afficher. 6. Modifier en private l'accès aux attributs de la classe Equation. Ajouter des propriétés qui permettent un accès en lecture/ écriture aux attributs de la classe. Dans ces modificateurs traiter le cas de coefficient a=0 en se contentant d'un message d'erreur suivant "le programme ne traite pas le cas où a=0"

Exercice 2

Créer une classe Personne, comportant les champs suivants : nom(private), prenom(private), age(public) et numéro de téléphone(public). A savoir le champ nom doit être en lecture seule en initialisant sa valeur dans les constructeurs. 1. La classe Personne doit disposer des constructeurs suivants: - Personne ( ): constructeur par défaut qui affiche juste un message "Construction de classe personne" - Personne (nom, prenom, age, Tel,): doit appeler au début le constructeur par défaut; puis il initialise les champs. - Personne (Personne p):copie les caractéristiques de personne p dans l'objet courant. 2. changePersonne( int ancien_age): méthode qui remplace l'âge d'une personne par un nouveau âge saisi par l'utilisateur. 3. Ajouter à la classe Personne une énumération ville qui a ces possibilités: , Marrakech, Rabat, Casablanca. Ajouter à la classe Personne un champ Origine de type Ville et effectuer ensuite les modifications nécessaires dans les constructeurs. 4. Créer une méthode SavoirOrigine( ): qui affiche un message pour indiquer l'origine d’une personne (Utiliser pour cela l'instruction switch). 5. On veut afficher le message suivant "Démarrage du programme" dès que le premier objet est instancié. 2

Exercice 3

Créer, par ajout à votre projet, quatre fichiers de classes:  Classe Personne : champs _Nom, _Prénom et _Age, avec les propriétés correspondantes, deux constructeurs, une surcharge de la méthode ToString, une méthode polymorphe Afficher.  Classe Employé : dérive de la classe Personne, avec en plus un champ _Salaire accompagnéde sa

propriété,avec un constructeuret surchargedes méthodes ToString et Afficher.  Classe Chef : dérive de la classe Employé, avec en plus un champ _Service accompagné de sa propriété, avec un constructeur et surcharge des méthodes ToString et Afficher.  Classe Directeur : dérive de la classe Chef, avec en plus un champ _Société accompagné de sa propriété, avec un constructeur et surcharge des méthodes ToString et Afficher. 1. Créez un tableau de huit personnes avec cinq employés, deux chefs et un directeur (8 références de la classe Personne dans lesquelles ranger 5 instances de la classe Employé, 2 de la classe Chef et 1 de la classe Directeur). 2. Affichez l'ensemble des éléments du tableau à l'aide de for. 3. Incrémentez l'âge d'un employé de 10 ans, modifiez un salaire et l'intitulé du service d'un chef. 4. Affichez l'ensemble des éléments du tableau à l'aide de foreach.

Exercice 4

 Un parc auto se compose des voitures et des camions qui ont des caractéristiques communes regroupées dans la classe Véhicule.  Chaque véhicule est caractérisé par son matricule, l’année de son modèle, son prix.  Lors de la création d’un véhicule, son matricule est incrémenté selon le nombre de véhicules créés.  Tous les attributs de la classe véhicule sont supposés privés, ce qui oblige la création des propriétés.  La classe Véhicule possède également deux méthodes abstraites démarrer() et accélérer() qui seront définies dans les classes dérivées et qui afficheront des messages personnalisés.  La méthode ToString() de la classe Véhicule retourne une chaîne de caractères qui contient les valeurs du matricule, de l’année du modèle et du prix.  Les classes Voiture et Camion étendent la classe Véhicule en définissant concrètement les méthodes accélérer() et démarrer() en affichant des messages personnalisés. 3 1. Créer la classe abstraite Véhicule. 2. Créer les classes Camion et Voiture. 3. Créer une classe Test qui permet de tester la classe Voiture et la classe Camion

Exercice 5

Certain animaux peuvent crier, d’autres sont muets. On représentera le fait de crier au moyen d’une méthode affichant à l’écran le cri de l’animal. 1. Ecrire une interface contenant la méthode permettant de crier. 2. Ecrire les classes des chats, des chiens et des lapins (qui sont muets) 3. Ecrire un programme avec un tableau pour les animaux qui savent crier, le remplir avec des chiens et des chats, puis faire crier tous ces animaux. Décrire ce qui s’affiche à l’écran à l’exécution de ce programme.

Exercice 6

1. Définir une classe Client avec les attributs suivants : CIN, Nom, Prénom, Tél. 2. Définir à l’aide des propriétés les méthodes d’accès aux différents attributs de la classe. 3. Définir un constructeur permettant d’initialiser tous les attributs. 4. Définir un constructeur permettant d’initialiser le CIN, le nom et le prénom. 5. Définir la méthode Afficher ( ) permettant d’afficher les informations du Client en cours. 6. Créer Une classe Compte caractérisée par son solde et un code qui est incrémenté lors de sa création ainsi que son propriétaire qui représente un client. 7. Définir à l’aide des propriétés les méthodes d’accès aux différents attributs de la classe (le numéro de compte et le solde sont en lecture seule) 8. Définir un constructeur permettant de créer un compte en indiquant son propriétaire. 9. Ajouter à la classe Compte les méthodes suivantes : - Une méthode permettant de Crediter() le compte, prenant une somme en paramètre. - Une méthode permettant de Crediter() le compte, prenant une somme et un compte en paramètres, créditant le compte et débitant le compte passé en paramètres. - Une méthode permettant de Debiter() le compte, prenant une somme en paramètre - Une méthode permettant de Débiter() le compte, prenant une somme et un compte bancaire en paramètres, débitant le compte et créditant le compte passé en paramètres - Une méthode qui permet d’afficher le résumé d’un compte. - Une méthode qui permet d’afficher le nombre des comptes crée. 10. Créer un programme de test pour la classe Compte.