Fandom

Scratchpad

PLE:Unidad6Ejercicio08

219,311pages on
this wiki
Add New Page
Discuss this page0 Share
/*
Programa:         Ficheros08.cpp
Descripción:      Disponemos de un chichero de alumnos (nombre, nota, grupo) pertenecientes a dos grupos 
			distintos (ASI y DAI). Lee el fichero y crea dos nuevos ficheros (ASI y DAI) en los que 
			alacenarás los datos de los alumnos de cada grupo por separado
*/

#include <cstdlib>
#include <iostream>
#include <fstream>

using namespace std;

//declaramos la estructura
struct datos
{
    char nombre[20];
    int nota;
    char grupo[5];
};

int cont = 0;
const int TAM = 50;

void leeFichero(datos alumno[]);
void guardaAlumnosDai(datos alumno[]);
void guardaAlumnosAsi(datos alumno[]);

int main(int argc, char *argv[])
{
    datos alumno[TAM];
    
    //llamamos a la funcion para leer el fichero de entrada.
    leeFichero(alumno);

    //llamamos a la funcion para guardar los alumnos de dai.
    guardaAlumnosDai(alumno);
      
    //llamamos a la funcion para guardar los alumnos de asi.
    guardaAlumnosAsi(alumno);
  
    system("PAUSE");     
    return EXIT_SUCCESS;
}

void leeFichero(datos alumno[])
{
    ifstream fe;
    datos tmp;
    
    fe.open("alumnos.txt");
    
    if(fe.is_open())
    {
        // hacemos la lectura del fichero y mostramos en pantalla.
        fe >> tmp.nombre;
        fe >> tmp.nota;
        fe >> tmp.grupo;
        
        cout << "Alumnos:" << endl;
        cout << tmp.nombre << endl;
        cout << tmp.nota << endl;
        cout << tmp.grupo << endl;
        
        
        while(!fe.eof())
        {
            // Copilos datos del alumno
            alumno[cont] = tmp;
            cont++;

            // hacemos la lectura del fichero
            fe >> tmp.nombre;
            fe >> tmp.nota;
            fe >> tmp.grupo;            
            // Mostramos en pantalla        

            cout << tmp.nombre << endl;
            cout << tmp.nota << endl;
            cout << tmp.grupo << endl;
        }
        system("PAUSE");
        fe.close();
    }
    else
        cout << "ERROR DE APERTURA DE FICHERO" << endl;
}

void guardaAlumnosDai(datos alumno[])
{
    ofstream fs1;
    int i;
    
    fs1.open("dai.txt");
    
          
    if(fs1.is_open())
    {
        system("CLS");
        cout << "Alumnos DAI:" << endl;
        for(i=0; i<=cont; i++)
        {
            if(strcmp(alumno[i].grupo,"dai") == 0)
            {
                fs1 << alumno[i].nombre << endl;
                fs1 << alumno[i].nota << endl;
                fs1 << alumno[i].grupo << endl;
                
                cout << alumno[i].nombre << endl;
                cout << alumno[i].nota << endl;
                cout << alumno[i].grupo << endl;
            }
        }
        system("PAUSE");                    
        fs1.close();
    }
        else
            cout << "ERROR DE APERTURA DE FICHERO" << endl;
}

void guardaAlumnosAsi(datos alumno[])
{
    ofstream fs1;
    int i;
    
    fs1.open("asi.txt");
    
          
    if(fs1.is_open())
    {
        system("CLS");
        cout << "Alumnos ASI: " << endl;
        for(i=0; i<=cont; i++)
        {
            if(strcmp(alumno[i].grupo,"asi") == 0)
            {
                fs1 << alumno[i].nombre << endl;
                fs1 << alumno[i].nota << endl;
                fs1 << alumno[i].grupo << endl;
                
                cout << alumno[i].nombre << endl;
                cout << alumno[i].nota << endl;
                cout << alumno[i].grupo << endl;
            }
        }
        system("PAUSE");            
        fs1.close();
    }
        else
            cout << "ERROR DE APERTURA DE FICHERO" << endl;
}

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Also on Fandom

Random wikia