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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con clases c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con clases c++  (Leído 2,442 veces)
themau1111

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Problema con clases c++
« en: 10 Noviembre 2013, 21:20 pm »

tengo un proyecto en code blocks en el que tengo 5 cabeceras, cada una con clase en este caso sucursal, servicio,contrato,empleado y login pero en una de ellas me marca error

class servicios
{
  public:
      int cod_servicio[10],comision [10];
      float costo [10];
      char servicio[10][50];
   public:
       void constante();
       void mostrar();
       void capturar();
       void buscar();
       void modificar();
};    (aqui sale el error)



I:\seminario de programacion\TELEMEX\includes\claseservicio.h|24|error: multiple types in one declaration|




espeor me puedan ayudar


« Última modificación: 10 Noviembre 2013, 23:20 pm por themau1111 » En línea

vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: Problema con clases
« Respuesta #1 en: 10 Noviembre 2013, 23:29 pm »

Lo que dice ahí es que tienes muchos tipos en una declaracion.
Y el error esta en el archivo claseservicio.h
Puede que tengas includes dobles no se.
Si tienes doble include o algo eso se arregla con #ifdef, #ifndef.
Es una espacie de protección contra dobles include.
Ejemplo: sabemos que para poder usar cout debemos incluir #include <iostream> al principio del archivo, pero si te fias al incluir un archivo .h al principio de main puedes juntarte con 2 #include <iostrem>

entonces lo que puedes hacer es poner en el .h la protección esta que no es mas que
// En el archivo.h
#ifndef //si no está definido
#define // se define

//tu código aqui

#endif //fin de la protección

 Bueno, no se si es por eso pero creo que puede ser.
 Si no que alguien nos ilumine mas nuestra ignorancia  :laugh:

Dejo aquí un par de vídeos sobre eso que puede evitar mas de un dolor de cabeza:
http://www.youtube.com/watch?v=rpZMdkdb4x4&list=PL860669912E26CE1C&index=22
http://www.youtube.com/watch?v=N3yLYgUR-UI&list=PL860669912E26CE1C


« Última modificación: 10 Noviembre 2013, 23:33 pm por vangodp » En línea

themau1111

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Problema con clases
« Respuesta #2 en: 10 Noviembre 2013, 23:57 pm »

Lo que dice ahí es que tienes muchos tipos en una declaracion.
Y el error esta en el archivo claseservicio.h
Puede que tengas includes dobles no se.
Si tienes doble include o algo eso se arregla con #ifdef, #ifndef.
Es una espacie de protección contra dobles include.
Ejemplo: sabemos que para poder usar cout debemos incluir #include <iostream> al principio del archivo, pero si te fias al incluir un archivo .h al principio de main puedes juntarte con 2 #include <iostrem>

entonces lo que puedes hacer es poner en el .h la protección esta que no es mas que
// En el archivo.h
#ifndef //si no está definido
#define // se define

//tu código aqui

#endif //fin de la protección

 Bueno, no se si es por eso pero creo que puede ser.
 Si no que alguien nos ilumine mas nuestra ignorancia  :laugh:

Dejo aquí un par de vídeos sobre eso que puede evitar mas de un dolor de cabeza:
http://www.youtube.com/watch?v=rpZMdkdb4x4&list=PL860669912E26CE1C&index=22
http://www.youtube.com/watch?v=N3yLYgUR-UI&list=PL860669912E26CE1C



si , los tengo asi
#ifndef CLASESERVICIO_H_INCLUDED
#define CLASESERVICIO_H_INCLUDED
#include <conio.h>
#include <dos.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>




class servicios
{
  public:
      int cod_servicio[10],comision [10];
      float costo [10];
      char servicio[10][50];
   public:
       void constante();
       void mostrar();
       void capturar();
       void buscar();
       void modificar();
};

void servicios::constante()
{
    system("cls");
    printf("\n\n\n");
    strcpy(servicio
  • ,"Cable basico");
    cod_servicio[0]=111;
    costo[0]=150.00;
    comision[0]=5;

    strcpy(servicio [1],"Cable total");
    cod_servicio [1]=112;
    costo[1]=300.00;
    comision[1]=7;

    strcpy(servicio [2],"Cable total plus");
    cod_servicio[2]=113;
    costo[2]=550.00;
    comision[2]=10;

    strcpy(servicio [3],"Internet y cable");
    cod_servicio [3]=114;
    costo [3]=469.00;
    comision[3]=12;

    strcpy(servicio [4],"Internet y telefono");
    cod_servicio [4]=115;
    costo [4]=500.00;
    comision[4]=12;

    strcpy(servicio [5],"Cable, telefono e internet");
    cod_servicio [5]=116;
    costo [5]=635.00;
    comision[5]=15;

}

       void servicios::mostrar()
   {

printf("\n\n\n");
    int i,elem,c1,op2;
    do{
    system("cls");
    printf("Escriba el codigo de servicio que quiere buscar\n\n");
    scanf("%d",& elem);
    for(i=0;i<=10;i++)
 {
    if (cod_servicio==elem)
    {
         printf("\n\nNombre de servicio: %s\n", servicio);
         printf("Codigo de servicio: %d\n", cod_servicio);
         printf("Costo de servicio: %.2f\n\n", costo);
         printf("Comision de servicio: %i porciento\n\n", comision);
         i=10;
        c1=0;
      }
     else
     {
     c1=1;
     }
     }
     if(c1==1)
     {
     printf("No se encuetra el elemento!!!\n\n\n");
     }
     i=0;
     printf("desea seguir consultando datos si=1,no=2\n");
     scanf("%i",& op2);
     }while(op2==1);


   }


 void servicios::capturar()
    {     int c=6,d=6,e=6,f=6;
        int ac=0,op1;
        system("cls");
        printf("\n");
       do
       {

       printf("\n\nIngrese nuevo servicio\n");
       do{
       gets(servicio[c]);
       }while(strcmp(servicio[c]," ")==0 || strcmp(servicio[c],"")==0);
       ac=cod_servicio[d-1];
       cod_servicio[d]=ac+1;
       printf("Ingrese costo de servicio\n");
       scanf("%f",& costo[e]);
       printf("Ingrese comision de servicio\n");
       scanf("%i",& comision[f]);
       printf("desea seguir ingresando datos si=1,no=2\n");
       scanf("%i",& op1);
              c++;
              d++;
              e++;
              f++;

       }while(op1==1);
    }

 void servicios::buscar()
   {
   printf("\n\n\n");
    int i,elem,c1,op2;
    do{
    system("cls");
    printf("Escriba el codigo de servicio que quiere mostrar\n\n");
    scanf("%d",& elem);
    for(i=0;i<=10;i++)
 {
    if (cod_servicio==elem)
    {
         printf("\n\nNombre de servicio: %s\n", servicio);
         printf("Codigo de servicio: %d\n", cod_servicio);

         i=10;
        c1=0;
      }
     else
     {
     c1=1;
     }
     }
     if(c1==1)
     {
     printf("No se encuetra el elemento que busca!!!\n\n\n");
     }
     i=0;
     printf("desea seguir consultando datos si=1,no=2\n");
     scanf("%d",& op2);
     }while(op2==1);
    }

  void servicios::modificar()
  {
    printf("\n\n\n");
    int i,elem,c1,op2,opz;
    do{
    system("cls");
    printf("Escriba el codigo de servicio que quiere modificar\n\n");
    scanf("%d",& elem);
    for(i=0;i<=10;i++)
    {
    if (cod_servicio==elem)
     {
       do{
       printf("\n\n¿Que datos quiere modificar\n");
       printf("\n\n1-Nombre de servicio\n2-Costo de servicio\n3-Comision de servicio\n");
       scanf("%i",&opz);
       }while(opz<1 || opz >3);
       switch (opz)
       {
            case 1:
                system ("cls");
               printf("\n\nIngrese nuevo nombre de servicio\n");
               do{
               gets(servicio);
               }while(strcmp(servicio," ")==0 || strcmp(servicio,"")==0);
               break;

            case 2:
                system ("cls");
                printf("Ingrese costo de servicio\n");
                scanf("%f",& costo);
                break;
            case 3:
                system ("cls");
                printf("Ingrese comision de servicio\n");
                scanf("%i",& comision);
                break;
        }
        c1=0;
        i=10;
       system("cls");
      }
      else
      {
      c1=1;
      }
    }
     if(c1==1)
     {
     printf("No se encuetra el elemento que quiere modificar!!!\n\n\n");
     }
     i=0;
       do{
       printf("desea seguir modificando datos si=1,no=2\n");
       scanf("%d",& op2);
       }while(op2<1 || op2>2);
    }while (op2==1);
  }



