Retroceder   Foros del Web > Temas generales de computación > Programación > C/C++

Respuesta
 
Herramientas Desplegado
Antiguo 21-abr-2008, 02:03   #1 (permalink)
laelie ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Ubicación: madrid
Mensajes: 3
Enviar un mensaje por Skype™ a laelie
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!!
laelie está desconectado   Responder Citando
Antiguo 21-abr-2008, 16:45   #2 (permalink)
Mephisto está en el buen camino
 
Avatar de Mephisto
 
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 181
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...
Mephisto está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 01:12.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

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 93