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 :

Mini projet


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Qatar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 489
    Par défaut Mini projet
    Bonjour,

    J'ai un projet à réaliser qui parait assez simple à faire et dans le quel il faut utiliser les listes.

    J'ai déjà fais les fonctions principales mais à l'execution ça marche pas...

    Je vais vous faire part du projet ainsi que de mon code actuel si vous voulez bien m'aider !

  2. #2
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Qatar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 489
    Par défaut
    Ce qui est demandé ==

    Objectif:


    Ce mini projet a pour but de développer une application en C organisée de la manière suivante :

    -Une interface qui met à disposition de l'utilisateur un menu pour accéder aux différentes tâches que permet de réaliser l'application :

    * Consulter un client,
    * ajouter un client,
    * supprimer un client,
    * .....


    -Le client sera principalement présenté par :
    le nom,prénom,tel,type(fidèle,régulier,saisonnier,occasionnel)

    -Une bibliothèque qui regroupe toutes les fonctions conçues pour réaliser les différentes opérations élémentaires.

    -Un fichier principal.

    Contraintes:

    -Il sera tenu compte de la qualité de la présentation, de l'organisation du travail et de son originalité.
    -Un rapport contenant le programme principal et les prototypes des fonctions accompagné d'une description concises doit être rendu.

    Pour mon code au quel je suis arriver depuis hier soir est le suivant ==
    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
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
     
    int c,k,tel,t,e,i;
    float h;
    char nom,prenom,type,n,p;
     
    // LES PROTOTYPES
     
    typedef struct client
    {
            char nom,prenom,type;
            int tel;
            struct client *suivant;
     
    }t_client;
     
    t_client *estvide(t_client *c);
    t_client *ajouter_client(t_client *c,char nom,char prenom,int tel);
    t_client *kiem(t_client *c,int k);
    t_client *saisie(t_client *c,char nom,char prenom,int tel);
    t_client *sup_client(t_client *c,int k);
    void typec(t_client *c,float h);
    void afficher(t_client *c);
     
     
    main()
    {
          t_client *cl;
          cl=estvide(cl);
          cl=(t_client *)malloc(sizeof(t_client));
          cl=saisie(cl,nom,prenom,tel);
          afficher(cl);
          cl=sup_client(cl,k);
          typec(cl,h);
          system("pause");
    }
     
    // DEFINITION DES FONCTIONS
     
     
    t_client *estvide(t_client* c)
    {
             return c=NULL;
    }
     
    t_client *ajouter_client(t_client *c,char nom,char prenom,int tel)
    {
         int e,i,t;
         char n,m;
         t_client *tmp;
         tmp=NULL;
     
           tmp=malloc(sizeof(t_client));
           tmp->nom=n;
           tmp->prenom=p;
           tmp->tel=t;
           tmp->suivant=c;
           return tmp;
    }
     
     
    t_client *saisie(t_client *c,char nom,char prenom,int tel)
    {
     
             printf("\n\nEntrez le nbr de clients a ajouter:");
             scanf("%d",&e);
             if(e<=0)
             {
                     printf("Aucun client a ajouter\n");
             }
             else
             {
          for(i=0;i<e;i++)
          {
          printf("\n\n\tCLIENT N%d\n\n",i+1);
          printf("\nEntrez le nom du client N%d:",i+1);
          scanf("%s",&nom);
          printf("\nEntrez le prenom du client N%d:",i+1);
          scanf("%s",&prenom);
          printf("\nEntrez le N de tel du client N%d:",i+1);
          scanf("%d",&tel);
          }
          }
          return(c,nom,prenom,tel);
    }
     
     
    t_client *kiem(t_client *c,int k)
    {
             int p=1;
             t_client *tmp;
             tmp=c;
             while(p<k)
             {
                       tmp=tmp->suivant;
                       p++;
             }
             return tmp;
    }
     
    t_client *sup_client(t_client *c,int k)
    {
             kiem(c,k-1)->suivant=kiem(c,k)->suivant;
             return c;
    }
     
    void typec(t_client *c, float h)
    {
         printf("Entrez le prix total des achats du client:\n");
         scanf("%f",&h);
         if(h<100)
         {
                  printf("\nCLIENT OCCASIONNEL\n");
         }
         else if(h>100 && h<500)
         {
              printf("\nCLIENT SAISONNIER\n");
         }
         else if(h<1000 && h>500)
         {
              printf("\nCLIENT REGULIER\n");
         }
         else
         printf("\nCLIENT FIDEL\n");
    }
     
    void afficher(t_client *c)
    {
         t_client *temp;
         temp=c;
     
         printf(" \n\n ");
         if(estvide(temp))
         printf("La liste est vide.");
         else
         {
             while(temp!=NULL)
             {
                              printf("\nLe Nom:  %s",temp->nom);
                              printf("\nLe prenom:  %s",temp->prenom);
                              printf("\nN de tel:  %d",temp->tel);
                              temp=temp->suivant;
             }
         }
    }

  3. #3
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Qu'est-ce qui ne marche pas exactement? Obtiens-tu un message d'erreur, une erreur de segmentation, etc.?

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  4. #4
    Membre chevronné Avatar de corentin59
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 462
    Par défaut
    la crainte que j'avais quand j'ai lu la définition de ta structure s'avère vraie quand je lis le reste de tes fonctions : pour le nom, prénom, ... il faut un tableau de caractères, et non un seul caractère !!!

  5. #5
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Qatar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 489
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    Voilà pour les char c'est bon.

    Mon problème pour l'instant c'est quand je donner par exemple 2 clients à ajouter (vs pouvez essayer) il me donner entrez le nom puis entrez le prenom juste après donc pas l'occasion de saisir le nom.

    Après pour afficher il n'affiche qu'un seul client !

    Enfin executez le et vous verrez bien...

  6. #6
    Membre chevronné Avatar de corentin59
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 462
    Par défaut
    1) après un scanf, il faut vider le buffer. tu peux ajouter cette ligne après chaque scanf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(getchar()!='\n'); // pour vider le buffer
    2) dans ta fonction saisie, il faut faire appel à la fonction ajouter_client juste après avoir lu les données, ie dans la boucle for, sinon, tu demandes plusieurs fois le nom, prénom, ..., tu écrases à chaque fois la demande précédente, et tu ne crées un client qu'une fois.

    3) tes fonctions vider et estvide ne servent à rien, ce n'est pas comme cela que l'on gère des listes chainées !!

    4) éviter les variables globales

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment organiser un mini projet en C
    Par leCcsympas dans le forum C
    Réponses: 8
    Dernier message: 11/12/2006, 20h13
  2. mini projet en JSF
    Par solawe dans le forum JSF
    Réponses: 6
    Dernier message: 17/11/2006, 00h53
  3. [Projet] Idée de mini-projet?
    Par Arnaud F. dans le forum Général Java
    Réponses: 15
    Dernier message: 24/05/2006, 06h11
  4. [2D] Mini-projet : question pour une interface graphique
    Par kitsune dans le forum Développement 2D, 3D et Jeux
    Réponses: 15
    Dernier message: 10/03/2006, 14h59
  5. [Socket][mini-projet] Quelques questions
    Par Baptiste Wicht dans le forum Entrée/Sortie
    Réponses: 22
    Dernier message: 22/12/2005, 17h16

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