Cpp/Exámenes Resueltos (Segundo.../Junio2016_2/ListaGrupos.cpp

62 lines
1.5 KiB
C++

#include "ListaGrupos.h"
using namespace std;
bool cargar(tListaGrupos& grupos) {
bool carga = false;
ifstream archivo;
int numAlum = 0;
grupos.cont = 0;
archivo.open("notas.txt");
if (!archivo.is_open()) {
cout << "No se ha podido cargar las notas." << endl;
}
else {
while (!archivo.fail()) {
grupos.grupo[grupos.cont] = new tGrupo;
archivo >> grupos.grupo[grupos.cont]->id;
archivo >> numAlum;
if (cargar(grupos.grupo[grupos.cont]->estudiantes, archivo, numAlum)) {
grupos.cont++;
carga = true;
}
}
}
archivo.close();
return carga;
}
void mostrar(tListaGrupos& grupos) {
cout << setfill(char('-')) << setw(50) << "\n" << setfill(char(0));
for (int i = 0; i < grupos.cont; i++){
cout << "GRUPO: " << grupos.grupo[i]->id << endl;
mostrar(grupos.grupo[i]->estudiantes);
cout << setfill(char('-')) << setw(50) << "\n" << setfill(char(0));
}
}
bool buscar(tListaGrupos& grupos, std::string NIF, int& i) {
bool encontrado = false, busqueda = false;
int ini = 0, fin = grupos.grupo[i]->estudiantes.cont - 1, pos = 0;
if (!busqueda && i < grupos.cont) {
encontrado = buscar(grupos.grupo[i]->estudiantes, NIF, ini, fin, pos);
if (encontrado) {
busqueda = true;
}
else {
i++;
busqueda = buscar(grupos, NIF, i);
}
}
return busqueda;
}
void destruir(tListaGrupos grupos) {
for (int i = 0; i <= grupos.cont; i++){
destruir(grupos.grupo[i]->estudiantes);
delete grupos.grupo[i];
}
}