• Martes 12 de Noviembre de 2024, 21:19

Autor Tema:  Hola! Help con Archivo.txt  (Leído 1858 veces)

vinceet

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Hola! Help con Archivo.txt
« en: Lunes 16 de Junio de 2014, 02:32 »
0
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;
}