GESTION D'UNE CLASSE D'ÉLÈVES

Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010 - 8 mai 2005 à 15:32
Debord10 Messages postés 45 Date d'inscription mercredi 23 mars 2011 Statut Membre Dernière intervention 7 juin 2013 - 23 avril 2011 à 18:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31259-gestion-d-une-classe-d-eleves

Debord10 Messages postés 45 Date d'inscription mercredi 23 mars 2011 Statut Membre Dernière intervention 7 juin 2013
23 avril 2011 à 18:38
Bjr! c programme marche bien,sauf qu'il n'a pas gerer le cas ou on se trompe d'étudiant et on veut plus continuer son enrégistrement;on peut l'arrêter en appuyant sur une touche et revenir au menu,au lieu d'allez encore supprimer l'étudiant qu'on n 'a pas fini l'enrégistrement.
N.B:pour nous qui sommes débutant trouvonsque ce bon,et c'est encourrageant.
abdo_kayane Messages postés 1 Date d'inscription dimanche 1 juillet 2007 Statut Membre Dernière intervention 1 juillet 2007
1 juil. 2007 à 16:01
svp moi je cherche le meme programme ne language c qui permet d ajouter et supprimer eleves et chercher et plus que ca le paiment des leves ...tu peux m aider stp j attend votre reponse
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
17 janv. 2006 à 19:02
marik7335 : Un tableau de structure dynamique ça peut être bon aussi non?? ça évite la manip de temps de pointeur pour rien.
mat1eu Messages postés 13 Date d'inscription vendredi 13 août 2004 Statut Membre Dernière intervention 20 février 2006
31 oct. 2005 à 23:31
bonsoir,
comme dit precedemment c bien mais dommage que ce ne soit pas en C++ car moi aussi j'apprend le langage et je rame pour comprendre ce code car pour la gestion des flux, c pas reelement comme ca dans mon bouquin.
Mais sinon c vraiment bien comme programme y marche bien et y bug pas. Je vais essayer de mettre ca a la sauce C++....Enfin j'ai dis essayer, je debute/
mathieu
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
25 mai 2005 à 20:59
ok
merci
marik7335 Messages postés 115 Date d'inscription samedi 27 décembre 2003 Statut Membre Dernière intervention 11 mai 2009
25 mai 2005 à 17:33
getch() retourne le code ascii de la touche saisie au clavier. Par contre fo faire deux appels à cette fonction ou tout simplement utiliser toupper() pour retourner le code ascii.

exemple :

char ch;
ch = getch();
ch = toupper(ch);
Je crois que c ça si ma mémoire ne flanche pas.
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
25 mai 2005 à 17:14
a quoi sert getch()?
merci
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
25 mai 2005 à 17:09
en effet je vois ce prog comme une aide mais dommage qu'il ne soit pas en c++
je voulais apprendre sur les gestion des flux
klinux Messages postés 4 Date d'inscription jeudi 9 novembre 2000 Statut Membre Dernière intervention 16 juillet 2005
9 mai 2005 à 21:31
merci pour les remarques.
effectivement le traitement sur les eleves sera plus vite en memoire (le temps dacces est plus rapide),mais jvoulai juste proposer des fonctions que les debutants peuvent lire pour se familiariser avec la manipulation des fichiers.
en fait il existe plusieurs methodes qui facilitent la manipulation comme le hashcoding et les fichiers indexes.
merci encore pour vos commentaires -)
nb: jai oublié de supprimer les directions vers le fichier comme
f=fopen("C:/Documents and Settings/kamal kimakhe/Mes documents/classe.dat","rt");
qui devient
f=fopen("classe.dat","rt");
marik7335 Messages postés 115 Date d'inscription samedi 27 décembre 2003 Statut Membre Dernière intervention 11 mai 2009
8 mai 2005 à 18:27
Aprés étude de ton code, je peux constater que tu traite les éléves directement à partir de ton fichier et pour reprendre les dires de Saros, ce n'est pas la meilleure méthode. J'aurais plutôt penser à une liste chaînée. En effet, avec les listes chaînées, tous les traitements seront effectués directement en mémoire (c déjà plus rapide), puis ça te permet de traiter autant d'élèves que tu veux, sans te soucier de leur effectif dans une classe (tant que la mémoire le permet).

Exemple de déclaration en reprenant ta structure :

struct eleve
{
char nom[10], prenom[10];
int mat;
float note;

struct eleve *suivant;
}depart, *noeud, *noeud_precedent;

----Au départ
depart.suivant = NULL; // liste vide
noeud = &depart; // pointe vers le départ de la liste

----Ajouter un élève
noeud->suivant = (struct eleve *) malloc(sizeof(struct eleve));
noeud = noeud->suivant;
strcpy(noeud->nom,"nom");
strcpy(noeud->prenom,"prenom");
noeud->mat = 1;
noeud->note = 12,5;
noeud->suivant = NULL;

----Supprimer un élève (matricule = 1)
noeud = depart.suivant;
noeud_precedent = &depart;
while (noeud)
{
if (noeud->mat == 1)
{
noeud_precedent->suivant = noeud->suivant;
free(noeud);
}
else
{
noeud = noeud->suivant;
noeud_precedant = noeud_precedent->suivant;
}
}
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
8 mai 2005 à 15:32
Tu lis directement les infos dans le fichier ? Ca doit pas être la méthode la plus rapide
Aussi, quand tu vérifie d'éventuelles erreurs quand tu appelle tes fonctions (affichage par ex), ne met pas de 'else' et place le getch() et le fclose() supplémentaires. Sinon on se perd avec les alinéas.
Rejoignez-nous