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 :

Gérer une salle de sport


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2016
    Messages : 6
    Points : 0
    Points
    0
    Par défaut Gérer une salle de sport
    bonjour
    je suis aussi une débutante en programmation , j'ai un mini projet à faire c'est la gestion d'une salle du sport .
    et mtn j'ai une erreur dans mon code j l'ai pas trouvé alors j'ai pas pu le terminer .

    voici mon code

    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
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
     
    #include <iostream>
    #include <conio.h>
    #include <stdlib.h>
    #include<string.h>
     
     
    //declaration de type structure enregistrement
     typedef struct sadherent {
    	char nom[20];
    	char prenom[20];
    	int numtel[10];
    	char spor[20];
    	char code[64];}adherent  ;
     
     
    //procédure remplissage des enregistrement ;on fait l'appel de la fnction a chaque fois qu'un adherent vient de s'inscrire 
    	adherent remplissage (struct sadherent adherent  )
     {int i ;  char c1[20],c2[20]; char nom[20];
      int result=0 ;
     
     
     // declaration string aerobic musculation abdominaux 
    char aerobic[8]; // Tableau de 6 char pour stocker S-a-l-u-t + le \0
     
     
     {printf("donner votre nom  " );
     
    	scanf("%s :",adherent.nom );
     
     
    	printf("votre prenom ? \n");
    	scanf("%s :", adherent.prenom);
     
     
     
    	printf("donner votre numero telephone \n");
    	fflush(stdin);
    	scanf("%d :",& adherent.numtel);
     
     
    	printf("quel est le sport que vous avez choisi? : aerobic,appareils,musculation ou abdominaux  \n");
    	fflush(stdin);
    	scanf("%s :",adherent.spor);
    	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     
    		char s1[64];
    	char s2[64];
     
    	int resultat = 0;
     
    	printf ("Veuillez entrer votre code: \n ");
    	scanf ("%s :", s1);
    	fflush(stdin);
     
    	printf ("retaper le code  : ");
    	scanf ("%s :", s2);
    	fflush(stdin);
     
    	resultat = strcmp(s1, s2);
     
    	if (resultat != 0) 
    		printf ("%s ne sont pas identiques  %s\n", s1, s2);
    	else if (resultat == 0)
    		printf ("%s codes indentiques  %s\n", s1, s2);
     
     
     
     
     
     
     
     
    	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    	// si les codes secret tapés la 1ere fois est different de 2eme fois il demande de retaper  jusqu'a que les deux codes sont égaux 
     
        // affichage de formulaire après le remplissage
     
    	 printf("..........................formulaire............................ \n");
        printf("nom %c : \n ",adherent.nom );
        printf("prénom : \n",adherent.prenom);
        printf("numéro de telephone : \n",adherent.numtel);
        printf("sport choisi : \n",adherent.spor);
        printf("code secret \n",adherent.code );} 
     
     
     
     
     }
     
     
     
     
     
     
    int main(int argc, char* argv[])
    {
    int choice;
    adherent  sportif ;
     
     
     
     
     
    //afficher une interface Menu pour l'utilisateur
    do
    {
     printf("............................Menu.....................................\n\n");
     printf("1...........................Les sports............................... \n");
     printf("2...........................les appareils disponnibles............... \n");
     printf("3...........................les moniteurs............................ \n");
     printf("4...........................nos conseils............................. \n");
     printf("5...........................joignez nous............................. \n");
     printf("6...........................prix .................................... \n");
     printf("7...........................Renseigner sur votre compte.............. \n");
     printf("8...........................supprimer votre compte................... \n");
     printf("9...........................contacter nous .......................... \n");
     printf("10..........................sortir .................................. \n");
     
     scanf("%d",&choice);
     
     //choisir le service selon le choix d'utilisateur 
     
      switch (choice)
     {
         case 1: {printf("Aerobic  -------------> salle 1 et 2 \n");
             printf("musculation   -------------> salle 3 et 4 \n");
             printf("la zumba     -------------> salle 5 \n");
             printf("squatte et abdo------------> salle 6 \n");
    		break;
    	 }
     
              break;
         case 2: {printf("velo electrique  ------------------------------------->salle 8 \n");
             printf("tapis                 ------------------------------------->salle 10 \n");
             printf("abdominaux            ------------------------------------->disponnible dans toutes les salles \n");
             printf("machine de musculation-------------------------------------> salle 6 \n");
    	 }
              break;
         case 3: {printf("Mr Steven ......... Professeur de fitness \n");
            printf("Miss Tebib      ......... Coach spécialisée \n");
    	    printf("Miss Rabai      ......... ancienne entraineur de rugby \n");
    	    printf("Miss Cha        ......... diétiticienne \n ");
    		}
             break;
         case 4: {printf("avoir une alimentation variée et équilibrée \n");
             printf("Prendre ,au moins , 7 min d échauffement \n");
             printf("N'oublier pas de s'hydrater bien ''\n");
    	 } 
             break ;
     
     
    	  case 5: { printf("remplir le formulaire suivant ",remplissage(sportif ));
     
    	 } 
             break ;  
     
           case 6: {printf("\n");
    	 } 
             break ;  
     
           case 7: {printf("\n");
    	 } 
             break ;   
     
           case 8: {printf("\n");
    	 } 
             break ;  
     
           case 9: {printf("Notre email : salle_sport@live.fr \n");
                    printf("disponnible a tous moment ;) \n \n ");
    	 } 
             break ;
     
    	   case 10: {printf(" good bye (cliquer n'importe bouton)\n");
    	            getchar() ;
    	 } 
             break  ;
         default: printf("Wrong Choice. Enter again\n");
                        break;
     } 
     
    } while (choice != 10);  
    return 0 ;
     
    }


    le problème au niveau de ça

    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
     
    		char s1[64];
    	char s2[64];
     
    	int resultat = 0;
     
    	printf ("Veuillez entrer votre code: \n ");
    	scanf ("%s :", s1);
    	fflush(stdin);
     
    	printf ("retaper le code  : ");
    	scanf ("%s :", s2);
    	fflush(stdin);
     
    	resultat = strcmp(s1, s2);
     
    	if (resultat != 0) 
    		printf ("%s ne sont pas identiques  %s\n", s1, s2);
    	else if (resultat == 0)
     
    	{printf ("%s codes indentiques  %s\n", s1, s2);
     
    		adherent.code = s1 ;
    	}

    Merci d'avance

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Outre divers problèmes de style (une indentation cohérente rend le code plus lisible pour tout le monde), on ne peut corriger un problème que si on sait ce que c'est.
    Est-ce un problème de compilation, d'édition des liens ou à l'exécution?

    Dans les trois cas, quel est le symptôme?
    Quel est le message d'erreur complet, et comment le lis-tu?
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 17
    Points : 26
    Points
    26
    Par défaut
    Certaines erreurs sont assez faciles à trouver notamment au niveau de ton utilisation de la fonction printf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     printf("prénom : \n",adherent.prenom);
        printf("numéro de telephone : \n",adherent.numtel);
        printf("sport choisi : \n",adherent.spor);
        printf("code secret \n",adherent.code );}
    Tu indiques une variable à afficher mais tu oublies de l'indiquer dans la zone d'affichage. Par exemple %s pour un char *.
    printf("affiche moi ma phrase : %s\n", maphrase);


    Un conseil, lorsque tu rencontres un problème et que tu veux le soumettre ici, recopies ton code plutôt que de faire un copier/coller, ça aide à trouver certaines erreurs parfois. Et je sais de quoi je parle.

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2016
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par ternel Voir le message
    Outre divers problèmes de style (une indentation cohérente rend le code plus lisible pour tout le monde), on ne peut corriger un problème que si on sait ce que c'est.
    Est-ce un problème de compilation, d'édition des liens ou à l'exécution?

    Dans les trois cas, quel est le symptôme?
    Quel est le message d'erreur complet, et comment le lis-tu?
    Merci de me repondre , lors de la compilation il affiche cette liste d'erreur
    Nom : iciiii.PNG
