Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: eduardo17445 en 4 Abril 2014, 00:45 am



Título: buenas para que m revisen estas funciones mienbro hechas en dev cpp
Publicado por: eduardo17445 en 4 Abril 2014, 00:45 am
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;
             }



Título: Re: buenas para que m revisen estas funciones mienbro hechas en dev cpp
Publicado por: engel lex en 4 Abril 2014, 02:28 am
GeSHi... y no hagas doble post...

http://foro.elhacker.net/programacion_cc/buenas_tengo_un_programa_cliente_que_m_muestra_un_solo_cliente-t412004.0.html;topicseen (http://foro.elhacker.net/programacion_cc/buenas_tengo_un_programa_cliente_que_m_muestra_un_solo_cliente-t412004.0.html;topicseen)


Título: Re: buenas para que m revisen estas funciones mienbro hechas en dev cpp
Publicado por: 1mpuls0 en 4 Abril 2014, 02:49 am
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
  1. int cliente::cargar_cliente()
  2.             {
  3.                  for(int i=0;i<=1;i++)
  4.                  {
  5.                  cout<<"nombre-------->";
  6.                  cin>>nom[30];
  7.                  cout<<endl;
  8.                  cout<<"direccion------->";
  9.                  cin>>dire[60];
  10.                  cout<<endl;
  11.                  cout<<"telefono------->";
  12.                 cin>>telf[60];
  13.                 cout<<endl;
  14.                  }
  15.             }
  16.  
por la función de este método debería ser void.



Título: Re: buenas para que m revisen estas funciones mienbro hechas en dev cpp
Publicado por: eduardo17445 en 4 Abril 2014, 04:17 am
que podria ser


Título: Re: buenas para que m revisen estas funciones mienbro hechas en dev cpp
Publicado por: Zodiak98 en 4 Abril 2014, 16:07 pm
Código:
[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
  1. int cliente::cargar_cliente() {
  2.        for(int i=0;i<=1;i++) {
  3.           cout<<"nombre-------->";
  4.           cin>>nom[30];
  5.           cout<<endl;
  6.           cout<<"direccion------->";
  7.           cin>>dire[60];
  8.           cout<<endl;
  9.           cout<<"telefono------->";
  10.           cin>>telf[60];
  11.           cout<<endl;
  12.     }
  13. }
  14.  
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
  1. int cliente::mostrar_cliente() {
  2.      cout<<"nombre----->"<<nom[30];
  3.      cout<<endl;
  4.      cout<<"direccion------>"<<dire[60];
  5.      cout<<endl;
  6.      cout<<"telefono------->"<<telf[60];
  7.      cout<<endl;
  8. }
  9.  
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
  1. int cliente::buscar_cliente_por_nombre() {
  2.      char nom[30];
  3.      int clien;
  4.      nom[30]=clien=nom[30]=3;
  5.      nom[30] = true ;
  6.      clien =nom[30];
  7.  
  8.      cout<<"buscar cliente------------->";
  9.      cin>>nom[30];
  10.      cout<<endl;
  11.      cout<<"clente-------------->"<<nom[30];
  12.      cout<<endl;
  13. }
  14.  

Esta línea:
Código
  1. nom[30]=clien=nom[30]=3;
  2.  

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
  1.      nom[30] = true ;
  2.      clien =nom[30];
  3.  
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
  1.      cout<<"buscar cliente------------->";
  2.      cin>>nom[30];
  3.      cout<<endl;
  4.      cout<<"clente-------------->"<<nom[30];
  5.      cout<<endl;
  6.  
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
  1. #include<iostream>
  2. #include<conio.h>
  3. #include <cstdlib>
  4.  
  5. using namespace std;
  6. class cliente {
  7. private:
  8.    char nom[30];
  9.    char dire[60];
  10.    char telf[60];
  11. public:
  12.    int cargar_cliente();
  13.    int mostrar_cliente();
  14.    int buscar_cliente_por_nombre();
  15. };
  16.  
  17. int cliente::cargar_cliente() {
  18.    for(int i=0;i<=1;i++) {
  19.        cout<<"nombre-------->";
  20.        cin>>nom;
  21.        cout<<endl;
  22.        cout<<"direccion------->";
  23.        cin>>dire;
  24.        cout<<endl;
  25.        cout<<"telefono------->";
  26.        cin>>telf;
  27.        cout<<endl;
  28.    }
  29. }
  30.  
  31. int cliente::mostrar_cliente() {
  32.    cout<<"nombre----->"<<nom;
  33.    cout<<endl;
  34.    cout<<"direccion------>"<<dire;
  35.    cout<<endl;
  36.    cout<<"telefono------->"<<telf;
  37.    cout<<endl;
  38. }
  39.  
  40. int cliente::buscar_cliente_por_nombre() {
  41.    char nom[30];
  42.    int clien = NULL;
  43.  
  44.    //nom[30] = clien = nom[30] = 3;
  45.    nom[30] = true ;
  46.    clien   = nom[30];
  47.  
  48.    cout<<"buscar cliente------------->";
  49.    cin>>nom;
  50.    cout<<endl;
  51.    cout<<"clente-------------->"<<nom;
  52.    cout<<endl;
  53. }
  54.  
  55.  
  56. int main() {
  57.    int op;
  58.    cliente a;
  59.    a.cargar_cliente();
  60.    a.mostrar_cliente();
  61.    a.buscar_cliente_por_nombre();
  62.    system("pause");
  63.    return 0;
  64. }
  65.  
[/code]