buenas para que m revisen estas funciones mienbro hechas en dev cpp

Iniciado por eduardo17445, 4 Abril 2014, 00:45 AM

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

eduardo17445

include<iostream>
#include<conio.h>
using namespace std;
class cliente{
      private:
     char* nom[30];
        char* dire[60] ;
         char* telf[60];
      public:
             int cargar_cliente();-----------el ejersicio m da estas funciones miembro q debo de realisar
             int mostrar_cliente();
             int buscar_cliente_por_nombre();
             };
            int cliente::cargar_cliente()
             {
                  for(int i=0;i<=1;i++)
                  {
                  cout<<"nombre-------->";
                  cin>>nom[30];
                  cout<<endl;
                  cout<<"direccion------->";
                  cin>>dire[60];
                  cout<<endl;
                  cout<<"telefono------->";
                 cin>>telf[60];
                 cout<<endl;
                  }
             }
                             
             int cliente::mostrar_cliente()
             {
                  cout<<"nombre----->"<<nom[30];
                  cout<<endl;
                  cout<<"direccion------>"<<dire[60];
                  cout<<endl;
                  cout<<"telefono------->"<<telf[60];
                  cout<<endl;
             }
             int cliente::buscar_cliente_por_nombre()
             {

                char nom[30];
               int clien;
               

              nom[30]=clien=nom[30]=3;
                nom[30] = true ;
                 clien =nom[30];
                 
                cout<<"buscar cliente------------->";
                cin>>nom[30];
                cout<<endl;
                cout<<"clente-------------->"<<nom[30];
                cout<<endl;
             }
             
           
             int main()
             {
             
              int op;
             cliente a;
          a.cargar_cliente();
          a.mostrar_cliente();
          a.buscar_cliente_por_nombre();
             system("pause");
             return 0;
             }


engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

1mpuls0

No soy el experto en c++ pero que no las funciones que tienen como modificador un tipo de dato debe tener un return?

"for exempo"

Código (cpp) [Seleccionar]

int cliente::cargar_cliente()
             {
                  for(int i=0;i<=1;i++)
                  {
                  cout<<"nombre-------->";
                  cin>>nom[30];
                  cout<<endl;
                  cout<<"direccion------->";
                  cin>>dire[60];
                  cout<<endl;
                  cout<<"telefono------->";
                 cin>>telf[60];
                 cout<<endl;
                  }
             }

por la función de este método debería ser void.

abc


Zodiak98

#4
[b]1 - [/b] En este pedazo de código:
[code=cpp]
class cliente{
private:
    char* nom[30];
    char* dire[60] ;
    char* telf[60];
public:
    int cargar_cliente();
    int mostrar_cliente();
    int buscar_cliente_por_nombre();
};

En los miembros privados, estás declarando 30 punteros de caracteres, es decir, 30 cadenas de texto, en las otras lo mismo pero con una longitud de 60.

2 - Acá:
Código (cpp) [Seleccionar]

int cliente::cargar_cliente() {
       for(int i=0;i<=1;i++) {
          cout<<"nombre-------->";
          cin>>nom[30];
          cout<<endl;
          cout<<"direccion------->";
          cin>>dire[60];
          cout<<endl;
          cout<<"telefono------->";
          cin>>telf[60];
          cout<<endl;
    }
}

No sé si quisiste registrar 2 usuarios, acá lo que estás haciendo es que estás dándole una vuelta a los valores, es decir, los valores que ingresaste en primer lugar, serán reemplazados por la segunda ronda, es decir, los segundos valores que ingresaste.

Lo que puedes hacer es crear un arreglo de objetos de longitud 2 y con el valor 'i' del búcle 'for' registrar ambos usuarios, uno y después el otro con la iteración.

Es por eso que acá:
Código (cpp) [Seleccionar]

int cliente::mostrar_cliente() {
     cout<<"nombre----->"<<nom[30];
     cout<<endl;
     cout<<"direccion------>"<<dire[60];
     cout<<endl;
     cout<<"telefono------->"<<telf[60];
     cout<<endl;
}

Siempre te va a dar los valores del último ingreso. Además si lo colocas de esta manera: 'nom[30]' como está allí, te mostrará el caracter 30 del arreglo nom, lo correcto para que muestre el nombre completo sería quitándole las casillas. O sea, simplemente colocar: nom
Lo mismo para las demás.

3 - Y por último acá:
Código (cpp) [Seleccionar]

int cliente::buscar_cliente_por_nombre() {
     char nom[30];
     int clien;
     nom[30]=clien=nom[30]=3;
     nom[30] = true ;
     clien =nom[30];
               
     cout<<"buscar cliente------------->";
     cin>>nom[30];
     cout<<endl;
     cout<<"clente-------------->"<<nom[30];
     cout<<endl;
}


Esta línea:
Código (cpp) [Seleccionar]

nom[30]=clien=nom[30]=3;


Es innecesaria, ya que estás asignando el valor 3, a la posición 30 del arreglo nom, y a la variable entera clien. Y luego inmediatamente en la siguiente instrucción:
Código (cpp) [Seleccionar]

     nom[30] = true ;
     clien =nom[30];

Estás asignando un valor booleano true a la posición 30 del arreglo nom, e inmediatamente a clien. No sé qué quisiste hacer allí, pero bueno, es innecesaria la línea que te dije.

Código (cpp) [Seleccionar]

     cout<<"buscar cliente------------->";
     cin>>nom[30];
     cout<<endl;
     cout<<"clente-------------->"<<nom[30];
     cout<<endl;

Acá en el cin, debes de quitar las casillas de arreglo y dejar solamente el nombre del arreglo, para almacenar una cadena completa en el arreglo, lo mismo para mostrarlo, ya que en ese pedazo de código dónde lo muestras mostrarás el caracter en la posición 30, si quieres mostrar toda la cadena debes de quitar las casillas.

En conclusión, acá te dejaré el código al menos para que pueda correr, ya es cosa tuya arreglar lo de los 2 usuarios como te he mencionado arriba:

Código (cpp) [Seleccionar]

#include<iostream>
#include<conio.h>
#include <cstdlib>

using namespace std;
class cliente {
private:
   char nom[30];
   char dire[60];
   char telf[60];
public:
   int cargar_cliente();
   int mostrar_cliente();
   int buscar_cliente_por_nombre();
};

int cliente::cargar_cliente() {
   for(int i=0;i<=1;i++) {
       cout<<"nombre-------->";
       cin>>nom;
       cout<<endl;
       cout<<"direccion------->";
       cin>>dire;
       cout<<endl;
       cout<<"telefono------->";
       cin>>telf;
       cout<<endl;
   }
}

int cliente::mostrar_cliente() {
   cout<<"nombre----->"<<nom;
   cout<<endl;
   cout<<"direccion------>"<<dire;
   cout<<endl;
   cout<<"telefono------->"<<telf;
   cout<<endl;
}

int cliente::buscar_cliente_por_nombre() {
   char nom[30];
   int clien = NULL;

   //nom[30] = clien = nom[30] = 3;
   nom[30] = true ;
   clien   = nom[30];

   cout<<"buscar cliente------------->";
   cin>>nom;
   cout<<endl;
   cout<<"clente-------------->"<<nom;
   cout<<endl;
}


int main() {
   int op;
   cliente a;
   a.cargar_cliente();
   a.mostrar_cliente();
   a.buscar_cliente_por_nombre();
   system("pause");
   return 0;
}
[/code]