Sistema de estacionamiento en pascal






Expliquemos un poco de que se trata, cual es la finalidad de esta aplicación. Consiste en un sistema para un parqueadero donde se deben consultar los lugares vacíos y los lugares ocupados, así como estacionar un vehículo o liberar vehículo. Es algo sencillo sob solo ideas qeu se pueden llevar a proyectos ams grande. y cabe destacar q este fue mi primer parcial de pascal :)

Codigo fuente: 

  1 (*Eduardo luis garcia marrrugo*) 
  2 (*Felix david hernandez aldana*) 
  3  
  4 program parcial; 
  5 uses crt; 
  6  
  7      var estacion: array[1..100] of integer; 
  8          i,opcion,opcion_siclos:integer; 
  9          continuar,cont_siclos,parada: string[2]; 
 10           posx,posy,notificador:byte; 
 11           puesto:byte; 
 12  
 13           (*parada: esta variable me simula el readkey pero evita el fujo del enter*) 
 14 begin 
 15  
 16  
 17        (*incializamos el vecto a posciones vacias las cual leeremos como (0)*) 
 18          for i:=1 to 100 do 
 19          begin 
 20              estacion[i]:=0; 
 21          end; 
 22          repeat (*volber al menu ppal*) 
 23  
 24             repeat (*repetir hasta que se selccione una de las operaciones posibles*) 
 25                 clrscr; 
 26                 gotoxy(20,2);writeln('Sistema de estacionamiento'); 
 27                 gotoxy(3,5);write('Menu'); 
 28                 gotoxy(3,7);write('1) Estacionar'); 
 29                 gotoxy(3,9);write('2) Salida de vehiculo'); 
 30                 gotoxy(3,11);write('3) Consultar lugares disponibles'); 
 31                 gotoxy(3,13);write('4) Consultar lugares ocupados'); 
 32                 gotoxy(3,15);write('5) Salir'); 
 33  
 34                 gotoxy(3,18);write('Elija una opcion: '); 
 35             readln(opcion); 
 36             until((opcion>=1) and (opcion<=5)); 
 37  
 38  
 39  
 40  
 41         case opcion of 
 42  
 43             1: 
 44             begin 
 45  
 46                  repeat 
 47                   repeat  (*nos controla que se seleccion el numero indicado*) 
 48                     clrscr; 
 49                     gotoxy(20,2);write('Estacionar vehiculo'); 
 50                     gotoxy(3,5);write('1) Consultar lugares disponibles'); 
 51                     gotoxy(3,7);write('2) asignar lugar de estacionamiento'); 
 52  
 53                     gotoxy(3,11);write('Escoja una opcion: '); 
 54                     gotoxy(22,11);read(opcion_siclos); 
 55  
 56                   until((opcion_siclos>=1) and (opcion_siclos<=2)); 
 57  
 58                   case opcion_siclos of 
 59                      1: begin 
 60                               clrscr; 
 61                               gotoxy(20,2);write('Puestos Desocupados:'); 
 62                               posx:=3; posy:=5; 
 63  
 64                         for i:=1 to 100 do 
 65                          begin 
 66                                if estacion[i] =0 then 
 67                                begin 
 68                                  gotoxy(posx,posy); write(i); 
 69                                  posx:=posx+3; 
 70                                   if posx>=40 then 
 71                                   begin 
 72                                       posy:=posy +2; 
 73                                       posx:=3; 
 74                                   end; 
 75  
 76                                end; 
 77                          end;(*fin for que reccore el vector estacion*) 
 78  
 79                          posy:=posy +4; 
 80  
 81                          gotoxy(3,posy);write('En que puesto estacionara el vehiculo?: '); 
 82                          gotoxy(43,posy);readln(puesto); 
 83                          (*estacion[puesto]:=1;*)(*le asignamos 1 a los puestos ocupados*) 
 84  
 85                          if estacion[puesto]=0 then 
 86                           begin 
 87                             estacion[puesto]:=1; 
 88                              notificador:=1; 
 89  
 90                           end 
 91                           else 
 92                            begin 
 93                             write(15,20);write('Este puesto esta ocupado'); 
 94                            (* readkey; --------------*) 
 95                             readln(parada); 
 96                            end; 
 97  
 98  
 99  
