Partage
  • Partager sur Facebook
  • Partager sur Twitter

LES STRUCTURE EN C

Erreur de structure

    25 juin 2019 à 1:12:23

    Bonsoir cher tous.

    j'ecrie un programme en c me permettant de gerer une base de donnee.

    En declarant ma structure nommée Etudiant je n'arrive toujour pas a compiler mon code et voici l'erreur que le bull Message m'affiche:

    C:\Users\HP\Desktop\ProjetA3\main.c|29|error: invalid use of undefined type 'struct Etidiant'|

    et je n'arrive pas a comprendre cet erreur. quelqu'un pourra m'aider svp?

    Bref Voici mon code complet:

    #include <stdio.h>

    #include <stdlib.h>

    struct Etudiant{

        char Nom[100];

        char Prenom[100];

        int Matricule [50];

        char Filiere[50];

        char Nationalite[100];

        char Ville_de_Residence[100];

        int Telephone[50];

        char Adresse_Electronique[100];

        char Etablissement[100];

        int Niveau[20];

        int Cycle[20];

        int Numero[20];

        int Date_de_Naissance[50];

    };

    struct Etidiant Etud; /*Declaration d'une variable Etud de type Etudiant

    /*-------Fonction de recherche-------*/

    int rech(int NumRech){

        FILE *F;

        F=fopen("Etudiants.txt", "r"); /*chemin d'acces du fichier et on l'ouvre en lecture*/

        do/* Lire tant qu'il ya une ligne dans le fichier*/

            {

            fscanf(F,"%s; %s; %d; %s; %s; %s; %d; %s; %s; %d; %d; %d; %d\n",&Etud.Nom, &Etud.Prenom, &Etud.Matricule, &Etud.Filiere, &Etud.Nationalite, &Etud.Ville_de_Residence, &Etud.Telephone, &Etud.Adresse_Electronique, &Etud.Etablissement, &Etud.Niveau, &Etud.Cycle, &Etud.Numero, &Etud.Date_de_Naissance);

        fflush(stdin);/* liberer la memoir*/

        if(Etud.Numero == NumRech)

            {

            fclose(F); /* fermer le fichier et retourne 1 s'il trouve*/

            return 1;

        }

        }while(!feof(F));

    fclose(F);/* fermer le fichier et retourne -1 s'il ne trouve pas*/

    return -1;

    }

    /*--------procédure d'ajout--------*/

    void AjouterEtudiant(){

         FILE*F;

         int num;

         F=fopen("Etudiants.txt","a"); /* Ouverture du fichier en lecture et ecriture*/

         printf("\n Entrez lz numero du Nouveau Etudiant:");

         scanf("%d",&num);

         fflush(stdin);

         while(rech(num) == 1){

            printf("\n Ce numero existe deja:");

            printf("\n Entrez le Numero de l'Etudiant");

            scanf("%d,&num");

         }

    Etud.Numero=num;

    printf("\n Entrez le Nom:");

    gets(Etud.Nom);

    fflush(stdin);

    printf("\n Entrez le Prenom");

    gets(Etud.Prenom);

    fflush(stdin);

    printf("\n Entrez le Matricule");

    gets(Etud.Matricule);

    fflush(stdin);

    printf("\n Entrez la Filiere");

    gets(Etud.Filiere);

    fflush(stdin);

    printf("\n Entrez la Nationalite");

    gets(Etud.Nationalite);

    fflush(stdin);

    printf("\n Entrez la ville de residence");

    gets(Etud.Vile_de_Residence);

    fflush(stdin);

    printf("\n Entrez le Telephone");

    gets(Etud.Telephone);

    fflush(stdin);

    printf("\n Entrez l'adresse electronique");

    gets(Etud.Adresse_Electronique);

    fflush(stdin);

    printf("\n Entrez l'etablissement");

    gets(Etud.Etablissement);

    fflush(stdin);

    printf("\n Entrez le Niveau de l'etudiant");

    gets(Etud.Niveau);

    fflush(stdin);

    printf("\n Entrez le cycle");

    gets(Etud.Cycle);

    fflush(stdin);

    printf("\n Entrez le Numero");

    gets(Etud.Numero);

    fflush(stdin);

    printf("\n Entrez le Date_de_Naissance");

    gets(Etud.Date_de_Naissance);

    fflush(stdin);

    fprintf(F,"%s;%s;%d;%s;%s;%s;%d;%s;%s;%d;%d;%d;%d;\n",&Etud.Nom,&Etud.Prenom,&Etud.Matricule,&Etud.Filiere,&Etud.Nationalite,&Etud.Ville_de_Residence,&Etud.Telephone,&Etud.Adresse_Electronique,&Etud.Etablissement,&Etud.Niveau,&Etud.Cycle,&Etud.Numero,&Etud.Date_de_Naissance);

    close(F);

    }

    /*-------- Recherche et affichage------*/

    void Recherche(){

        int NumR;

        printf("Entrer le numero de etudiant a rechercher\n");

        scanf("%d",&NumR);

        FILE*F;

        F = fopen("Etudiants.txt","r");

        do{

            fscanf(F,"%s;%s;%d;%s;%s;%s;%d;%s;%s;%d;%d;%d;%d;\n",&Etud.Nom,&Etud.Prenom,&Etud.Matricule,&Etud.Filiere,&Etud.Nationalite,&Etud.Ville_de_Residence,&Etud.Telephone,&Etud.Adresse_Electronique,&Etud.Etablissement,&Etud.Niveau,&Etud.Cycle,&Etud.Numero,&Etud.Date_de_Naissance);

        if (NumR == Etud.Numero){

            printf("======= Information sur l'etudiant: =======\n\n");

            printf("Nom:\t%s\n, Etud.Nom");

            printf("Prenom:\t%s\n, Etud.Prenom");

            printf("Matricule:\t%d\n, Etud.Matricule");

            printf("Filiere:\t%s\n, Etud.Filiere");

            printf("Nationalite:\t%s\n, Etud.Nationalite");

            printf("Ville_de_Residence:\t%s\n, Etud.Ville_de_Residence");

            printf("Telephone:\t%d\n, Etud.Telephone");

            printf("Adresse_Electronique:\t%s\n, Etud.Adresse_Electronique");

            printf("Etablissement:\t%s\n, Etablissement");

            printf("Niveau:\t%d\n, Etud.Niveau");

            printf("Cycle:\t%d\n, Etud.Cycle");

            printf("Numero:\t%d\n, Etud.Numero");

            printf("Date_de_Naissance:\t%d\n, Etud.Date_de_Naissance");

        }

        }

        while(!feof(F));

        fclose(F);

    }

    /* ------------Procedure de supression----------*/

    /*------------Proceduire Modifier Etudiant*/

    void ModifierEtudiant(){

        FILE*F,*Fich; int num, i;

        char rep = 'n';

        printf("\n Entrez le numero de l'etudiant a modifier:");

        scanf("%d",&num);

        fflush(stdin);

        if(rech(num) == 1){

            printf("\n Voulez Vous Vraiment Modifier o/n");

            scanf("%c",&rep);

            fflush(stdin);

            printf("%c",rep);

            if(rep == 'o' || rep == 'O'){

                F=fopen("Etudiants.txt","r");

                Fich=fopen("TempEtudiants.txt","a");

                do{

                fscanf(F,"%s;%s;%d;%s;%s;%s;%d;%s;%s;%d;%d;%d;%d;\n",&Etud.Nom,&Etud.Prenom,&Etud.Matricule,&Etud.Filiere,&Etud.Nationalite,&Etud.Ville_de_Residence,&Etud.Telephone,&Etud.Adresse_Electronique,&Etud.Etablissement,&Etud.Niveau,&Etud.Cycle,&Etud.Numero,&Etud.Date_de_Naissance);

                   if(num==Etud.Numero) {

                     Etud.Numero=num;

                     printf("\n Entrez le nouveau Nom:");

                     gets(Etud.Nom);

                     printf("\n Entrez le nouveau Prenom");

                     gets(Etud.Prenom);

                     printf("\n Entrez le nouveau Matricule");

                     gets(Etud.Matricule);

                     printf("\n Entrez la nouvelle Filiere");

                     gets(Etud.Filiere);

                     printf("\n Entrez la nouvelle Nationalite");

                     gets(Etud.Nationalite);

                     printf("\n Entrez la nouvelle ville de residence");

                     gets(Etud.Vile_de_Residence);

                     printf("\n Entrez le numero de Telephone");

                     gets(Etud.Telephone);

                     printf("\n Entrez la nouvelle adresse electronique");

                     gets(Etud.Adresse_Electronique);

                     printf("\n Entrez l'etablissement");

                     gets(Etud.Etablissement);

                     printf("\n Entrez le nouveau Niveau de l'etudiant");

                     gets(Etud.Niveau);

                     printf("\n Entrez le nouveau cycle");

                     gets(Etud.Cycle);

                     printf("\n Entrez le nouveau Numero");

                     gets(Etud.Numero);

                     printf("\n Entrez la nouvelle Date_de_Naissance");

                     gets(Etud.Date_de_Naissance);

                     printf("\n La modification a Reussi");

    fprintf(Fich,"%s;%s;%d;%s;%s;%s;%d;%s;%s;%d;%d;%d;%d;\n",&Etud.Nom,&Etud.Prenom,&Etud.Matricule,&Etud.Filiere,&Etud.Nationalite,&Etud.Ville_de_Residence,&Etud.Telephone,&Etud.Adresse_Electronique,&Etud.Etablissement,&Etud.Niveau,&Etud.Cycle,&Etud.Numero,&Etud.Date_de_Naissance);

                   }

                   while(!feof(F));

                   fclose(F);

                   fclose(Fich);

                   remove("Etudiants.txt");

                   rename("TempEtudiants.txt, "Etudiants.txt");

                   printf("\n Modification effectuer avec succes");

                }

                else{

                    printf("\n Ce Numero n'existe pas \n");

                }

            }

        /*----------Procedure afficher tout*/

        void AfficherTt(){

            FILE*F;

            F=fopen("Etudiants.txt","r");

            printf("La liste des etudiants est:\n\n");

            printf("Nom\t Prenom\t Matricule\n Filiere\t Nationalite\t Ville_de_Residence\t Telephone\t Adresse_Electronique\t Etablissement \t Niveau\t Cycle\t Numero\t Date_de_Naissance \n");

            do{

                fscanf(F,"%s;%s;%d;%s;%s;%s;%d;%s;%s;%d;%d;%d;%d;\n",&Etud.Nom,&Etud.Prenom,&Etud.Matricule,&Etud.Filiere,&Etud.Nationalite,&Etud.Ville_de_Residence,&Etud.Telephone,&Etud.Adresse_Electronique,&Etud.Etablissement,&Etud.Niveau,&Etud.Cycle,&Etud.Numero,&Etud.Date_de_Naissance);

           fflush(stdin);

            printf("Nom:\t%s\n, Etud.Nom");

            printf("Prenom:\t%s\n, Etud.Prenom");

            printf("Matricule:\t%d\n, Etud.Matricule");

            printf("Filiere:\t%s\n, Etud.Filiere");

            printf("Nationalite:\t%s\n, Etud.Nationalite");

            printf("Ville_de_Residence:\t%s\n, Etud.Ville_de_Residence");

            printf("Telephone:\t%d\n, Etud.Telephone");

            printf("Adresse_Electronique:\t%s\n, Etud.Adresse_Electronique");

            printf("Etablissement:\t%s\n, Etablissement");

            printf("Niveau:\t%d\n, Etud.Niveau");

            printf("Cycle:\t%d\n, Etud.Cycle");

            printf("Numero:\t%d\n, Etud.Numero");

            printf("Date_de_Naissance:\t%d\n, Etud.Date_de_Naissance");

            }

        }while(!feof(F));

        fclose(F);

        }

        /*-----------Le Menu Principale------------*/

        void main()

        {

            int Choix; char rep;

            do

            {

                 system("cls");

                 printf("***********MENU********\n");

                 printf("1- Ajouter Un Etudiant\n");

                 printf("2- Rechercher Un Etudiant\n");

                 printf("3- Modifier Un Etudiant\n");

                 printf("4- Afficher tout les Etudiants");

                 printf("5- Quitter\n\n");

                 do{

                    printf("\n -Entrez Votre Choix:");

                    scanf("%d",&Choix)

                 }

            }while(Choix<1 || Choix>5);

            switch(Choix){

                case 1: AjouterEtudiant();

                break;

                case 2: Recherche();

                break;

                case 3: ModifierEtudiant();

                break;

                case 4: AfficherTt();

                break;

                case 5: break;

            }

            printf("\n Voulez-vous continuer O/N");

            scanf("%s",&rep);

            fflush(stdin);

        }

        while(rep=='o' || rep=='O');

    }

    • Partager sur Facebook
    • Partager sur Twitter
      Staff 25 juin 2019 à 1:18:06

      Bonjour,

      Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

      Pour plus d'informations, nous vous invitons à lire les règles générales du forum

      Merci de colorer votre code à l'aide du bouton Code

      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: cpp;">Votre code ici</pre>.

      Majuscules abusives

      L'écriture en majuscules est considérée comme une parole criée et diminue autant la lisibilité du texte que sa compréhension. Les majuscules abusives sont donc interdites aussi bien dans les titres que dans les messages.

      • Partager sur Facebook
      • Partager sur Twitter
        25 juin 2019 à 11:26:42

        relis toi :
        struct Etudiant
        ou
        struct Etidiant
        • Partager sur Facebook
        • Partager sur Twitter

        LES STRUCTURE EN C

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        • Editeur
        • Markdown