Salut tout le monde, donc voila après deux jours, j'ai une soutenance de mon projet (Gestion d'un cabinet médical), ce qui est demander c'est de créer des rendez-vous, avoir la possibilité de les modifier, les supprimer...ben j'arrive a faire tout ça, puis je dois gérer la salle d'attente qui est une liste simplement chaînée comme la liste des rendez- vous.

donc afin de gérer cette liste qui dois contenir que les rendez-vous de la même journée, j'ai créer une fonction qui parcours la première liste des rendez-vous et qui cherche que les rendez-vous qui sont dans la mime journée (le 15 par exemple), chaque rendez-vous trouver on le met dans la liste de la salle d'attente qui est vide au départ.....

Mon problème c'est que tout ce traitement marche pas à 100%, au lieu d'avoir une liste qui contient tout les rendez-vous de la même journée je me retrouve avec un seul, le premier de la liste des rendez-vous. Ma fonction donc prend le premier rendez-vous du 15 qu'elle rencontre et c'est tout.

J’espère que j'ai bien expliquer mon problème.
Merci d'avance.

Voila le code qui contient que la partie qui marche pas, c'est à dire la fonction (ajoutt) et la partie main, ben il y'a aussi la fonction pour créer les rendez-vous. Par exemple je crée 3 rendez-vous, un quelconque et les autres deux dont le jour==15, donc je dois trouver dans ma liste (listsalle) les deux rendez du 15, chose que je trouve pas.
N.B pour la saisie de la date: jour(espace)mois(espace)année

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
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
 
typedef struct date
{
    int jour;
    int mois;
    int annee;
}dte;
 
typedef struct heure
{
    int heur;
    int minutes;
}H;
 
typedef struct patient
{
    char nom[10];
    char prenom[10];
    char tel[10];
    int numpatient;
    char maladie[20];
    char traitement[10];
    dte date;
    H heure;
    struct patient *next;
}patient;
 
void remplir (patient *pe)
{
     patient *p1;
     p1=pe;
     printf("Nom: ");
     scanf("%s",&p1->nom);
     printf("Prenom: ");
     scanf("%s",&p1->prenom);
     printf("Telephone: ");
     scanf("%s",&p1->tel);
     printf("Numero-patient: ");
     scanf("%d",&p1->numpatient);
     printf("Maladie: ");
     scanf("%s",&p1->maladie);
     printf("Traitement: ");
     scanf("%s",&p1->traitement);
     printf("Date: ");
     do
     {
     scanf("%d %d %d",&p1->date.jour,&p1->date.mois,&p1->date.annee);
     }while(p1->date.jour<=0 || p1->date.jour>31 || p1->date.mois<=0 || p1->date.mois>12 || p1->date.annee<=0);
     printf("Heure: ");
     do
     {
     scanf("%d %d",&p1->heure.heur,&p1->heure.minutes);
     }while(p1->heure.heur<=0 || p1->heure.heur>23 || p1->heure.minutes<0 || p1->heure.minutes>59);
}
 
void affichage (patient *pp,int a)
{
    printf("Rendez-vous %d: \n\n",a);
    printf(" Nom: %s\n",pp->nom);
    printf(" Prenom: %s\n",pp->prenom);
    printf(" Telephone: %s\n",pp->tel);
    printf(" Numpatient: %d\n",pp->numpatient);
    printf("Maladie: %s\n",pp->maladie);
    printf("Traitement: %s\n",pp->traitement);
    printf(" Date: %d/%d/%d\n",pp->date.jour,pp->date.mois,pp->date.annee);
    printf(" Heure: %dh:%dmin\n",pp->heure.heur,pp->heure.minutes);
}
patient *ajoutRDV(patient *pp)
{
    patient *ps,*pa;
    ps=malloc(sizeof(patient));
    remplir(ps);
    ps->next=NULL;
    if(pp!=NULL)
    {
        pa=pp;
        while(pa->next!=NULL)
        {
            pa=pa->next;
        }
        pa->next=ps;
    }
    else
    {
        pp=ps;
    }
      return(pp);
}
 
 
patient *ajoutt(patient *liste,patient *pa)
{
    patient *p,*ps,*aide,*elmajouter;
    if(pa==NULL)
    {
        return(NULL);
    }
    else
        {
            p=pa;
            while(p!=NULL)
            {
                if(p->date.jour==15)
                {
                    aide=p;
                    if(liste==NULL)
                    {
 
                        elmajouter=malloc(sizeof(patient));
                        elmajouter=aide;
                        liste=elmajouter;
                        liste->next=NULL;
                    }
                    else
                    {
                        ps=liste;
                        while(ps->next!=NULL)
                        {
                            ps=ps->next;
                        }
                        elmajouter=malloc(sizeof(patient));
                        elmajouter=aide;
                        elmajouter->next=NULL;
                        ps->next=elmajouter;
                    }
                }
                p=p->next;
            }
            return(liste);
        }
}
 
int main()
{
     int ajout,a=1,num;
     patient *pp,*ps,*listsalle;
 
        printf("\n\t\t\t     _______________________________");
        printf("\n\t\t\t    /                              /");
        printf("\n\t\t\t   /          Gestion d'un        / ");
        printf("\n\t\t\t  /             cabinet          /  ");
        printf("\n\t\t\t /              medical         /   ");
        printf("\n\t\t\t/______________________________/\n\n");
        printf("*****MENU*****\n\n");
 
            printf("\n");
            printf("                          ****Prise d'un RDV****\n\n");
 
            pp=NULL;
                do
                {
                    printf("\n");
                    pp=ajoutRDV(pp);
                    printf("\n");
                    printf("Si vous voulez ajouter un autre RDV apuyer sur 1, sinon sur 0: ");
                    scanf("%d",&ajout);
                }while(ajout==1);
 
                    printf("\n");
                    ps=pp;
                while(ps!=NULL)
                {
                    affichage(ps,a);
                    printf("\n");
                    a++;
                    ps=ps->next;
                }
 
 
                 //ps=pp;
                 printf("\n");
                 printf("*****Gestion de la salle d'attente*****\n");
                 printf("\n");
                 printf("Les rendez-vous du 15 janvier: \n");
                 a=1;
                 printf("\n");
                 listsalle=NULL;
 
                 listsalle=ajoutt(listsalle,pp);
 
 
                 while(listsalle!=NULL)
                 {
                    affichage(listsalle,a);
                    listsalle=listsalle->next;
                    a++;
                 }
}