Dev - C++ - Ayuda con registros

 
Vista:

Ayuda con registros

Publicado por Mariafernanda (2 intervenciones) el 01/08/2014 17:39:53
Por favor si pueden ayudarme con esto. Debo crear un registro que pueda insertar, modificar, eliminar y mostrar listado. En la parte Eliminar tengo un arroz con mango, en la linea 120 me da error y ya no se que hacer.

Aquí les copio todo el código,
Gracias de antemano.


#include <cstdlib>
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string.h>
#include <stdio.h>

using namespace std;

struct t_padres
{
int cedula;
char nombre[20];
};

struct t_datos
{
int cedula, telefono;
char nombre[20], correo[30];
t_padres padres[2];

} persona[5];
int dat_clave;
int eliminar;
char opc1;
short opc = 0, opcI=0, i=0, j=0;
void INSERTAR()
{ do{
cout<<"REGISTRAR"<<endl;
cout<<endl;
cout<<"Indique la cedula de la persona: "<<endl;
cin>>persona[i].cedula;
cout<<"Indique el nombre de la persona: "<<endl;
cin>>persona[i].nombre;
cout<<"Indique el correo de la persona: "<<endl;
cin>>persona[i].correo;
cout<<"Indique el telefono de la persona: "<<endl;
cin>>persona[i].telefono;
cout<<"Indique la cedula del padre: "<<endl;
cin>>persona[i].padres[0].cedula;
cout<<"Indique el nombre del padre: "<<endl;
cin>>persona[i].padres[0].nombre;
cout<<"Indique la cedula del madre: "<<endl;
cin>>persona[i].padres[1].cedula;
cout<<"Indique el nombre del madre: "<<endl;
cin>>persona[i].padres[1].nombre;
i++;

}
while(opcI = 1 && i < 5);
}

void MODIFICAR()
{ do{
cout<<"Indique la cedula: "<<endl;
cin>>dat_clave;
if(dat_clave == persona[j].cedula)

cout<<"Indique el nombre de la persona: "<<endl;
cin>>persona[j].nombre;
cout<<"Indique el correo de la persona: "<<endl;
cin>>persona[j].correo;
cout<<"Indique el telefono de la persona: "<<endl;
cin>>persona[j].telefono;
cout<<"Indique la cedula del padre: "<<endl;
cin>>persona[j].padres[0].cedula;
cout<<"Indique el nombre del padre: "<<endl;
cin>>persona[j].padres[0].nombre;
cout<<"Indique la cedula del madre: "<<endl;
cin>>persona[j].padres[1].cedula;
cout<<"Indique el nombre del madre: "<<endl;
cin>>persona[j].padres[1].nombre;
j++;
}
while (j < 5);
}

