Professional Documents
Culture Documents
Uses Crt;
Const N=100; Genero: Set of Char= ['F','M']; Menu: Set of Char= ['C','N','S','D','B','O','F','T','V','X','c','n','s','t','d','b', 'o','f','v','x']; Type Datos= record codigo: string [10]; cedula: string[10]; telefono: string[12]; nombre_apellido: string [40]; sexo: char; direccion: string [50]; sueldo_base, objetivo_venta, factor_boni, venta_real, comision: real;
end;
Empresa: Arreglo; letra:char; v,tmpstr,busca:string; numeroTxt : string[20]; numeroLong : longInt; estado : integer;
num:real; tecla:integer;
encontrado:boolean;
procedure Valida_Sexo (var letra:char; x1,y1:integer); begin repeat gotoxy (x1,y1); letra:= upcase(readkey); write (letra);
if not (letra in Genero) then begin gotoxy (x1,y1); write (' '); end;
until (letra in Genero) and (Length(letra)=1); gotoxy (27,5); end; function leerNumero(longitud: integer): string; var numero : string; tecla : char; i,x,y : integer; begin x := whereX; y := whereY; numero := ''; i := 1; repeat tecla := readKey; case tecla of '0'..'9' : {Teclas del 0 al 9} if i <= longitud then begin numero := numero + tecla; i := i + 1; end; chr(8) : { Tecla de retroceso para borrar el ultimo digito} if i > 1 then begin
i := i - 1; numero[i] := ' '; gotoxy(x,y); write(numero); numero := copy(numero,1,i-1); end end; gotoxy(x,y); write(numero); until ( tecla = chr(13) ) and ( length(numero) > 0 ); leerNumero := numero; end;
function leerReal(longitud: integer): real; var numero : string; tecla : char; i,x,y, error : integer; numero_real:real; begin x := whereX; y := whereY; numero := ''; numero_real:=0; i := 1; repeat
tecla := readKey; case tecla of '0'..'9' : {Teclas del 0 al 9} if i <= longitud then begin numero := numero + tecla; i := i + 1; val (numero, numero_real, error); end; chr(8) : { Tecla de retroceso para borrar el ultimo digito} if i > 1 then begin i := i - 1; numero[i] := ' '; gotoxy(x,y); write(numero); numero := copy(numero,1,i-1); end end; gotoxy(x,y); write(numero); until ( tecla = chr(13) ) and ( length(numero) > 0 ); leerReal := numero_real; end; function leerEntero(longitud: integer):integer; var
numero : string; tecla : char; i,x,y, error : integer; numero_real:integer; begin x := whereX; y := whereY; numero := ''; numero_real:=0; i := 1; repeat tecla := readKey; case tecla of '0'..'9' : {Teclas del 0 al 9} if i <= longitud then begin numero := numero + tecla; i := i + 1; val (numero, numero_real, error); end; chr(8) : { Tecla de retroceso para borrar el ultimo digito} if i > 1 then begin i := i - 1; numero[i] := ' '; gotoxy(x,y);
write(numero); numero := copy(numero,1,i-1); end end; gotoxy(x,y); write(numero); until ( tecla = chr(13) ) and ( length(numero) > 0 ); leerEntero := numero_real; end; procedure validar (var v:string; x1,y1,x2:integer); var t : integer; valido : boolean;
begin writeln;
then begin
begin
writeln('
gotoxy(1,3);
write('Codigo: '); gotoxy (15,3); write ('Cedula: ' ); gotoxy (33,3); write('Nombre y Apellido: '); gotoxy (1,5); write ('Sexo (F/M): '); gotoxy (15,5); write('Direccion: '); gotoxy (50,5); write('Telefono: '); gotoxy (1,7); writeln(' ** DATOS LABORALES DE VENDEDOR ** ');
gotoxy(1,8); write ('Sueldo Base: '); gotoxy (33,8); write ('Objetivo de Ventas: ') ; gotoxy(1,10); write('Factor Bonificacion: '); gotoxy (33,10); write ('Venta Real: ');
repeat for i:=1 to l do begin gotoxy (x1,y1); readln (numeroTxt); val (numeroTxt, num, error); if (numeroTxt[i] in ['A'..'Z']) then begin gotoxy (x1,y1); write (' end; end; until (error=0) ; ');
end;
var num: real); var numeroTxt: string; letra:char; i:integer; begin numeroTxt:='';
if not (letra in ['0'..'9']) then begin gotoxy (x1,y1); write (' '); end else begin numeroTxt:= numeroTxt + letra; val (numeroTxt, num, error);
write (letra);
end;
procedure Buscar_Codigo ( var Empresa: Arreglo; var cont: integer; v:string; var encontrado: boolean); var
i, pos: integer;
begin
encontrado:=false;
i:=1;
repeat
end;
procedure Incluir (var Empresa: Arreglo; var cont:integer; var encontrado: boolean); var resp,r,car: char; i:integer; cadena_num,c: string[10]; nomb,dir:string; begin resp:='S'; while (resp in ['S','s']) do
begin clrscr; cont:= cont + 1; Formulario_Entrada(Empresa); repeat gotoxy (8,3); c:= leerNumero(5); Buscar_Codigo ( Empresa,cont,v,encontrado); if encontrado then begin gotoxy (13,16); write ('Cdigo de Vendedor ya Exite! <<Pulse Enter >> '); readln; end else begin Empresa[cont].codigo:= c; gotoxy (13,16); write (' end; until (encontrado=false); ');
gotoxy(27,5); readln (dir); Empresa[cont].direccion := upcase (dir); gotoxy(60,5); Empresa[cont].telefono:=leerNumero(12); gotoxy(13,8); Empresa[cont].sueldo_base:=leerReal(10);
gotoxy(54,8); Empresa[cont].objetivo_venta:=leerReal(10);
gotoxy(22,10); Empresa[cont].factor_boni:=leerReal(10);
Empresa[cont].comision:=Empresa[cont].factor_boni * (Empresa[cont].venta_real - Empresa[cont].objetivo_venta ); gotoxy(20,12); writeln('Comisiones a pagar: ',Empresa[cont].comision:2:2,' Bs.'); end else begin gotoxy (20,12); writeln ('Comisiones a pagar: 0.0 Bs.'); end; gotoxy (17,15); writeln ('Vendedor registrado exitosamente!'); repeat gotoxy(17,17); write('Desea agregar otro vendedor (S/N): '); readln (resp); if not (resp in ['N','S','n', 's']) then begin gotoxy (25,19); writeln ('Opcion invalida'); gotoxy (47,17); write (' ');
end else begin gotoxy (47,17); write (resp); end; until resp in ['N','S','n', 's'];
procedure Formulario_Consulta (var pos:integer); begin clrscr; writeln (' gotoxy (1,4); write ('Cedula: '); gotoxy(8,4); write (Empresa[pos].cedula); gotoxy(20,4); write ('Nombre y Apellido: '); gotoxy (39,4); write (Empresa[pos].nombre_apellido); gotoxy (1,6); write ('Sexo: '); gotoxy (7,6); Datos Personales del Vendedor: N ',Empresa[pos].codigo,' ');
write (Empresa[pos].sexo); gotoxy (10,6); write ('Direccion: '); gotoxy (22,6); write (Empresa[pos].direccion); gotoxy (10,6); write ('Direccion: '); gotoxy (22,6); write (Empresa[pos].direccion); gotoxy (30,6); write ('Telefono: '); gotoxy (40,6); write (Empresa[pos].telefono); gotoxy (1,8); write (' gotoxy (1,10); write ('Sueldo Base: '); gotoxy (13,10); write (Empresa[pos].sueldo_base:2:2); gotoxy(29,10); write ('Objetivo de Ventas: '); gotoxy(50,10); write (Empresa[pos].objetivo_venta:2:2); gotoxy(1,12); write('Factor de Bonificacion: '); gotoxy(25, 12); Datos Laborales ');
write(Empresa[pos].factor_boni:2:2); gotoxy (41,12); write ('Venta Real: '); gotoxy(52,12); write(Empresa[pos].venta_real:2:2); gotoxy (30,14); write ('Comisiones a pagar: ',Empresa[pos].comision:2:2, ' Bs.' );
end; procedure Consultar ( var Empresa: Arreglo; var cont: integer); var busca:string[10]; i, pos: integer; encontrado: boolean;
i:=1;
gotoxy (15,3); write ('Indique Cdigo de Vendedor a Consultar: '); readln (busca);
repeat
if encontrado then begin Formulario_Consulta(pos); gotoxy (18,17); write ('Pulse <<Enter>> para continuar'); end
else begin gotoxy (15,10); writeln ('Vendedor (a) no registrado (a) ! <<Pulse Enter>>'); end; readln;
end; procedure Eliminar ( var Empresa: Arreglo; var cont: integer); var busca:string[10]; i, pos,p: integer; encontrado: boolean; opcion:char;
i:=1;
gotoxy (15,3); write ('Indique Cdigo de Vendedor a Eliminar: '); readln (busca);
repeat
if encontrado then begin Formulario_Consulta(pos); gotoxy (17,16); write ('Desea Eliminar este vendedor (S/N) ?: '); repeat
readln (opcion); if (opcion in ['S','s']) then begin dec (cont); p:=1; Empresa[pos]:= Empresa[pos+p]; for p:=1 to cont do begin Empresa[pos +p] := Empresa [pos +p+1]; end;
if (cont<0) then cont:=0 else; if (cont = 0) then Empresa[pos].codigo:=' ' else; gotoxy (14,18); writeln ('Vendedor (a) Eliminado (a) exitosamente! << Pulse Enter>>'); end else if opcion in ['N','n'] then
begin gotoxy (14,18); writeln ('Vendedor (a) no ha sido eliminado (a)! << Pulse Enter>> '); end else begin gotoxy (23,18); writeln ('Opcion inv lida'); gotoxy (54,16); writeln (' gotoxy (54,16); end; until opcion in ['S','s','n','N']; end else begin gotoxy(15,6); writeln ('Vendedor (a) no registrado (a) ! <<Pulse Enter>>'); end; readln; ');
end; procedure Ordenar ( var Empresa: Arreglo; var cont: integer); var k,j:integer;
aux:Datos; begin for k:=1 to cont -1 do for j:= k+1 to cont do begin if (Empresa[k].comision < Empresa[j].comision) then begin aux:= Empresa[k]; Empresa[k]:= Empresa[j]; Empresa[j]:= aux; end; end; end; procedure Formulario_Reporte ( Empresa: Arreglo; pos,i:integer); begin gotoxy(15,1); write (' ** EDITORIAL LA CIENCIA Y SU UNIVERSO **'); gotoxy (1,3); write ('CODIGO DE VENDEDOR '); inc (pos); gotoxy (6,3 + pos); write (Empresa [i]. codigo); gotoxy (22, 3); write ('NOMBRE Y APELLIDO ');
gotoxy (22, 3 + pos); write ( Empresa[i].nombre_apellido); gotoxy (41,3); write ('BONIFICACION (Bs.)'); gotoxy (41, 3 + pos); if (i=1) and (Empresa[i].comision>0) then write (Empresa[i].comision:2:2, ' --Felicitaciones !!') else if (Empresa[i].comision = 0.0) then write (Empresa [i].comision:2:2, ' -- No cumpli con el objetivo !!') else write (Empresa [i].comision:2:2);
end; procedure Reporte (var Empresa:Arreglo; var cont: integer); var i, pos, k, j:integer; aux:Arreglo; opcion: char; begin
pos:=1; gotoxy(15,1);
write (' ** EDITORIAL LA CIENCIA Y SU UNIVERSO **'); if (cont=0) then begin gotoxy (11,3); write ('No exiten vendedores registrados en la empresa <<Pulse Enter>>');
end else begin Ordenar (Empresa,cont); for i:=1 to cont do begin Formulario_Reporte (Empresa,pos,i); inc (pos); gotoxy (23,20); writeln ('<<Pulse Enter para continuar >>');
end;{for} end;{else} readln; end; procedure Modificar (var Empresa: Arreglo; var cont: integer); var busca: string[10];
i:=1;
writeln ('Cantidad de Vendedores Registrados: ',cont); readln; gotoxy(15,3); write ('Indique Cdigo de Vendedor a Consultar: '); readln (busca);
repeat
encontrado:=false;
if encontrado then begin Formulario_Consulta(pos); gotoxy (1,14); writeln ('====Datos a Modificar==='); writeln ('C--> Cedula'); writeln ('N--> Nombre y Apellido'); writeln ('S--> Sexo'); writeln ('D--> Direccion'); writeln ('T--> Telefono'); writeln ('B--> Sueldo Base'); writeln ('O--> Objetivo de Venta'); writeln ('F--> Factor de Bonificacion'); writeln ('V--> Venta Real'); writeln ('X--> Ninguno ');
readln (opcion);
gotoxy (62,17); end; until opcion in Menu ; case upcase (opcion) of 'C': begin gotoxy (8,4); write (' ');
gotoxy(31,19); write ('Cedula modificada exitosamente! << Pulse Enter>>'); readln; end; 'N': begin gotoxy (39,4); write (' gotoxy (39,4); validar (nomb,39,4,39); ');
Empresa[pos].nombre_apellido:= upcase(nomb); gotoxy(31,19); write ('Nombre modificado exitosamente! <<Pulse Enter>>'); readln; end; 'S': begin gotoxy (7,6); write (' '); gotoxy (7,6); Valida_Sexo (Empresa[pos].sexo,7,6); gotoxy(31,19); write ('Sexo modificado exitosamente! <<Pulse Enter>>'); readln; end; 'D': begin gotoxy (22,6); write (' gotoxy (22,6); readln (dir); Empresa[pos].direccion:= upcase(dir); gotoxy(28,19); write ('Direccion modificada exitosamente! <<Pulse Enter>>'); readln; end; ');
'T': begin
gotoxy (40,6); write (' gotoxy (40,6); Empresa[pos].telefono:=leerNumero(12); gotoxy(28,19); write ('Telefono modificado exitosamente! <<Pulse Enter>>'); readln; end; 'B': begin gotoxy (13,10); write (' '); ');
gotoxy (13,10); Empresa[pos].sueldo_base:=leerReal(10); gotoxy(31,19); write ('Sueldo modificado exitosamente! <<Pulse Enter>>'); readln; end; 'O': begin gotoxy (50,10); write (' gotoxy (50,10); Empresa[pos].objetivo_venta:=leerReal(10); ');
Empresa[pos].comision:=Empresa[pos].factor_boni * (Empresa[pos].venta_real - Empresa[pos].objetivo_venta ); gotoxy(12,14); writeln('Comisiones a pagar: ', Empresa[pos].comision:2:2,' Bs. end else begin gotoxy (12,14); writeln ('Comisiones a pagar: 0.0 Bs. end; gotoxy(28,19); write ('Objetivo modificado exitosamente! <<Pulse Enter>>'); readln; end; '); ');
'F': begin gotoxy (25,12); write (' gotoxy (25,12); Empresa[pos].factor_boni:=leerReal(10); ');
begin
Empresa[pos].comision:=Empresa[pos].factor_boni * (Empresa[pos].venta_real - Empresa[pos].objetivo_venta ); gotoxy(12,14); writeln('Comisiones a pagar: ', Empresa[pos].comision:2:2,' Bs. end else begin gotoxy (12,14); writeln ('Comisiones a pagar: 0.0 Bs. end; gotoxy(25,19); write ('Bonificacion modificada exitosamente! <<Pulse Enter>>'); readln; end; '); ');
'V': begin gotoxy (52,12); write (' gotoxy (52,12); Empresa[pos].venta_real:=leerReal(10); ');
then begin
Empresa[pos].comision:=Empresa[pos].factor_boni * (Empresa[pos].venta_real - Empresa[pos].objetivo_venta ); gotoxy(12,14); writeln('Comisiones a pagar: ', Empresa[pos].comision:2:2,' Bs. end else begin gotoxy (12,14); writeln ('Comisiones a pagar: 0.0 Bs. end; gotoxy(26,19); write ('Venta Real modificada exitosamente! <<Pulse Enter>>'); readln; end; '); ');
end; {case}
end;
_________________________________________________'); '); UNIVERSIDAD NACIONAL ABIERTA. CENTRO LOCAL LARA '); INGENIERA DE SISTEMAS ');
writeln (' writeln (' writeln (' writeln (' writeln (' writeln (' writeln (' writeln (' writeln (' writeln ('
================================================='); '); Realizado por: Oscar Garca C.I.: Fecha: Mayo 2013 '); '); ');
writeln ('
_________________________________________________');
readln;
end;
clrscr; repeat writeln (' writeln (' writeln (' writeln (''); writeln (' writeln (''); writeln (' writeln (' writeln (' writeln (' writeln (' writeln (' [ 1 ] ---> Incluir '); [ 2 ] ---> Consultar '); [ 3 ] ---> Modificar '); [ 4 ] ---> Eliminar '); [ 5 ] ---> Reporte '); [ 6 ] ---> Salir del Sistema '); MENU PRINCIPAL '); '); EDITORIAL "CIENCIAS E IDEAS " ');
__________________________________________');
gotoxy (27,15);
gotoxy (52,15);
tecla:=leerEntero(1);
writeln ('incluir'); Incluir(Empresa, cont,encontrado); clrscr; end; 2: begin clrscr; Consultar (Empresa, cont); clrscr;
end;
end; 4: begin clrscr; Eliminar (Empresa,cont); clrscr; end; 5: begin clrscr; Reporte (Empresa, cont); readln; clrscr; end; 6: begin exit; end; else gotoxy (20,19);
readkey;
end;
end.