IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Projet gestion de notes


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2019
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Projet gestion de notes
    Bonjour, je vous présent ici la fonction de lecture d'un fichier contenant des notes de plusieurs élèves d'un classe présenté sous cette forme :

    ADRIEN;8.000000;7.000000;6.000000;2.000000;5.000000;
    MICHELLE;10.000000;11.000000;12.000000;13.000000;14.000000;
    VALENTINE;8.000000;6.000000;48.000000;64.000000;5.000000;

    mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    void RECUPERATION()
     
    {   FILE *p;
        char groupe[100], ligne[100]={0}, eleve[50]={0}, notecar [5][50]={0};
        char *token, test;
        int i=0, compare=1;
     
        printf("Saisir le nom du groupe : \n");
        scanf("%s", groupe);
     
        p=fopen(groupe, "r");
     
        if(p==NULL)
        {
            printf("erreur");
        }
        else
        {
    rewind(p);
                printf("NOM de l'eleve :");
                scanf("%s", eleve);
                printf("%s", eleve);
     
                do
                {
                    fgets(ligne, 100, p);
                    printf("La ligne est : %s\n", ligne);
     
                    token = strtok(ligne, ";"); //séparation de la chaine
     
                    while(token != NULL)
                    {
                        strcpy(notecar[i], token);//copie de token dans le tableau note
                        printf("le token est : %s\n", token);
                        i++;
                        token = strtok(NULL, ";");
     
                    }
     
                    compare=strcmp(notecar[0], eleve);
                }
                while(compare!=0 && !feof(p));
     
    printf("%s", eleve);
     
        }
        fclose(p);
     
    }
    Ce code ne fonctionne pas tous d'abord, mon tableau notecar[] ne stock pas les nouvelles ligne, le tableau eleve[] est modifié a la fin alors que je ne modifie pas sa valeur au cours du programme (après le scanf) et aussi ma boucle while ne fonctionne pas comme prévu. Voila merci pour votre aide

  2. #2
    Membre actif
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2011
    Messages : 71
    Points : 214
    Points
    214
    Par défaut
    Bonjour,

    Il y a plusieurs problèmes :
    ne set à rien par définition tu es au début du fichier quand tu l'ouvres.

    Peut être appelé alors que l'ouverture du fichier à échoué et que l'état de p n'est pas sur.
    (Le nom de cette variable n'est pas terrible)

    Enfin le problème principal vient de la déclaration de la variable notecar.
    Dans ton fichier tu as 3 elèves avec 5 notes (mais la ligne fait 6 entrées séparée par un ; )
    Tu devrais aussi enlever le ; final car sinon strtok sera appelé une fois de plus.
    Ce n'est pas vraiment un exemple de programme robuste et dans ton cas il faudrait normalement faire de l'allocation dynamique mais tu peux déjà corriger cette version.

Discussions similaires

  1. Projet de gestion de notes d'étudiants
    Par soub dans le forum Débuter
    Réponses: 4
    Dernier message: 22/05/2014, 22h22
  2. Projet : Gestion d'un club de foot
    Par rar77 dans le forum WinDev
    Réponses: 2
    Dernier message: 31/10/2006, 01h18
  3. gestion de notes, trimestres, élèves.
    Par ludolan dans le forum Access
    Réponses: 6
    Dernier message: 12/09/2006, 20h57
  4. [conception] projet "gestion d'un hotel"
    Par vincent02 dans le forum Modélisation
    Réponses: 4
    Dernier message: 08/03/2006, 18h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo