Projet de programmation : Gestion des dossiers étudiants

Table des matières

Ce projet s'inscrit dans le cadre des cours d'introduction à la programmation en langage C dispensés aux étudiants en première année du BTS Systèmes numériques au Lycée Sainte-Famille Saintonge à Bordeaux.

Le but de ce projet est de développer un programme élementaire de gestion de dossiers étudiants d'une classe quelconque tout en mettant en pratique l'ensemble des concepts du langage C vus en cours.

1 Modalités de rendu

La réalisation du projet se fait en trois parties. La première partie prévoit l'implémentation des fonctionnalités de base du programme et est essentielle pour la réalisation des deux autres parties. Ces dernières, en revanche, peuvent être réalisées indépendemment l'une de l'autre.

Le programme résultant doit obligatoirement être développé en langage C. En cas de difficultés ou de questions, n'hésitez pas à les signaler à l'adresse marek.felsoci@inria.fr le plus tôt possible !

En dernier recours et à défaut d'implémentation en langage C, vous pourrez compléter les parties du code source manquantes avec une explication détaillée de la méthode que vous proposez sous forme de commentaires. Mieux vaut un programme non-fonctionnel mais où la méthode à mettre en œuvre est correcte qu'un programme non-fonctionnel sans aucune explication !

Vous devez rendre le ou les fichiers sources de votre projet en les envoyant par courriel à l'adresse marek.felsoci@inria.fr au plus tard le 30 juin 2020 à minuit !

Lors de la réalisation du projet, procédez de manière incrémentale. Une fois que vous aurez réalisé la première partie, choisissez parmi les deux restantes celle que vous jugez la plus simple à développer et gardez l'autre pour la fin.

Le projet est à réaliser individuellement !

2 Notation

De manière informelle, la notation, en nombre approximatif de points, est indiquée dans le titre de chaque partie du projet.

3 Structure de dossiers

Un dossier étudiant comporte les éléments suivants :

  • nom de famille et prénom de l'étudiant (une chaîne de caractères),
  • son âge (une valeur entière positive et supérieure à 0),
  • note moyenne en français (une valeur décimale positive comprise entre 0.0 et 20.0),
  • note moyenne en mathématiques, (une valeur décimale positive comprise entre 0.0 et 20.0),

4 Stockage de dossiers

Une des fonctionnalités de base de votre programme est le stockage d'un ensemble de dossiers étudiants. Pour l'implémenter, vous pouvez utiliser 4 tableaux, un pour chaque élément de dossier. Par exemple, un tableau de chaînes de caractères pour conserver les noms des étudiants, un tableau d'entiers pour conserver leurs âges, etc.

Selon votre préférence, vous pouvez utiliser soit des tableaux statiques avec une taille fixe, soit des tableaux dynamiques dont la taille peut varier durant l'exécution du programme - à allouer avec la fonction malloc(...) et à libérer avec la fonction free(...).

5 Interaction avec l'utilisateur

Votre programme comportera un certain nombre de fonctionnalités qui devront être accessible à l'utilisateur selon son choix.

Au démarrage, votre programme entrera dans une boucle d'exécution. À chaque tour le programme demandera à l'utilisateur l'action à effectuer en affichant la liste des fonctionnalités disponibles. Une fois l'action effectuée, le programme reviendra dans la boucle d'exécution et redemandera de nouveau à l'utilisateur de choisir ce qu'il veut faire.

Pour que l'utilisateur puisse terminer le programme correctement après avoir fini le travail, vous devez prévoir une action de terminaison du programme qui le fera sortir de la boucle d'exécution et le terminera.

Dans les parties suivantes, nous décrivons l'ensemble des fonctionnalités du programme que vous devez implémenter et parmi lesquelles l'utilisateur pourra choisir.

Un exemple d'exécution du programme est proposée ci-dessous.

Bienvenu dans le programme de gestion de dossiers étudiants.

Que voulez-vous faire :
c) Créer un nouveau dossier
...
q) Quitter le programme

Saisissez la lettre de l'action à effectuer et appuyez sur ENTRÉE : c