100                         end;(*fin caso 1: opcion siclos*) 
101  
102  
103                      2: begin 
104  
105                           repeat 
106                           clrscr; 
107                           notificador:=0; 
108                           gotoxy(30,2);write('Estacionar vehiculo'); 
109  
110  
111  
112                          gotoxy(3,4);write('En que puesto estacionara el vehiculo?: '); 
113                          gotoxy(43,4);readln(puesto); 
114  
115                           if estacion[puesto]=0 then 
116                           begin 
117                             estacion[puesto]:=1; 
118                              notificador:=1; 
119  
120                           end 
121                           else 
122                            begin 
123                             write(15,20);write('Este puesto esta ocupado'); 
124                            (* readkey; --------- *) 
125                                readln(parada); 
126                            end; 
127                          posy:=10; 
128  
129  
130  
131                           until (notificador=1); 
132                         end;(*fin caso 2 de opcion siclos*) 
133  
134  
135                 end; (*opcion siclos*) 
136  
137                 posy:=posy+2; 
138                 gotoxy(3,posy);write('Presione cualquier tecla para volver'); 
139                 posy:=posy+1; 
140                 gotoxy(15,posy);write('Al menu de estacionamiento'); 
141                 posy:=posy+1; 
142                 gotoxy(15,posy);write('(n) para caso contrario: '); 
143  
144  
145                 gotoxy(42,posy);readln(cont_siclos); 
146  
147                 until(cont_siclos='n'); 
148  
149              (************ OJO ****) 
150  
151             (* readkey; *) 
152               readln(parada); 
153             end;(*fin caso 1*) 
154  
155        2: begin 
156  
157            clrscr; 
158            gotoxy(20,2);write('Salida de vehiculos'); 
159  
160            gotoxy(3,5);write('Puesto a desocupar: '); 
161            gotoxy(23,5);readln(puesto); 
162  
163            estacion[puesto]:=0; (*no hay que verificar esto no alterara el resultado*) 
164  
165  
166           end;(*fin caso 2 menu ppal*) 
167  
168  
169  
170        3:  begin 
171              clrscr; 
172                gotoxy(20,2);write('Puestos Desocupados:'); 
173                posx:=3; posy:=5; 
174  
175                         for i:=1 to 100 do 
176                          begin 
177                                if estacion[i] =0 then 
178                                begin 
179                                  gotoxy(posx,posy); write(i); 
180                                  posx:=posx+3; 
181                                   if posx>=40 then 
182                                   begin 
183                                       posy:=posy +2; 
184                                       posx:=3; 
185                                   end; 
186  
187                                end; 
188                          end;(*fin for que reccore el vector estacion*) 
189                    (*  readkey;     *) 
190                    readln(parada); 
191          end;(*fin caso 3 menu ppal*) 
192  
193  
194  
195         4:begin 
196                clrscr; 
197                gotoxy(20,2);write('Puestos Ocupados:'); 
198                posx:=3; posy:=5; 
199  
200                         for i:=1 to 100 do 
201                          begin 
202                                if estacion[i] =1 then 
203                                begin 
204                                  gotoxy(posx,posy); write(i); 
205                                  posx:=posx+3; 
206                                   if posx>=40 then 
207                                   begin 
208                                       posy:=posy +2; 
209                                       posx:=3; 
210                                   end; 
211  
212                                end; 
213                          end;(*fin for que reccore el vector estacion*) 
214                     (* readkey; *) 
215                     readln(parada); 
216  
217           end; (*fin caso 4 menu ppal*) 
218  
219         5: begin 
220              exit; (*salgo del procedimiento*) 
221  
222             end; (*fin caso 5*) 
223  
224  
225         end; (*fin del case ppal*) 
226  
227           gotoxy(20,25);write('Presione cualquier tecla para volver al Menu Principal'); 
228           gotoxy(23,27);write('presione (n) en caso contrario: '); 
229           readln(continuar); 
230          until(continuar='n');  (*condiciopn colber al menu ppal*) 
231  
232  
233  
234     readkey; 
235  
236 end.(*fin del bloque principal*)

Bueno eso es todo amigos :) jejeje

No hay comentarios:

Publicar un comentario