Buenas Noches.
Realicé un programa, cuando voy a compilar me aparece que no tiene errores pero cuando lo voy a correr me aparece este error y no permite crear el .exe:
Linker Warning: No module definition file specified: using defaults.
Linker Error: Undefined symbol ModificarClientes() in module AEROLINE.CPP (este ultimo lo repite 15 veces, solo que con el resto de las 16 funciones que empiezan por Ingresar, Modificar, Consultar y Eliminar).
Aquí anexo el código
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <dos.h>
struct {
char Marca[10];
char Modelo[10];
int Puestos;
char Velocidad[10];
char Matricula[7];
} Aviones;
struct {
int NumVuelo;
char Matricula[7];
char OriVuelo[3];
char DesVuelo[3];
char Fecha[8];
} Rutas;
struct {
long int CedCliente;
char NomCliente[20];
} Clientes;
struct {
long int CedCliente;
int NumVuelo;
char Fecha[8];
char Asiento[4];
} Ventas;
struct date d;
struct time t;
char sel;
char menuPrincipal();
char menuAviones2();
char menuRutas2();
char menuCientes2();
char menuVentas2();
int busquedaAviones(char MatriBus[7]);
int busquedaRutas(int NumVueloBus);
int busquedaClientes(long int Cedbus);
int busquedaVentas(long int Cedbus);
void menuAviones();
void menuRutas();
void menuClientes();
void menuVentas();
void incluirAviones();
void incluirRutas();
void incluirClientes();
void incluirVentas();
void consultarAviones();
void consultarRutas();
void consultarClientes();
void consultarVentas();
void modificarAviones();
void modificarRutas();
void modificarClientes();
void modificarVentas();
void eliminarAviones();
void eliminarRutas();
void eliminarClientes();
void eliminarVentas();
void Aeronave();
void ImprimirMatriz();
void CalcularPunto (char Asiento[4]);
void Presenta();
void main()
{
do
{
sel=menuPrincipal();
switch(sel)
{
case '1':{
menuAviones();
break;
}
case '2':{
menuRutas();
break;
}
case '3':{
menuClientes();
break;
}
case '4':{
menuVentas();
break;
}
}
} while (sel != '5');
}
char menuPrincipal()
{
char y;
clrscr();
gotoxy(30,8);printf("*Nueva Aerolínea*");
gotoxy(20,10);printf("1.- Aviones");
gotoxy(20,12);printf("2.- Rutas");
gotoxy(20,14);printf("3.- Clientes");
gotoxy(20,16);printf("4.- Ventas");
gotoxy(20,18);printf("5.- Salida");
gotoxy(50,20);printf("Seleccion = ");
scanf ("%c",&y);
return (y);
}
void menuAviones()
{
char menuAviones2();
void IngresarAviones();
void ConsultarAviones();
void ModificarAviones();
void EliminarAviones();
char opc;
do
{
opc=menuAviones2();
switch(opc)
{
case '1':{
IngresarAviones();
break;
}
case '2':{
ConsultarAviones();
break;
}
case '3':{
ModificarAviones();
break;
}
case '4':{
EliminarAviones();
break;
}
}
} while (opc != '5');
}
char menuAviones2()
{
char y;
clrscr();
gotoxy(30,8);printf("*Nueva Aerolínea*");
gotoxy (30,9);printf ("Menu de Aviones");
gotoxy(20,11);printf("1.- Incluir Avion en Flota");
gotoxy(20,13);printf("2.- Consultar Flota");
gotoxy(20,15);printf("3.- Modificar Flota");
gotoxy(20,17);printf("4.- Eliminar Avion en Flota");
gotoxy(20,18);printf("5.- Salida");
gotoxy(50,20);printf("Seleccion = ");
scanf ("%c",&y);
return (y);
}
void menuRutas()
{
char menuRutas2();
void IngresarRutas();
void ConsultarRutas();
void ModificarRutas();
void EliminarRutas();
char opc;
do
{
opc=menuRutas2();
switch(opc)
{
case '1':{
IngresarRutas();
break;
}
case '2':{
ConsultarRutas();
break;
}
case '3':{
ModificarRutas();
break;
}
case '4':{
EliminarRutas();
break;
}
}
} while (opc != '5');
}
char menuRutas2()
{
char y;
clrscr();
gotoxy(30,8);printf("*Nueva Aerolínea*");
gotoxy (30,9);printf ("Menu de Rutas");
gotoxy(20,11);printf("1.- Incluir Ruta");
gotoxy(20,13);printf("2.- Consultar Ruta");
gotoxy(20,15);printf("3.- Modificar Ruta");
gotoxy(20,17);printf("4.- Eliminar Ruta");
gotoxy(20,18);printf("5.- Salida");
gotoxy(50,20);printf("Seleccion = ");
scanf ("%c",&y);
return (y);
}
void menuClientes()
{
char menuClientes2();
void IngresarClientes();
void ConsultarClientes();
void ModificarClientes();
void EliminarClientes();
char opc;
do
{
opc=menuClientes2();
switch(opc)
{
case '1':{
IngresarClientes();
break;
}
case '2':{
ConsultarClientes();
break;
}
case '3':{
ModificarClientes();
break;
}
case '4':{
EliminarClientes();
break;
}
}
} while (opc != '5');
}
char menuClientes2()
{
char y;
clrscr();
gotoxy(30,8);printf("*Nueva Aerolínea*");
gotoxy (30,9);printf ("Menu de Cliente");
gotoxy(20,11);printf("1.- Registrar Cliente ");
gotoxy(20,13);printf("2.- Consultar Cliente");
gotoxy(20,15);printf("3.- Modificar Cliente");
gotoxy(20,17);printf("4.- Eliminar Cliente");
gotoxy(20,18);printf("5.- Salida");
gotoxy(50,20);printf("Seleccion = ");
scanf ("%c",&y);
return (y);
}
void menuVentas()
{
char menuVentas2();
void Aeronave();
void IngresarVentas();
void ConsultarVentas();
void ModificarVentas();
void EliminarVentas();
char opc;
do
{
opc=menuVentas2();
switch(opc)
{
case '1':{
Aeronave();
break;
}
case '2':{
IngresarVentas();
break;
}
case '3':{
ConsultarVentas();
break;
}
case '4':{
ModificarVentas();
break;
}
case '5':{
EliminarVentas();
break;
}
}
} while (opc != '6');
}
char menuVentas2()
{
char y;
clrscr();
gotoxy(30,8);printf("*Nueva Aerolínea*");
gotoxy (30,9);printf ("Menu de Ventas");
gotoxy(20,11);printf("1.- Disponibilidad");
gotoxy(20,13);printf("2.- Ingresar Venta - Disponibilidad");
gotoxy(20,15);printf("3.- Consultar Venta");
gotoxy(20,17);printf("4.- Modificar Flota");
gotoxy(20,19);printf("5.- Eliminar Avion en Flota");
gotoxy(20,21);printf("6.- Salida");
gotoxy(50,23);printf("Seleccion = ");
scanf ("%c",&y);
return (y);
}
int busquedaAviones(char MatriBus[7])
{
int z,band=0;
FILE *arch1;
arch1=fopen("Aviones.dat","r");
while ((band==0)&&(fread(&Aviones,sizeof(Aviones),1,arch1)==1))
{
if (strcmp(Aviones.Matricula,MatriBus)==0)
{
band=1;
}
}
if (band==0)
z = 0;
else
z = 1;
fclose(arch1);
return(z);
}
int busquedaRutas(int NumVueloBus)
{
int z,band=0;
FILE *arch2;
arch2=fopen("Rutas.dat","r");
while ((band==0)&&(fread(&Rutas,sizeof(Rutas),1,arch2)==1))
{
if (Rutas.NumVuelo==NumVueloBus)
{
band=1;
}
}
if (band==0)
z = 0;
else
z = 1;
fclose(arch2);
return(z);
}
int busquedaClientes(long int Cedbus)
{
int z,band=0;
FILE *arch3;
arch3=fopen("Clientes.dat","r");
while ((band==0)&&(fread(&Clientes,sizeof(Clientes),1,arch3)==1))
{
if (Clientes.CedCliente==Cedbus)
{
band=1;
}
}
if (band==0)
z = 0;
else
z = 1;
fclose(arch3);
return(z);
}
int busquedaVentas(long int Cedbus)
{
int z,band=0;
FILE *arch4;
arch4=fopen("Ventas.dat","r");
while ((band==0)&&(fread(&Ventas,sizeof(Ventas),1,arch4)==1))
{
if (Ventas.CedCliente==Cedbus)
{
band=1;
}
}
if (band==0)
z = 0;
else
z = 1;
fclose(arch4);
return(z);
}
void incluirAviones()
{
char MatriBus[7];
int m;
clrscr();
printf("Ingrese la matricula del avion= ");
scanf("%s",&MatriBus);
m=busquedaAviones(MatriBus);
if (m==0)
{
strcpy(Aviones.Matricula,MatriBus);
printf("Ingrese la marca del avion= ");
scanf("%s",&Aviones.Marca);
printf("Ingrese el modelo del avion= ");
scanf("%s",&Aviones.Modelo);
printf("Ingrese la cantidad de puestos que posee el avion= ");
scanf("%d",&Aviones.Puestos);
printf("Ingrese la velocidad de crucero del avion= ");
scanf("%s",&Aviones.Velocidad);
FILE *arch1;
arch1=fopen("Aviones.dat","at+");
fwrite(&Aviones,sizeof(Aviones),1,arch1);
fclose(arch1);
printf("\n Avion Registrado");
}
else
{
printf("\n Avión ya registrado");
}
getch();
}
void incluirRutas()
{
int NumVueloBus;
int m;
clrscr();
printf("Ingrese el número de vuelo= ");
scanf("%d",&NumVueloBus);
m=busquedaRutas(NumVueloBus);
if (m==0)
{
printf("Ingrese la matricula que realiza la ruta= ");
scanf("%s",&Rutas.Matricula);
printf("Ingrese el origen del vuelo= ");
scanf("%s",&Rutas.OriVuelo);
printf("Ingrese el destino del vuelo= ");
scanf("%d",&Rutas.DesVuelo);
printf("Ingrese la fecha del vuelo= ");
scanf("%s",&Rutas.Fecha);
FILE *arch2;
arch2=fopen("Rutas.dat","at+");
fwrite(&Rutas,sizeof(Rutas),1,arch2);
fclose(arch2);
printf("\n Ruta Registrada");
}
else
{
printf("\n Ruta ya registrada");
}
getch();
}
void incluirClientes()
{
long int Cedbus;
int m;
clrscr();
printf("Ingrese la cedula del Cliente= ");
scanf("%ld",&Cedbus);
m=busquedaClientes(Cedbus);
if (m==0)
{
printf("Ingrese el nombre del cliente= ");
gets(Clientes.NomCliente);
FILE *arch3;
arch3=fopen("Clientes.dat","at+");
fwrite(&Clientes,sizeof(Clientes),1,arch3);
fclose(arch3);
printf("\n Cliente Registrado");
}
else
{
printf("\n Cliente ya registrado");
}
getch();
}
void incluirVentas()
{
long int Cedbus;
int m;
clrscr();
printf("Ingrese la cedula del Cliente= ");
scanf("%ld",&Cedbus);
m=busquedaVentas(Cedbus);
if (m==0)
{
printf("Ingrese el numero del vuelo a realizar= ");
scanf("%d",Ventas.NumVuelo);
printf("Ingrese la fecha del vuelo a realizar= ");
scanf("%s",Ventas.Fecha);
printf("Ingrese el asiento al cliente= ");
scanf("%s",Ventas.Asiento);
FILE *arch4;
arch4=fopen("Ventas.dat","at+");
fwrite(&Ventas,sizeof(Ventas),1,arch4);
fclose(arch4);
printf("\n Venta Registrada");
}
else
{
printf("\n Venta no registrada");
}
getch();
}
void consultarAviones()
{
char MatriBus[7];
int m;
clrscr();
printf("Ingrese la matricula del avion= ");
scanf("%s",&MatriBus);
m=busquedaAviones(MatriBus);
if (m == 1)
{
printf("Marca del avion= %s \n",Aviones.Marca);
printf("Modelo del avion= %s \n",Aviones.Modelo);
printf("Puestos del avion= %d \n",Aviones.Puestos);
printf("Velocidad del avion= %s \n",Aviones.Velocidad);
}
else
{
printf("\n Matricula no registrada");
}
getch();
}
void consultarRutas()
{
int NumVueloBus;
int m;
clrscr();
printf("Ingrese el número de vuelo= ");
scanf("%d",&NumVueloBus);
m=busquedaRutas(NumVueloBus);
if (m == 1)
{
printf("Matricula del avion= %s \n",Rutas.Matricula);
printf("Origen del vuelo= %s \n",Rutas.OriVuelo);
printf("Destino del vuelo= %s \n",Rutas.DesVuelo);
printf("Fecha del vuelo= %s \n",Rutas.Fecha);
}
else
{
printf("\n Vuelo no registrado");
}
getch();
}
void consultarClientes()
{
long int Cedbus;
int m;
clrscr();
printf("Ingrese la cedula del Cliente= ");
scanf("%ld",&Cedbus);
m=busquedaClientes(Cedbus);
if (m == 1)
{
printf("Nombre del cliente= %s \n",Clientes.NomCliente);
}
else
{
printf("\n Cliente no registrado");
}
getch();
}
void consultarVentas()
{
long int Cedbus;
int m;
clrscr();
printf("Ingrese la cedula del Cliente= ");
scanf("%ld",&Cedbus);
m=busquedaVentas(Cedbus);
if (m == 1)
{
printf("Numero de vuelo= %d \n",Ventas.NumVuelo);
printf("Fecha del vuelo= %s \n",Ventas.Fecha);
printf("Asiento= %s \n",Ventas.Asiento);
}
else
{
printf("\n Vuelo no registrado");
}
getch();
}
void modificarAviones()
{
char MatriBus[7];
int m;
clrscr();
printf("Ingrese la matricula del avion= ");
scanf("%s",&MatriBus);
m=busquedaAviones(MatriBus);
if (m==1)
{
FILE *arch1;
arch1=fopen("Aviones.dat","r");
FILE *arch5;
arch5=fopen("TempAviones.dat","at+");
while((fread(&Aviones,sizeof(Aviones),1,arch1)==1))
{
if (strcmp(Aviones.Matricula,MatriBus)==0)
{
printf("Ingrese la marca del avion= ");
scanf("%s",&Aviones.Marca);
printf("Ingrese el modelo del avion= ");
scanf("%s",&Aviones.Modelo);
printf("Ingrese la cantidad de puestos que posee el avion= ");
scanf("%d",&Aviones.Puestos);
printf("Ingrese la velocidad de crucero del avion= ");
scanf("%s",&Aviones.Velocidad);
}
fwrite(&Aviones,sizeof(Aviones),1,arch5);
}
fclose(arch1);
fclose(arch5);
remove("Aviones.dat");
rename("TempAviones.dat","Aviones.dat");
printf("\n Registro de Aviones modificado");
}
else
{
printf("\n Matricula no registrada");
}
getch();
}
void modificarRutas()
{
int NumVueloBus;
int m;
clrscr();
printf("Ingrese el número de vuelo= ");
scanf("%d",&NumVueloBus);
m=busquedaRutas(NumVueloBus);
if (m==1)
{
FILE *arch2;
arch2=fopen("Rutas.dat","r");
FILE *arch6;
arch6=fopen("TempRutas.dat","at+");
while((fread(&Rutas,sizeof(Rutas),1,arch2)==1))
{
if (Rutas.NumVuelo==NumVueloBus)
{
printf("Ingrese la matricula que realiza la ruta= ");
scanf("%s",&Rutas.Matricula);
printf("Ingrese el origen del vuelo= ");
scanf("%s",&Rutas.OriVuelo);
printf("Ingrese el destino del vuelo= ");
scanf("%d",&Rutas.DesVuelo);
printf("Ingrese la fecha del vuelo= ");
scanf("%s",&Rutas.Fecha);
fwrite(&Rutas,sizeof(Rutas),1,arch6);
}
fclose(arch2);
fclose(arch6);
remove("Rutas.dat");
rename("TempRutas.dat","Rutas.dat");
printf("\n Registro de Rutas modificado");
}
}
else
{
printf("\n Vuelo no registrado");
}
getch();
}
void modificarClientes()
{
long int Cedbus;
int m;
clrscr();
printf("Ingrese la cedula del Cliente= ");
scanf("%ld",&Cedbus);
m=busquedaClientes(Cedbus);
if (m==1)
{
FILE *arch3;
arch3=fopen("Clientes.dat","r");
FILE *arch7;
arch7=fopen("TempClientes.dat","at+");
while((fread(&Clientes,sizeof(Clientes),1,arch3)==1))
{
if (Clientes.CedCliente==Cedbus)
{
printf("Ingrese el nombre del cliente= ");
gets(Clientes.NomCliente);
fwrite(&Rutas,sizeof(Rutas),1,arch7);
}
fclose(arch3);
fclose(arch7);
remove("Clientes.dat");
rename("TempClientes.dat","Clientes.dat");
printf("\n Registro de Clientes modificado");
}
}
else
{
printf("\n Cliente no registrado");
}
getch();
}
void modificarVentas()
{
long int Cedbus;
int m;
clrscr();
printf("Ingrese la cedula del Cliente= ");
scanf("%ld",&Cedbus);
m=busquedaVentas(Cedbus);
if (m==1)
{
FILE *arch4;
arch4=fopen("Ventas.dat","r");
FILE *arch8;
arch8=fopen("TempVentas.dat","at+");
while((fread(&Ventas,sizeof(Ventas),1,arch4)==1))
{
if (Ventas.CedCliente==Cedbus)
{
printf("Ingrese el numero del vuelo a realizar= ");
scanf("%d",Ventas.NumVuelo);
printf("Ingrese la fecha del vuelo a realizar= ");
scanf("%s",Ventas.Fecha);
printf("Ingrese el asiento al cliente= ");
scanf("%s",Ventas.Asiento);
fwrite(&Ventas,sizeof(Ventas),1,arch8);
}
fclose(arch4);
fclose(arch8);
remove("Ventas.dat");
rename("TempVentas.dat","Ventas.dat");
printf("\n Registro de Ventas modificado");
}
}
else
{
printf("\n Venta no registrada");
}
getch();
}
void eliminarAviones()
{
char MatriBus[7];
int m;
clrscr();
printf("Ingrese la matricula del avion= ");
scanf("%s",&MatriBus);
m=busquedaAviones(MatriBus);
if (m==1)
{
FILE *arch1;
arch1=fopen("Aviones.dat","r");
FILE *arch5;
arch5=fopen("TempAviones.dat","at+");
while ((fread(&Aviones,sizeof(Aviones),1,arch1)==1))
{
if (strcmp(Aviones.Matricula,MatriBus)!=0)
{
fwrite(&Aviones,sizeof(Aviones),1,arch5);
}
}
fclose(arch1);
fclose(arch5);
remove("Aviones.dat");
rename("TempAviones.dat","Aviones.dat");
printf("\n Registro Eliminado");
}
else
{
printf("\n Matricula No Encontrada");
}
getch();
}
void eliminarRutas()
{
int NumVueloBus;
int m;
clrscr();
printf("Ingrese el número de vuelo= ");
scanf("%d",&NumVueloBus);
m=busquedaRutas(NumVueloBus);
if (m==1)
{
FILE *arch2;
arch2=fopen("Rutas.dat","r");
FILE *arch6;
arch6=fopen("TempRutas.dat","at+");
while ((fread(&Rutas,sizeof(Rutas),1,arch2)==1))
{
if (Rutas.NumVuelo != NumVueloBus)
{
fwrite(&Rutas,sizeof(Rutas),1,arch6);
}
}
fclose(arch2);
fclose(arch6);
remove("Rutas.dat");
rename("TempRutas.dat","Rutas.dat");
printf("\n Registro Eliminado");
}
else
{
printf("\n Ruta no Encontrada");
}
getch();
}
void eliminarClientes()
{
long int Cedbus;
int m;
clrscr();
printf("Ingrese la cedula del Cliente= ");
scanf("%ld",&Cedbus);
m=busquedaClientes(Cedbus);
if (m==1)
{
FILE *arch3;
arch3=fopen("Clientes.dat","r");
FILE *arch7;
arch7=fopen("TempClientes.dat","at+");
while ((fread(&Clientes,sizeof(Clientes),1,arch3)==1))
{
if (Clientes.CedCliente != Cedbus)
{
fwrite(&Clientes,sizeof(Clientes),1,arch7);
}
}
fclose(arch3);
fclose(arch7);
remove("Clientes.dat");
rename("TempClientes.dat","Clientes.dat");
printf("\n Registro Eliminado");
}
else
{
printf("\n Cliente no registrado");
}
getch();
}
void eliminarVentas()
{
long int Cedbus;
int m;
clrscr();
printf("Ingrese la cedula del Cliente= ");
scanf("%ld",&Cedbus);
m=busquedaVentas(Cedbus);
if (m==1)
{
FILE *arch4;
arch4=fopen("Ventas.dat","r");
FILE *arch8;
arch8=fopen("TempVentas.dat","at+");
while ((fread(&Ventas,sizeof(Ventas),1,arch4)==1))
{
if (Ventas.CedCliente != Cedbus)
{
fwrite(&Ventas,sizeof(Ventas),1,arch8);
}
}
fclose(arch4);
fclose(arch8);
remove("Ventas.dat");
rename("TempVentas.dat","Ventas.dat");
printf("\n Registro Eliminado");
}
else
{
printf("\n Venta no registrada");
}
getch();
}
void Aeronave()
{
void ImprimirMatriz(char P[4][18],int posy, int posx);
int i,j,NumVueloBus;
char P[4][18];
char FechaBus[8];
for (i=40;i<=50;i++)
{
gotoxy(i,1);printf ("_");
}
for (j=2;j<=9;j++)
{
gotoxy(40,j);printf ("|");
}
for (j=2;j<=9;j++)
{
gotoxy(50,j);printf ("|");
}
for (i=25;i<=40;i++)
{
gotoxy(i,9);printf ("_");
}
for (i=50;i<=65;i++)
{
gotoxy(i,9);printf ("_");
}
for (j=10;j<=14;j++)
{
gotoxy(25,j);printf ("|");
}
for (j=10;j<=14;j++)
{
gotoxy(65,j);printf ("|");
}
for (i=25;i<=40;i++)
{
gotoxy(i,14);printf ("_");
}
for (i=50;i<=65;i++)
{
gotoxy(i,14);printf ("_");
}
for (j=15;j<24;j++)
{
gotoxy(40,j);printf ("|");
}
for (j=15;j<24;j++)
{
gotoxy(50,j);printf ("|");
}
for (i=40;i<=50;i++)
{
gotoxy(i,23);printf ("_");
}
gotoxy(2,20);printf ("Disponibilidad");
gotoxy(2,21);printf ("Fecha de Vuelo=");
scanf ("%s",&FechaBus);
gotoxy(2,22);printf ("Numero de Vuelo=");
scanf ("%d",&NumVueloBus);
FILE *arch4;
arch4=fopen("Ventas.dat","r");
while ((fread(&Ventas,sizeof(Ventas),1,arch4)==1))
{
if (Ventas.NumVuelo==NumVueloBus && strcmp(Ventas.Fecha,FechaBus)==0)
{
void CalcularPunto(char Asiento[4]);
}
}
fclose(arch4);
ImprimirMatriz(P,4,18);
getch();
}
void ImprimirMatriz(char P[4][18],int posy, int posx)
{
int i, j, y, x;
x=posx;
y=posy;
for(i=0; i<=4; i++)
{
for(j=0; j<=18; j++)
{
gotoxy(x,y);printf ("{%d} ",P[j]);
x=x+1;
}
x=posx;
y=y+1;
}
}
void CalcularPunto (char Asiento[4])
{
int fil, col;
char as[4],P[18][4];
as[0]=Asiento[0];
as[1]=Asiento[1];
fil=(int)(as);
switch (Asiento[3])
{
case 'a':col=0;break;
case 'b':col=1;break;
case 'c':col=2;break;
case 'd':col=3;break;
}
P[fil][col]='x';
getch();
}
void Presenta()
{
clrscr();
getdate(&d);
gettime(&t);
gotoxy(1,1);printf ("Integrantes:");
gotoxy(1,2);printf ("*Guerra Genesis");
gotoxy(1,3);printf ("*Martinez Borja");
gotoxy(1,4);printf ("Rattazzi Renzo");
gotoxy(1,5);printf ("Salazar Irmar");
gotoxy(60,1);printf("Fecha :%d/%d/%d",d.da_day,d.da_mon,d.da_year);
gotoxy(60,2);printf("Hora : %2d:%02d:%02d\n",t.ti_hour, t.ti_min, t.ti_sec);
getch();
}
Gracias por la ayuda, es para un proyecto de la universidad y solo me resta ese error.
Realicé un programa, cuando voy a compilar me aparece que no tiene errores pero cuando lo voy a correr me aparece este error y no permite crear el .exe:
Linker Warning: No module definition file specified: using defaults.
Linker Error: Undefined symbol ModificarClientes() in module AEROLINE.CPP (este ultimo lo repite 15 veces, solo que con el resto de las 16 funciones que empiezan por Ingresar, Modificar, Consultar y Eliminar).
Aquí anexo el código
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <dos.h>
struct {
char Marca[10];
char Modelo[10];
int Puestos;
char Velocidad[10];
char Matricula[7];
} Aviones;
struct {
int NumVuelo;
char Matricula[7];
char OriVuelo[3];
char DesVuelo[3];
char Fecha[8];
} Rutas;
struct {
long int CedCliente;
char NomCliente[20];
} Clientes;
struct {
long int CedCliente;
int NumVuelo;
char Fecha[8];
char Asiento[4];
} Ventas;
struct date d;
struct time t;
char sel;
char menuPrincipal();
char menuAviones2();
char menuRutas2();
char menuCientes2();
char menuVentas2();
int busquedaAviones(char MatriBus[7]);
int busquedaRutas(int NumVueloBus);
int busquedaClientes(long int Cedbus);
int busquedaVentas(long int Cedbus);
void menuAviones();
void menuRutas();
void menuClientes();
void menuVentas();
void incluirAviones();
void incluirRutas();
void incluirClientes();
void incluirVentas();
void consultarAviones();
void consultarRutas();
void consultarClientes();
void consultarVentas();
void modificarAviones();
void modificarRutas();
void modificarClientes();
void modificarVentas();
void eliminarAviones();
void eliminarRutas();
void eliminarClientes();
void eliminarVentas();
void Aeronave();
void ImprimirMatriz();
void CalcularPunto (char Asiento[4]);
void Presenta();
void main()
{
do
{
sel=menuPrincipal();
switch(sel)
{
case '1':{
menuAviones();
break;
}
case '2':{
menuRutas();
break;
}
case '3':{
menuClientes();
break;
}
case '4':{
menuVentas();
break;
}
}
} while (sel != '5');
}
char menuPrincipal()
{
char y;
clrscr();
gotoxy(30,8);printf("*Nueva Aerolínea*");
gotoxy(20,10);printf("1.- Aviones");
gotoxy(20,12);printf("2.- Rutas");
gotoxy(20,14);printf("3.- Clientes");
gotoxy(20,16);printf("4.- Ventas");
gotoxy(20,18);printf("5.- Salida");
gotoxy(50,20);printf("Seleccion = ");
scanf ("%c",&y);
return (y);
}
void menuAviones()
{
char menuAviones2();
void IngresarAviones();
void ConsultarAviones();
void ModificarAviones();
void EliminarAviones();
char opc;
do
{
opc=menuAviones2();
switch(opc)
{
case '1':{
IngresarAviones();
break;
}
case '2':{
ConsultarAviones();
break;
}
case '3':{
ModificarAviones();
break;
}
case '4':{
EliminarAviones();
break;
}
}
} while (opc != '5');
}
char menuAviones2()
{
char y;
clrscr();
gotoxy(30,8);printf("*Nueva Aerolínea*");
gotoxy (30,9);printf ("Menu de Aviones");
gotoxy(20,11);printf("1.- Incluir Avion en Flota");
gotoxy(20,13);printf("2.- Consultar Flota");
gotoxy(20,15);printf("3.- Modificar Flota");
gotoxy(20,17);printf("4.- Eliminar Avion en Flota");
gotoxy(20,18);printf("5.- Salida");
gotoxy(50,20);printf("Seleccion = ");
scanf ("%c",&y);
return (y);
}
void menuRutas()
{
char menuRutas2();
void IngresarRutas();
void ConsultarRutas();
void ModificarRutas();
void EliminarRutas();
char opc;
do
{
opc=menuRutas2();
switch(opc)
{
case '1':{
IngresarRutas();
break;
}
case '2':{
ConsultarRutas();
break;
}
case '3':{
ModificarRutas();
break;
}
case '4':{
EliminarRutas();
break;
}
}
} while (opc != '5');
}
char menuRutas2()
{
char y;
clrscr();
gotoxy(30,8);printf("*Nueva Aerolínea*");
gotoxy (30,9);printf ("Menu de Rutas");
gotoxy(20,11);printf("1.- Incluir Ruta");
gotoxy(20,13);printf("2.- Consultar Ruta");
gotoxy(20,15);printf("3.- Modificar Ruta");
gotoxy(20,17);printf("4.- Eliminar Ruta");
gotoxy(20,18);printf("5.- Salida");
gotoxy(50,20);printf("Seleccion = ");
scanf ("%c",&y);
return (y);
}
void menuClientes()
{
char menuClientes2();
void IngresarClientes();
void ConsultarClientes();
void ModificarClientes();
void EliminarClientes();
char opc;
do
{
opc=menuClientes2();
switch(opc)
{
case '1':{
IngresarClientes();
break;
}
case '2':{
ConsultarClientes();
break;
}
case '3':{
ModificarClientes();
break;
}
case '4':{
EliminarClientes();
break;
}
}
} while (opc != '5');
}
char menuClientes2()
{
char y;
clrscr();
gotoxy(30,8);printf("*Nueva Aerolínea*");
gotoxy (30,9);printf ("Menu de Cliente");
gotoxy(20,11);printf("1.- Registrar Cliente ");
gotoxy(20,13);printf("2.- Consultar Cliente");
gotoxy(20,15);printf("3.- Modificar Cliente");
gotoxy(20,17);printf("4.- Eliminar Cliente");
gotoxy(20,18);printf("5.- Salida");
gotoxy(50,20);printf("Seleccion = ");
scanf ("%c",&y);
return (y);
}
void menuVentas()
{
char menuVentas2();
void Aeronave();
void IngresarVentas();
void ConsultarVentas();
void ModificarVentas();
void EliminarVentas();
char opc;
do
{
opc=menuVentas2();
switch(opc)
{
case '1':{
Aeronave();
break;
}
case '2':{
IngresarVentas();
break;
}
case '3':{
ConsultarVentas();
break;
}
case '4':{
ModificarVentas();
break;
}
case '5':{
EliminarVentas();
break;
}
}
} while (opc != '6');
}
char menuVentas2()
{
char y;
clrscr();
gotoxy(30,8);printf("*Nueva Aerolínea*");
gotoxy (30,9);printf ("Menu de Ventas");
gotoxy(20,11);printf("1.- Disponibilidad");
gotoxy(20,13);printf("2.- Ingresar Venta - Disponibilidad");
gotoxy(20,15);printf("3.- Consultar Venta");
gotoxy(20,17);printf("4.- Modificar Flota");
gotoxy(20,19);printf("5.- Eliminar Avion en Flota");
gotoxy(20,21);printf("6.- Salida");
gotoxy(50,23);printf("Seleccion = ");
scanf ("%c",&y);
return (y);
}
int busquedaAviones(char MatriBus[7])
{
int z,band=0;
FILE *arch1;
arch1=fopen("Aviones.dat","r");
while ((band==0)&&(fread(&Aviones,sizeof(Aviones),1,arch1)==1))
{
if (strcmp(Aviones.Matricula,MatriBus)==0)
{
band=1;
}
}
if (band==0)
z = 0;
else
z = 1;
fclose(arch1);
return(z);
}
int busquedaRutas(int NumVueloBus)
{
int z,band=0;
FILE *arch2;
arch2=fopen("Rutas.dat","r");
while ((band==0)&&(fread(&Rutas,sizeof(Rutas),1,arch2)==1))
{
if (Rutas.NumVuelo==NumVueloBus)
{
band=1;
}
}
if (band==0)
z = 0;
else
z = 1;
fclose(arch2);
return(z);
}
int busquedaClientes(long int Cedbus)
{
int z,band=0;
FILE *arch3;
arch3=fopen("Clientes.dat","r");
while ((band==0)&&(fread(&Clientes,sizeof(Clientes),1,arch3)==1))
{
if (Clientes.CedCliente==Cedbus)
{
band=1;
}
}
if (band==0)
z = 0;
else
z = 1;
fclose(arch3);
return(z);
}
int busquedaVentas(long int Cedbus)
{
int z,band=0;
FILE *arch4;
arch4=fopen("Ventas.dat","r");
while ((band==0)&&(fread(&Ventas,sizeof(Ventas),1,arch4)==1))
{
if (Ventas.CedCliente==Cedbus)
{
band=1;
}
}
if (band==0)
z = 0;
else
z = 1;
fclose(arch4);
return(z);
}
void incluirAviones()
{
char MatriBus[7];
int m;
clrscr();
printf("Ingrese la matricula del avion= ");
scanf("%s",&MatriBus);
m=busquedaAviones(MatriBus);
if (m==0)
{
strcpy(Aviones.Matricula,MatriBus);
printf("Ingrese la marca del avion= ");
scanf("%s",&Aviones.Marca);
printf("Ingrese el modelo del avion= ");
scanf("%s",&Aviones.Modelo);
printf("Ingrese la cantidad de puestos que posee el avion= ");
scanf("%d",&Aviones.Puestos);
printf("Ingrese la velocidad de crucero del avion= ");
scanf("%s",&Aviones.Velocidad);
FILE *arch1;
arch1=fopen("Aviones.dat","at+");
fwrite(&Aviones,sizeof(Aviones),1,arch1);
fclose(arch1);
printf("\n Avion Registrado");
}
else
{
printf("\n Avión ya registrado");
}
getch();
}
void incluirRutas()
{
int NumVueloBus;
int m;
clrscr();
printf("Ingrese el número de vuelo= ");
scanf("%d",&NumVueloBus);
m=busquedaRutas(NumVueloBus);
if (m==0)
{
printf("Ingrese la matricula que realiza la ruta= ");
scanf("%s",&Rutas.Matricula);
printf("Ingrese el origen del vuelo= ");
scanf("%s",&Rutas.OriVuelo);
printf("Ingrese el destino del vuelo= ");
scanf("%d",&Rutas.DesVuelo);
printf("Ingrese la fecha del vuelo= ");
scanf("%s",&Rutas.Fecha);
FILE *arch2;
arch2=fopen("Rutas.dat","at+");
fwrite(&Rutas,sizeof(Rutas),1,arch2);
fclose(arch2);
printf("\n Ruta Registrada");
}
else
{
printf("\n Ruta ya registrada");
}
getch();
}
void incluirClientes()
{
long int Cedbus;
int m;
clrscr();
printf("Ingrese la cedula del Cliente= ");
scanf("%ld",&Cedbus);
m=busquedaClientes(Cedbus);
if (m==0)
{
printf("Ingrese el nombre del cliente= ");
gets(Clientes.NomCliente);
FILE *arch3;
arch3=fopen("Clientes.dat","at+");
fwrite(&Clientes,sizeof(Clientes),1,arch3);
fclose(arch3);
printf("\n Cliente Registrado");
}
else
{
printf("\n Cliente ya registrado");
}
getch();
}
void incluirVentas()
{
long int Cedbus;
int m;
clrscr();
printf("Ingrese la cedula del Cliente= ");
scanf("%ld",&Cedbus);
m=busquedaVentas(Cedbus);
if (m==0)
{
printf("Ingrese el numero del vuelo a realizar= ");
scanf("%d",Ventas.NumVuelo);
printf("Ingrese la fecha del vuelo a realizar= ");
scanf("%s",Ventas.Fecha);
printf("Ingrese el asiento al cliente= ");
scanf("%s",Ventas.Asiento);
FILE *arch4;
arch4=fopen("Ventas.dat","at+");
fwrite(&Ventas,sizeof(Ventas),1,arch4);
fclose(arch4);
printf("\n Venta Registrada");
}
else
{
printf("\n Venta no registrada");
}
getch();
}
void consultarAviones()
{
char MatriBus[7];
int m;
clrscr();
printf("Ingrese la matricula del avion= ");
scanf("%s",&MatriBus);
m=busquedaAviones(MatriBus);
if (m == 1)
{
printf("Marca del avion= %s \n",Aviones.Marca);
printf("Modelo del avion= %s \n",Aviones.Modelo);
printf("Puestos del avion= %d \n",Aviones.Puestos);
printf("Velocidad del avion= %s \n",Aviones.Velocidad);
}
else
{
printf("\n Matricula no registrada");
}
getch();
}
void consultarRutas()
{
int NumVueloBus;
int m;
clrscr();
printf("Ingrese el número de vuelo= ");
scanf("%d",&NumVueloBus);
m=busquedaRutas(NumVueloBus);
if (m == 1)
{
printf("Matricula del avion= %s \n",Rutas.Matricula);
printf("Origen del vuelo= %s \n",Rutas.OriVuelo);
printf("Destino del vuelo= %s \n",Rutas.DesVuelo);
printf("Fecha del vuelo= %s \n",Rutas.Fecha);
}
else
{
printf("\n Vuelo no registrado");
}
getch();
}
void consultarClientes()
{
long int Cedbus;
int m;
clrscr();
printf("Ingrese la cedula del Cliente= ");
scanf("%ld",&Cedbus);
m=busquedaClientes(Cedbus);
if (m == 1)
{
printf("Nombre del cliente= %s \n",Clientes.NomCliente);
}
else
{
printf("\n Cliente no registrado");
}
getch();
}
void consultarVentas()
{
long int Cedbus;
int m;
clrscr();
printf("Ingrese la cedula del Cliente= ");
scanf("%ld",&Cedbus);
m=busquedaVentas(Cedbus);
if (m == 1)
{
printf("Numero de vuelo= %d \n",Ventas.NumVuelo);
printf("Fecha del vuelo= %s \n",Ventas.Fecha);
printf("Asiento= %s \n",Ventas.Asiento);
}
else
{
printf("\n Vuelo no registrado");
}
getch();
}
void modificarAviones()
{
char MatriBus[7];
int m;
clrscr();
printf("Ingrese la matricula del avion= ");
scanf("%s",&MatriBus);
m=busquedaAviones(MatriBus);
if (m==1)
{
FILE *arch1;
arch1=fopen("Aviones.dat","r");
FILE *arch5;
arch5=fopen("TempAviones.dat","at+");
while((fread(&Aviones,sizeof(Aviones),1,arch1)==1))
{
if (strcmp(Aviones.Matricula,MatriBus)==0)
{
printf("Ingrese la marca del avion= ");
scanf("%s",&Aviones.Marca);
printf("Ingrese el modelo del avion= ");
scanf("%s",&Aviones.Modelo);
printf("Ingrese la cantidad de puestos que posee el avion= ");
scanf("%d",&Aviones.Puestos);
printf("Ingrese la velocidad de crucero del avion= ");
scanf("%s",&Aviones.Velocidad);
}
fwrite(&Aviones,sizeof(Aviones),1,arch5);
}
fclose(arch1);
fclose(arch5);
remove("Aviones.dat");
rename("TempAviones.dat","Aviones.dat");
printf("\n Registro de Aviones modificado");
}
else
{
printf("\n Matricula no registrada");
}
getch();
}
void modificarRutas()
{
int NumVueloBus;
int m;
clrscr();
printf("Ingrese el número de vuelo= ");
scanf("%d",&NumVueloBus);
m=busquedaRutas(NumVueloBus);
if (m==1)
{
FILE *arch2;
arch2=fopen("Rutas.dat","r");
FILE *arch6;
arch6=fopen("TempRutas.dat","at+");
while((fread(&Rutas,sizeof(Rutas),1,arch2)==1))
{
if (Rutas.NumVuelo==NumVueloBus)
{
printf("Ingrese la matricula que realiza la ruta= ");
scanf("%s",&Rutas.Matricula);
printf("Ingrese el origen del vuelo= ");
scanf("%s",&Rutas.OriVuelo);
printf("Ingrese el destino del vuelo= ");
scanf("%d",&Rutas.DesVuelo);
printf("Ingrese la fecha del vuelo= ");
scanf("%s",&Rutas.Fecha);
fwrite(&Rutas,sizeof(Rutas),1,arch6);
}
fclose(arch2);
fclose(arch6);
remove("Rutas.dat");
rename("TempRutas.dat","Rutas.dat");
printf("\n Registro de Rutas modificado");
}
}
else
{
printf("\n Vuelo no registrado");
}
getch();
}
void modificarClientes()
{
long int Cedbus;
int m;
clrscr();
printf("Ingrese la cedula del Cliente= ");
scanf("%ld",&Cedbus);
m=busquedaClientes(Cedbus);
if (m==1)
{
FILE *arch3;
arch3=fopen("Clientes.dat","r");
FILE *arch7;
arch7=fopen("TempClientes.dat","at+");
while((fread(&Clientes,sizeof(Clientes),1,arch3)==1))
{
if (Clientes.CedCliente==Cedbus)
{
printf("Ingrese el nombre del cliente= ");
gets(Clientes.NomCliente);
fwrite(&Rutas,sizeof(Rutas),1,arch7);
}
fclose(arch3);
fclose(arch7);
remove("Clientes.dat");
rename("TempClientes.dat","Clientes.dat");
printf("\n Registro de Clientes modificado");
}
}
else
{
printf("\n Cliente no registrado");
}
getch();
}
void modificarVentas()
{
long int Cedbus;
int m;
clrscr();
printf("Ingrese la cedula del Cliente= ");
scanf("%ld",&Cedbus);
m=busquedaVentas(Cedbus);
if (m==1)
{
FILE *arch4;
arch4=fopen("Ventas.dat","r");
FILE *arch8;
arch8=fopen("TempVentas.dat","at+");
while((fread(&Ventas,sizeof(Ventas),1,arch4)==1))
{
if (Ventas.CedCliente==Cedbus)
{
printf("Ingrese el numero del vuelo a realizar= ");
scanf("%d",Ventas.NumVuelo);
printf("Ingrese la fecha del vuelo a realizar= ");
scanf("%s",Ventas.Fecha);
printf("Ingrese el asiento al cliente= ");
scanf("%s",Ventas.Asiento);
fwrite(&Ventas,sizeof(Ventas),1,arch8);
}
fclose(arch4);
fclose(arch8);
remove("Ventas.dat");
rename("TempVentas.dat","Ventas.dat");
printf("\n Registro de Ventas modificado");
}
}
else
{
printf("\n Venta no registrada");
}
getch();
}
void eliminarAviones()
{
char MatriBus[7];
int m;
clrscr();
printf("Ingrese la matricula del avion= ");
scanf("%s",&MatriBus);
m=busquedaAviones(MatriBus);
if (m==1)
{
FILE *arch1;
arch1=fopen("Aviones.dat","r");
FILE *arch5;
arch5=fopen("TempAviones.dat","at+");
while ((fread(&Aviones,sizeof(Aviones),1,arch1)==1))
{
if (strcmp(Aviones.Matricula,MatriBus)!=0)
{
fwrite(&Aviones,sizeof(Aviones),1,arch5);
}
}
fclose(arch1);
fclose(arch5);
remove("Aviones.dat");
rename("TempAviones.dat","Aviones.dat");
printf("\n Registro Eliminado");
}
else
{
printf("\n Matricula No Encontrada");
}
getch();
}
void eliminarRutas()
{
int NumVueloBus;
int m;
clrscr();
printf("Ingrese el número de vuelo= ");
scanf("%d",&NumVueloBus);
m=busquedaRutas(NumVueloBus);
if (m==1)
{
FILE *arch2;
arch2=fopen("Rutas.dat","r");
FILE *arch6;
arch6=fopen("TempRutas.dat","at+");
while ((fread(&Rutas,sizeof(Rutas),1,arch2)==1))
{
if (Rutas.NumVuelo != NumVueloBus)
{
fwrite(&Rutas,sizeof(Rutas),1,arch6);
}
}
fclose(arch2);
fclose(arch6);
remove("Rutas.dat");
rename("TempRutas.dat","Rutas.dat");
printf("\n Registro Eliminado");
}
else
{
printf("\n Ruta no Encontrada");
}
getch();
}
void eliminarClientes()
{
long int Cedbus;
int m;
clrscr();
printf("Ingrese la cedula del Cliente= ");
scanf("%ld",&Cedbus);
m=busquedaClientes(Cedbus);
if (m==1)
{
FILE *arch3;
arch3=fopen("Clientes.dat","r");
FILE *arch7;
arch7=fopen("TempClientes.dat","at+");
while ((fread(&Clientes,sizeof(Clientes),1,arch3)==1))
{
if (Clientes.CedCliente != Cedbus)
{
fwrite(&Clientes,sizeof(Clientes),1,arch7);
}
}
fclose(arch3);
fclose(arch7);
remove("Clientes.dat");
rename("TempClientes.dat","Clientes.dat");
printf("\n Registro Eliminado");
}
else
{
printf("\n Cliente no registrado");
}
getch();
}
void eliminarVentas()
{
long int Cedbus;
int m;
clrscr();
printf("Ingrese la cedula del Cliente= ");
scanf("%ld",&Cedbus);
m=busquedaVentas(Cedbus);
if (m==1)
{
FILE *arch4;
arch4=fopen("Ventas.dat","r");
FILE *arch8;
arch8=fopen("TempVentas.dat","at+");
while ((fread(&Ventas,sizeof(Ventas),1,arch4)==1))
{
if (Ventas.CedCliente != Cedbus)
{
fwrite(&Ventas,sizeof(Ventas),1,arch8);
}
}
fclose(arch4);
fclose(arch8);
remove("Ventas.dat");
rename("TempVentas.dat","Ventas.dat");
printf("\n Registro Eliminado");
}
else
{
printf("\n Venta no registrada");
}
getch();
}
void Aeronave()
{
void ImprimirMatriz(char P[4][18],int posy, int posx);
int i,j,NumVueloBus;
char P[4][18];
char FechaBus[8];
for (i=40;i<=50;i++)
{
gotoxy(i,1);printf ("_");
}
for (j=2;j<=9;j++)
{
gotoxy(40,j);printf ("|");
}
for (j=2;j<=9;j++)
{
gotoxy(50,j);printf ("|");
}
for (i=25;i<=40;i++)
{
gotoxy(i,9);printf ("_");
}
for (i=50;i<=65;i++)
{
gotoxy(i,9);printf ("_");
}
for (j=10;j<=14;j++)
{
gotoxy(25,j);printf ("|");
}
for (j=10;j<=14;j++)
{
gotoxy(65,j);printf ("|");
}
for (i=25;i<=40;i++)
{
gotoxy(i,14);printf ("_");
}
for (i=50;i<=65;i++)
{
gotoxy(i,14);printf ("_");
}
for (j=15;j<24;j++)
{
gotoxy(40,j);printf ("|");
}
for (j=15;j<24;j++)
{
gotoxy(50,j);printf ("|");
}
for (i=40;i<=50;i++)
{
gotoxy(i,23);printf ("_");
}
gotoxy(2,20);printf ("Disponibilidad");
gotoxy(2,21);printf ("Fecha de Vuelo=");
scanf ("%s",&FechaBus);
gotoxy(2,22);printf ("Numero de Vuelo=");
scanf ("%d",&NumVueloBus);
FILE *arch4;
arch4=fopen("Ventas.dat","r");
while ((fread(&Ventas,sizeof(Ventas),1,arch4)==1))
{
if (Ventas.NumVuelo==NumVueloBus && strcmp(Ventas.Fecha,FechaBus)==0)
{
void CalcularPunto(char Asiento[4]);
}
}
fclose(arch4);
ImprimirMatriz(P,4,18);
getch();
}
void ImprimirMatriz(char P[4][18],int posy, int posx)
{
int i, j, y, x;
x=posx;
y=posy;
for(i=0; i<=4; i++)
{
for(j=0; j<=18; j++)
{
gotoxy(x,y);printf ("{%d} ",P[j]);
x=x+1;
}
x=posx;
y=y+1;
}
}
void CalcularPunto (char Asiento[4])
{
int fil, col;
char as[4],P[18][4];
as[0]=Asiento[0];
as[1]=Asiento[1];
fil=(int)(as);
switch (Asiento[3])
{
case 'a':col=0;break;
case 'b':col=1;break;
case 'c':col=2;break;
case 'd':col=3;break;
}
P[fil][col]='x';
getch();
}
void Presenta()
{
clrscr();
getdate(&d);
gettime(&t);
gotoxy(1,1);printf ("Integrantes:");
gotoxy(1,2);printf ("*Guerra Genesis");
gotoxy(1,3);printf ("*Martinez Borja");
gotoxy(1,4);printf ("Rattazzi Renzo");
gotoxy(1,5);printf ("Salazar Irmar");
gotoxy(60,1);printf("Fecha :%d/%d/%d",d.da_day,d.da_mon,d.da_year);
gotoxy(60,2);printf("Hora : %2d:%02d:%02d\n",t.ti_hour, t.ti_min, t.ti_sec);
getch();
}
Gracias por la ayuda, es para un proyecto de la universidad y solo me resta ese error.