void ELIMINAR()
{ cout<<"USUARIOS REGISTRADOS: "<<endl;

cout<<"Usuario 1:"<<persona[1].cedula<<" , "<<persona[1].nombre<<" , "<<persona[1].correo<< " , "<<persona[1].telefono<<" , "<<persona[1].padres[1].cedula<<" , "<<persona[1].padres[1].nombre<<" , "<<persona[1].padres[1].cedula<<" , "<<persona[1].padres[1].nombre<<" , " <<endl;
cout<<endl;

cout<<"Usuario 2:"<<persona[2].cedula<<" , "<<persona[2].nombre<<" , "<<persona[2].correo<< " , "<<persona[2].telefono<<" , "<<persona[2].padres[2].cedula<<" , "<<persona[2].padres[2].nombre<<" , "<<persona[2].padres[2].cedula<<" , "<<persona[2].padres[2].nombre<<" , "<<endl;
cout<<endl;

cout<<"Usuario 3:"<<persona[3].cedula<<" , "<<persona[3].nombre<<" , "<<persona[3].correo<< " , "<<persona[3].telefono<<" , "<<persona[3].padres[3].cedula<<" , "<<persona[3].padres[3].nombre<<" , "<<persona[3].padres[3].cedula<<" , "<<persona[3].padres[3].nombre<<" , "<<endl;
cout<<endl;

cout<<"Usuario 4:"<<persona[4].cedula<<" , "<<persona[4].nombre<<" , "<<persona[4].correo<< " , "<<persona[4].telefono<<" , "<<persona[4].padres[4].cedula<<" , "<<persona[4].padres[4].nombre<<" , "<<persona[4].padres[4].cedula<<" , "<<persona[4].padres[4].nombre<<" , "<<endl;
cout<<endl;

cout<<"Usuario 5:"<<persona[5].cedula<<" , "<<persona[5].nombre<<" , "<<persona[5].correo<< " , "<<persona[5].telefono<<" , "<<persona[5].padres[5].cedula<<" , "<<persona[5].padres[5].nombre<<" , "<<persona[5].padres[5].cedula<<" , "<<persona[5].padres[5].nombre<<" , "<<endl;
cout<<endl;

cout<<"Seleccione numero de usuario para eliminar: "<<endl;
cin>>eliminar;

cout<<"Eliminando Usuario Seleccionado........"<<endl;

ifstream salida;
salida.open("registros.txt",ios::in);

ofstream entrada;

if(salida.fail()){
cout<<"Hubo un error al abrir el archivo registros.txt"<<endl;
getch();
}
else{
char aux[20];

cout<<"Ingrese la cedula: "<<endl;
cin>>aux;

salida>>persona[i].cedula;

while(!salida.eof()){

salida>>t_datos.nombre>>t_datos.correo>>t_datos.telefono>>t_padres.cedula>>t_padres.nombre>>t_padres.cedula>>t_padres.nombre<<endl;

if(strcmp()){

cout<<" El registro se ha eliminado"<<endl;
getch();
}
else{

entrada<<t_datos.nombre<<t_datos.correo<<t_datos.telefono<<t_padres.cedula<<t_padres.nombre<<t_padres.cedula<<t_padres.nombre<<endl;
}
salida>>cedula;

}
entrada.close();
salida.close();

remove("registros.txt");
rename("temp.txt","registros.txt");

}

cout<<"Usuario 1:"<<persona[1].cedula<<" , "<<persona[1].nombre<<" , "<<persona[1].correo<< " , "<<persona[1].telefono<<" , "<<persona[1].padres[1].cedula<<" , "<<persona[1].padres[1].nombre<<" , "<<persona[1].padres[1].cedula<<" , "<<persona[1].padres[1].nombre<<" , " <<endl;
cout<<endl;
cout<<"Usuario 2:"<<persona[2].cedula<<" , "<<persona[2].nombre<<" , "<<persona[2].correo<< " , "<<persona[2].telefono<<" , "<<persona[2].padres[2].cedula<<" , "<<persona[2].padres[2].nombre<<" , "<<persona[2].padres[2].cedula<<" , "<<persona[2].padres[2].nombre<<" , "<<endl;
cout<<endl;
cout<<"Usuario 3:"<<persona[3].cedula<<" , "<<persona[3].nombre<<" , "<<persona[3].correo<< " , "<<persona[3].telefono<<" , "<<persona[3].padres[3].cedula<<" , "<<persona[3].padres[3].nombre<<" , "<<persona[3].padres[3].cedula<<" , "<<persona[3].padres[3].nombre<<" , "<<endl;
cout<<endl;
cout<<"Usuario 4:"<<persona[4].cedula<<" , "<<persona[4].nombre<<" , "<<persona[4].correo<< " , "<<persona[4].telefono<<" , "<<persona[4].padres[4].cedula<<" , "<<persona[4].padres[4].nombre<<" , "<<persona[4].padres[4].cedula<<" , "<<persona[4].padres[4].nombre<<" , "<<endl;
cout<<endl;
cout<<"Usuario 5:"<<persona[5].cedula<<" , "<<persona[5].nombre<<" , "<<persona[5].correo<< " , "<<persona[5].telefono<<" , "<<persona[5].padres[5].cedula<<" , "<<persona[5].padres[5].nombre<<" , "<<persona[5].padres[5].cedula<<" , "<<persona[5].padres[5].nombre<<" , "<<endl;
cout<<endl;
}