#endif // CLASESERVICIO_H_INCLUDED
En línea

vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: Problema con clases c++
« Respuesta #3 en: 11 Noviembre 2013, 00:28 am »

       char servicio[10][50]; me da error con el  strcpy(servicio,"Cable basico");

Usa el codebox  o no te vamos a poder ayudar, el código tiene fallos y no logro entender que quieres :(

     
En línea

themau1111

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Problema con clases c++
« Respuesta #4 en: 11 Noviembre 2013, 00:41 am »

       char servicio[10][50]; me da error con el  strcpy(servicio,"Cable basico");

Usa el codebox  o no te vamos a poder ayudar, el código tiene fallos y no logro entender que quieres :(

     

si uso code blocks, pero ami no me sale error ahi solo me sale el error k te mencionaba arriba  error: multiple types in one declaration, en la llave k esta despues de las funciones
En línea

vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: Problema con clases c++
« Respuesta #5 en: 11 Noviembre 2013, 00:51 am »

no codeblocks digo que pongas el código aqui:
Código
  1.  
  2. #include <conio.h>
  3. #include <dos.h>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7. using namespace std;
  8.  
  9. class servicios{
  10.  
  11. public:  
  12.   servicios(){};
  13.   ~servicios(){};  
  14.       int cod_servicio[10],comision [10];
  15.       float costo [10];
  16.       char servicio[10][50];
  17.       void constante();
  18.       void mostrar();
  19.       void capturar();
  20.       void buscar();
  21.       void modificar();
  22.  
  23.  
  24.  
  25. };
  26.  
  27. void servicios::constante()
  28. {
  29.    system("cls");
  30.    printf("\n\n\n");
  31.    strcpy(servicio
  32.  
  33.    ,"Cable basico");
  34.  
  35.    cod_servicio[0]=111;
  36.    costo[0]=150.00;
  37.    comision[0]=5;
  38.  
  39.    strcpy(servicio [1],"Cable total");
  40.    cod_servicio [1]=112;
  41.    costo[1]=300.00;
  42.    comision[1]=7;
  43.  
  44.    strcpy(servicio [2],"Cable total plus");
  45.    cod_servicio[2]=113;
  46.    costo[2]=550.00;
  47.    comision[2]=10;
  48.  
  49.    strcpy(servicio [3],"Internet y cable");
  50.    cod_servicio [3]=114;
  51.    costo [3]=469.00;
  52.    comision[3]=12;
  53.  
  54.    strcpy(servicio [4],"Internet y telefono");
  55.    cod_servicio [4]=115;
  56.    costo [4]=500.00;
  57.    comision[4]=12;
  58.  
  59.    strcpy(servicio [5],"Cable, telefono e internet");
  60.    cod_servicio [5]=116;
  61.    costo [5]=635.00;
  62.    comision[5]=15;
  63.  
  64. }
  65.  
  66.       void servicios::mostrar()
  67.   {
  68.  
  69. printf("\n\n\n");
  70.    int i,elem,c1,op2;
  71.    do{
  72.    system("cls");
  73.    printf("Escriba el codigo de servicio que quiere buscar\n\n");
  74.    scanf("%d",& elem);
  75.    for(i=0;i<=10;i++)
  76. {
  77.    if (cod_servicio==elem)
  78.    {
  79.         printf("\n\nNombre de servicio: %s\n", servicio);
  80.         printf("Codigo de servicio: %d\n", cod_servicio);
  81.         printf("Costo de servicio: %.2f\n\n", costo);
  82.         printf("Comision de servicio: %i porciento\n\n", comision);
  83.         i=10;
  84.        c1=0;
  85.      }
  86.     else
  87.     {
  88.     c1=1;
  89.     }
  90.     }
  91.     if(c1==1)
  92.     {
  93.     printf("No se encuetra el elemento!!!\n\n\n");
  94.     }
  95.     i=0;
  96.     printf("desea seguir consultando datos si=1,no=2\n");
  97.     scanf("%i",& op2);
  98.     }while(op2==1);
  99.  
  100.  
  101.   }
  102.  
  103.  
  104. void servicios::capturar()
  105.    {     int c=6,d=6,e=6,f=6;
  106.        int ac=0,op1;
  107.        system("cls");
  108.        printf("\n");
  109.       do
  110.       {
  111.  
  112.       printf("\n\nIngrese nuevo servicio\n");
  113.       do{
  114.       gets(servicio[c]);
  115.       }while(strcmp(servicio[c]," ")==0 || strcmp(servicio[c],"")==0);
  116.       ac=cod_servicio[d-1];
  117.       cod_servicio[d]=ac+1;
  118.       printf("Ingrese costo de servicio\n");
  119.       scanf("%f",& costo[e]);
  120.       printf("Ingrese comision de servicio\n");
  121.       scanf("%i",& comision[f]);
  122.       printf("desea seguir ingresando datos si=1,no=2\n");
  123.       scanf("%i",& op1);
  124.              c++;
  125.              d++;
  126.              e++;
  127.              f++;
  128.  
  129.       }while(op1==1);
  130.    }
  131.  
  132. void servicios::buscar()
  133.   {
  134.   printf("\n\n\n");
  135.    int i,elem,c1,op2;
  136.    do{
  137.    system("cls");
  138.    printf("Escriba el codigo de servicio que quiere mostrar\n\n");
  139.    scanf("%d",& elem);
  140.    for(i=0;i<=10;i++)
  141. {
  142.    if (cod_servicio==elem)
  143.    {
  144.         printf("\n\nNombre de servicio: %s\n", servicio);
  145.         printf("Codigo de servicio: %d\n", cod_servicio);
  146.  
  147.         i=10;
  148.        c1=0;
  149.      }
  150.     else
  151.     {
  152.     c1=1;
  153.     }
  154.     }
  155.     if(c1==1)
  156.     {
  157.     printf("No se encuetra el elemento que busca!!!\n\n\n");
  158.     }
  159.     i=0;
  160.     printf("desea seguir consultando datos si=1,no=2\n");
  161.     scanf("%d",& op2);
  162.     }while(op2==1);
  163.    }
  164.  
  165.  void servicios::modificar()
  166.  {
  167.    printf("\n\n\n");
  168.    int i,elem,c1,op2,opz;
  169.    do{
  170.    system("cls");
  171.    printf("Escriba el codigo de servicio que quiere modificar\n\n");
  172.    scanf("%d",& elem);
  173.    for(i=0;i<=10;i++)
  174.    {
  175.    if (cod_servicio==elem)
  176.     {
  177.       do{
  178.       printf("\n\n¿Que datos quiere modificar\n");
  179.       printf("\n\n1-Nombre de servicio\n2-Costo de servicio\n3-Comision de servicio\n");
  180.       scanf("%i",&opz);
  181.       }while(opz<1 || opz >3);
  182.       switch (opz)
  183.       {
  184.            case 1:
  185.                system ("cls");
  186.               printf("\n\nIngrese nuevo nombre de servicio\n");
  187.               do{
  188.               gets(servicio);
  189.               }while(strcmp(servicio," ")==0 || strcmp(servicio,"")==0);
  190.               break;
  191.  
  192.            case 2:
  193.                system ("cls");
  194.                printf("Ingrese costo de servicio\n");
  195.                scanf("%f",& costo);
  196.                break;
  197.            case 3:
  198.                system ("cls");
  199.                printf("Ingrese comision de servicio\n");
  200.                scanf("%i",& comision);
  201.                break;
  202.        }
  203.        c1=0;
  204.        i=10;
  205.       system("cls");
  206.      }
  207.      else
  208.      {
  209.      c1=1;
  210.      }
  211.    }
  212.     if(c1==1)
  213.     {
  214.     printf("No se encuetra el elemento que quiere modificar!!!\n\n\n");
  215.     }
  216.     i=0;
  217.       do{
  218.       printf("desea seguir modificando datos si=1,no=2\n");
  219.       scanf("%d",& op2);
  220.       }while(op2<1 || op2>2);
  221.    }while (op2==1);
  222.  }
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230. int main ()
  231. {
  232.  
  233.  
  234.  
  235.  
  236.    return 0;
  237. }
  238.  
  239.  

que esta dando error el código que pegaste antes.
En línea

themau1111

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Problema con clases c++
« Respuesta #6 en: 11 Noviembre 2013, 03:02 am »

Código
  1. #ifndef CLASESERVICIO_H_INCLUDED
  2. #define CLASESERVICIO_H_INCLUDED
  3. #include <conio.h>
  4. #include <dos.h>
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <string.h>
  8.  
  9.  
  10.  
  11.  
  12. class servicios
  13. {
  14.  public:
  15.      int cod_servicio[10],comision [10];
  16.      float costo [10];
  17.      char servicio[10][50];
  18.   public:
  19.       void constante();
  20.       void mostrar();
  21.       void capturar();
  22.       void buscar();
  23.       void modificar();
  24. };
  25.  
  26. void servicios2::constante()
  27. {
  28.    system("cls");
  29.    printf("\n\n\n");
  30.    strcpy(servicio [0],"Cable basico");
  31.    cod_servicio[0]=111;
  32.    costo[0]=150.00;
  33.    comision[0]=5;
  34.  
  35.    strcpy(servicio [1],"Cable total");
  36.    cod_servicio [1]=112;
  37.    costo[1]=300.00;
  38.    comision[1]=7;
  39.  
  40.    strcpy(servicio [2],"Cable total plus");
  41.    cod_servicio[2]=113;
  42.    costo[2]=550.00;
  43.    comision[2]=10;
  44.  
  45.    strcpy(servicio [3],"Internet y cable");
  46.    cod_servicio [3]=114;
  47.    costo [3]=469.00;
  48.    comision[3]=12;
  49.  
  50.    strcpy(servicio [4],"Internet y telefono");
  51.    cod_servicio [4]=115;
  52.    costo [4]=500.00;
  53.    comision[4]=12;
  54.  
  55.    strcpy(servicio [5],"Cable, telefono e internet");
  56.    cod_servicio [5]=116;
  57.    costo [5]=635.00;
  58.    comision[5]=15;
  59.  
  60. }
  61.  
  62.       void servicios2::mostrar()
  63.   {
  64.  
  65. printf("\n\n\n");
  66.    int i,elem,c1,op2;
  67.    do{
  68.    system("cls");
  69.    printf("Escriba el codigo de servicio que quiere buscar\n\n");
  70.    scanf("%d",& elem);
  71.    for(i=0;i<=10;i++)
  72. {
  73.    if (cod_servicio[i]==elem)
  74.    {
  75.         printf("\n\nNombre de servicio: %s\n", servicio[i]);
  76.         printf("Codigo de servicio: %d\n", cod_servicio[i]);
  77.         printf("Costo de servicio: %.2f\n\n", costo[i]);
  78.         printf("Comision de servicio: %i porciento\n\n", comision[i]);
  79.         i=10;
  80.        c1=0;
  81.      }
  82.     else
  83.     {
  84.     c1=1;
  85.     }
  86.     }
  87.     if(c1==1)
  88.     {
  89.     printf("No se encuetra el elemento!!!\n\n\n");
  90.     }
  91.     i=0;
  92.     printf("desea seguir consultando datos si=1,no=2\n");
  93.     scanf("%i",& op2);
  94.     }while(op2==1);
  95.  
  96.  
  97.   }
  98.  
  99.  
  100. void servicios2::capturar()
  101.    {     int c=6,d=6,e=6,f=6;
  102.        int ac=0,op1;
  103.        system("cls");
  104.        printf("\n");
  105.       do
  106.       {
  107.  
  108.       printf("\n\nIngrese nuevo servicio\n");
  109.       do{
  110.       gets(servicio[c]);
  111.       }while(strcmp(servicio[c]," ")==0 || strcmp(servicio[c],"")==0);
  112.       ac=cod_servicio[d-1];
  113.       cod_servicio[d]=ac+1;
  114.       printf("Ingrese costo de servicio\n");
  115.       scanf("%f",& costo[e]);
  116.       printf("Ingrese comision de servicio\n");
  117.       scanf("%i",& comision[f]);
  118.       printf("desea seguir ingresando datos si=1,no=2\n");
  119.       scanf("%i",& op1);
  120.              c++;
  121.              d++;
  122.              e++;
  123.              f++;
  124.  
  125.       }while(op1==1);
  126.    }
  127.  
  128. void servicios2::buscar()
  129.   {
  130.   printf("\n\n\n");
  131.    int i,elem,c1,op2;
  132.    do{
  133.    system("cls");
  134.    printf("Escriba el codigo de servicio que quiere mostrar\n\n");
  135.    scanf("%d",& elem);
  136.    for(i=0;i<=10;i++)
  137. {
  138.    if (cod_servicio[i]==elem)
  139.    {
  140.         printf("\n\nNombre de servicio: %s\n", servicio[i]);
  141.         printf("Codigo de servicio: %d\n", cod_servicio[i]);
  142.  
  143.         i=10;
  144.        c1=0;
  145.      }
  146.     else
  147.     {
  148.     c1=1;
  149.     }
  150.     }
  151.     if(c1==1)
  152.     {
  153.     printf("No se encuetra el elemento que busca!!!\n\n\n");
  154.     }
  155.     i=0;
  156.     printf("desea seguir consultando datos si=1,no=2\n");
  157.     scanf("%d",& op2);
  158.     }while(op2==1);
  159.    }
  160.  
  161.  void servicios2::modificar()
  162.  {
  163.    printf("\n\n\n");
  164.    int i,elem,c1,op2,opz;
  165.    do{
  166.    system("cls");
  167.    printf("Escriba el codigo de servicio que quiere modificar\n\n");
  168.    scanf("%d",& elem);
  169.    for(i=0;i<=10;i++)
  170.    {
  171.    if (cod_servicio[i]==elem)
  172.     {
  173.       do{
  174.       printf("\n\n¿Que datos quiere modificar\n");
  175.       printf("\n\n1-Nombre de servicio\n2-Costo de servicio\n3-Comision de servicio\n");
  176.       scanf("%i",&opz);
  177.       }while(opz<1 || opz >3);
  178.       switch (opz)
  179.       {
  180.            case 1:
  181.                system ("cls");
  182.               printf("\n\nIngrese nuevo nombre de servicio\n");
  183.               do{
  184.               gets(servicio[i]);
  185.               }while(strcmp(servicio[i]," ")==0 || strcmp(servicio[i],"")==0);
  186.               break;
  187.  
  188.            case 2:
  189.                system ("cls");
  190.                printf("Ingrese costo de servicio\n");
  191.                scanf("%f",& costo[i]);
  192.                break;
  193.            case 3:
  194.                system ("cls");
  195.                printf("Ingrese comision de servicio\n");
  196.                scanf("%i",& comision[i]);
  197.                break;
  198.        }
  199.        c1=0;
  200.        i=10;
  201.       system("cls");
  202.      }
  203.      else
  204.      {
  205.      c1=1;
  206.      }
  207.    }
  208.     if(c1==1)
  209.     {
  210.     printf("No se encuetra el elemento que quiere modificar!!!\n\n\n");
  211.     }
  212.     i=0;
  213.       do{
  214.       printf("desea seguir modificando datos si=1,no=2\n");
  215.       scanf("%d",& op2);
  216.       }while(op2<1 || op2>2);
  217.    }while (op2==1);
  218.  }
  219.  
  220.  
  221.  
  222. #endif // CLASESERVICIO_H_INCLUDED
  223.  
En línea

xaps

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: Problema con clases c++
« Respuesta #7 en: 13 Noviembre 2013, 02:22 am »

Mirándomelo así por encima, lo que he visto es que usas el tag "public" dos veces. No deberias usar "private" para la declaración de variables y "public" para la declaración de funciones?
Es decir, envez de

Código
  1. class servicios
  2. {
  3.  public:
  4.      int cod_servicio[10],comision [10];
  5.      float costo [10];
  6.      char servicio[10][50];
  7.   public:
  8.       void constante();
  9.       void mostrar();
  10.       void capturar();
  11.       void buscar();
  12.       void modificar();
  13. };

deberia ser

Código
  1. class servicios
  2. {
  3.  private:
  4.      int cod_servicio[10],comision [10];
  5.      float costo [10];
  6.      char servicio[10][50];
  7.   public:
  8.       void constante();
  9.       void mostrar();
  10.       void capturar();
  11.       void buscar();
  12.       void modificar();
  13. };

Corregirme si me equivoco.
En línea

"The programmers of tomorrow are the wizards of the future" - Gave Newel
vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: Problema con clases c++
« Respuesta #8 en: 13 Noviembre 2013, 15:30 pm »

Tal como esta ahora si me funciona, ahora el funcionamiento interno es cosa tuya.
Echa un ojo y dime si ves algo mas. :D
Código
  1. //servicios.h
  2. #ifndef CLASESERVICIO_H_INCLUDED
  3. #define CLASESERVICIO_H_INCLUDED
  4. #include <conio.h>
  5. #include <dos.h>
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <string.h>
  9.  
  10.  
  11.  
  12.  
  13. class service
  14. {
  15. private:
  16.     int cod_servicio[10];
  17.  int comision [10];
  18.     float costo [10];
  19.     char servicio[10][50];
  20.  public:
  21.     service (){}
  22.     ~service (){}
  23.      void constante();
  24.      void mostrar();
  25.      void capturar();
  26.      void buscar();
  27.      void modificar();
  28. };
  29.  
  30. void service::constante()
  31. {
  32.   system("cls");
  33.   printf("\n\n\n");
  34.   strcpy(servicio [0],"Cable basico");
  35.   cod_servicio[0]=111;
  36.   costo[0]=150.00;
  37.   comision[0]=5;
  38.  
  39.   strcpy(servicio [1],"Cable total");
  40.   cod_servicio [1]=112;
  41.   costo[1]=300.00;
  42.   comision[1]=7;
  43.  
  44.   strcpy(servicio [2],"Cable total plus");
  45.   cod_servicio[2]=113;
  46.   costo[2]=550.00;
  47.   comision[2]=10;
  48.  
  49.   strcpy(servicio [3],"Internet y cable");
  50.   cod_servicio [3]=114;
  51.   costo [3]=469.00;
  52.   comision[3]=12;
  53.  
  54.   strcpy(servicio [4],"Internet y telefono");
  55.   cod_servicio [4]=115;
  56.   costo [4]=500.00;
  57.   comision[4]=12;
  58.  
  59.   strcpy(servicio [5],"Cable, telefono e internet");
  60.   cod_servicio [5]=116;
  61.   costo [5]=635.00;
  62.   comision[5]=15;
  63.  
  64. }
  65.  
  66. void service::mostrar()
  67. {
  68.   printf("\n\n\n");
  69.    int i,elem,c1,op2;
  70.    do {
  71.   system("cls");
  72.   printf("Escriba el codigo de servicio que quiere buscar\n\n");
  73.   scanf("%d",& elem);
  74.   for(i=0;i<=10;i++)
  75. {
  76.   if (cod_servicio[i]==elem)
  77.   {
  78.     printf("\n\nNombre de servicio: %s\n", servicio[i]);
  79.             printf("Codigo de servicio: %d\n", cod_servicio[i]);
  80.          printf("Costo de servicio: %.2f\n\n", costo[i]);
  81.          printf("Comision de servicio: %i porciento\n\n", comision[i]);
  82.          i=10;
  83.        c1=0;
  84. }
  85. else
  86.     {
  87.         c1=1;
  88. }
  89.       }
  90.     if (c1==1)
  91.     {
  92.          printf("No se encuetra el elemento!!!\n\n\n");
  93.       }
  94.  
  95.       i=0;
  96.  
  97.       printf("desea seguir consultando datos si=1,no=2\n");
  98.       scanf("%i",&op2);
  99.  
  100.    }while(op2==1);
  101.  
  102.  
  103. }
  104.  
  105.  
  106. void service::capturar()
  107. {
  108.      int c=6,d=6,e=6,f=6;
  109.      int ac=0,op1;
  110.  
  111.      system("cls");
  112.      printf("\n");
  113.  
  114.      do
  115.      {
  116.         printf("\n\nIngrese nuevo servicio\n");
  117.  
  118.       do {
  119.         gets(servicio[c]);
  120.       }while(strcmp(servicio[c]," ")==0 || strcmp(servicio[c],"")==0);
  121.  
  122.       ac=cod_servicio[d-1]; // primer código es 5
  123.       cod_servicio[d]=ac+1; //
  124.  
  125.       printf("Ingrese costo de servicio\n");
  126.       scanf("%f",& costo[e]);
  127.       printf("Ingrese comision de servicio\n");
  128.       scanf("%i",& comision[f]);
  129.       printf("desea seguir ingresando datos si=1,no=2\n");
  130.       scanf("%i",& op1);
  131.  
  132.         c++;
  133.         d++;
  134.         e++;
  135.         f++;
  136.  
  137.      }while(op1==1);
  138. }
  139.  
  140. void service::buscar()
  141. {
  142.   printf("\n\n\n");
  143.   int i,elem,c1,op2;
  144.   do{
  145.     system("cls");
  146.   printf("Escriba el codigo de servicio que quiere mostrar\n\n");
  147.   scanf("%d",& elem);
  148.  
  149.   for(i=0;i<=10;i++)
  150. {
  151.        if (cod_servicio[i]==elem)//
  152.   {
  153.       printf("\n\nNombre de servicio: %s\n", servicio[i]);
  154.         printf("Codigo de servicio: %d\n", cod_servicio[i]);
  155.  
  156.         i=10;
  157.       c1=0;
  158.            }
  159.     else
  160.   {
  161.       c1=1;
  162.            }
  163.         }
  164.     if(c1==1)
  165.     {
  166.       printf("No se encuetra el elemento que busca!!!\n\n\n");
  167.     }
  168.  
  169.     i=0;
  170.  
  171.     printf("desea seguir consultando datos si=1,no=2\n");
  172.     scanf("%d",& op2);
  173.  
  174.      }while(op2==1);
  175. }
  176.  
  177. void service::modificar()
  178. {
  179.      printf("\n\n\n");
  180.   int i,elem,c1,op2,opz;
  181.   do{
  182.     system("cls");
  183.   printf("Escriba el codigo de servicio que quiere modificar\n\n");
  184.   scanf("%d",& elem);
  185.   for(i=0;i<=10;i++)
  186.   {
  187.     if (cod_servicio[i]==elem)
  188.     {
  189.          do {
  190.          printf("\n\n¿Que datos quiere modificar\n");
  191.       printf("\n\n1-Nombre de servicio\n2-Costo de servicio\n3-Comision de servicio\n");
  192.       scanf("%i",&opz);
  193.                }while(opz<1 || opz >3);
  194.  
  195.       switch (opz)
  196.       {
  197.             case 1:
  198.               system ("cls");
  199.               printf("\n\nIngrese nuevo nombre de servicio\n");
  200.               do{
  201.               gets(servicio[i]);
  202.               }while(strcmp(servicio[i]," ")==0 || strcmp(servicio[i],"")==0);
  203.               break;
  204.  
  205.           case 2:
  206.               system ("cls");
  207.               printf("Ingrese costo de servicio\n");
  208.               scanf("%f",& costo[i]);
  209.               break;
  210.           case 3:
  211.               system ("cls");
  212.               printf("Ingrese comision de servicio\n");
  213.               scanf("%i",& comision[i]);
  214.               break;
  215.             }
  216.       c1=0;
  217.       i=10;
  218.       system("cls");
  219.          }
  220.     else
  221.     {
  222.         c1=1;
  223.     }
  224.         }
  225.     if (c1==1)
  226.     {
  227.     printf("No se encuetra el elemento que quiere modificar!!!\n\n\n");
  228.      }
  229.  
  230.     i=0;
  231.  
  232.       do {
  233.       printf("desea seguir modificando datos si=1,no=2\n");
  234.       scanf("%d",& op2);
  235.       }while(op2<1 || op2>2);
  236.  
  237.   }while (op2==1);
  238. }
  239.  
  240.  
  241.  
  242. #endif // CLASESERVICIO_H_INCLUDED
  243.  

Código
  1. //main.cpp
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. #include "servicios.h"
  6.  
  7.  
  8.  
  9. int main ()
  10. {
  11.    service serv1;
  12.  
  13. //serv1.capturar();
  14.    //serv1.mostrar();
  15. //serv1.buscar();
  16. //serv1.constante();
  17.    //serv1.modificar();
  18.  
  19.    return 0;
  20. }
  21.  
En línea

KaL3o

Desconectado Desconectado

Mensajes: 60



Ver Perfil
Re: Problema con clases c++
« Respuesta #9 en: 14 Noviembre 2013, 05:26 am »

a mi me surge la duda de ¿Porque no separas los metodos de la clase en un <nombre_clase>.cpp ???
En línea

Todos los caminos se vuelven a juntar. Pero nunca de la misma forma.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con las clases en c#
.NET (C#, VB.NET, ASP)
The Jackal 2 2,590 Último mensaje 18 Noviembre 2007, 13:10 pm
por The Jackal
Problema con clases
Java
Debci 3 2,570 Último mensaje 9 Julio 2009, 20:53 pm
por Amerikano|Cls
Problema con Clases
.NET (C#, VB.NET, ASP)
Dreamcacher 1 2,052 Último mensaje 5 Octubre 2011, 20:51 pm
por Keyen Night
problema con clases php
PHP
Zeroql 8 3,844 Último mensaje 13 Noviembre 2011, 20:08 pm
por Zeroql
Problema con clases
Java
Lain0x 5 3,530 Último mensaje 24 Noviembre 2011, 16:51 pm
por Lain0x
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines