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 :

Structure de données en C : gestion d'une base d'étudiants


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    programmeur
    Inscrit en
    Juin 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Haïti

    Informations professionnelles :
    Activité : programmeur
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 3
    Par défaut Structure de données en C : gestion d'une base d'étudiants
    Bonsoir,
    On me donne ceci :

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    struct etudiant 
    {   
            char code[5];       
    	char prenom[20];;
    	char nom[20];
    	char departement[20];
    }
    struct note
    {
         char  code[5];
        float Math;
        float Francais;
        float ProgFond;
    }

    Comment puis-je écrire un programme pour :
    1) saisir des nouveaux étudiants
    2) afficher les étudiants
    3) rechercher et supprimer un étudiant
    4) Saisir des notes
    - Modifier une note
    - Calculer les moyennes d'un étudiant
    - Affichage de toutes les moyennes .

    Merci pour votre aide.

  2. #2
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    Citation Envoyé par boulos Voir le message
    comment je peux ecrire un programme qui:
    1) saisir des nouveaux etudiants
    2) afficher les etudiants
    (...)
    en retroussant tes manches et en te mettant au travail sans attendre.
    une fois que tu auras commencé à faire quelque chose, si ton programme ne fonctionne pas dis nous à quel endroit et on essaiera de t'aider.

  3. #3
    Candidat au Club
    Homme Profil pro
    programmeur
    Inscrit en
    Juin 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Haïti

    Informations professionnelles :
    Activité : programmeur
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 3
    Par défaut
    voila un peu mon travail:
    voici le commencement de mon programme aide moi a le corriger je trouve pas mal d'erreur.
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    void saisie_etudiant(FILE *etudiant_dat);
    void menu();
    void affichage_etudiant(FILE * etudiant_dat);
    void rechercher_etudiant( FILE * etudiant_dat);
    void suppresion_etudiant(FILE *etudiant_dat);
    void saisir_note (FILE *note_dat);
    void modifier_note(FILE* note_dat);
    FILE* moyenne_etudiant(FILE* etudiant_dat);
    void affichage_moyennes(FILE* etudiant_dat);
     
    int main()
    {
        FILE * etudiant_dat=NULL;
        FILE * note_dat=NULL;
        int choix;
        do
        {
            menu();
        do
        {
          scanf("%d",&choix);
          if(choix<0||choix>6)
          printf("choix invalide\n" );
        }while(choix<0||choix>8);
        switch (choix)
        {
            case 1 : saisie_etudiant(etudiant_dat); break;
            case 2 : affichage_etudiant(etudiant_dat); break;
            case 3 : rechercher_etudiant(etudiant_dat); break;
            case 4 : suppresion_etudiant(etudiant_dat); break;
            case 5 : saisir_note(note_dat); break;
            case 6 : modifier_note(note_dat); break;
            case 7 : moyenne_etudiant(etudiant_dat); break;
            case 8 : affichage_moyennes(etudiant_dat); break;
            case 0 : exit(0);
        }
        }while(1);
    }
    void menu()
    {
        printf("1.saisir un nouveau etudiant\n" );
        printf("2.Affichage des etudiants \n");
        printf("3.rechercher etudiant \n" );
        printf("4.suppression etudiant \n" );
        printf("5.saisie note des etudinats \n");
        printf("6.modifier note d'un etudiant\n");
        printf("7.calcul les moyennes d'un etudiant\n" );
        printf("8.affichage tout les moyennes\n");
    }
    struct Etudiant
    {
     
    	char code[5];
    	char prenom[20];;
    	char nom[20];
    	char departement[20];
    };
    void saisie()
    {char vouloir;
        FILE *fichier;
        fichier = fopen("etudiant_dat","a");
    do{
        system("cls");
        printf("\nEntrer le code:");
        scanf("%s",&code);
        printf("\nEntrer le prenom:");
        scanf("%s",&prenom);
        printf("\nEntrer le nom:");
        scanf("%s",&nom);
        printf("\nEntrer le departement:");
        scanf("%s",&departement);
     
        fwrite(&info, sizeof(info),1, fichier);
        printf("\n\nVoulez vous continuer o/n ?");
        getch();
     
        }while ((vouloir!='n')  && (vouloir='N'));
         fclose(fichier);
    }
    void affichage()
    {
        FILE *fichier;
        fichier = fopen("etudiant_dat","r");
        do{
            printf("\n%s\t%s\t%s\t%s\t%s", code,prenom, nom,departement);
        }while (!feof(fichier));
        fclose(fichier);
    }

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 255
    Par défaut
    Prérequis pour que nous regardions ton code, le mettre entre balise code, c'est l’icône # dans l’éditeur de message. Et indiques-nous les erreurs.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Oui, s'il te plait édite ton message et met le code entre balise code #.

    Mais déjà :
    • les déclarations de fonction utilisent toutes le type FILE* qui est pour les fichiers, je pense que tu souhaite plutôt Etudiant* ou Note*.
    • le type Etudiant est défini après le main(), il faut le définir avant de s'en servir donc au début.
    • les fonctions qui suivent ne correspondent pas aux prototypes indiqués dans les déclarations de fonctions.
    • tu utilises des variables qui ne sont pas définies, le compilateur indique certainement ces défauts
    • tu sembles vouloir utiliser un type Note, il est défini nulle part.

  6. #6
    Candidat au Club
    Homme Profil pro
    programmeur
    Inscrit en
    Juin 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Haïti

    Informations professionnelles :
    Activité : programmeur
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 3
    Par défaut
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim strexemple as string
    je finis pas réaliser la struct etudiant, maintenant j'ai de besoin de votre aide comment intégrer la struct note dans le programme.
    NB: les notes doivent rentrer sur 100.

    Code C : 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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <windows.h>
     
    struct Etudiant{
      char code[5];
      char prenom[20];
      char nom[20];
      char departement[20];
    };
     
    struct Etudiant  info;
     
     
    void saisie()
    {    char vouloir;
        FILE *fichier;
        fichier = fopen("etudiant.dat","a");
     
        do{
        system("cls");
        printf("\nEntrer le code     :");
        scanf("%s",&info.code);
        printf("\nEntrer le prenom         :");
        scanf("%s",&info.prenom);
        printf("\nEntrer le nom :");
        scanf("%s",&info.nom);
        printf("\nEntrer le departement      :");
        scanf("%s",&info.departement);
     
        fwrite(&info, sizeof(info),1, fichier);
         printf("\n\nVoulez vous continuer o/n ?");
         vouloir=getch();
     
        }  while ((vouloir!='n')  && (vouloir='N'));
        fclose(fichier);
    }
     
    void gotoxy(int x, int y)
    {
        COORD point;
        point.X = x; point.Y = y;
        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),point);
    }
     
     
    void affichage1()
    {
        FILE *fichier;
        int ligne=1;
        fichier = fopen("etudiant.dat","r");
        do{
          if(fread(&info, sizeof(info),1, fichier) !=NULL)
          {
             gotoxy(1,ligne);printf("%s",info.code);
             gotoxy(21,ligne);printf("%s",info.prenom); \
             gotoxy(41,ligne);printf("%s",info.nom);
             gotoxy(61,ligne);printf("%s",info.departement);
             ligne=ligne+1;
          }
        }while (!feof(fichier));
        fclose(fichier);
     
        printf("\n\n Presser une touche pour continuer");
        getch();
    }
     
    void recherche()
    {
        FILE *fichier;
        char vcode[10];
        system("cls");
        printf("\nEntrer le code de l'etudiant :");
        scanf("%s",&vcode);
        int found;
        fichier = fopen("etudiant.dat","r");
        found=0;
        do{
          if(fread(&info, sizeof(info),1, fichier) !=NULL)
               if (strcmp(vcode, info.code)==0)
               {
                   found=1;
                   system("cls");
                   printf("\ncode     :%s",info.code);
                   printf("\nPrenom        :%s",info.prenom);
                   printf("\nNom:%s",info.nom);
                   printf("\nDepartement      :%s",info.departement);
     
               }
     
        }while (!feof(fichier));
        if (!found){
          printf("\nEtudiant introuvable");
        }
        printf("\nPresser une touche pour continuer");
        getch();
        fclose(fichier);
    }
    void suppression()
    {
        FILE *fichier, *fichier1;
     
        char vcode[10];
        char choix;
        system("cls");
        printf("\nEntrer le code de l'etudiant :");
        scanf("%s",&vcode);
        int found;
        fichier = fopen("etudiant.dat","r");
        fichier1 = fopen("etudiant.bk","w");
        found=0;
        do{
          if(fread(&info, sizeof(info),1, fichier) !=NULL)
               if (strcmp(vcode, info.code)==0)
               {
                   found=1;
                   system("cls");
                   printf("\nCode     :%s",info.code);
                   printf("\nPrenom        :%s",info.prenom);
                   printf("\nNom:%s",info.nom);
                   printf("\nDepartement      :%s",info.departement);
                   do{
                   printf("\n\nVoudriez-vous le supprimer o/n ?");
                   choix=getch();
                   } while ((choix!='n') && (choix!='N') && (choix!='o') && (choix!='O'));
     
                   if ((choix=='n')  || (choix=='N'))
                     fwrite(&info, sizeof(info),1, fichier1);
               }
               else{
                   fwrite(&info, sizeof(info),1, fichier1);
               }
     
        }while (!feof(fichier));
        fclose(fichier);
        fclose(fichier1);
        remove("etudiant.dat");
        rename("etudiant.bk","etudiant.dat");
     
        if (!found){
          printf("\nEtudiant introuvable");
        }
        printf("\nPresser une touche pour continuer");
        getch();
     
    }
     
    int main()
    {
        //saisie();
        affichage1();
        //recherche();
        //suppression();
        return 0;
    }

Discussions similaires

  1. structure hashmap donnee
    Par domino313131 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 19/04/2010, 10h09
  2. Livre algorithmique, structures de donnees
    Par Miko95 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 27/03/2008, 14h15
  3. manipulation d'un tableau d'une structure de donnee
    Par questionvb dans le forum VB.NET
    Réponses: 2
    Dernier message: 19/03/2007, 14h02
  4. [POO] Les structures de données comme en C++...
    Par FrankOVD dans le forum Langage
    Réponses: 3
    Dernier message: 27/04/2006, 19h44
  5. structure de donnee et acces rapide à un element
    Par romeo9423 dans le forum C++
    Réponses: 2
    Dernier message: 01/09/2005, 08h35

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