Projet prog gde gestion notes en C++

tiresj Messages postés 1 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 23 mars 2005 - 23 mars 2005 à 14:53
cs_Urgo Messages postés 780 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 avril 2009 - 23 mars 2005 à 18:49
j'aurai besoin de votre aide pour faire un progaramme de gestion de notes en C++ dont voici le sujet détaillé. Cependant je vous demanderai de bien vouloir me répondre avant le 1er avril.
Merci d'avance.


3 Partie commune aux deux projets
Le programme principal acceptera des commandes et déclenchera les sous-programmes en conséquence, en passant en paramètre tout ce qui est nécessaire (pas de variables globales).
Les données seront sauvegardées dans un fichier de texte. Pendant une session d'utilisation du programme, toutes les données seront chargées en mémoire dans des structures et des tableaux de taille adaptée à chaque session.
Le programme doit pouvoir stocker autant de données que l'on veut ; donc l'utilisation de tableaux statiques est à écarter. Le programme ne doit pas utiliser inutilement de la mémoire ; donc les chaînes de caractères doivent être juste de la longueur nécessaire. Pour ne pas perdre trop de temps, lorsqu'il sera nécessaire d'agrandir un tableau, on lui ajoutera à chaque fois un nombre de cases fixé en constante mais supérieur à 1 (rappel: pas de constantes numériques non nommées).
Toute zone de mémoire allouée dynamiquement doit être libérée lorsqu'elle est devenue inutile.
Enfin, les différentes parties du programme doivent être réparties dans différents fichiers compilés séparément (ce qui ne veut pas dire "un seul sous-programme par fichier").

6 Projet B : Gestion des notes
Le but de cette application est de gérer l'ensemble des notes d'un étudiant.
Cahier des charges détaillé

6.1 Les données
L'ensemble des notes d'un étudiant est d'abord réparti en un certain nombre de modules stockés dans un tableau de taille variable.
Chaque module est composé d'un nom (de type chaîne), du nombre d'UV, d'un tableau d'UV, d'une note moyenne, et d'un coefficient.
Chaque UV est composée d'un nom, du nombre de partiels, d'un tableau de partiels, d'une note moyenne, d'un coefficient, et d'une "lettre" (A, B, C, D, E, FX, F).
Chaque partiel est composé d'un nom, d'une note, et d'un coefficient.
Toutes les notes et tous les coefficients seront stockés sous forme d'entiers naturels, et seront donc multipliés par 100 pour pouvoir tenir compte de notes ou de coefficients exprimés avec deux chiffres après la virgule. Exemple : une note de 10,94 sera stockée 1094 et un coefficient de 1,75 sera stocké 175.
6.2 Les commandes
Elles doivent pouvoir être tapées en minuscule ou en majuscule.

<LI>CF: Charge en mémoire le Fichier des notes en créant les tableaux et structures nécessaires Þ demander confirmation si des modifications non déjà sauvegardées ont été effectuées.
<LI>SF: Sauvegarde la mémoire dans le Fichier des notes de telle sorte qu'il soit facile de construire les structures et les tableaux nécessaires lors du rechargement du fichier.
Pour les 3 commandes suivantes, * peut être remplacé par une des trois entités M (pour Module), U (pour UV), ou P (pour Partiel).
<LI>A*: Ajoute une entité (à la bonne place dans les tableaux) Þ saisir toutes les informations.
<LI>D*: Détaille toutes les informations d'une entité (affiche plusieurs lignes pour chaque entité) Þ demander son numéro dans la liste.
<LI>E*: Enlève une entité après confirmation Þ demander son numéro dans la liste.
<LI>LM: Liste (en les numérotant au fur et à mesure à l'écran) les Modules dans un format abrégé sur une seule ligne (voir paragraphe suivant) ; cet affichage sera suivi ou précédé de l'affichage de la moyenne générale coefficientée des modules.
<LI>CM: Calcule les Moyennes coefficientées dans toutes les entités.
<LI>??: Affiche l'aide ; prévoir un affichage page par page et/ou une aide spécifique par commande. Dans tous les cas, les explications seront stockées dans un fichier de texte.
<LI>QP: Quitte le Programme Þ propose de sauvegarder le fichier si des modifications non déjà sauvegardées ont été effectuées. </LI>
6.3 Affichage abrégé
(pour la commande LM), c'est-à-dire un module par ligne :

<LI>numéro d'ordre du module : 2 caractères, avec un espace à gauche si nécessaire.
<LI>espace : 1 caractère.
<LI>nom : 20 premiers caractères, éventuellement suivis de ... si tous les caractères ne sont pas affichés, ou bien complété par des espaces pour que cette partie occupe toujours 23 caractères.
<LI>le caractère "deux-points" suivi d'un espace : 2 caractères.
<LI>nombre d'UV : 2 caractères, avec un espace à gauche si nécessaire.
<LI>espace : 1 caractère.
<LI>la chaîne "UV, Moyenne=" sur 12 caractères
<LI>la moyenne au format 2 chiffres+un point décimal+2 chiffres ; éventuellement complété par des zéros, avant comme après le point.
<LI>espace : 1 caractère.
<LI>la chaîne "pour" sur 4 caractères
<LI>espace : 1 caractère.
<LI>la somme des coefficients au format 2 chiffres+un point décimal+2 chiffres ; éventuellement complété par des zéros après le point, mais par un espace avant.
<LI>espace : 1 caractère.
<LI>la chaîne "coefficients" sur 12 caractères </LI>chaque ligne comporte donc toujours exactement 72 caractères. Exemple :
<TT>21 Electronique et Circ...: 4 UV, Moyenne=10.38 pour 2.00 coefficients</TT>
6.4 Fonctionnalités supplémentaires
Ces fonctionnalités sont optionnelles pour les binômes mais obligatoires pour les trinômes.
* a la même signification que pour les commandes A*, D*, ou E*.

<LI>M*: Modifie les informations d'une entité Þ demander son numéro dans la liste, puis demander quelle information on veut modifier.
<LI>R*: Rechercher des entités d'après les premières lettres du nom ; si la commande suivante requiert habituellement un numéro dans la liste des entités, cette commande portera sur l'entité trouvée par la recherche sans avoir besoin de saisir de numéro (si la recherche trouve plusieurs entités, il faudra préciser celle que l'on choisit).
<LI>On pourra optionnellement permettre une recherche plus élaborée sur d'autres critères que le nom.
<LI>CC: Calcule les Compensations entre unités suivant les lettres obtenues. Doit afficher le nombre de A, de B, de C, de D, de E, de FX, de F, puis le nombre de FX non compensés, et enfin le nombre de compensations non utilisées. </LI>

2 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
23 mars 2005 à 15:17
La question c'est quoi ?

- S'il s'agit de faire le projet à ta place, c'est pas trop le lieu.
- Si tu as des points précis bloquant, demande des explications dessus (gestion fichier, tableaux dynamiques, listes, chaînes de caractères...) ou regarde dans le forum ou les sources, ces sujets étant souvent évoqués.
- Regarde également dans les sources, il y a de nombreux exemples de gestion de notes ou autre trucs du genre qui font des sauvegardes dans des fichiers.
0
cs_Urgo Messages postés 780 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 avril 2009 1
23 mars 2005 à 18:49
D'abord tu commences par décortiquer ton sujet, tu analyses le tout, tu
commences ton programme, et tu expliques clairement l'endroit où il y a
BLOCAGE de ta part, sinon on ne pourra pas t'aider. Soit PRECIS.

Et comme l'a dit si bien ymca2003, on est pas là pour faire le projet à ta place!



Bye
Urgo
0
Rejoignez-nous