Affichages : 284
Taille : 14,5 Ko
    ps: je voulais faire une affectation de s1 (chaine de caractère) à un champs de structure qui s'appelle "adherent"

    si vous pouvez m'expliquer qu'est ce qu'il veut dire ce msg d'erreur
    merci d'avance .

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2016
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Personne.c Voir le message
    Certaines erreurs sont assez faciles à trouver notamment au niveau de ton utilisation de la fonction printf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     printf("prénom : \n",adherent.prenom);
        printf("numéro de telephone : \n",adherent.numtel);
        printf("sport choisi : \n",adherent.spor);
        printf("code secret \n",adherent.code );}
    Tu indiques une variable à afficher mais tu oublies de l'indiquer dans la zone d'affichage. Par exemple %s pour un char *.
    printf("affiche moi ma phrase : %s\n", maphrase);


    Un conseil, lorsque tu rencontres un problème et que tu veux le soumettre ici, recopies ton code plutôt que de faire un copier/coller, ça aide à trouver certaines erreurs parfois. Et je sais de quoi je parle.
    Merci de me répondre ; j'ai réglé le problème de printf et j'ai pris vos conseils en considération .
    Merci encore une fois .

  6. #6
    Membre confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2015
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 294
    Points : 558
    Points
    558
    Par défaut
    Bonjour, quand tu veux affecter une chaine de caracteres à une autre en C, il faut utiliser la fonction strcpy (et non pas le =)

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2016
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par stephane78l Voir le message
    Bonjour, quand tu veux affecter une chaine de caracteres à une autre en C, il faut utiliser la fonction strcpy (et non pas le =)
    Merci Stephan de me répondre ;c'est réglé il me reste juste le problème de la déclaration d'une chaîne de caractère comme un champ de structure
    je l'ai fait sous la forme de tableau de caractère mais je me trouve pas lors de l'affichage ;elle me renvoie des caractères bizarres

  8. #8
    Membre confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2015
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 294
    Points : 558
    Points
    558
    Par défaut
    ce n'est pas tres judicieux d'avoir appelé l'argument de ta fonction remplissage, adherent, alors que tu as declaré avec un typedef adherent comme etant un type, plus haut.

    fait plutot cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    adherent remplissage (struct sadherent adh){....}
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    adherent remplissage (adherent adh){....}
    avec adh par exemple comme argument, et reporte la modification à l'interieur de ta fonction remplissage bien sur aussi.

  9. #9
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2016
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par stephane78l Voir le message
    ce n'est pas tres judicieux d'avoir appelé l'argument de ta fonction remplissage, adherent, alors que tu as declaré avec un typedef adherent comme etant un type, plus haut.

    fait plutot cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    adherent remplissage (struct sadherent adh){....}
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    adherent remplissage (adherent adh){....}
    avec adh par exemple comme argument, et reporte la modification à l'interieur de ta fonction remplissage bien sur aussi.

    Merci pour l'astuce .
    il me reste un seul pb
    c'est quand je demande l'affichage d'un champ de structure adherent : printf("%d",&adherent.numtel) ;
    il m'affiche un numéro bizarre et c le meme cas si j’enlève "&" .

  10. #10
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    le format identifier "%d" va afficher un entier, or tu lui files un pointeur.
    Du coup il t'affiche l'adresse mémoire vers laquelle il pointe.

    edit : j'avais pas tout lu, petite précision : l'opérateur & va fournir l'adresse où est enregistrée ta variable, c'est plutôt un * que tu voulais utiliser, nop ? Ça t'aurais donné la valeur enregistrée à l'adresse du pointeur, soit la valeur du premier entier de ton tableau.

    Bon dev.
    Plus je connais de langages, plus j'aime le C.

  11. #11
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2016
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    Salut,

    le format identifier "%d" va afficher un entier, or tu lui files un pointeur.
    Du coup il t'affiche l'adresse mémoire vers laquelle il pointe.

    edit : j'avais pas tout lu, petite précision : l'opérateur & va fournir l'adresse où est enregistrée ta variable, c'est plutôt un * que tu voulais utiliser, nop ? Ça t'aurais donné la valeur enregistrée à l'adresse du pointeur, soit la valeur du premier entier de ton tableau.

    Bon dev.
    même avec le pointeur il m'affiche la même chose

    voila comment j'ai utilisé le pointeur p (ps : je sais pas si la syntaxe est correcte )

    Nom : 1.PNG
