elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ayuda con este programa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con este programa  (Leído 2,040 veces)
carol36

Desconectado Desconectado

Mensajes: 1


Ver Perfil
ayuda con este programa
« en: 6 Julio 2017, 17:15 pm »

Buen dia necesito ayuda con este programa que realize y me falta hacer que genere una lista de la siguiente manera:
Generar un listado con los siguientes datos:
? Nro. de Cédula de Identidad
? Nombre y Apellido
? Edad
? Nivel salarial

Para generar el listado se debe considerar lo siguiente:
? La Edad del empleado se debe obtener a partir de su fecha de nacimiento y la
fecha actual, tomando como fecha actual el 31/01/2017.
? El nivel salarial del empleado está en función de su sueldo, según se indica en la
siguiente tabla:
Rango de Sueldo Nivel salarial
15000 =Sueldo< 20000 1
20000 = Sueldo< 25000 2
25000 = Sueldo < 30000 3

El listado debe presentarse ordenado 1ro por el Nivel Salarial en forma
ascendente y en 2do lugar por el Nro. de Cédula de Identidad en forma
ascendente. Deben presentarse totales de sueldo para cada nivel salarial y el total
general.
A continuación, un ejemplo de lo solicitado:
Datos quese ingresan por teclado:
No. de C.I. Nombre y Apellido Fecha de Nacimiento Sueldo
7777777 José Tovar 15-12-1990 25000
6666666 María Romero 22-03-1988 16000
9999999 Rafael Torres 05-05-1991 23000
5555555 Marco Méndez 12-02-1987 28000
Listado resultante ordenado primero por Nivel Salarial y luego por Nro. de Cédula de
Identidad:
No. de C.I. Nombre y Apellido Edad Sueldo Nivel salarial
6666666 María Romero 29 16000 1
Total sueldos Nivel 1 16000
9999999 Rafael Torres 25 23000 2
Total sueldos Nivel 2 23000
5555555 Marco Méndez 28 28000 3
7777777 José Tovar 26 25000 3
Total sueldos Nivel 3 53000
Total sueldos 92000



