Pascal/Turbo Pascal - Ayuda menu de mantenimiento

 
Vista:

Ayuda menu de mantenimiento

Publicado por mileidy (4 intervenciones) el 08/03/2013 03:14:30
Hola, tengo que realizar el siguiente programa pero estoy confundida con algunas sentencias, y no dispongo del tiempo para culminarlo, estoy bloqueada totalmente..el enunciado es el siguiente

Una empresa ha implementado un procedimiento de incentivo al personal de venta,
el cual tiene las siguientes características:
1. A cada vendedor se le asigna un objetivo de ventas y un factor de
bonificación específico de acuerdo a su antigüedad.
2. Los vendedores obtendrán bonificaciones adicionales a su sueldo básico,
siempre y cuando las ventas realizadas superen a las ventas trazadas
como objetivo.
3. Las comisiones de ventas llamadas “COM” se calculan como un múltiplo
del factor de bonificación “FB” de las ventas reales “VR” que excedan las
cuotas, es decir el objetivo de venta llamado “OV”.
4. Al no cumplir con el objetivo de la venta, no se paga bonificación, es decir
si la venta real es menor que el objetivo de venta, automáticamente la
bonificación a pagar es cero.
5. Si la venta real es mayor que el objetivo de venta, se paga bonificación,
por lo tanto: COM = FB * (VR – OV).

Con base en lo planteado, diseñe un algoritmo en pseudocódigo donde se
muestre el uso correcto de las técnicas de programación estructurada o
subprogramas y realice lo siguiente:
�� Presente un menú de mantenimiento con las opciones siguientes: Incluir,
Consultar, Modificar, Eliminar, Reporte y Salida.
�� Registre, con la opción incluir, los siguientes datos:
• Código del Vendedor
• Números de Cédula
• Nombres y Apellidos
• Número de Teléfono
• Dirección
• Sueldo Básico
• Objetivo de Venta (OV)
• Factor Bonificación (FB)
• Venta Real (VR)
�� Ordene el registro vendedor por el número de la cédula.
�� Muestre por pantalla, cuando realice una búsqueda de un vendedor
(femenino o masculino) con un determinado “código del vendedor”, toda la
información relativa a ella o él.
�� Genere por medio de la opción “Reporte” el siguiente diseño:
NOTA: En las alternativas “Modificar, Eliminar y Consultar” haga uso de los
datos registrados con la opción “Incluir”.

** EDITORIAL LA CIENCIA Y SU UNIVERSO**
CODIGO DEL VENDEDOR NOMBRE Y APELLIDO BONIFICACIÓN
999 X-----------------X 9999999 ¡¡ Felicitaciones!!
999 X-----------------X 9999
999 X-----------------X 999
999 X-----------------X 0 ¡¡No cumplió el objetivo!!

�� Calcular de cada vendedor su bonificación y determinar cuál es la mayor
e imprimir un mensaje especial si no se cumple con el objetivo de venta o
cuando esta es superada.



YO TENGO ESTO HECHO........

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
Program Vendedor;
uses
    crt;
 
const
     ubicacion='d:\bp\bin\datos.txt';
type
    datos_personales = record
                       Codigo_Vendedor:integer;
                       numero_cedula: string[8];
                       nombre:string;
                       apellido: string;
                       edad:integer;
                       email:string;
                       numero_telefonico: string[11];
                       numero_celular:string[11];
                       direccion: string;
                       sueldo_basico:string;
                       objetivo_venta:string;
                       factor_bonificacion:string;
                       venta_real:string;
                       arch:TEXT;
    end;
var
   opcion:char;
   info: datos_personales;
   arch: text;
   nombreABuscar: string;
   subNombre: string;
   entro: boolean;
 