void LISTADO()
{ cout<<"Usuario 1:"<<persona[1].cedula<<" , "<<persona[1].nombre<<" , "<<persona[1].correo<< " , "<<persona[1].telefono<<" , "<<persona[1].padres[1].cedula<<" , "<<persona[1].padres[1].nombre<<" , "<<persona[1].padres[1].cedula<<" , "<<persona[1].padres[1].nombre<<" , " <<endl;
cout<<endl;
cout<<"Usuario 2:"<<persona[2].cedula<<" , "<<persona[2].nombre<<" , "<<persona[2].correo<< " , "<<persona[2].telefono<<" , "<<persona[2].padres[2].cedula<<" , "<<persona[2].padres[2].nombre<<" , "<<persona[2].padres[2].cedula<<" , "<<persona[2].padres[2].nombre<<" , "<<endl;
cout<<endl;
cout<<"Usuario 3:"<<persona[3].cedula<<" , "<<persona[3].nombre<<" , "<<persona[3].correo<< " , "<<persona[3].telefono<<" , "<<persona[3].padres[3].cedula<<" , "<<persona[3].padres[3].nombre<<" , "<<persona[3].padres[3].cedula<<" , "<<persona[3].padres[3].nombre<<" , "<<endl;
cout<<endl;
cout<<"Usuario 4:"<<persona[4].cedula<<" , "<<persona[4].nombre<<" , "<<persona[4].correo<< " , "<<persona[4].telefono<<" , "<<persona[4].padres[4].cedula<<" , "<<persona[4].padres[4].nombre<<" , "<<persona[4].padres[4].cedula<<" , "<<persona[4].padres[4].nombre<<" , "<<endl;
cout<<endl;
cout<<"Usuario 5:"<<persona[5].cedula<<" , "<<persona[5].nombre<<" , "<<persona[5].correo<< " , "<<persona[5].telefono<<" , "<<persona[5].padres[5].cedula<<" , "<<persona[5].padres[5].nombre<<" , "<<persona[5].padres[5].cedula<<" , "<<persona[5].padres[5].nombre<<" , "<<endl;
cout<<endl;
}


int main(int argc, char *argv[])
{

do{
cout<<"OPCIONES"<<endl;
cout<<endl;
cout<<"1.- INSERTAR"<<endl;
cout<<"2.- MODIFICAR"<<endl;
cout<<"3.- ELIMINAR"<<endl;
cout<<"4.- LISTADO"<<endl;
cout<<"5.- SALIR"<<endl;
cout<<endl;
cout<<"Indique su opcion"<<endl;
cin>>opc;

switch (opc) {
case 1:{ INSERTAR();
break;
}

case 2:{ MODIFICAR();
break;
}


case 3:{ ELIMINAR();
break;
}

case 4:{ LISTADO();
break;
}
default:{
cout<<"Opcion invalida...."<<endl ;
} break;
}

} while (opc != 5);
cout<<"Desea Realizar otra operacion ¿s/n?"<<endl;
cin>>opc1;

} while (opc1 == 's');

}
system("PAUSE");
return EXIT_SUCCESS;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Francisco

Ayuda con registros

Publicado por Francisco (10 intervenciones) el 02/08/2014 05:38:31
Saludos. Tienes muchos errores en tu codigo. por ejemplo en la funcion main al final pusiste un while de mas. si ya tienes el while(opc!= 5) para que pones otro while con la variable opc igual a 's'. Si el usuario pone un 5 para escoger la opcion salir en vez de salir le preguntas si quiere hacer otra operacion y aunque responda que si (s) el programa no hara nada por que no abriste un do al inicio.Tambien en la funcion strcmp() no le pusiste ningun argumento, esta es una funcion para comparar cadenas, pero si no le pones cadenas para comparar no creo que haga nada. Ademas en la funcion de INSERTAR no grabas nada en archivo, en la funcion de eliminar solo muestras 5 registros, y si hay mas?? y si hay menos, debes verificar primero si hay mas de un registro para poder imprimirlo en pantalla. aun no reviso el codigo bien pero te sugiero que estudies un poco mas la sintaxis de c++. Sobre todo el uso de ofstream e ifstream, para empezar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con registros

Publicado por Mariafernanda (2 intervenciones) el 03/08/2014 22:26:29
Hola Francisco, gracias por responder.
Fíjate, he estado haciendo esto a ciegas y sola porque mi profesor no da clases, ni instrumentos para trabajar, sólo envía un trabajo y a matarse, por eso tantos errores.
He resuelto algunas cosas leyendo en la web, aquí está el código un poco mejor, ya corre y crea el archivo, pero no logro que guarde los datos, por supuesto tampoco he resuelto lo de modificar ni eliminar.
Si me puedes echar una mano con eso te lo agradecería en el alma.
Necesito poder agregar, modificar y eliminar los datos.

#include <cstdlib>
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string.h>
#include <stdio.h>


using namespace std;

struct t_padres
{
int cedula;
string nombre;
};

struct t_datos
{
int cedula, telefono;
string nombre, correo;
t_padres padres[2];

} persona [5];
int dat_clave;
int eliminar;
char opc1;
short opc = 0, opcI=0, i=0, j=0;


void INSERTAR()

{ ofstream fichero("registro.txt",ios::app);

do{
cout<<"REGISTRAR"<<endl;
cout<<endl;
cout<<"Indique la cedula de la persona: "<<endl;
cin>>persona[i].cedula;
cout<<"Indique el nombre de la persona: "<<endl;
cin>>persona[i].nombre;
cout<<"Indique el correo de la persona: "<<endl;
cin>>persona[i].correo;
cout<<"Indique el telefono de la persona: "<<endl;
cin>>persona[i].telefono;
cout<<"Indique la cedula del padre: "<<endl;
cin>>persona[i].padres[0].cedula;
cout<<"Indique el nombre del padre: "<<endl;
cin>>persona[i].padres[0].nombre;
cout<<"Indique la cedula del madre: "<<endl;
cin>>persona[i].padres[1].cedula;
cout<<"Indique el nombre del madre: "<<endl;
cin>>persona[i].padres[1].nombre;
i++;

}
while(opcI = 1 && i < 5);

fichero<<persona[1].cedula<<persona[1].nombre<<persona[1].correo<<persona[1].telefono<<persona[1].padres[1].cedula<<persona[1].padres[1].nombre<<persona[1].padres[1].cedula<<persona[1].padres[1].nombre;
fichero<<persona[2].cedula<<persona[2].nombre<<persona[2].correo<<persona[2].telefono<<persona[2].padres[2].cedula<<persona[2].padres[2].nombre<<persona[2].padres[2].cedula<<persona[2].padres[2].nombre;
fichero<<persona[3].cedula<<persona[3].nombre<<persona[3].correo<<persona[3].telefono<<persona[3].padres[3].cedula<<persona[3].padres[3].nombre<<persona[3].padres[3].cedula<<persona[3].padres[3].nombre;
fichero<<persona[4].cedula<<persona[4].nombre<<persona[4].correo<<persona[4].telefono<<persona[4].padres[4].cedula<<persona[4].padres[4].nombre<<persona[4].padres[4].cedula<<persona[4].padres[4].nombre;
fichero<<persona[5].cedula<<persona[5].nombre<<persona[5].correo<<persona[5].telefono<<persona[5].padres[5].cedula<<persona[5].padres[5].nombre<<persona[5].padres[5].cedula<<persona[5].padres[5].nombre;

fichero.close();
}


void MODIFICAR()
{
do{
cout<<"Indique la cedula: "<<endl;
cin>>dat_clave;
if(dat_clave == persona[j].cedula)

cout<<"Indique el nombre de la persona: "<<endl;
cin>>persona[j].nombre;
cout<<"Indique el correo de la persona: "<<endl;
cin>>persona[j].correo;
cout<<"Indique el telefono de la persona: "<<endl;
cin>>persona[j].telefono;
cout<<"Indique la cedula del padre: "<<endl;
cin>>persona[j].padres[0].cedula;
cout<<"Indique el nombre del padre: "<<endl;
cin>>persona[j].padres[0].nombre;
cout<<"Indique la cedula del madre: "<<endl;
cin>>persona[j].padres[1].cedula;
cout<<"Indique el nombre del madre: "<<endl;
cin>>persona[j].padres[1].nombre;
j++;
}
while (j < 5);
}

