Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: jairogon en 2 Junio 2010, 01:29 am



Título: Duda con string
Publicado por: jairogon en 2 Junio 2010, 01:29 am

Cordial Saludo

En el ejemplo de abajo, llamado producción, aparece la línea que dice:

string articulos[10];
Código:
/*La compañía manufacturera Monte Real fabrica 10 artículos diferentes
y se trabajan tres turnos por día, la compañía necesita obtener un reporte
al final del día del total de la producción por artículo y el total  de la
producción por turno. Desarrollar un programa que pida al usuario el nombre
de cada artículo y la producción que se hizo en cada uno de los tres turnos del día
y genere un reporte al final del día mostrado en pantalla de el total de de la producción
por artículo, el total de la producción por turno  y el artículo con mayor producción.*/

#include <iostream>
#include <conio.h>
using namespace std;
string articulos[10];
int turno[30];

int main()
{
    cout<<"..:: MANUFACTURERA MONTE REAL ::.\n--------------------------------------\n";
    string aa, bb, cc, dd, ee, ff, gg, hh, ii, jj;
    int a, b, c, d, e, f, g, h, i, j, k , l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, xx, yy, zz, ww;
    cout<<"Ingrese el nombre del producto 1: ";
    cin>>aa;
    articulos[0] = aa;
    cout<<"Produccion en el turno 1: ";
    cin>>a;
    turno[0] = a;
    cout<<"Produccion en el turno 2: ";
    cin>>b;
    turno[1] = b;
    cout<<"Produccion en el turno 3: ";
    cin>>c;
    turno[2] = c;
    cout<<"--------------------------------------\n";
    cout<<"Ingrese el nombre del producto 2: ";
    cin>>bb;
    articulos[1] = bb;
    cout<<"Produccion en el turno 1: ";
    cin>>d;
    turno[3] = d;
    cout<<"Produccion en el turno 2: ";
    cin>>e;
    turno[4] = e;
    cout<<"Produccion en el turno 3: ";
    cin>>f;
    turno[5] = f;
    cout<<"--------------------------------------\n";
    cout<<"Ingrese el nombre del producto 3: ";
    cin>>cc;
    articulos[2] = cc;
    cout<<"Produccion en el turno 1: ";
    cin>>g;
    turno[6] = g;
    cout<<"Produccion en el turno 2: ";
    cin>>h;
    turno[7] = h;
    cout<<"Produccion en el turno 3: ";
    cin>>i;
    turno[8] = i;
    cout<<"--------------------------------------\n";
    cout<<"Ingrese el nombre del producto 4: ";
    cin>>dd;
    articulos[3] = dd;
    cout<<"Produccion en el turno 1: ";
    cin>>j;
    turno[9] = j;
    cout<<"Produccion en el turno 2: ";
    cin>>k;
    turno[10] = k;
    cout<<"Produccion en el turno 3: ";
    cin>>l;
    turno[11] = l;
    cout<<"--------------------------------------\n";
    cout<<"Ingrese el nombre del producto 5: ";
    cin>>ee;
    articulos[4] = ee;
    cout<<"Produccion en el turno 1: ";
    cin>>m;
    turno[12] = m;
    cout<<"Produccion en el turno 2: ";
    cin>>n;
    turno[13] = n;
    cout<<"Produccion en el turno 3: ";
    cin>>o;
    turno[14] = o;
    cout<<"--------------------------------------\n";
    cout<<"Ingrese el nombre del producto 6: ";
    cin>>ff;
    articulos[5] = ff;
    cout<<"Produccion en el turno 1: ";
    cin>>p;
    turno[15] = p;
    cout<<"Produccion en el turno 2: ";
    cin>>q;
    turno[16] = q;
    cout<<"Produccion en el turno 3: ";
    cin>>r;
    turno[17] = r;
    cout<<"--------------------------------------\n";
    cout<<"Ingrese el nombre del producto 7: ";
    cin>>gg;
    articulos[6] = gg;
    cout<<"Produccion en el turno 1: ";
    cin>>s;
    turno[18] = s;
    cout<<"Produccion en el turno 2: ";
    cin>>t;
    turno[19] = t;
    cout<<"Produccion en el turno 3: ";
    cin>>u;
    turno[20] = u;
    cout<<"--------------------------------------\n";
    cout<<"Ingrese el nombre del producto 8: ";
    cin>>hh;
    articulos[7] = hh;
    cout<<"Produccion en el turno 1: ";
    cin>>v;
    turno[21] = v;
    cout<<"Produccion en el turno 2: ";
    cin>>w;
    turno[22] = w;
    cout<<"Produccion en el turno 3: ";
    cin>>x;
    turno[23] = x;
    cout<<"--------------------------------------\n";
    cout<<"Ingrese el nombre del producto 9: ";
    cin>>ii;
    articulos[8] = ii;
    cout<<"Produccion en el turno 1: ";
    cin>>y;
    turno[24] = y;
    cout<<"Produccion en el turno 2: ";
    cin>>z;
    turno[25] = z;
    cout<<"Produccion en el turno 3: ";
    cin>>xx;
    turno[26] = xx;
    cout<<"--------------------------------------\n";
    cout<<"Ingrese el nombre del producto 10: ";
    cin>>jj;
    articulos[9] = jj;
    cout<<"Produccion en el turno 1: ";
    cin>>yy;
    turno[27] = yy;
    cout<<"Produccion en el turno 2: ";
    cin>>zz;
    turno[28] = zz;
    cout<<"Produccion en el turno 3: ";
    cin>>ww;
    turno[29] = ww;
    cout<<"--------------------------------------\n";
    cout<<"--------------------------------------\n";
    cout<<"-> PRODUCCION POR ARTICULO\n";
    int aaa = a+b+c;
    cout<<"1. "<<aa<<": "<<aaa<<"\n";
    int bbb = d+e+f;
    cout<<"2. "<<bb<<": "<<bbb<<"\n";
    int ccc = g+h+i;
    cout<<"3. "<<cc<<": "<<ccc<<"\n";
    int ddd = j+k+l;
    cout<<"4. "<<dd<<": "<<ddd<<"\n";
    int eee = m+n+o;
    cout<<"5. "<<ee<<": "<<eee<<"\n";
    int fff = p+q+r;
    cout<<"6. "<<ff<<": "<<fff<<"\n";
    int ggg = s+t+u;
    cout<<"7. "<<gg<<": "<<ggg<<"\n";
    int hhh = v+w+x;
    cout<<"8. "<<hh<<": "<<hhh<<"\n";
    int iii = y+z+xx;
    cout<<"9. "<<ii<<": "<<iii<<"\n";
    int jjj = yy+zz+ww;
    cout<<"10. "<<jj<<": "<<jjj<<"\n";
    cout<<"--------------------------------------\n";
    cout<<"--------------------------------------\n";
    cout<<"-> PRODUCCION POR TURNO\n";
    int uuu = a+d+g+j+m+p+s+v+y+yy;
    cout<<"TURNO 1: "<<uuu<<"\n";
    int ttt = b+e+h+k+n+q+t+w+z+zz;
    cout<<"TURNO 2: "<<ttt<<"\n";
    int vvv = c+f+i+l+o+r+u+x+xx+ww;
    cout<<"TURNO 3: "<<vvv<<"\n";
    cout<<"--------------------------------------\n";
    cout<<"--------------------------------------\n";
    cout<<"-> ARTICULO CON MAYOR PRODUCCION\n";
    if((aaa>bbb)&&(aaa>ccc)&&(aaa>ddd)&&(aaa>eee)&&(aaa>fff)&&(aaa>ggg)&&(aaa>hhh)&&(aaa>iii)&&(aaa>jjj))
    {
       cout<<aa<<": "<<aaa<<"\n";
    }else if((bbb>aaa)&&(bbb>ccc)&&(bbb>ddd)&&(bbb>eee)&&(bbb>fff)&&(bbb>ggg)&&(bbb>hhh)&&(bbb>iii)&&(bbb>jjj))
          {
             cout<<bb<<": "<<bbb<<"\n";
          }else if((ccc>bbb)&&(ccc>aaa)&&(ccc>ddd)&&(ccc>eee)&&(ccc>fff)&&(ccc>ggg)&&(ccc>hhh)&&(ccc>iii)&&(ccc>jjj))
                {
                   cout<<cc<<": "<<ccc<<"\n";
                }else if((ddd>bbb)&&(ddd>ccc)&&(ddd>aaa)&&(ddd>eee)&&(ddd>fff)&&(ddd>ggg)&&(ddd>hhh)&&(ddd>iii)&&(ddd>jjj))
                      {
                         cout<<dd<<": "<<ddd<<"\n";
                      }else if((eee>bbb)&&(eee>ccc)&&(eee>ddd)&&(eee>aaa)&&(eee>fff)&&(eee>ggg)&&(eee>hhh)&&(eee>iii)&&(eee>jjj))
                            {
                               cout<<ee<<": "<<eee<<"\n";
                            }else if((fff>bbb)&&(fff>ccc)&&(fff>ddd)&&(fff>aaa)&&(fff>eee)&&(fff>ggg)&&(fff>hhh)&&(fff>iii)&&(fff>jjj))
                                  {
                                     cout<<ff<<": "<<fff<<"\n";
                                  }else if((ggg>bbb)&&(ggg>ccc)&&(ggg>ddd)&&(ggg>aaa)&&(ggg>eee)&&(ggg>fff)&&(ggg>hhh)&&(ggg>iii)&&(ggg>jjj))
                                        {
                                           cout<<gg<<": "<<ggg<<"\n";
                                        }else if((hhh>bbb)&&(hhh>ccc)&&(hhh>ddd)&&(hhh>aaa)&&(hhh>eee)&&(hhh>fff)&&(hhh>ggg)&&(hhh>iii)&&(hhh>jjj))
                                              {
                                                 cout<<hh<<": "<<hhh<<"\n";
                                              }else if((iii>bbb)&&(iii>ccc)&&(iii>ddd)&&(iii>aaa)&&(iii>eee)&&(iii>fff)&&(iii>ggg)&&(iii>hhh)&&(iii>jjj))
                                                    {
                                                       cout<<ii<<": "<<iii<<"\n";
                                                    }else if((jjj>bbb)&&(jjj>ccc)&&(jjj>ddd)&&(jjj>aaa)&&(jjj>eee)&&(jjj>fff)&&(jjj>ggg)&&(jjj>hhh)&&(jjj>iii))
                                                          {
                                                             cout<<jj<<": "<<jjj<<"\n";
                                                          }
    cout<<"--------------------------------------\n";
    cout<<"--------------------------------------\n";
   
    system("pause");
    cout<<"------------------------------\n";
    cout<<"curso c++ Nivel II.\n";
    cout<<"------------------------------\n";
   
    system("pause");
}


