Dev - C++ - Ayuda con un Proyecto en C

 
Vista:
Imágen de perfil de Ernesto
Val: 23
Ha disminuido su posición en 2 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con un Proyecto en C

Publicado por Ernesto (14 intervenciones) el 15/06/2019 22:52:09
necesito ayuda con un proyecto es de lista enlazadas en C, agradecería cualquier ayuda ayuda

Objetivo: Aplicar estructuras dinámicas, listas enlazadas, Imitando el manejo de archivos relacionados en Base de Datos, en relación de 1 a “n”. Un empleado puede tener de 1 a “n” Horas_Extras.

Enunciado: La Empresa “Trabajando para Ud.”, requiere controlar las horas extras realizadas en un mes determinado. Nota:  En el mes se trabajan 180 horas. Valor de una hora = Sbase / 180  La hora extra se cancela con un 50% adicional

Registro Empleado son:
* Cod_Empleado
* Nombre
* Cargo
* Sbase

Registro Horas_Extras:
* Folio (numérico correlativo)
* Cod_Empleado
* Día (int)
* Cantidad horas extras (int)
* Monto (int)
Pauta de evaluación:
a) Ingreso de Empleados (10 puntos)
b) Listar todos los empleados de la lista principal (10 puntos)
c) Listar todas las horas extras de un determinado empleado. Al final de la lista imprimir cantidad de horas extras y el monto total. (20 puntos) Salida: Código Empleado, Nombre, Folio, Dia, Sbase, Cantidad, Valor HExtra, Monto
d) Listar todas las horas extras realizadas en un rango de día en el mes.(20 puntos) Listado de Horas Extras en el rango de Día Inicio: 99 hasta Día final. 99 Detalle: ……………………………………………………………………… e) Implementar un menú, el proceso se realiza mientras lo desee el usuario. (10 puntos)

Nota: los empleados y las horas extras se almacenan a la cola de las listas respectivas.

Esto llevo:

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
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
 
 
 
struct _empleado {
        int Cod_empleado;
        char nombre[20];
        char cargo[12];
        int Sbase;
        struct _empleado *siguiente;
        };
 
 struct _empleado *primero, *ultimo;
 
 void mostrar_menu() {
      printf("\n\nMenú:\n=====\n\n");
      printf("1.- Añadir elementos\n");
      printf("2.- Borrar elementos\n");
      printf("3.- Mostrar lista\n");
      printf("4.- Salir\n\n");
      printf("Escoge una opción: ");fflush(stdout);
 }
 
 void anadir_elemento() {
      struct _empleado *nuevo;
 
      nuevo = (struct _empleado *) malloc (sizeof(struct _empleado));
      if (nuevo==NULL) printf( "No hay memoria disponible!\n");
 
      printf("\nNuevo elemento:\n");
      printf("Cod_empleado: "); fflush(stdout);
      gets(nuevo->Cod_empleado);
      printf("Nombre: "); fflush(stdout);
      gets(nuevo->nombre);
      printf("Cargo: "); fflush(stdout);
      gets(nuevo->cargo);
      printf("Sueldo Base: "); fflush(stdout);
      gets(nuevo->Sbase);
 
      nuevo->siguiente = NULL;
 
      if (primero==NULL) {
         printf( "Primer elemento\n");
         primero = nuevo;
         ultimo = nuevo;
         }
      else {
           ultimo->siguiente = nuevo;
           ultimo = nuevo;
      }
 }
 
 void mostrar_lista() {
      struct _empleado *auxiliar;
      int i;
 
      i=0;
      auxiliar = primero;
      printf("\nMostrando la lista completa:\n");
      while (auxiliar!=NULL) {
            printf( "Codigo_Empleado: %s, Nombre: %s, Cargo: %s, Sbase: %s\n",
                    auxiliar->Cod_empleado,auxiliar->nombre,auxiliar->cargo,auxiliar->Sbase);
            auxiliar = auxiliar->siguiente;
            i++;
      }
      if (i==0) printf( "\nLa lista está vacía!!\n" );
 }
 
 int main() {
     char opcion;
 
     primero = (struct _empleado *) NULL;
     ultimo = (struct _empleado *) NULL;
     do {
         mostrar_menu();
         opcion = getch();
             switch ( opcion ) {
                case '1': anadir_elemento();
                       break;
                case '2':  printf("No disponible todavía!\n");
                        break;
                case '3': mostrar_lista(primero);
                        break;
                case '4': exit( 1 );
                default: printf( "Opción no válida\n" );
                         break;
             }
     } while (opcion!='4');
 }
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