Création d'un nouveau dossier
...
Le dossier a été créé !

Que voulez-vous faire :
c) Créer un nouveau dossier
...
q) Quitter le programme

Saisissez la lettre de l'action à effectuer et appuyez sur ENTRÉE : q

Terminaison du programme. Au revoir !

6 Partie I : Gestion élémentaire de dossiers étudiants (10 pts)

6.1 Création de dossiers

Tout d'abord, le programme comportera la fonctionnalité de création d'un dossier étudiant.

Ainsi, lorsque l'utilisateur choisira de créer un dossier, le programme lui demandera d'entrer tous les éléments du dossier (voir Section 3) puis les ajoutera à la liste de dossiers (voir Section 4). Voir un exemple ci-dessous.

Création d'un nouveau dossier

Saisissez le nom et le prénom de l'étudiant : DUPONT Jean
Saisissez son âge : 16
Saisissez sa moyenne en français : 14.75
Saisissez sa moyenne en mathématiques : 16.00

Le dossier a été créé !

6.2 Affichage de dossiers

Ensuite, il est important de pouvoir consulter les dossiers créés. Pour cela, vous implémenterez un affichage complet de tous les dossiers existans sous forme d'un tableau simpliste comme dans l'exemple ci-dessous. Vous pouvez séparer les valeurs d'une ligne en utilisant les caractères de tabulation.

№   NOM ET PRÉNOM      ÂGE    MOYENNE FRANÇAIS    MOYENNE MATHÉMATIQUES
1   DUPONT Jean        16     14.75               16.00
2   CLAIRE Nathalie    15     17.42               15.58

6.3 Calcul de la moyenne de la classe

Vous développerez une fonctionnalité permettant de calculer et afficher à l'écran les moyennes générales de tous les étudiants et en français et en mathématiques.

En reprenant les valeurs présentées dans Exemple 1, la sortie de votre programme pour cette fonctionnalité devra ressembler à la suivante :

Moyenne générale en français : 16.09
Moyenne générale en mathématiques : 15.79

7 Partie II : Fonctionnalités de gestion avancées (5 pts)

7.1 Recherche d'un dossier

Vous implémenterez une fonctionnalité qui donnera à l'utilisateur la possibilité de rechercher un dossier étudiant parmi les dossiers existants en fonction d'un nom d'étudiant. Si un dossier étudiant correspond à la recherche, vous afficherez les informations sur ce dossier à l'écran (voir l'exemple ci-dessous). Dans le cas contraire, un message indiquant qu'il n'y a pas de dossier pour le nom recherché devra être affiché.

Recherche de dossier

Saisissez le nom de l'étudiant à rechercher dans les dossiers : DUPONT

Résultat de la recherche :
№   NOM ET PRÉNOM      ÂGE    MOYENNE FRANÇAIS    MOYENNE MATHÉMATIQUES
1   DUPONT Jean        16     14.75               16.00

7.2 Suppression d'un dossier

Vous développerez une fonctionnalité permettant de supprimer un dossier en vous basant sur son identificateur (sa position dans la liste). Si le dossier choisi n'existe pas, le programme affichera un message d'erreur (voir un exemple ci-dessous).

Suppression d'un dossier

Saisissez le numéro du dossier à supprimer : 3

Erreur : Il n'y a pas de dossier portant le numéro 3 !

8 Partie III : Sauvegarde des dossiers dans un fichier texte (5 pts)

Vous implémenterez une fonctionnalité qui permettra à l'utilisateur de sauvegarder l'ensemble des dossiers créés dans un fichier texte de son choix.

Analogiquement, vous ajouterez une fonctionnalité permettant à l'utilisateur de charger des dossiers étudiants à partir d'un fichier texte de son choix.

Ainsi, les dossiers étudiants créés lors d'une exécution de votre programme pourront être conservés pour une réutilisation ultérieure.

Bonne programmation !

Date: 2019/2020

Auteur: Marek Felsoci

Email: marek.felsoci@inria.fr

Validate