Hola a Todos tengo un problema con El metodo consulta que Si ingreso una persona duplica la ultima y no quiero que haga eso aqui dejo el codigo
#include <cstdlib>
#include <iostream>
#include <fstream>
#include<conio.h>
#include<stdio.h>
#include<ctype.h>
using namespace std;
float notap;
float p;
char opc;
struct alumnos
{
char nombre[10],apellido[10],sexo,opc;
int cedu,edad;
float nota1,nota2,nota3;
}alu;
void Ingresar()
{
ofstream Alumnos; //flujo de datos de entrada llamado Alumnos)
Alumnos.open("Alumnos.txt",ios::out|ios::app); // Crea un archivo txt si no existe("out") y no superpone("app") lo guardado si no q lo guarda abajo
if (Alumnos.fail()) //verifica si ocurrio un error
{
cout<<"ERROR AL CREAR ARCHIVO TXT";
getch(); // da una pausa hasta que el usuario presione una tecla
}
else
{
system("cls");
cout<<"\n\n\t\t\t\t-INGRESE LOS DATOS-\n\n\n"; //Ingresa Alumnosss
cout<<"Ingrese Nombre Del Alumno(a)\n";
cin>>alu.nombre;
cout<<"Ingrese Apellido Del Alumno(a)\n";
cin>>alu.apellido;
cout<<"Ingrese Cedula Del Alumno(a)\n";
cin>>alu.cedu;
cout<<"Ingrese Sexo Del Alumno(a) (M/F)\n";
cin>>alu.sexo;
cout<<"Ingrese edad Del Alumno(a)\n";
cin>>alu.edad;
cout<<"Ingrese Nota1 Del Alumno(a)\n";
cin>>alu.nota1;
cout<<"Ingrese Nota2 Del Alumno(a)\n";
cin>>alu.nota2;
cout<<"Ingrese Nota3 Del Alumno(a)\n";
cin>>alu.nota3;
p=alu.nota1+alu.nota2+alu.nota3; // Operacion para calcular el promedio Primero suma despeys divide
notap=p/3;
Alumnos<<" "<<alu.nombre<<" "<<alu.apellido<<" "<<alu.cedu<<" "<<alu.sexo<<" "<<alu.edad<<" "<<alu.nota1<<" "<<alu.nota2<<" "<<alu.nota3<<" "<<notap<<endl;
// en la linea de arriba guarda los alumnos ingresados en el txt
cout<<"ALUMNOS REGISTRADO CON EXITO..)?";
getch();
Alumnos.close();
}
}
void Consultar()
{
ifstream consulta; // crea un flujo de datos de salida
consulta.open("Alumnos.txt",ios::in); // Busca los datos que estan almacenados en el txt alumnos
if(consulta.fail()) // si falla la creacion mandara un error
{
cout<<"Fallo la Consulta";
getch();
}
else
{
while(!consulta.eof()) // se repetira hasta que no alla mas datos en el txt hasta que llege al final eso quiere decir eof
{
consulta>>alu.nombre>>alu.apellido>>alu.cedu>>alu.sexo>>alu.edad>>alu.nota1>>alu.nota2>>alu.nota3>>notap;
cout<<"\nNombre "<<alu.nombre;
cout<<"\nApellido "<<alu.apellido;
cout<<"\nCedula "<<alu.cedu;
cout<<"\nSexo "<<alu.sexo;
cout<<"\nEdad "<<alu.edad;
cout<<"\nNota1 "<<alu.nota1;
cout<<"\nNota2 "<<alu.nota2;
cout<<"\nNota3 "<<alu.nota3;
cout<<"\n-----------------------------";
}
consulta.close();
}
getch();
}
void Buscar()
{
int val=0;
ifstream consulta;
consulta.open("Alumnos.txt",ios::in);
if(consulta.fail())
{
cout<<"Fallo la Consulta";
getch();
}
else
{
int ced;
system("cls");
cout<<"\nIngrese Cedula Del Alumno\n";
cin>>ced;
consulta>>alu.nombre;
while(!consulta.eof())
{
consulta>>alu.nombre>>alu.apellido>>alu.cedu>>alu.sexo>>alu.edad>>alu.nota1>>alu.nota2>>alu.nota3>>notap;
if(ced==alu.cedu)
{
val=1;
cout<<"\nNombre "<<alu.nombre;
cout<<"\nApellido "<<alu.apellido;
cout<<"\nCedula "<<alu.cedu;
cout<<"\nSexo "<<alu.sexo;
cout<<"\nEdad "<<alu.edad;
cout<<"\nNota1 "<<alu.nota1;
cout<<"\nNota2 "<<alu.nota2;
cout<<"\nNota3 "<<alu.nota3;
cout<<"\n-----------------------------";
}
consulta>>alu.nombre;
}
if(val==0)
{
cout<<"El Alumno A Buscar No Esta Registrado, Registrelo";
}
consulta.close();
}
getch();
}
void Modificar()
{
system("cls");
int val=0;
ifstream consulta;
consulta.open("Alumnos.txt",ios::in);
ofstream Alumnos;
Alumnos.open("Temps.txt",ios::out);
if(consulta.fail() || Alumnos.fail())
{
cout<<"Fallo la Creacion del archivo Consulta.txt o Temp.txt";
getch();
}
else
{
int ced;
cout<<"Se Le Mostrara Primero Los Datos a Modificar\n";
getch();
Buscar();
cout<<"\nIngrese Cedula Del Alumno Para Modificar\n";
cin>>ced;
consulta>>alu.nombre;
while(!consulta.eof())
{
consulta>>alu.nombre>>alu.apellido>>alu.cedu>>alu.sexo>>alu.edad>>alu.nota1>>alu.nota2>>alu.nota3>>notap;
if(ced==alu.cedu)
{
val=1;
cout<<"\nIngrese El Nuevo Nombre ";
cin>>alu.nombre;
cout<<"\nApellido ";
cin>>alu.apellido;
cout<<"\nCedula ";
cin>>alu.cedu;
cout<<"\nSexo ";
cin>>alu.sexo;
cout<<"\nEdad ";
cin>>alu.edad;
cout<<"\nNota1 ";
cin>>alu.nota1;
cout<<"\nNota2 ";
cin>>alu.nota2;
cout<<"\nNota3 ";
cin>>alu.nota3;
cout<<"\n-----------------------------";
}
Alumnos<<alu.nombre<<" "<<alu.apellido<<" "<<alu.cedu<<" "<<alu.sexo<<" "<<alu.edad<<" "<<alu.nota1<<" "<<alu.nota2<<" "<<alu.nota3<<" "<<notap<<endl;
consulta>>alu.nombre;
}
if(val==0)
{
cout<<"\nEl Alumno A Buscar No Esta Registrado, Registrelo";
}
consulta.close();
Alumnos.close();
remove("Alumnos.txt");
rename("temps.txt","Alumnos.txt");
}
getch();
}
void Alumnos_Aprovados()
{
int val=0;
ifstream consulta;
consulta.open("Alumnos.txt",ios::in);
if(consulta.fail())
{
cout<<"Fallo la Consulta";
getch();
}
else
{
system("cls");
consulta>>alu.nombre;
while(!consulta.eof())
{
consulta>>alu.nombre>>alu.apellido>>alu.cedu>>alu.sexo>>alu.edad>>alu.nota1>>alu.nota2>>alu.nota3>>notap;
if(notap>=10)
{
cout<<"\n\n\t\t\t\t-ALUMNOS APROVADOS-\n\n\n";
val=1;
cout<<"\nNombre "<<alu.nombre;
cout<<"\nApellido "<<alu.apellido;
cout<<"\nCedula "<<alu.cedu;
cout<<"\nSexo "<<alu.sexo;
cout<<"\nEdad "<<alu.edad;
cout<<"\nNota1 "<<alu.nota1;
cout<<"\nNota2 "<<alu.nota2;
cout<<"\nNota3 "<<alu.nota3;
cout<<"\nAprovado Con La Nota De "<<notap;
cout<<"\n-----------------------------";
}
consulta>>alu.nombre;
}
if(val==0)
{
cout<<"NO HAY ALUMNOS APROVADOS";
}
consulta.close();
}
getch();
}
void Alumnos_Reprovados()
{
int val=0;
ifstream consulta;
consulta.open("Alumnos.txt",ios::in);
if(consulta.fail())
{
cout<<"Fallo la Consulta";
getch();
}
else
{
system("cls");
consulta>>alu.nombre;
while(!consulta.eof())
{
consulta>>alu.nombre>>alu.apellido>>alu.cedu>>alu.sexo>>alu.edad>>alu.nota1>>alu.nota2>>alu.nota3>>notap;
if(notap<10)
{
val=1;
cout<<"\n\n\t\t\t\t-ALUMNOS REPROVADOS-\n\n\n";
cout<<"\nNombre "<<alu.nombre;
cout<<"\nApellido "<<alu.apellido;
cout<<"\nCedula "<<alu.cedu;
cout<<"\nSexo "<<alu.sexo;
cout<<"\nEdad "<<alu.edad;
cout<<"\nNota1 "<<alu.nota1;
cout<<"\nNota2 "<<alu.nota2;
cout<<"\nNota3 "<<alu.nota3;
cout<<"\nReprovado Con La Nota De "<<notap;
cout<<"\n-----------------------------";
}
consulta>>alu.nombre;
}
consulta.close();
if(val==0)
{
cout<<"NO HAY ALUMNOS REPROVADOS";
}
}
getch();
}
void Nota_12_y_16()
{
int val=0;
ifstream consulta;
consulta.open("Alumnos.txt",ios::in);
if(consulta.fail())
{
cout<<"Fallo la Consulta";
getch();
}
else
{
system("cls");
consulta>>alu.nombre;
while(!consulta.eof())
{
consulta>>alu.nombre>>alu.apellido>>alu.cedu>>alu.sexo>>alu.edad>>alu.nota1>>alu.nota2>>alu.nota3>>notap;
if(notap>=12 && notap<=16 && alu.sexo=='M')
{
cout<<"\n\n\t\t\t-ALUMNOS MASCULINO CON NOTA ENTRE 12 Y 16-\n\n\n";
val=1;
cout<<"\nNombre "<<alu.nombre;
cout<<"\nApellido "<<alu.apellido;
cout<<"\nCedula "<<alu.cedu;
cout<<"\nSexo "<<alu.sexo;
cout<<"\nEdad "<<alu.edad;
cout<<"\nNota1 "<<alu.nota1;
cout<<"\nNota2 "<<alu.nota2;
cout<<"\nNota3 "<<alu.nota3;
cout<<"\n Su Nota Promedio Es: "<<notap;
cout<<"\n-----------------------------";
}
consulta>>alu.nombre;
}
consulta.close();
if(val==0)
{
cout<<"NO HAY ALUMNOS CON ESTAS CARACTERISTICAS";
}
}
getch();
}
int main(int argc, char *argv[])
{
char opc;
system("cls");
do
{
cout<<"A-.Ingresar Alumnos"<<endl;
cout<<"B-.Consultar Alumnos"<<endl;
cout<<"C-.Buscar Alumnos"<<endl;
cout<<"D-.Modificar Alumnos"<<endl;
cout<<"E-.Mostrar Alumnos Aprovados"<<endl;
cout<<"F-.Mostrar Alumnos Reprovados"<<endl;
cout<<"G-.Mostrar Alumnos Nota de 12 a 16 Con Edad Mayor al Promedio y Masculino "<<endl;
cout<<"H-.Salir"<<endl;
do
{
do
{
opc=toupper (getch()); //Para Tranformar en mayuscula la letra que ira en OPC
}while(!isalpha(opc)) ; //Si tocas un numero se repite hasta que toque una letra Comprueba sin un carácter es alfabético.
}while(opc<'A' || opc>'H');
switch (opc)
{
case 'A':
{
system("cls");
Ingresar();
break;
}
case 'B':
{
system("cls");
Consultar();
break;
}
case 'C':
{
Buscar();
break;
}
case 'D':
{
Modificar();
break;
}
case 'E':
{
Alumnos_Aprovados();
break;
}
case 'F':
{
Alumnos_Reprovados();
break;
}
case 'G':
{
Nota_12_y_16();
break;
}
}
system("cls");
}while(opc!='H');
system("PAUSE");
return EXIT_SUCCESS;
}