Procedure Imprimir;
begin
     reset (arch);
     clrscr;
     while not eof (arch) do
     begin
          with info do
          begin
               readln(arch,nombre);
               readln(arch,apellido);
               readln(arch,edad);
               readln(arch,numero_telefonico);
               readln(arch,numero_cedula);
               readln(arch,direccion);
               readln(arch,email);
               writeln; writeln;
               writeln(nombre,' ',apellido);
               writeln('Tiene ',edad,'a¤os');
               writeln('Tel‚fono: ',numero_telefonico);
               writeln('Celular: ',numero_celular);
               writeln('Direcci¢n: ',direccion);
               writeln('E-mail: ',email);
               writeln;
          end;
     end;
     readkey;
     close (arch);
end;
 
Procedure Ingresar;
begin
     assign(arch,'datos.txt');
     Append(arch);
     begin
          writeln; writeln;
          writeln(arch,'nombre');
          writeln(arch,'apellido');
          writeln(arch,'edad');
          writeln(arch,'numero_telefonico');
          writeln(arch,'numero_celular');
          writeln(arch,'direccion');
          writeln(arch,'email');
          writeln;
     end;
     close(arch);
end;
 
Procedure Buscar;
begin
     reset (arch);
     entro:=false;
     writeln; writeln;
     write('Digite una letra: ');
     nombreABuscar:=readkey;
     clrscr;
     while not eof (arch) do
     begin
          with info do
          begin
               readln(arch,nombre);
               readln(arch,apellido);
               readln(arch,edad);
               readln(arch,numero_telefonico);
               readln(arch,numero_celular);
               readln(arch,direccion);
               readln(arch,email);
               subNombre:=Copy(nombre,1,length(nombreABuscar));
               if(subNombre=nombreABuscar) then
               begin
                    entro:=true;
                    writeln; writeln;
                    writeln(nombre,' ',apellido);
                    writeln('Tiene ',edad,'a¤os');
                    writeln('Tel‚fono: ',numero_telefonico);
                    writeln('Celular: ',numero_celular);
                    writeln('Direcci¢n: ',direccion);
                    writeln('E-mail: ',email);
                    writeln;
               end;
          end;
     end;
     if(not entro) then
     writeln('No se encontraron resultados para esta busqueda');
     readkey;
     close (arch);
end;
 
 
Procedure Inicializar;
begin
     rewrite (arch);
     close(arch);
end;
 
Procedure Seleccion;
begin
     case opcion of
          '1': Ingresar;
          '2': Buscar;
          '3': Imprimir;
          '4': Inicializar;
     end;
end;
 
Procedure Menu;
begin
     clrscr;
     writeln;
     writeln;
     gotoxy(20,4);
     writeln('PERSONAL "Editorial Ciencias e Ideas"');
     writeln;
     writeln;
     gotoxy(25,7);
     writeln('1. Agregar Empleados ');
     gotoxy(25,9);
     writeln('2. Buscar Empleados');
     gotoxy(25,11);
     writeln('3. consultar Empleados');
     gotoxy(25,13);
     writeln('4. Inicializar Lista de Empleados');
     gotoxy(25,15);
     writeln('5. Salir');
     writeln;
     gotoxy(20,19);
     write ('Escoja una opci¢n: ');
     opcion:=readkey;
end;
 
Procedure Ciclo;
begin
     Repeat
           Menu;
           Seleccion;
     Until (opcion='5');
end;
 
Begin
     clrscr;
     assign (arch,ubicacion);
     Ciclo;
End.


Agradezco su ayuda ;)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda menu de mantenimiento

Publicado por ramon (2158 intervenciones) el 08/03/2013 12:22:58
Mira primero disculpa si ofendo en algo pero la estructura del registro esta muy cargada de valores
con lo cual estropeas mucha memoria.
El sistema de manejo de archivos de registros no se realiza de esa forma aunque se pueda
puesto que no es correcto ano ser que solo quieras visualizar todos lor registros pero no
manejar los.
Entonces mi pregunta es quieres que de ponga un ejemplo con tus datos corregidos a como seria
o ami manera de verlo.
Tu me comentaras.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda menu de mantenimiento

Publicado por ramon (2158 intervenciones) el 08/03/2013 13:53:50
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
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
{Mira estos cambios }
{Modifica ubicación a la tulla }
 
Program Vendedor;
 uses
   crt;
 
 const
   ubicacion = 'c:\tp\bin\datos.txt';
   archivo = 'datos.txt';
   num : longint = 0;
type
   datos_personales = record
          Codigo_Vendedor : word;
            numero_cedula : word;
                   nombre : string[50];
                 apellido : string[50];
                     edad : integer;
                    email : string[100];
        numero_telefonico : word;
           numero_celular : word;
                direccion : string[60];
            sueldo_basico : real;
           objetivo_venta : real;
      factor_bonificacion : real;
               venta_real : real;
               end;
    var
        opcion : char;
          info : datos_personales;
          arch : file of datos_personales;
 nombreABuscar : string[50];
     subNombre : string[50];
 abierto, entro : boolean;
 
  procedure abrirarchivo;
  begin
     assign(arch,ubicacion);
  {$I-} reset(arch); {$I+}
  if ioresult <> 0 then
  begin
     abierto := false;
  end
 else
    begin
       abierto := true;
    end;
  end;
 
  Procedure Imprimir(n : longint);
  begin
    clrscr;
    if abierto = true then
    begin
      seek(arch,n);
      read(arch,info);
      with info do
      begin
        writeln; writeln;
        writeln(nombre,' ',apellido);
        writeln('Tiene ',edad,'a¤os');
        writeln('Tel‚fono: ',numero_telefonico);
        writeln('Celular: ',numero_celular);
        writeln('Direcci¢n: ',direccion);
        writeln('E-mail: ',email);
        writeln;
      end;
      readkey;
      close(arch);
    end
  else
      begin
         writeln;
         writeln('****  El Archivo No Abierto Pulse [Enter] ****');
         readln;
         exit;
      end;
   end;
 
  Procedure Ingresar;
  begin
      assign(arch,ubicacion);
    {$I-} reset(arch); {$I+}
    if ioresult <> 0 then
    begin
        rewrite(arch);
        seek(arch,0);
        write(arch,info);
        close(arch);
    end
  else
      begin
        seek(arch,filesize(arch));
        write(arch,info);
        close(arch);
      end;
   end;
 
   function mallusculas(ma : string) : string;
   var
      cn : integer;
   begin
       for cn := 1 to length(ma) do
       mallusculas[cn] := upcase(ma[cn]);
       mallusculas[0] := chr(cn);
   end;
 
   Procedure Buscar;
   var
      cont : longint;
   begin
     clrscr;
     if abierto = true then
     begin
      entro := false;
      writeln;
      write('Digite Nombre : ');
      readln(nombreABuscar);
      nombreABuscar := mallusculas(nombreABuscar);
      clrscr;
      cont := 0;
    repeat
          seek(arch,cont);
          read(arch,info);
          info.nombre := mallusculas(info.nombre);
          if info.nombre = nombreABuscar  then
           begin
             entro := true;
             with info do
             begin
             writeln;
             writeln('******* Los Datos Son *******');
             writeln;
             writeln('Nombre    : ',nombre,' ',apellido);
             writeln('Tiene     : ',edad,'a¤os');
             writeln('Tel‚fono  : ',numero_telefonico);
             writeln('Celular   : ',numero_celular);
             writeln('Direcci¢n : ',direccion);
             writeln('E-mail    : ',email);
             writeln;
             writeln('<<<<<< Pulse Una Tecla >>>>>>');
             readkey;
            end;
         end
      else
         cont := cont + 1;
     until (entro = true) or (cont > filesize(arch) - 1);
     if entro = false then
     begin
       writeln('No se encontraron resultados para esta busqueda');
       readkey;
     end;
       close(arch);
     end
   else
       begin
         writeln;
         writeln('****  El Archivo No Abierto Pulse [Enter] ****');
         readln;
         exit;
       end;
   end;
 
 
    Procedure Inicializar;
    var
      tel : char;
    begin
       clrscr;
       writeln;
       with info do
       begin
       write('   Entre Codigo Vendedor     : ');
       readln(Codigo_Vendedor);
       write('   Entre Num. Cedula         : ');
       readln(numero_cedula);
       write('   Entre Nombre              : ');
       readln(nombre);
       write('   Entre Apellido            : ');
       readln(apellido);
       write('   Entre Edad                : ');
       readln(edad);
       write('   Entre Email               : ');
       readln(email);
       write('   Entre Num. Telefonico     : ');
       readln(numero_telefonico);
       write('   Entre Num. Cedular        : ');
       readln(numero_celular);
       write('   Entre Direccion           : ');
       readln(direccion);
       write('   Entre Sueldo Basico       : ');
       readln(sueldo_basico);
       write('   Entre Objetivo Venta      : ');
       readln(objetivo_venta);
       write('   Entre Factor Bonificacion : ');
       readln(factor_bonificacion);
       write('   Entre Venta Real          : ');
       readln(venta_real);
      end;
      writeln;
      writeln('****** Los Datos Son Correctos [S/N] ******');
      repeat
          tel := readkey;
      until tel in['S','s','N','n'];
      if tel in['S','s'] then
      Ingresar;
    end;
 
     Procedure Seleccion;
     begin
      case opcion of
   '1': Inicializar;
   '2': begin
           abrirarchivo;
           Buscar;
        end;
   '3': begin
           abrirarchivo;
           Imprimir(num);
        end;
   '4': Inicializar;
    end;
  end;
 
   Procedure Menu;
   begin
     clrscr;
     gotoxy(20,4);write('PERSONAL "Editorial Ciencias e Ideas"');
     gotoxy(25,6);write('1. Agregar Empleados ');
     gotoxy(25,8);write('2. Buscar Empleados');
    gotoxy(25,10);write('3. consultar Empleados');
    gotoxy(25,12);write('4. Inicializar Lista de Empleados');
    gotoxy(25,14);write('5. Salir');
    gotoxy(20,16);write('Escoja una opci¢n: ');
    opcion:=readkey;
   end;
 
   Procedure Ciclo;
   begin
      Repeat
      Menu;
      Seleccion;
   Until (opcion = '5');
 end;
 
 Begin
     clrscr;
    assign(arch,ubicacion);
    Ciclo;
  End.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda menu de mantenimiento

Publicado por mileidy (4 intervenciones) el 09/03/2013 03:37:13
Gracias, si realmente esta mejor estructurado, sabes me gstaria me orientaras acerca de donde puedo colocar y como puedo estructurar lo siguiente:

En caso de que la venta seal rea mayor que el objetivo de venta, que es cuando se debe pagar la bonificacion, la profesora me sugiere esta formula: COM=FB x (VR-OV)

donde COM sn las comisiones, FB el factor bonificacion, VR las ventas reales y OV objetivo de venta.

no se donde colocar eso y cmo estructurarlo. ya que debe genrar un reporte con eso y quedar asi en pantalla:

** EDITORIAL LA CIENCIA Y SU UNIVERSO**

CODIGO DEL VENDEDOR NOMBRE Y APELLIDO BONIFICACIÓN
999 X-----------------X 9999999 ¡¡ Felicitaciones!!
999 X-----------------X 9999
999 X-----------------X 999
999 X-----------------X 0¡¡No cumplió el objetivo!!

Agradezco mucho tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda menu de mantenimiento

Publicado por ramon (2158 intervenciones) el 09/03/2013 13:22:46
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
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
{A qui lo tienes como puede ser una forma.
 Un consejo coloca el programa a tus conocimientos pues si esto es mayor o menor a ellos
 podrías tener problemas con la profe suerte.
 
Program Vendedor;
 uses
   crt;
 
 const
   ubicacion = 'c:\tp\bin\datos.txt';
   archivo = 'datos.txt';
   num : longint = 0;
type
   datos_personales = record
           Codigo_Vendedor: word;
            numero_cedula : word;
                   nombre : string[50];
                 apellido : string[50];
                     edad : integer;
                    email : string[100];
        numero_telefonico : word;
           numero_celular : word;
                direccion : string[60];
            sueldo_basico : real;
           objetivo_venta : real;
      factor_bonificacion : real;
               venta_real : real;
               end;
    var
        opcion : char;
          info : datos_personales;
          arch : file of datos_personales;
 nombreABuscar : string[50];
     subNombre : string[50];
 abierto, entro : boolean;
 vende, objeti, venta, factor : real;
 
 
 
  procedure abrirarchivo;
  begin
     assign(arch,ubicacion);
  {$I-} reset(arch); {$I+}
  if ioresult <> 0 then
  begin
     abierto := false;
  end
 else
    begin
       abierto := true;
    end;
  end;
 
  Procedure Imprimir(n : longint);
  begin
    clrscr;
    if abierto = true then
    begin
      seek(arch,n);
      read(arch,info);
      with info do
      begin
        writeln; writeln;
        writeln(nombre,' ',apellido);
        writeln('Tiene ',edad,'a¤os');
        writeln('Tel‚fono: ',numero_telefonico);
        writeln('Celular: ',numero_celular);
        writeln('Direcci¢n: ',direccion);
        writeln('E-mail: ',email);
        writeln;
      end;
      readkey;
      close(arch);
    end
  else
      begin
         writeln;
         writeln('****  El Archivo No Abierto Pulse [Enter] ****');
         readln;
         exit;
      end;
   end;
 
  Procedure Ingresar;
  begin
      assign(arch,ubicacion);
    {$I-} reset(arch); {$I+}
    if ioresult <> 0 then
    begin
        rewrite(arch);
        seek(arch,0);
        write(arch,info);
        close(arch);
    end
  else
      begin
        seek(arch,filesize(arch));
        write(arch,info);
        close(arch);
      end;
   end;
 
   function mallusculas(ma : string) : string;
   var
      cn : integer;
   begin
       for cn := 1 to length(ma) do
       mallusculas[cn] := upcase(ma[cn]);
       mallusculas[0] := chr(cn);
   end;
 
   procedure bonificacion(venta, reales, bonifi : real);
   var
     plus : real;
     mensaj : string[30];
     co : longint;
     enct : boolean;
    begin
     co := 0;
     enct := false;
   repeat
      seek(arch,co);
      read(arch,info);
      if vende = info.Codigo_Vendedor then
      begin
        enct := true;
      end
    else
       co := co + 1;
   until (enct = true) or (co > filesize(arch) - 1);
   if enct = true then
   begin
     info.factor_bonificacion := 0;
     info.objetivo_venta := venta;
     info.venta_real := reales;
     if venta < reales then
     begin
       mensaj := '** Felicitaciones **';
       plus := (reales - venta) * bonifi;
       info.factor_bonificacion := plus;
       clrscr;
       writeln('***** EDITORIAL LA CIENCIA Y SU UNIVERSO *****');
       writeln;
       writeln('   Codigo Del Vendedor   : ',info.Codigo_Vendedor,'  ',mensaj);
       writeln('   Nombre Del Vendedor   : ',info.nombre);
       writeln('   Apellido Del Vendedor : ',info.apellido);
       writeln('   Bonificacion          : ',info.factor_bonificacion:8:2);
       writeln;
       writeln('>>>>>>> Pulse [Enter] <<<<<<<<');
       readln;
       end
    else
       begin
       mensaj := '<< No cumplio el objetivo >>';
       clrscr;
       writeln('***** EDITORIAL LA CIENCIA Y SU UNIVERSO *****');
       writeln;
       writeln('   Codigo Del Vendedor   : ',info.Codigo_Vendedor,'  ',mensaj);
       writeln('   Nombre Del Vendedor   : ',info.nombre);
       writeln('   Apellido Del Vendedor : ',info.apellido);
       writeln('   Bonificacion          : ',info.factor_bonificacion:8:2);
       writeln;
       writeln('>>>>>>> Pulse [Enter] <<<<<<<<');
       readln;
       end;
       close(arch);
       abierto := false;
     end;
    end;
 
   Procedure Buscar;
   var
      cont : longint;
   begin
     clrscr;
     if abierto = true then
     begin
      entro := false;
      writeln;
      write('Digite Nombre : ');
      readln(nombreABuscar);
      nombreABuscar := mallusculas(nombreABuscar);
      clrscr;
      cont := 0;
    repeat
          seek(arch,cont);
          read(arch,info);
          info.nombre := mallusculas(info.nombre);
          if info.nombre = nombreABuscar  then
           begin
             entro := true;
             with info do
             begin
             writeln;
             writeln('******* Los Datos Son *******');
             writeln;
             writeln('Nombre    : ',nombre,' ',apellido);
             writeln('Tiene     : ',edad,'a¤os');
             writeln('Tel‚fono  : ',numero_telefonico);
             writeln('Celular   : ',numero_celular);
             writeln('Direcci¢n : ',direccion);
             writeln('E-mail    : ',email);
             writeln;
             writeln('<<<<<< Pulse Una Tecla >>>>>>');
             readkey;
            end;
         end
      else
         cont := cont + 1;
     until (entro = true) or (cont > filesize(arch) - 1);
     if entro = false then
     begin
       writeln('No se encontraron resultados para esta busqueda');
       readkey;
     end;
       close(arch);
     end
   else
       begin
         writeln;
         writeln('****  El Archivo No Abierto Pulse [Enter] ****');
         readln;
         exit;
       end;
   end;
 
 
    Procedure Inicializar;
    var
      tel : char;
    begin
       clrscr;
       writeln;
       with info do
       begin
       write('   Entre Codigo Vendedor     : ');
       readln(Codigo_Vendedor);
       write('   Entre Num. Cedula         : ');
       readln(numero_cedula);
       write('   Entre Nombre              : ');
       readln(nombre);
       write('   Entre Apellido            : ');
       readln(apellido);
       write('   Entre Edad                : ');
       readln(edad);
       write('   Entre Email               : ');
       readln(email);
       write('   Entre Num. Telefonico     : ');
       readln(numero_telefonico);
       write('   Entre Num. Cedular        : ');
       readln(numero_celular);
       write('   Entre Direccion           : ');
       readln(direccion);
       write('   Entre Sueldo Basico       : ');
       readln(sueldo_basico);
       write('   Entre Objetivo Venta      : ');
       readln(objetivo_venta);
       write('   Entre Factor Bonificacion : ');
       readln(factor_bonificacion);
       write('   Entre Venta Real          : ');
       readln(venta_real);
      end;
      writeln;
      writeln('****** Los Datos Son Correctos [S/N] ******');
      repeat
          tel := readkey;
      until tel in['S','s','N','n'];
      if tel in['S','s'] then
      Ingresar;
    end;
 
     Procedure Seleccion;
     begin
      case opcion of
   '1': Inicializar;
   '2': begin
           abrirarchivo;
           Buscar;
        end;
   '3': begin
           abrirarchivo;
           Imprimir(num);
        end;
   '4': Inicializar;
   '5': begin
           clrscr;
           writeln;
           write('   Entre  Codigo Vendedor  : ');
           readln(vende);
           write('   Entre objetivo de venta : ');
           readln(objeti);
           write('   Entre ventas reales     : ');
           readln(venta);
           write('   Entre factor bonificacion : ');
           readln(factor);
           if abierto = false then
           abrirarchivo;
           bonificacion(vende, objeti, factor);
        end;
    end;
  end;
 
   Procedure Menu;
   begin
     clrscr;
     gotoxy(20,4);write('PERSONAL "Editorial Ciencias e Ideas"');
     gotoxy(25,6);write('1. Agregar Empleados ');
     gotoxy(25,8);write('2. Buscar Empleados');
    gotoxy(25,10);write('3. consultar Empleados');
    gotoxy(25,12);write('4. Inicializar Lista de Empleados');
    gotoxy(25,14);write('5. Resultados Ventas');
    gotoxy(25,16);write('6. Salir');
    gotoxy(20,18);write('Escoja una opci¢n: ');
    opcion:=readkey;
   end;
 
   Procedure Ciclo;
   begin
      Repeat
      Menu;
      Seleccion;
   Until (opcion = '6');
 end;
 
 Begin
     clrscr;
    assign(arch,ubicacion);
    Ciclo;
  End.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda menu de mantenimiento

Publicado por mileidy (4 intervenciones) el 12/03/2013 01:28:15
Buenas noches, muy interesante tu propuesta, pero sabes no se porque cuando estoy insertando datos y le doy que los datos son correctos sale un error en la linea de codigo rewrite(arch) no se que estoy haciendo mal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda menu de mantenimiento

Publicado por ramon (2158 intervenciones) el 12/03/2013 10:28:14
Disculpa as cambiado estos datos a los tuyos ubicacion = 'c:\tp\bin\datos.txt'; puede fallar
al no encontrar la dirección correcta si no dime el numero de error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda menu de mantenimiento

Publicado por mileidy (4 intervenciones) el 13/03/2013 16:45:00
Hola, pues la ubicacion exactamente es la misma, me sale es error tipo 5.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda menu de mantenimiento

Publicado por ramon (2158 intervenciones) el 14/03/2013 12:42:44
El error 5 precisamente se refiere a direcciones incorrectas mira tu tenias esto.

ubicacion='d:\bp\bin\datos.txt';

Mientras que yo puse esto.

ubicacion = 'c:\tp\bin\datos.txt';

Como puedes ver son casi iguales pero no lo san revisa bien puesto que como te digo
el error 5 es por:

Reset Si FileMode permite escritura y el nombre asignado
a la variable de fichero especifica un directorio o
un fichero de s¢lo lectura.

rewrite El directorio est  lleno, o el nombre asignado a la
variable de fichero especifica un directorio o un
fichero existente de s¢lo lectura.

Esto es tu caso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda menu de mantenimiento

Publicado por antonio (1 intervención) el 11/05/2013 10:50:36
buenas, yo tengo un error parecido pero el numero es 3 y me dice Rumtime error 003 at 0000 : 02E9
no se a que se debe este error si la dirección es la misma gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda menu de mantenimiento

Publicado por ramon (2158 intervenciones) el 28/05/2013 15:15:42
El problema poco mas o menos este es el error 3.

Error 3:
Las rutinas Reset, Rewrite, Append, Rename, y
Erase generan este error si el nombre asignado
a la variable de fichero es inv lida o
especifica un subdirectorio no existente.

Las rutinas ChDir, MkDir, or RmDir generan
este error si el path es inv lido o si
especifica un subdirectorio no existente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda menu de mantenimiento

Publicado por lisbeth (1 intervención) el 16/05/2013 23:34:48
hola mileidy disculpa el programa te corrio a mi no sera que me puedes facilitar tu programa yo estudio en guarico por fa gracias..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda menu de mantenimiento

Publicado por luis bernardino coa urbaez (1 intervención) el 26/05/2013 22:17:22
Hola como hago para introduccir este material para hacerlo correr
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda menu de mantenimiento

Publicado por ramon (2158 intervenciones) el 28/05/2013 15:07:39
Marca lo y copy pegarlo en bloc de notas y guarda como archivo *.pas o sea [ nombre.extension]
nombre 8 caracteres y punto extensión = pas, cárgalo con pascal y ejecútalo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda menu de mantenimiento

Publicado por Luis Bernardino Coa Urbaez (1 intervención) el 28/05/2013 17:27:34
Hola a mi tampoco me corrio me podras facilitar tu programa..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar