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 :

programme de gestion


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut programme de gestion
    Bonsoir
    J'ai codé en C un programme de gestion simple d'un réseau de communication
    la compilation a réussi mais il parait qu'il y a des problèmes au niveaux de l’exécution
    voila le 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
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <string.h>
     
     
     
    struct ports_physiques
    {
        int nbr_ports;
        int ports[10];
    };
     
    struct adresse_ip
    {
        char ip[20];
    };
     
    struct interfaces
    {
        int nbr_interfaces;
        struct adresse_ip adr_ip[10];
    };
     
    struct noeud
    {
        char libelle[10];
        struct ports_physiques ports_phy;
        struct interfaces inter;
        char protocole[10];
    };
     
    void ajouter_noeud (struct noeud *n)
    {   int i;
        printf("donner le libelle \n");
        gets(n->libelle);
        printf("donner le nombre des ports physiques \n");
        scanf("%d",&n->ports_phy.nbr_ports);
        printf("donner l'ensemble des ports physiques \n");
        for (i=0;i<=n->ports_phy.nbr_ports-1;i++)
            scanf("%d",&n->ports_phy.ports[i]);
        printf("donner le nombre des interfaces \n");
        scanf("%d",&n->inter.nbr_interfaces);
        printf("donner les adresses ip correspendantes \n");
        for (i=0;i<=n->inter.nbr_interfaces;i++)
            gets(n->inter.adr_ip[i].ip);
        printf("donner le protocole de routage \n");
        gets(n->protocole);
    }
     
    void afficher_noeud (struct noeud n)
    {   int i;
        printf(" le libelle \n");
        printf("%s \n",n.libelle);
        printf(" le nombre des ports physiques \n");
        printf("%d \n",n.ports_phy.nbr_ports);
        printf(" l'ensemble des ports physiques \n");
        for (i=0;i<=n.ports_phy.nbr_ports-1;i++)
            printf("%d \n",n.ports_phy.ports[i]);
        printf(" le nombre des interfaces \n");
        printf("%d \n",n.inter.nbr_interfaces);
        printf(" les adresses ip correspendantes \n");
        for (i=1;i<=n.inter.nbr_interfaces;i++)
            printf("%s \n",n.inter.adr_ip[i].ip);
        printf(" le protocole de routage \n");
        printf("%s \n",n.protocole);
    }
     
    void modifier_noeud (struct noeud *n)
    {
        int supprimer,modifier,x,i;
        printf("choisir l'operation a faire \n");
        printf("taper 1 pour ajouter une interface \n");
        printf("taper 2 pour supprimer une interface \n");
        printf("taper 3 pour modifier les interfaces presentes \n");
        scanf("%d",&x);
    switch (x)
        {   case 1 : {
                printf("donner l'adresse ip correspendante \n");
                scanf("%s",&n->inter.adr_ip[n->inter.nbr_interfaces+1].ip);
                n->inter.nbr_interfaces++;
                break;
                    }
            case 2 : {
                     printf("quelle interface voulez vous supprimer ? \n");
                     for (i=1;i<=n->inter.nbr_interfaces;i++)
                     {
                         printf("%d \n",i);
                         printf("%s \n",&n->inter.adr_ip[i].ip);
                     }
                         scanf("%d",&supprimer);
                  for (i=supprimer;i<=n->inter.nbr_interfaces;i++)
                  strcpy(&n->inter.adr_ip[i].ip,&n->inter.adr_ip[i+1].ip);
                  n->inter.nbr_interfaces--;
                     break;
                     }
            case 3 : { printf("quelle interface voulez vous modifier ? \n");
                       for (i=1;i<=n->inter.nbr_interfaces;i++)
                        {
                         printf("%d \n",i);
                         printf("%s \n",&n->inter.adr_ip[i].ip);
                        }
                       scanf("%d",&modifier);
                       printf("taper la nouvelle adresse ip \n");
                       scanf("%s",&n->inter.adr_ip[modifier].ip);
                     }
            default :
     
                printf("error \n");
        }
    }
     
     
    struct noeud n;
     
    typedef struct noeud tab[10];
    tab t;
    int choix,i,k=0,s,m,er;
     
    void main()
    { char li[10];
        printf("il existe \n");
        printf("%d \n",k);
        printf("noeud(s) \n");
        printf("indiquer l'operation souhaitee \n");
        printf("1 pour ajouter un noeud \n");
        printf("2 pour supprimer un noeud \n");
        printf("3 pour chercher un noeud \n");
        printf("4 pour modifier la configuration des interfaces d'un noeud \n");
        scanf("%d",&choix);
        switch (choix)
        {
            case 1 : {
                      ajouter_noeud(&t[k]);
                      k++;
                      main();
                      break;
                     }
            case 2 :        {
                        printf("quel est le noeud à supprimer \n");
                        for (i=0;i<=k-1;i++)
                        printf("%s",&t[i].libelle);
                        scanf("%d",&s);
                        for (i=s+1;i<=k;i++)
                        t[i+1]=t[i];
                        k--;
                        break;
                         }
            case 4 :      {
                        printf("quel est le noeud à modifier \n");
                        for (i=0;i<=k-1;i++)
                        printf("%s",&t[i].libelle);
                        scanf("%d",&m);
                        modifier_noeud(&t[m]);
                        break;
                          }
            case 3 : {  printf("entrer le libelle du noeud à chercher \n");
                        scanf("%s",&li);
                        for (i=0;i<=k-1;i++)
                        {
                            if (li==&t[i].libelle)
                            {
                             er=i;
                            }
                        }
                        if (er>=0)
                        {
                            printf("le noeud est \n");
                            afficher_noeud(t[er]);
                            }
                        else
                            printf("pas de resultat \n");
                            break;
                            }
             default : printf("choix non valide \n");
        }
    }
    Lors de l'ajout d'un nouveau nœud , il n’accepte pas la saisie du libellé
    Autre chose,je n'arrive pas à faire des saisies avec contrôles pour les éléments des structures (par exemple je veux un nombre d'interfaces réseau ne dépasse pas 10 etc...) il n'exécute pas correctement (je rencontre toujours ce genre de problèmes en travaillant avec les structures)
    et une dernière remarque,je vous demande de me proposer une forme valide d'une adresse IP et la manière favorable de stocker une telle donnée (tableau des chaines comme j'ai fait ou structure etc...)
    Merci d'avance pour vos aides
    cordialement

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Bonjour.

    Histoire de te donner quelques pistes de travail voila le résultat de la compilation de ton 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
    54
    55
    56
    57
    58
    59
    60
    61
     
    main.c: In function ‘ajouter_noeud’:
    main.c:36:5: error: ‘gets’ is deprecated (declared at /usr/include/stdio.h:638) [-Werror=deprecated-declarations]
         gets(n->libelle);
         ^
    main.c:46:9: error: ‘gets’ is deprecated (declared at /usr/include/stdio.h:638) [-Werror=deprecated-declarations]
             gets(n->inter.adr_ip[i].ip);
             ^
    main.c:48:5: error: ‘gets’ is deprecated (declared at /usr/include/stdio.h:638) [-Werror=deprecated-declarations]
         gets(n->protocole);
         ^
    main.c: In function ‘modifier_noeud’:
    main.c:80:13: error: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[20][-Werror=format=]
                 scanf("%s",&n->inter.adr_ip[n->inter.nbr_interfaces+1].ip);
                 ^
    main.c:89:22: error: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[20][-Werror=format=]
                          printf("%s \n",&n->inter.adr_ip[i].ip);
                          ^
    main.c:93:22: error: passing argument 1 of ‘strcpy’ from incompatible pointer type [-Werror]
                   strcpy(&n->inter.adr_ip[i].ip,&n->inter.adr_ip[i+1].ip);
                          ^
    In file included from main.c:4:0:
    /usr/include/string.h:129:14: note: expected ‘char * __restrict__’ but argument is of type ‘char (*)[20]extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
                  ^
    main.c:93:45: error: passing argument 2 of ‘strcpy’ from incompatible pointer type [-Werror]
                   strcpy(&n->inter.adr_ip[i].ip,&n->inter.adr_ip[i+1].ip);
                                                 ^
    In file included from main.c:4:0:
    /usr/include/string.h:129:14: note: expected ‘const char * __restrict__’ but argument is of type ‘char (*)[20]extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
                  ^
    main.c:101:22: error: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[20][-Werror=format=]
                          printf("%s \n",&n->inter.adr_ip[i].ip);
                          ^
    main.c:105:20: error: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[20][-Werror=format=]
                        scanf("%s",&n->inter.adr_ip[modifier].ip);
                        ^
    main.c: At top level:
    main.c:120:6: error: return type of ‘main’ is notint[-Werror=main]
     void main()
          ^
    main.c: In function ‘main’:
    main.c:142:21: error: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[10][-Werror=format=]
                         printf("%s",&t[i].libelle);
                         ^
    main.c:152:21: error: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[10][-Werror=format=]
                         printf("%s",&t[i].libelle);
                         ^
    main.c:158:21: error: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[10][-Werror=format=]
                         scanf("%s",&li);
                         ^
    main.c:161:31: error: comparison of distinct pointer types lacks a cast [-Werror]
                             if (li==&t[i].libelle)
                                   ^
    cc1: all warnings being treated as errors
    Makefile:331: recipe for target 'main.o' failed
    make: *** [main.o] Error 1
    make: Target 'all' not remade because of errors.
     
    Compilation exited abnormally with code 2 at Tue Dec  9 11:56:29
    Une fois que tu auras réglé tous ces petits soucis tu devrais y voir un peu plus clair.

Discussions similaires

  1. Programme de gestion d'heure
    Par krfa1 dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 30/08/2006, 18h43
  2. Recherche d'un programme de gestion de connection
    Par lermit dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 06/07/2006, 10h04
  3. Cherche à faire un programme de gestion pour PC et MAC
    Par morgantip dans le forum Windows
    Réponses: 12
    Dernier message: 23/05/2006, 09h01
  4. Création d'un programme de Gestion / compta : langage ?
    Par Alexino2 dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 11/04/2006, 15h00
  5. Programme de gestion d'image qui permet de tout renommer
    Par snoopy69 dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 07/02/2006, 07h08

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