Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Duda con Filas Secuenciales

Estas en el tema de Duda con Filas Secuenciales en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 23/09/2013, 00:31
 
Fecha de Ingreso: septiembre-2013
Mensajes: 1
Antigüedad: 10 años, 7 meses
Puntos: 0
Pregunta Duda con Filas Secuenciales

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;
}

Etiquetas: filas, int, struct
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:37.