Me señala un error que dice: “ declaration syntax error” y no se por que?

Le añado la cabecera #include<strng.h> y tampoco me funciona

Gracias por la aclaración

Uso el Borland 3.1


Título: Re: Duda con string
Publicado por: nicolas_cof en 2 Junio 2010, 01:43 am
Mmmm a simple vista te falta incluir la libreria stdlib para la funcion system()

Porque haces 2 system( "PAUSE" ) ? No lo veo necesario...

La libreria conio no haca falta incluirla, ademas tampoco es recomendable su uso, ya que no es estandar

Otra cosa seria que pudieras indicar en que linea del codigo te da ese error :¬¬

Te falta incluir return 0; ya que tu main() devuelve int

Salu10.


Título: Re: Duda con string
Publicado por: Littlehorse en 2 Junio 2010, 06:32 am
La cabecera que vos mencionas es string.h, no strng.h, cstring en C++. Dicho header contiene las funciones necesarias para trabajar con cadenas al estilo C (Terminadas en NULL).

Sin embargo, ese no es el header que necesitas incluir. El que necesitas incluir es <string> el cual contiene las declaraciones que necesitas. He de mencionar que a pesar que no es algo definido por el estándar, dicha clase y sus definiciones son heredadas de iostream mediante ios_base por lo tanto sin haber incluido <string> en la mayoría de los compiladores te hubiese funcionado igual.
No obstante te recomiendo que incluyas <string> para ver si lo solucionas, y en la medida de lo posible, actualices tu entorno de trabajo.

