Foros del Web » Programación para mayores de 30 ;) » C/C++ »

ayuda con esto porfis

Estas en el tema de ayuda con esto porfis en el foro de C/C++ en Foros del Web. olaa... Bueno solo qeria saber si alguien me puede ayudar con un apartado de este ejercicio que no lo entiendo muy bien **el apartado es: ...
  #1 (permalink)  
Antiguo 21/04/2008, 02:03
 
Fecha de Ingreso: marzo-2008
Ubicación: madrid
Mensajes: 3
Antigüedad: 16 años, 1 mes
Puntos: 0
ayuda con esto porfis

olaa... Bueno solo qeria saber si alguien me puede ayudar con un apartado de este ejercicio que no lo entiendo muy bien
**el apartado es:
introducir el numero de horas extras para akellos trabajadores que las allan echo, para ello introducir la categoria, y el nombre del trabajador y si esta en la lista intoducir su numero de horas extras

Lo ke llevo hasta ahora es:


# include <stdio.h>
# include <conio.h>
#define TAM 3

struct categorias{
float precio_cat;
};
struct empleados{
struct categorias categ[4];
char nombre[40];
int categoria;
int num_extras;
float p_extras;
float ganado;
}emple[TAM],aux[TAM];
int menu (void);
void lee_extra(void);
void extra(void);
void nombre(void);
void main (void)
{
int opc;
opc=menu();
switch (opc){
case 1:
extra();
case 2:
nombre();

case 3:
lee_extra();

case 4:

break;
}
}
int menu (void)
{
int opc;
do{
printf("1.incertar precio de la hora extra para la categoria profecional ");
printf("\n2.incertar nombre y categoria profecional del trabajador ");
printf("\n3.introducir el numero de horas extras de un trabajador ");
printf("\n4.calcular y visualizar el dinero ganado y los datos de cada trabajador ");
printf("\n5.visualizar el total que debe pagar la empresa a los trabajadores ");
scanf("%d",&opc);
clrscr();
}while(opc<1||opc>5);
return(opc);
}


void extra(void)
{
int i;
for(i=0;i<4;i++){
printf("\nCATEGORIA %d\n",i+1);
printf("introduce el valor de la hora extra de la categoria: ");
scanf("%d",&emple[i].categ[i].precio_cat);
}
}

void nombre(void)
{
int i;
for(i=0;i<TAM;i++){
printf("Introduce el nombre del trabajador: ");
fflush(stdin);
gets(emple[i].nombre);
printf("Introduce la categoria a la que pertenece 1 - 2 - 3 o 4: ");
scanf("%d",&emple[i].categoria);
printf("\n");
}
}
//esta es la parte del ejercicio en donde kisiera ke me ayudasen
void lee_extra(void)
{
int i=0,cat;
char nom[40];
printf("INTRODUCIR HORAS EXTRAS TRABAJADAS: \n");
printf("introduce el nombre del trabajador: ");
fflush(stdin);
gets(nom);
while(nom[0]!='*'){
printf("introduce la categoria: ");
scanf("%d",&cat);
for(i=0;i<TAM;i++){
printf("nombre: %s",emple[i].nombre);
printf("\n%s",nom);
if(emple[i].nombre==nom){
printf("introduce el numeor de horas extras trabajadas: ");
scanf("%d",&emple[i].num_extras);
}
}
printf("\npulse FIN para terminar\n");
fflush(stdin);
printf("introduce el nombre del trabajador: ");
gets(nom);
}
}

un besito y poz les agradeceria muchisisimo su ayudaa!!
  #2 (permalink)  
Antiguo 21/04/2008, 16:45
Avatar de Mephisto  
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 184
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: ayuda con esto porfis

Yo pudiera aportarte lo siguiente, numero las lineas para tener una mejor referencia

Código:
1   void lee_extra(void)
2   {
3      int i=0,cat;
4      char nom[40];
5      printf("INTRODUCIR HORAS EXTRAS TRABAJADAS: \n");
6      printf("introduce el nombre del trabajador: ");
7      fflush(stdin);
8      gets(nom);
9      while(nom[0]!='*'){
10        printf("introduce la categoria: ");
11        scanf("%d",&cat);
12        for(i=0;i<TAM;i++){
13           printf("nombre: %s",emple[i].nombre);
14           printf("\n%s",nom);
15           if(emple[i].nombre==nom){
16             printf("introduce el numeor de horas extras trabajadas: ");
17             scanf("%d",&emple[i].num_extras);
18           }
19        }
20        printf("\npulse FIN para terminar\n");
21        fflush(stdin);
22        printf("introduce el nombre del trabajador: ");
23        gets(nom);
24    }
25 }
De acuerdo al sistema que emplees hay ocasiones en las que al definir un array de tipo char te arroja basura, por eso conviene inicializar el array. Yo utilizo memset. Sería memset(nom,'\0',sizeof(nom)); antes de la linea 8 y 23. Tambien como reutilizas el array, si un primer nombre es mayor a un segundo nombre te dejará los caracteres extras del tamaño de los arrays, tambien por eso es conveniente limpiar el array antes de cargarlo.

En la linea 15 al realizar la comparacion de dos cadenas requieres de emplear strcmp de la librearia string.h. En esa linea creo que tendrias que comparar tambien la categoria, bueno eso es lo que entiendo del enunciado de arriba.

No se si sea necesario para tu prog que muestres el nombre de todos los trabajadores como lo haces en laa lineas 13 y 14, igual lo ocupas para validar lo que se esta comparando...

Es lo que yo le veo...
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:38.