program nomina;
uses
crt;
type
empleado = record
nombre : string[50];
sexo : char;
horas : real;
sueldo : real;
total : real;
end;
var
nominas : array[1..100] of empleado;
k, x, y, cont : integer;
entra : char;
procedure entrada_datos_nomina;
begin
cont := 1;
while (cont < 101) and (entra <> '0') do
begin
clrscr;
write(' Entre Nombre : ');
readln(nominas[cont].nombre);
write(' Entre Sexo [F]emenina O [M]asculino : ');
readln(nominas[cont].sexo);
nominas[cont].sexo := upcase(nominas[cont].sexo);
write(' Entre Horas : ');
readln(nominas[cont].horas);
write(' Entre Sueldo Por Hora : ');
readln(nominas[cont].sueldo);
nominas[cont].total := nominas[cont].horas * nominas[cont].sueldo;
writeln;
writeln(' Finaliza Entrando [0] Otra Continua');
entra := readkey;
if entra <> '0' then
cont := cont + 1;
end;
end;
procedure presenta_nominas;
begin
clrscr;
gotoxy(12,1);write('**** Datos De Empleados ****');
y := 3;
x := 1;
for k := 1 to cont do
begin
gotoxy(x,y);write(nominas[k].nombre);
gotoxy(x + 30,y);write(nominas[k].horas:0:2);
gotoxy(x + 40,y);write(nominas[k].sueldo:0:2);
gotoxy(x + 60,y);write(nominas[k].total:0:2);
y := y + 1;
if y > 22 then
begin
gotoxy(12,24);write('*** Pulse Una Tecla ***');
readkey;
y := 3;
clrscr;
end;
end;
gotoxy(12,24);write('*** Finalizada Lista Pulse Una Tecla ***');
readkey;
end;
procedure prersenta_medias;
var
hom, muj : real;
nm, nh, hh : integer;
begin
nm := 0;
nh := 0;
muj := 0.0;
hom := 0.0;
for hh := 1 to cont do
begin
if nominas[hh].sexo = 'F' then
begin
muj := muj + nominas[hh].total;
nm := nm + 1;
end;
if nominas[hh].sexo = 'M' then
begin
hom := hom + nominas[hh].total;
nh := nh + 1;
end;
end;
clrscr;
writeln(' ***** Las Medias Son *****');
writeln;
writeln(' La Media Del Hombre Es : ',(hom / nh):0:2);
writeln(' La Media De La Mujer Es : ',(muj / nm):0:2);
writeln;
writeln(' Pulse Una Tecla ');
readln;
end;
procedure menu;
var
sal : boolean;
tecla : char;
begin
sal := false;
repeat
clrscr;
writeln(' ****** Menu Principal ******');
writeln;
writeln(' 1 = Entrada Datos Nomina');
writeln(' 2 = Impresion Datos Empleados');
writeln(' 3 = Impresion Promedios Femenino Y Masculino');
writeln(' 4 = Salir');
writeln;
writeln(' <<<<< Elija Opcion >>>>>');
repeat
tecla := readkey;
until tecla in['1','2','3','4'];
clrscr;
case tecla of
'1' : entrada_datos_nomina;
'2' : begin
if cont > 0 then
presenta_nominas
else
begin
writeln('?????? No Datos De Nominas Pulse Una Tecla ??????');
readln;
end;
end;
'3' : begin
if cont > 0 then
prersenta_medias
else
begin
writeln('?????? No Datos De Nominas Pulse Una Tecla ??????');
readln;
end;
end;
'4' : sal := true;
end;
until sal = true;
end;
begin
cont := 0;
menu;
end.