void ELIMINAR()
{ cout<<"USUARIOS REGISTRADOS: "<<endl;

cout<<"Usuario 1:"<<persona[1].cedula<<" , "<<persona[1].nombre<<" , "<<persona[1].correo<< " , "<<persona[1].telefono<<" , "<<persona[1].padres[1].cedula<<" , "<<persona[1].padres[1].nombre<<" , "<<persona[1].padres[1].cedula<<" , "<<persona[1].padres[1].nombre<<" , " <<endl;
cout<<endl;

cout<<"Usuario 2:"<<persona[2].cedula<<" , "<<persona[2].nombre<<" , "<<persona[2].correo<< " , "<<persona[2].telefono<<" , "<<persona[2].padres[2].cedula<<" , "<<persona[2].padres[2].nombre<<" , "<<persona[2].padres[2].cedula<<" , "<<persona[2].padres[2].nombre<<" , "<<endl;
cout<<endl;

cout<<"Usuario 3:"<<persona[3].cedula<<" , "<<persona[3].nombre<<" , "<<persona[3].correo<< " , "<<persona[3].telefono<<" , "<<persona[3].padres[3].cedula<<" , "<<persona[3].padres[3].nombre<<" , "<<persona[3].padres[3].cedula<<" , "<<persona[3].padres[3].nombre<<" , "<<endl;
cout<<endl;

cout<<"Usuario 4:"<<persona[4].cedula<<" , "<<persona[4].nombre<<" , "<<persona[4].correo<< " , "<<persona[4].telefono<<" , "<<persona[4].padres[4].cedula<<" , "<<persona[4].padres[4].nombre<<" , "<<persona[4].padres[4].cedula<<" , "<<persona[4].padres[4].nombre<<" , "<<endl;
cout<<endl;

cout<<"Usuario 5:"<<persona[5].cedula<<" , "<<persona[5].nombre<<" , "<<persona[5].correo<< " , "<<persona[5].telefono<<" , "<<persona[5].padres[5].cedula<<" , "<<persona[5].padres[5].nombre<<" , "<<persona[5].padres[5].cedula<<" , "<<persona[5].padres[5].nombre<<" , "<<endl;
cout<<endl;

cout<<"Seleccione numero de usuario para eliminar: "<<endl;
cin>>eliminar;

cout<<"Eliminando Usuario Seleccionado........"<<endl;

ifstream salida;
salida.open("registros.txt",ios::in);

ofstream ("registros.txt");

if(salida.fail())
{
cout<<"Hubo un error al abrir el archivo registros.txt"<<endl;
getch();
}
else
{
char aux[20];
int count=0;

cout<<"Ingrese la cedula: "<<endl;
cin>>aux;

salida>>persona[i].cedula;

while(!salida.eof())
{

salida>>aux;

if(strcmp(aux,"persona[i].cedula")==0)
{
count++;

cout<<" El registro se ha eliminado"<<endl;
getch();
}

salida.close();

remove("registros.txt");
rename("temp.txt","registros.txt");

}

cout<<"Usuario 1:"<<persona[1].cedula<<" , "<<persona[1].nombre<<" , "<<persona[1].correo<< " , "<<persona[1].telefono<<" , "<<persona[1].padres[1].cedula<<" , "<<persona[1].padres[1].nombre<<" , "<<persona[1].padres[1].cedula<<" , "<<persona[1].padres[1].nombre<<" , " <<endl;
cout<<endl;
cout<<"Usuario 2:"<<persona[2].cedula<<" , "<<persona[2].nombre<<" , "<<persona[2].correo<< " , "<<persona[2].telefono<<" , "<<persona[2].padres[2].cedula<<" , "<<persona[2].padres[2].nombre<<" , "<<persona[2].padres[2].cedula<<" , "<<persona[2].padres[2].nombre<<" , "<<endl;
cout<<endl;
cout<<"Usuario 3:"<<persona[3].cedula<<" , "<<persona[3].nombre<<" , "<<persona[3].correo<< " , "<<persona[3].telefono<<" , "<<persona[3].padres[3].cedula<<" , "<<persona[3].padres[3].nombre<<" , "<<persona[3].padres[3].cedula<<" , "<<persona[3].padres[3].nombre<<" , "<<endl;
cout<<endl;
cout<<"Usuario 4:"<<persona[4].cedula<<" , "<<persona[4].nombre<<" , "<<persona[4].correo<< " , "<<persona[4].telefono<<" , "<<persona[4].padres[4].cedula<<" , "<<persona[4].padres[4].nombre<<" , "<<persona[4].padres[4].cedula<<" , "<<persona[4].padres[4].nombre<<" , "<<endl;
cout<<endl;
cout<<"Usuario 5:"<<persona[5].cedula<<" , "<<persona[5].nombre<<" , "<<persona[5].correo<< " , "<<persona[5].telefono<<" , "<<persona[5].padres[5].cedula<<" , "<<persona[5].padres[5].nombre<<" , "<<persona[5].padres[5].cedula<<" , "<<persona[5].padres[5].nombre<<" , "<<endl;
cout<<endl;
}
}
void LISTADO()
{
cout<<"Usuario 1:"<<persona[1].cedula<<" , "<<persona[1].nombre<<" , "<<persona[1].correo<< " , "<<persona[1].telefono<<" , "<<persona[1].padres[1].cedula<<" , "<<persona[1].padres[1].nombre<<" , "<<persona[1].padres[1].cedula<<" , "<<persona[1].padres[1].nombre<<" , " <<endl;
cout<<endl;
cout<<"Usuario 2:"<<persona[2].cedula<<" , "<<persona[2].nombre<<" , "<<persona[2].correo<< " , "<<persona[2].telefono<<" , "<<persona[2].padres[2].cedula<<" , "<<persona[2].padres[2].nombre<<" , "<<persona[2].padres[2].cedula<<" , "<<persona[2].padres[2].nombre<<" , "<<endl;
cout<<endl;
cout<<"Usuario 3:"<<persona[3].cedula<<" , "<<persona[3].nombre<<" , "<<persona[3].correo<< " , "<<persona[3].telefono<<" , "<<persona[3].padres[3].cedula<<" , "<<persona[3].padres[3].nombre<<" , "<<persona[3].padres[3].cedula<<" , "<<persona[3].padres[3].nombre<<" , "<<endl;
cout<<endl;
cout<<"Usuario 4:"<<persona[4].cedula<<" , "<<persona[4].nombre<<" , "<<persona[4].correo<< " , "<<persona[4].telefono<<" , "<<persona[4].padres[4].cedula<<" , "<<persona[4].padres[4].nombre<<" , "<<persona[4].padres[4].cedula<<" , "<<persona[4].padres[4].nombre<<" , "<<endl;
cout<<endl;
cout<<"Usuario 5:"<<persona[5].cedula<<" , "<<persona[5].nombre<<" , "<<persona[5].correo<< " , "<<persona[5].telefono<<" , "<<persona[5].padres[5].cedula<<" , "<<persona[5].padres[5].nombre<<" , "<<persona[5].padres[5].cedula<<" , "<<persona[5].padres[5].nombre<<" , "<<endl;
cout<<endl;
}


int main(int argc, char *argv[])
{
do{
do{
cout<<"OPCIONES"<<endl;
cout<<endl;
cout<<"1.- INSERTAR"<<endl;
cout<<"2.- MODIFICAR"<<endl;
cout<<"3.- ELIMINAR"<<endl;
cout<<"4.- LISTADO"<<endl;
cout<<"5.- SALIR"<<endl;
cout<<endl;
cout<<"Indique su opcion"<<endl;
cin>>opc;
} while (opc > 5 & opc<0);
switch (opc) {
case 1:{ INSERTAR();
break;
}

case 2:{ MODIFICAR();
break;
}


case 3:{ ELIMINAR();
break;
}

case 4:{ LISTADO();
break;
}
default:{
cout<<"Opcion invalida...."<<endl ;
} break;

}



cout<<"Desea Realizar otra operacion ¿s/n?"<<endl;
cin>>opc1;

}while (opc1 == 's');




system("PAUSE");
return EXIT_SUCCESS;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar