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