Comparto lo que ya te menciono Nico con una pequeña corrección, el header es cstdlib.
Otra tema, no tiene mucho sentido que los arreglos los declares en forma global, realiza la declaración dentro del contexto de la función main que con eso basta.

También si puedes lee algo sobre estilos de programación, nombres de variables legibles, estructuras de control, y demás para mejorar un poco ese código.

Cualquier cosa ya sabes.

Saludos


Título: Re: Duda con string
Publicado por: jairogon en 2 Junio 2010, 15:17 pm
La cabecera que vos mencionas es string.h, no strng.h, cstring en C++. Dicho header contiene las funciones necesarias para trabajar con cadenas al estilo C (Terminadas en NULL).

Sin embargo, ese no es el header que necesitas incluir. El que necesitas incluir es <string> el cual contiene las declaraciones que necesitas. He de mencionar que a pesar que no es algo definido por el estándar, dicha clase y sus definiciones son heredadas de iostream mediante ios_base por lo tanto sin haber incluido <string> en la mayoría de los compiladores te hubiese funcionado igual.
No obstante te recomiendo que incluyas <string> para ver si lo solucionas, y en la medida de lo posible, actualices tu entorno de trabajo.

Comparto lo que ya te menciono Nico con una pequeña corrección, el header es cstdlib.
Otra tema, no tiene mucho sentido que los arreglos los declares en forma global, realiza la declaración dentro del contexto de la función main que con eso basta.

También si puedes lee algo sobre estilos de programación, nombres de variables legibles, estructuras de control, y demás para mejorar un poco ese código.

Cualquier cosa ya sabes.

Saludos





Gracias


Título: Re: Duda con string
Publicado por: @synthesize en 2 Junio 2010, 20:33 pm
¿Por qué no ahorrar un poco de código con un bucle o algún procedimiento y/o función?