62 lines
1.5 KiB
C++
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];
|
|
}
|
|
} |