bonjour ceci est un programme de parking, il permet de faire entrer les voiture dans le paking, quand le parking est rempli , il y a une liste d`attente qui est etabli, et le programme permet de faire partir des voites de la liste d`attente egalement...mon probleme c`est que juste apres avoir enlever une voiture dans la liste d`attente le programme ne continue plus et je n`arrive pas a comprendre pourquoi....j`esperes que cette foici j`ai bien represente le rpogramme "indulation"...
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
 
ceci est le contenu du fichier a lire:
a 2
a 3
a 4
a 5
a 6
a 7
d 4
d 6
d 2
a 8
a 10
a 12
a 132
a 324
a 342
d 5
d 132
a 21
a 38
a 4
d 10
a 99
a 55
a 15
a 30
a 40
d 30
d 12
d 7
a 70
a 80
d 38
d 324
d 342
ce ci est le programme
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <malloc.h>
struct nodetype
{
 int no;
 struct nodetype *prev, *next;
};
 
typedefstruct nodetype node;
int qempty(node*);
node* qinsert(node*, node*, int);
void showq(node*);
node* qremove(node*, int*);
void main(void);

int qempty(node* qfront)
  {
return (qfront == NULL);
  }
 
node* qinsert(node* qfront, node* qrear, int x)
  {
    node *p;
    p = new(node);
    p->no = x; 
    p->next = NULL;
if (qfront == NULL)
    p->prev = NULL;
else
    {
          qrear->next = p;
          p->prev = qrear;
        }
return (p); 
  }

void showq(node* qfront)
  {
      node *p;
      p = qfront;
  while (p != NULL)
          {
            printf("%d ", p->no);
            p = p->next;
          }
     printf("\n");
  }
 
node* qremove(node* qfront, int* x)
 {
    node *p;
if (!qempty(qfront))
         {
           p = qfront;
          *x = p->no;
           qfront = qfront->next;
       if (qfront != NULL) qfront->prev = NULL;
           free (p);
         }
 return (qfront); 
 }
 
void main(void)
 {
char code;
   node *qfront=NULL, *qrear=NULL;
   node *waitqfront=NULL, *waitqrear=NULL;
int dataIn;
int no=0;
int max=0;
   FILE *ifile;
 
   ifile=fopen("H:\\CIS211\\TLU\\GARAGEBONUS.TXT", "r");
 
while (fscanf(ifile, " %c %d", &code,&dataIn) != EOF)
   {
     printf("%c %d\n",code,dataIn);
 if (code == 'a')
      {
   if(max<10)
          {
 
            printf("Car %d entered the parking garage.\n",dataIn);
            qrear = qinsert(qfront,qrear,dataIn);
        if(qfront == NULL) qfront = qrear;
            max++;
            showq(qfront);
        if (!qempty(waitqfront))
               {
                 printf("Waiting queue: ");
                 showq(waitqfront);
               }
 
          }
  else
     {
          waitqrear=qinsert(waitqfront, waitqrear, dataIn);
      if(waitqfront == NULL) waitqfront = waitqrear;
          showq(qfront);
          printf("Waiting queue: ");
          showq(waitqfront); 
        }
      }
  else
     {
       if (code == 'd')
              { 
            if(!qempty(qfront))
                  {
 
                while (qfront->no != dataIn)
                     {
                        qfront = qremove(qfront,&no);
                     if(qfront == NULL) qrear = NULL;
                         qrear = qinsert(qfront,qrear,no);
 
                      }
                     printf("Car %d left the parking garage.\n",qfront->no);
                     qfront = qremove(qfront,&no);
                     max--;
                 if (!qempty(waitqfront))
                        {
                          waitqfront=qremove(waitqfront,&no);
                          qrear=qinsert(qfront, qrear, no);
                          max++; 
                        }
                        showq(qfront);
                    if (!qempty(waitqfront))
                          {
                            printf("Waiting queue: ");
                            showq(waitqfront);
                          } 
                 } 
              }
         }
getch();
   }
 fclose(ifile); 
 getch(); 
 }
merci de votre aide...
SMALTO....