Buenas Tardes estoy llevando el curso de Estructuras de la Información y me han dejado el siguiente problema pero no eh podido resolverlo quisiera que me digan en que me estoy equivocando o que me falta muchas gracias de antemano
/*
Escriba la especificacion de los TAD, el algoritmo y su implementacion en C++,
para registrar una tercera fila, la interseccion de dos filas. Por ejemplo:
Entrada:
Fila1:1,3,7,11,15,19
Fila2:3,4,7,13,15,18,19,20
Salida:
Fila3:3,7,15,19
*/
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstdlib>
using namespace std;
class ENTERO
{
int num;
public:
void menu()
{
cout<<"\nMenu de Opciones\n";
cout<<"--------------\n";
cout<<"<1> Adicionar fila1\n";
cout<<"<2> Adicionar fila2\n";
cout<<"<3> Intersectar filas\n";
cout<<"<4> Mostrar Filas\n";
cout<<"<5> Salir\n";
}
void ingresarEntero()
{
fflush(stdin);
cout<<"\nIngresar Entero: ";cin>>num;
}
void mostrarEntero()
{
cout<<num<<setw(4);
}
int retornarEntero()
{
return num;
}
};
class FILA
{
ENTERO e;
public:
void registrarFila(char fila[], ENTERO x)
{
ofstream salida(fila,ios::out | ios::app|ios::binary);
if(!salida)
cout<<"ERROR: No se puede realizar la apaertura del archivo ";
else
{
salida.write(reinterpret_cast <char *>(&x),sizeof(ENTERO));
salida.close();
}
}
void intersectarFila(char fila1[], char fila2[], char fila3[])
{
bool salir;
ENTERO x,y;
ifstream F1 (fila1,ios::in|ios::binary);
ofstream F3 (fila3,ios::out|ios::app|ios::binary);
if(!F3)
cout<<"ERROR al abrir "<<fila3;
else if(!F1)
cout<<"erro al abrir: "<<fila1;
else
{
F1.read(reinterpret_cast <char *> (&x),sizeof(ENTERO));
while(!F1.eof())
{
salir=false;
ifstream F2 (fila2,ios::in|ios::binary);
F2.read(reinterpret_cast <char *>(&y),sizeof(ENTERO));
while(!F2.eof() && !salir)
{
if(x.retornarEntero()==y.retornarEntero());
salir=true;
F2.read(reinterpret_cast <char *>(&y),sizeof(ENTERO));
}
F2.close();
if(salir==true)
F3.write(reinterpret_cast <char *>(&x),sizeof(ENTERO));
F1.read(reinterpret_cast <char *>(&x),sizeof(ENTERO));
}
F1.close();
F3.close();
}
}
void mostrarFila(char fila[])
{
ENTERO x;
ifstream lee(fila,ios::in|ios::binary);
if(!lee)
cout<<" NO se pudo abrir el archivo. ";
else
{
lee.read(reinterpret_cast <char *> (&x), sizeof(ENTERO));
while(!lee.eof())
{
x.mostrarEntero();
//Segunda y demas lecturas
lee.read(reinterpret_cast <char *> (&x), sizeof(ENTERO));
}
lee.close();
}
}
};
int main()
{
char opcion;
FILA x;
ENTERO e;
do
{
e.menu();
cout<<" Ingresar opcion: ";
opcion=cin.get();
switch(opcion)
{
case '1':
e.ingresarEntero();
x.registrarFila("fila1", e);
break;
case '2':
e.ingresarEntero();
x.registrarFila("fila2", e);
break;
case '3':
x.intersectarFila("fila1","fila2","fila3");
cout<<"\n se intersecto exitosamente :)\n";
break;
case '4':
cout<<"fila 1:\n";
x.mostrarFila("fila1");cout<<"\n";
cout<<"fila 2:\n";
x.mostrarFila("fila2");cout<<"\n";
cout<<"fila 3:\n";
x.mostrarFila("fila3");cout<<"\n";
break;
}
cin.ignore();
}
while (opcion !='5');
system("PAUSE");
return 0;
}