AYUDA con este registro con matrices

Iniciado por joseanh, 4 Noviembre 2013, 02:01 AM

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

joseanh

El registro me corre, pero no me muestra los datos almacenados en el void mostrar, ayuda por favor. Asi empieza:

#include <iostream>
#include <stdlib.h>

using namespace std;
int ce,cv;

void ingresar (struct carros registro[500][8]);
void consultar(struct carros registro[500][8])  ;
void reporteganancia(struct carros registro[500][8])  ;
void ventas (struct carros registro[500][8]);
void mostrar(struct carros registro[500][8])  ;

struct carros
{
char placa[20];
char mod[20];
char marca[20];
char color[20];
char mes[20];
float precio;
};


int main(){
   struct carros registro[500][8];
int opcion;
do
{
cout<<" Menu Principal "<<endl;  
    cout<<"1 ingresar"<<endl;    
    cout<<"2 consultar"<<endl;    
    cout<<"3 reporteganancia"<<endl;    
    cout<<"4 ventas"<<endl;  
    cout<<"5 mostrar"<<endl;    
    cout<<"6 salir"<<endl;
cout<<"indique la opcion"<<endl;
cin>>opcion;
   
switch (opcion){  
 case 1:
    system("cls");
    ingresar (registro);
      break;      
 case 2:
    system("cls");
    consultar (registro);
      break;
 case 3:  
    system("cls");
    reporteganancia (registro);
      break;
  case 4:  
   system("cls");
    ventas (registro);
      break;
   
     case 5:  
      system("cls");
       mostrar (registro);
      break;
     
     }
}while (opcion <= 6);              
}

void ingresar (struct carros registro[500][8]){  
 char placa[20],mod[20],marca[20],color[20],mes[20];
 double precio;
 int x;
 
  cout<<"catidad de carro de entrada "<<endl;
  cin>>ce;
 
     for (int x=0; x<ce ; x++){  
   
         cout<<"registro "<<x+1<<endl;
         cout<<"ingrese placa"<<endl;
         cin>>placa;
         registro
  • [1].placa;

             cout<<"ingrese modelo"<<endl;
             cin>>mod;
             registro
  • [2].mod;

             cout<<"ingrese marca"<<endl;
             cin>>marca;
             registro
  • [3].marca;

             cout<<"ingrese color"<<endl;
             cin>>color;
             registro
  • [4].color;
             
             cout<<"ingrese mes"<<endl;
             cin>>mes;
             registro
  • [5].mes;
             
             cout<<"ingrese precio"<<endl;
             cin>>precio;
             registro
  • [6].precio;
         system("cls");    
    }
    }
    void consultar(struct carros registro[500][8]){
    int x,encon,posi,opc;
    char placab;

    do{
    encon=0;
    posi=1;
    cout<<"consultar placa"<<endl;

    for (int x=0; x<ce ; x++){

    if (placab= registro
  • [1].placa
  • )
    {
               
    encon=1;
    posi=x;
    }
    }
    if (encon=0){
    cout<<"no encontro placa en posicion  "<<posi<<endl;
    }
    else
    {
    cout<<"  encontro placa en posicion   "<<posi<<endl;
    cout<<"  desea buscar otra placa  "<<endl;
    cin>>opc;
    }
    }while (opc=0);
    }
    void reporteganancia(struct carros registro[500][8]){
    int cv,pv,gananciasalida,gananciatotal;    
    int ce,pe,gananciaentrada;    
       
        cout<<"cuantos carros entraron"<<endl;
        cin>>ce;
        cout<<"cuanto costo el carro de entrada"<<endl;
        cin>>pe;
        gananciaentrada=(ce*pe);
        cout<<" la ganancia de entrada es: "<<gananciaentrada<<endl;
         
        cout<<endl;
       
        cout<<"cuantos carros se vendieron"<<endl;
        cin>>cv;
        cout<<"en cuanto se vendio"<<endl;
        cin>>pv;
        gananciasalida=(cv*pv);
        cout<<"la ganancia de salida es: "<<gananciasalida<<endl;
     
       gananciatotal=(gananciasalida-gananciaentrada);
       cout<<endl;
       cout<<"ganancia total es: "<<gananciatotal;
       cin>>gananciatotal;
       }  
       
       
    void ventas (struct carros registro[500][8]){
    }

    void mostrar(struct carros registro[500][8]){
    int x;
      for (int x=1; x<ce; x++){
           
            cout<<"placa:  "<<registro
  • [1].placa<<endl;
            cout<<"modelo: "<<registro
  • [2].mod<<endl;
            cout<<"marca:  "<<registro
  • [3].marca<<endl;
            cout<<"color:  "<<registro
  • [4].color<<endl;
            cout<<"mes:    "<<registro
  • [5].mes<<endl;
            cout<<"precio: "<<registro
  • [6].precio<<endl;
    }
    system("pause");
    }

rir3760

Cuando publiques el código fuente de un programa por favor utiliza las etiquetas GeSHi: en la pagina de composición de mensajes hay un cuadro desplegable con ese nombre y ahí puedes seleccionar el lenguaje adecuado (C o C++).

Problemas con el programa hay bastantes.

* No necesitas de un array de arrays, por sencillez deberías utilizar un array y con un numero de elementos pequeño. Por ejemplo:
Código (cpp) [Seleccionar]
struct carros registro[8];

* Al pedir la entrada en la función "ingresar" tienes bloques como este:
Código (cpp) [Seleccionar]
cout << "registro " << x + 1 << endl;
cout << "ingrese placa" << endl;
cin >> placa;
registro[x][1].placa;

Ellos no tienen efecto y se deberían cambiar a:
Código (cpp) [Seleccionar]
cout << "registro " << x + 1 << endl;
cout << "ingrese placa" << endl;
cin >> registro[x][1].placa;

Y si se utiliza un array de ocho elementos seria mas o menos así:
Código (cpp) [Seleccionar]
cout << "registro " << x + 1 << endl;
cout << "ingrese placa" << endl;
cin >> registro[x].placa;


* En la función "mostrar" la variable "x" controla la ejecución del bucle con un valor inicial de 1 cuando debería ser 0 (como en la función ingresar).

* En la función "main" en la sentencia de selección "switch" todos los casos inician con:
Código (cpp) [Seleccionar]
system("cls");
Hay que eliminar esa sentencia de todos los casos, en su lugar basta con llamar a system justo antes del "switch".

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

joseanh

Muchas gracias Amigo, lo probare y veré si funciona.