Código
  1.                 program Una_tec;
  2.  uses
  3.     crt;
  4.  type
  5.    nominadeemplea = record
  6.  
  7.                    civ: longint;
  8.                 nombr : string[10];
  9.                 apell : string[10];
  10.                  fechn: string[10];
  11.                  edad : longint;
  12.                 Sueld : real;
  13.                 nivel : integer;
  14.                  tsn1 : real;
  15.                  tsn2 : real;
  16.                  tsn3 : real;
  17.                  tsge : real;
  18.                 end;
  19.  
  20.   const
  21.      emplea = 6;
  22.  var
  23.    datosempl : array[1..emplea] of  nominadeemplea;
  24.    t, cont : integer;
  25.    tec : char;
  26.    com : real;
  27.    nivelreg : array[1..emplea] of real;
  28.    oremple : longint;
  29.  
  30.  procedure incluir;
  31.  begin
  32.      clrscr;
  33.      writeln('**** Entrada De Datos Del Empleado ****');
  34.      writeln;
  35.      write('     Cedula de Identidad del Empleado     : ');
  36.      readln(datosempl[cont].civ);
  37.      clrScr;
  38.      write('     Nombre del Empleado      : ');
  39.      readln(datosempl[cont].nombr);
  40.      clrScr;
  41.      write('     Apellido del Empleado   : ');
  42.      readln(datosempl[cont].apell);
  43.      clrScr;
  44.      writeln(' --Ingrese Fecha de Nacimiento del Empleado-- ');
  45.      writeln(' <<<Por favor que se en formato dd/mm/aaaa>>> ');
  46.      write('          Digite la fecha por favor           : ');
  47.      readln(datosempl[cont].fechn);
  48.      write('     Ingrese la Edad del Empleado        :');
  49.      readln(datosempl[cont].edad);
  50.      clrScr;
  51.      write('     Ingrese el Sueldo Actual del Empleado      : ');
  52.      readln(datosempl[cont].Sueld);
  53.      clrScr;
  54.      writeln('              <<<Ingrese el nivel salarial del empleado>>>        ');
  55.      writeln;
  56.      writeln(' Recuerde: Que si sueldo se encuentra entre:[15000,..,19999.99] oprimir "1"   ');
  57.      writeln(' Recuerde: Que si sueldo se encuentra entre:[20000,..,24999.99] oprimir "2"   ');
  58.      writeln(' Recuerde: Que si sueldo se encuentra entre:[25000,..,29999.99] oprimir "3"   ');
  59.      writeln;
  60.      write('                     Digite el nivel por favor:');
  61.      readln(datosempl[cont].nivel);
  62.   end;
  63.  
  64.  
  65.  procedure modificar(codi : longint);
  66.  var
  67.    pul : char;
  68.    modi : boolean;
  69.  begin
  70.     modi := false;
  71.     for t := 1 to cont do
  72.     begin
  73.        if datosempl[t].civ = codi then
  74.        begin
  75.           modi := true;
  76.           break;
  77.        end;
  78.     end;
  79.      if modi = true then
  80.      begin
  81.         repeat
  82.         clrscr;
  83.         writeln('**** Modificacion De Datos ****');
  84.         writeln;
  85.         writeln('  1 = Cedula del Empleado');
  86.         writeln('  2 = Nombre');
  87.         writeln('  3 = Apellido');
  88.         writeln('  4 = Fecha de Nacimiento');
  89.         writeln('  5 = Edad');
  90.         writeln('  6 = Sueldo ');
  91.         writeln('  7 = Nivel Salarial');
  92.         writeln('  8 = Salir');
  93.         repeat
  94.             pul := readkey;
  95.         until pul in[#49..#56];
  96.      case pul of
  97.     #49 : begin
  98.           write('  Cedula de Identidad     : ');
  99.           readln(datosempl[t].civ);
  100.           end;
  101.     #50 : begin
  102.           write('  Ingrese Nombre        : ');
  103.           readln(datosempl[t].nombr);
  104.           end;
  105.     #51 : begin
  106.           write('  Ingrese Apellido     : ');
  107.           readln(datosempl[t].apell);
  108.           end;
  109.     #52 : begin
  110.           write('  Ingrese Fecha de Nacimiento     : ');
  111.           readln(datosempl[t].fechn);
  112.           end;
  113.     #53 : begin
  114.           write('  Ingrese Edad         : ');
  115.           readln(datosempl[t].edad);
  116.           end;
  117.     #54 : begin
  118.           write('  Ingrese Sueldo       : ');
  119.           readln(datosempl[t].Sueld);
  120.           end;
  121.     #55 : begin
  122.           write('  Ingrese Nivel Salarial     : ');
  123.           readln(datosempl[t].nivel);
  124.           end;
  125.      end;
  126.    until pul = #56;
  127.    end
  128.   else
  129.      begin
  130.         clrscr;
  131.         writeln('  Error Opcion NO DISPONIBLE, Pulse [Enter]');
  132.         readln;
  133.      end;
  134.  end;
  135.  
  136.  procedure eliminar(codi : longint);
  137.  var
  138.    pul : char;
  139.    borra : boolean;
  140.    corre : integer;
  141.  begin
  142.     borra := false;
  143.     for t := 1 to cont do
  144.     if datosempl[t].civ = codi then
  145.     begin
  146.        borra := true;
  147.        break;
  148.     end;
  149.     if borra = true then
  150.     begin
  151.        clrscr;
  152.        writeln('<<<<<<<< Anular Registro del Empleado >>>>>>>>>>');
  153.        writeln;
  154.        writeln('  Codigo Vendedor     = ',datosempl[t].civ);
  155.        writeln;
  156.        writeln('Desea Anular Este Empleado [S/N]');
  157.        repeat
  158.           pul := upcase(readkey);
  159.        until pul in['S','N'];
  160.        if pul = 'S' then
  161.        begin
  162.           fillchar(datosempl[t],sizeof(datosempl[t]),0);
  163.           corre := 1;
  164.           for corre := t to cont do
  165.           if datosempl[corre].civ > 0 then
  166.           begin
  167.              datosempl[corre] := datosempl[corre - 1];
  168.           end;
  169.            cont := cont - 1;
  170.        end;
  171.     end
  172.   else
  173.      begin
  174.         clrscr;
  175.         writeln('  Error Opcion NO DISPONIBLE, Pulse [Enter]');
  176.         readln;
  177.      end;
  178.  end;
  179.  
  180.  procedure ordenaarray(por : char);
  181.  var
  182.    temp : nominadeemplea;
  183.    g, r : integer;
  184.    bontem : real;
  185.  begin
  186.     if upcase(por) = 'N' then  {Ordenado de menor a mayor nivel}
  187.     begin
  188.        for g := 1 to cont do
  189.          for r := cont downto g + 1 do
  190.          if datosempl[g].nivel > datosempl[r].nivel then
  191.          begin
  192.             temp := datosempl[g];
  193.             datosempl[g] := datosempl[r];
  194.             datosempl[r] := temp;
  195.             bontem := nivelreg[g];
  196.             nivelreg[g] := nivelreg[r];
  197.             nivelreg[r] := bontem;
  198.          end;
  199.       end;
  200.   end;
  201.  
  202.  procedure menu;
  203.  var
  204.    tee : char;
  205.    sas : boolean;
  206.  begin
  207.     sas := false;
  208.   repeat
  209.      clrscr;
  210.      writeln('******* Menu General *********');
  211.      writeln;
  212.      writeln('   1 = INGRESAR');
  213.      writeln('   2 = MODIFICAR');
  214.      writeln('   3 = ELIMINAR');
  215.      writeln('   4 = ORDENAR REGISTRO');
  216.      writeln('   5 = SALIR');
  217.      writeln;
  218.      writeln('<<<<< Elija Opcion >>>>>');
  219.      repeat
  220.         tee := readkey;
  221.      until tee in[#49..#54];
  222.  case tee of
  223. #49 : begin
  224.         clrscr;
  225.         cont := cont + 1;
  226.         if cont > emplea then
  227.         cont := emplea;
  228.         incluir;
  229.        end;
  230. #50 : begin
  231.          clrscr;
  232.          write('   Ingrese cedula del empleado : ');
  233.          readln(oremple);
  234.          consultar(oremple);
  235.       end;
  236. #51 : begin
  237.          clrscr;
  238.          write('   Ingrese cedula del empleado : ');
  239.          readln(oremple);
  240.          modificar(oremple);
  241.       end;
  242. #52 : begin
  243.          clrscr;
  244.          write('   Ingrese cedula del empleado : ');
  245.          readln(oremple);
  246.          eliminar(oremple);
  247.       end;
  248. #53 : begin
  249.          clrscr;
  250.          writeln(' Ordenar Por nivel y por cedula de identidad presioe[N]');
  251.          repeat
  252.             tec := upcase(readkey);
  253.          until tec in['N'];
  254.          ordenaarray(tec);
  255.       end;
  256. #54 : sas := true;
  257.   end;
  258.   until sas = true;
  259.  end;
  260.  
  261.  
  262.   begin
  263.       cont := 0;
  264.       menu;
  265.   end.
  266.  

MOD: Etiquetas GeSHi.


« Última modificación: 6 Julio 2017, 21:17 pm por MCKSys Argentina » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: ayuda con este programa
« Respuesta #1 en: 6 Julio 2017, 17:32 pm »

empezando por ahí, que lenguaje es?

y recuerda los códigos deben ir en etiquetas GeSHi


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con este programa
Programación C/C++
daxelmejor 1 2,395 Último mensaje 13 Mayo 2010, 16:00 pm
por Akai
Ayuda con este programa en C++
Programación C/C++
miguelb18 1 2,207 Último mensaje 25 Agosto 2010, 17:23 pm
por Littlehorse
Ayuda con este programa
Programación C/C++
nosotros12 1 2,099 Último mensaje 18 Noviembre 2011, 09:06 am
por s00rk
ayuda con este programa
Dudas Generales
ZXILER 1 2,638 Último mensaje 16 Marzo 2012, 23:16 pm
por Aprendiz-Oscuro
ayuda con este programa
Java
hairam 2 2,169 Último mensaje 9 Julio 2012, 20:56 pm
por rommel89
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines