ayuda error compilacion #include<iostream.h>

Iniciado por dubi332000, 27 Julio 2012, 21:36 PM

0 Miembros y 1 Visitante están viendo este tema.

dubi332000

necesito ayuda con un programa basico de calculo de sueldo, me tira un error de compilacion y no me lo ejecuta aca esta el codigo agradeceria cualquier ayuda.


#include<string.h>
#include<stdio.h>
#include<conio.h>
#include<iostream.h>


void menu(int*);
void cargalote(int*);
  int ca,cb,cc,a,b,c,opcion,promsueldo,nlegajo,;
    int I,i,h,cat,vem[3],ant,vms[3],catms;
    int sueldobruto;
    int horas,x,antigue,j,y,ulega,M[100][6];
    M[100][1]=0;
      char usuario[30],vt[7][3];
    char password[30];
   
    int main()
    {
 
   

    do
    {
         printf("Usuario: ");
         gets(usuario);
         printf("Contrase%ca: ",164);
          gets(password);
          x=strcmp(usuario,"dubi332000");
          y=strcmp(password,"dubi332000");
         system("cls");
         if((x==0)&&(y==0))
         {
                           menu(&opcion);
   
   
   while(opcion !=2)
                           {      switch(opcion)
                                        {
                                                      case 0:
                                       system("cls");
                                          printf("ingrese nº de legajo");
                                          scanf("%d",&nlegajo);
                                          cargalote(&nlegajo);
                                          break;

   
                                                      case 1: for(I=1;I<=ulega;I++)
                                                    {
   printf("el empleado  %d  de cat %d    tuvo un neto de  $   %d   \n",M[1],M[2],M[5]);
   break;
}
menu(&opcion);
getch();}




void menu(int* opcion)
{
     
     printf("\n\nBienvenido al menu\n");
     printf("Elija la opcion que desea de las siguientes\n");
     printf("0.Cargar datos\n");
     printf("1.imprecion de datos cargado \n");
     printf("2.Salir \n");
     printf("\nIngrese la opcion que desea realizar? \n");
     scanf("%d",opcion);
}


void cargalote(int* nlegajo)
{
   while(nlegajo !=0)
   {    
   
   printf("ingrese categoria 1=A, 2=B ,3=c ");
   scanf ("%d",&cat);
   
   printf("ingrese antiguedad");
   scanf("%d",&ant);

   printf("ingrese horas trabajadas");
   scanf("%d",&horas);
   
   ulega=ulega+1;
              
     for (I=1;I<=6;I++)
       {
       switch (I)
       {
       case 1: M[ulega]=nlegajo;//numero de legajo en la matriz
        break;
      case 2:M[ulega]=cat;//categoria a la que pertenece
        break;
      case 3:M[ulega]=antigue;//antiguedad de la persona
        break;
      case 4:M[ulega]=horas;//horas extras trabajadas
      break;
      case 5: switch (cat)
{
      case 1:aux=600; aux1=50;
      case 2:aux=800; aux1=40;
      case 3:aux=1200; aux1=30;
                       extras=((aux+aux1)/180)*horas;
                       bruto=aux+(aux1*ant)
                       neto=(bruto*100)/17;
                        M[ulega][5]=bruto;
                        M[ulega][6]=neto;                               //sueldo neto
                           if (vms[cat]< M[ulega][6])
                             {   vms[cat]=M[ulega][6];
                                    catms=cat;
               
                                 promsueldo=M[ulega][I+1]+promsueldo;
                                   vem[cat]=vem[cat]+1 ;
                                } //sueldo bruto obtenido
       
       
       
        printf("ingrese nº de legajo");
   scanf("%d",&nlegajo);}
}}
   

durasno

#1
Hola! primero que nada antes de postiar un codigo estaria bueno que revises el programa y veas los posibles errores que puede tener (no digas: "uhh no me anda, subo el codigo y q me lo arreglen", a muchos les caeria mal ya que son errores muy simples)

Te marco algunos errores:

1º En el main abris muchas llaves pero no cerras todas

2º En cargalote() usas varias variables pero a muchas no la declaras

3º En algunas partes del codigo pareciera que sabes usar las matrices pero en el for-switch dice todo lo contrario(tenes que usar los dos subindices M[][]). Ademas revisa bien que es lo que hace ese for-switch, ¿estas seguro que queres usar ulega solo como subindice?
En el switch del case 5, ¿¿te olvidaste los break??

void cargalote(int* nlegajo)
{
  while(nlegajo !=0)
  {    

Si vas a pasar nlegajo por pseudoreferencia, tenes que usar *(indireccion) para acceder al contenido de esa variable. Seria:
void cargalote(int* nlegajo)
{
  while(*nlegajo !=0) // *nlegajo: el contenido de nlegajo
  {    

y asi en todos los casos que usas nlegajo


Saludos

PD: usa las Geshi para postiar codigo
Ahorrate una pregunta, lee el man

Queta

Añado que iostream.h está obsoleto, quítale el .h final.
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.