[ Foro de C++ ]

[AYUDA] Registro y Funciones

24-Sep-2015 18:50
Romario Rivera
1 Respuestas

Hola,
Quisiera saber que está mal en mi código pues me vota errores.
El problema creo que es al momento de llamar a la función de escritura y lectura, pues sólo eso es lo que intento desarrollar por ahora, más adelante desarrollaré otras funciones. Uso Borland C++.


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

void lectura(int x[],int *);
void escritura(int x[],int);
void total(int x[],int);
void caro(int x[],int);
void precio_promedio(int x[],int);
void antiguo(int x[],int);

struct vehiculo
{
	char placa[7], marca[20],modelo[2];
      int afab;
      float precio;
};

void main ()
{
   vehiculo x[20];
	int op;

   do
   {
      clrscr();

   	gotoxy(20,4),cout<<"*************************";
   	gotoxy(20,5);cout<<"* REGISTRO DE VEHICULOS *";
   	gotoxy(20,6),cout<<"*************************";
      cout<<endl;
   	gotoxy(10,8);cout<<"M E N U"<<endl;
   	gotoxy(10,9);cout<<"======="<<endl;
   	gotoxy(10,10);cout<<"1. Ingresar datos al Registro"<<endl;
   	gotoxy(10,11);cout<<"2. Total de Vehiculos"<<endl;
   	gotoxy(10,12);cout<<"3. Vehiculo con Mayor Precio"<<endl;
      gotoxy(10,13);cout<<"4. Precio Promedio de los Vehiculos "<<endl;
      gotoxy(10,14);cout<<"5. Vehiculo mas Antiguo"<<endl;
      gotoxy(10,15);cout<<"6. Reporte Completo"<<endl;
      gotoxy(10,16);cout<<"0. Salir";
   	gotoxy(10,18);cout<<"Elija una opcion : "; cin>>op; cout<<"op: "<<op; getch();

   	switch(op)
      {
         case 0:
            clrscr();
         	cout<<"FIN DEL PROGRAMA";
            break;
      	case 1:
         clrscr();
   		lectura(x,n);
         break;
         case 2:

         break;
         case 3:
         break;
         case 4:
         break;
         case 5:
         clrscr();
   		escritura(x,n);
         break;
         default:
         	clrscr();
            cout<<"OPCION INCORRECTA. INTENTE NUEVAMENTE.";
            getch();
            break;
      }
   } while(op!=0);
   getch();
}

void lectura(x,*n)
{
	int i;

   gotoxy(20,4);cout<<"*************************";
   gotoxy(20,5);cout<<"* REGISTRO DE VEHICULOS *";
   gotoxy(20,6);cout<<"*************************";
   gotoxy(10,8);cout<<"NUMERO DE VEHICULOS A INGRESAR : ";cin>>n;
   clrscr();
   for (i=0;i<n;i++)
   {
   gotoxy(20,4);cout<<"******************************";
   gotoxy(20,5);cout<<"* INGRESE DATOS DEL VEHICULO *";
   gotoxy(20,6);cout<<"******************************";
   gotoxy(10,8);cout<<"PLACA : ";gets(x[i].placa);
   gotoxy(10,9);cout<<"MARCA : ";cin>>x[i].marca;
   gotoxy(10,10);cout<<"MODELO : ";cin>>x[i].modelo;
   gotoxy(10,11);cout<<"ANO DE FABRICACION : ";cin>>x[i].afab;
   gotoxy(10,12);cout<<"PRECIO : ";cin>>x[i].precio;
   clrscr();
   }
}

void escritura(x,n)
{
   int i;
	clrscr();
   gotoxy(20,4);cout<<"*************************";
   gotoxy(20,5);cout<<"* REGISTRO DE VEHICULOS *";
   gotoxy(20,6);cout<<"*************************";
   gotoxy(20,8);cout<<"PLACA"
   gotoxy(27,8);cout<<"MARCA";
   gotoxy(34,8);cout<<"MODELO";
   gotoxy(42,8);cout<<"ANO DE FABRICACION";
   gotoxy(62,8);cout<<"PRECIO";
   gotoxy(20,9);cout<<"---------------------------------------------------------------------";
	for (i=0;i<n;i++)
   {
   	gotoxy(20,10+i);cout<<x[i].placa;
   	gotoxy(27,10+i);cout<<x[i].marca;
   	gotoxy(34,10+i);cout<<x[i].modelo;
   	gotoxy(42,10+i);cout<<x[i].afab;
   	gotoxy(62,10+i);cout<<x[i].precio;
   }
}


Gracias por su tiempo, muchas gracias de antemano.
Saludos.


09-Oct-2015 11:16
Nacho Cabanes (+84)

Siento el enorme retraso en contestar, exceso de trabajo.

Generalmente, ayudará si incluyes la lista de errores, por una parte porque hoy en día poca gente tendrá un compilador tan antiguo como Borland C++, y por otra parte porque los mensajes de error están ahí para ayudarte. Es habitual que si los lees tengas pistas sobre el problema.

De hecho, a mí me marca un primer error de que hay un símbolo raro en la línea 51, la de "lectura(x,n);" Tras eliminar ese símbolo, obtengo un error "Error E2451 D:\temp\borrable\registroLibros.cpp 51: Undefined symbol 'n' in function main()" porque no has declarado en ningún sitio la variable "n".

En esa misma línea, marca un segundo error "Error E2034 D:\temp\borrable\registroLibros.cpp 51: Cannot convert 'vehiculo *' to 'int *' in function main()", porque estás pasando un parámetro "x", que es un array de vehículos, pero tu declaración de la variable hablaba de un array de enteros.

En las líneas 62 y 74 tienes errores similares.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)