Affichages : 215
Taille : 3,6 Ko

    Nom : 11.PNG
Affichages : 206
Taille : 1,5 Ko

    Nom : 111.PNG
Affichages : 179
Taille : 2,0 Ko

  12. #12
    Membre confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2015
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 294
    Points : 558
    Points
    558
    Par défaut
    comme je t'ai dit precedemment ton type s'appelle adherent (a cause de ton typedef ) alors n'appelle pas la variable de ce type aussi adherent,appelle là adherent1 ou adherenta ou adh ou ce que tu veux mais pas adherent car adherent est un type.
    de plus ton numero de telephone je l'aurais mis dans un si ton numero a 10 chiffres et tu le rentres comme chaine de caracteres avec scanf dans remplissage et tu l'affiches avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("numero de tel : %s \n", adh.numtel);
    si adherent adh est l'argument de ta fonction affichage (apparemment c'est aussi remplissage)....

  13. #13
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Je ne parlais pas de déréférencer ton instance de struct, mais son tableau de int.
    Quoiqu'il en soit stephane78l a raison sur le format choisi, un int[10] n'est pas des plus judicieux.
    C'est overkill en taille (tu veux 10 chiffres, et pas 10 nombres) et une null terminated string sera plus simple à manipuler.
    Plus je connais de langages, plus j'aime le C.

Discussions similaires

  1. [AC-2013] Conception d'une base de données dans le cadre d'une salle de sport
    Par h4cktaas dans le forum Modélisation
    Réponses: 5
    Dernier message: 14/10/2014, 13h36
  2. [MLD] Gestion de la facturation d'une salle de sport
    Par pazogueye dans le forum Schéma
    Réponses: 0
    Dernier message: 25/04/2011, 16h49
  3. [MCD]Demande de correction Gestion d'une salle de sport
    Par AmineSQL dans le forum Schéma
    Réponses: 1
    Dernier message: 09/05/2008, 22h44
  4. Gérer une barre d'outils
    Par Jean Claude BOULET dans le forum Access
    Réponses: 2
    Dernier message: 07/10/2004, 22h54
  5. [ODBC][WINDOWS] gérer une base via ODBC
    Par narmataru dans le forum Windows
    Réponses: 2
    Dernier message: 19/12/2003, 13h36

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