Add files via upload
This commit is contained in:
@ -0,0 +1,27 @@
|
||||
#include "Estudiante.h"
|
||||
using namespace std;
|
||||
|
||||
bool cargar(tEstudiante& estudiante, std::ifstream& archivo) {
|
||||
bool cargar = false;
|
||||
|
||||
if (!archivo.fail()) {
|
||||
archivo.ignore();
|
||||
getline(archivo, estudiante.nombre);
|
||||
archivo >> estudiante.NIF;
|
||||
archivo >> estudiante.fechaMatricula;
|
||||
archivo >> estudiante.nota;
|
||||
cargar = true;
|
||||
}
|
||||
|
||||
return cargar;
|
||||
}
|
||||
|
||||
void mostrar(tEstudiante& estudiante) {
|
||||
cout << right << setw(9) << estudiante.NIF
|
||||
<< setw(2) << "-" << setw(2)
|
||||
<< setw(8) << estudiante.fechaMatricula
|
||||
<< setw(2) << "-" << setw(2)
|
||||
<< setw(3) << estudiante.nota
|
||||
<< setw(2) << "-" << setw(2)
|
||||
<< setw(20) << estudiante.nombre << endl;
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
#ifndef _ESTUDIANTE
|
||||
#define _ESTUDIANTE
|
||||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <fstream>
|
||||
#include <iomanip>
|
||||
|
||||
//Constantes:
|
||||
|
||||
|
||||
//Tipos:
|
||||
typedef struct tEstudiante {
|
||||
std::string nombre, NIF, fechaMatricula;
|
||||
int nota;
|
||||
};
|
||||
|
||||
//Funciones:
|
||||
bool cargar(tEstudiante& estudiante, std::ifstream& archivo);
|
||||
void mostrar(tEstudiante& estudiante);
|
||||
|
||||
|
||||
#endif // !_ESTUDIANTE
|
Binary file not shown.
@ -0,0 +1,63 @@
|
||||
#include "ListaEstudiantes.h"
|
||||
using namespace std;
|
||||
|
||||
bool cargar(tListaEstudiantes& lista, ifstream& archivo, int& numAlumnos) {
|
||||
bool carga = false;
|
||||
lista.estudiante = new tEstudiante[numAlumnos];
|
||||
lista.cont = 0;
|
||||
|
||||
if (insertar(lista, numAlumnos, archivo)) {
|
||||
carga = true;
|
||||
}
|
||||
|
||||
return carga;
|
||||
}
|
||||
|
||||
bool buscar(tListaEstudiantes& lista, std::string NIF, int& ini, int& fin, int& pos) {
|
||||
bool encontrado = false;
|
||||
|
||||
if (ini <= fin) {
|
||||
pos = (ini + fin) / 2;
|
||||
if (NIF < lista.estudiante[pos].NIF) {
|
||||
fin = pos - 1;
|
||||
encontrado = buscar(lista, NIF, ini, fin, pos);
|
||||
}
|
||||
else if (lista.estudiante[pos].NIF < NIF) {
|
||||
ini = pos + 1;
|
||||
encontrado = buscar(lista, NIF, ini, fin, pos);
|
||||
}
|
||||
else {
|
||||
encontrado = true;
|
||||
}
|
||||
}
|
||||
|
||||
return encontrado;
|
||||
}
|
||||
|
||||
bool insertar(tListaEstudiantes& estudiante, int& numAlumnos, ifstream& archivo) {
|
||||
bool insertado = false;
|
||||
int ini = 0, fin = estudiante.cont - 1, pos = 0;
|
||||
|
||||
for (int i = 0; i < numAlumnos; i++) {
|
||||
if (!buscar(estudiante, estudiante.estudiante[estudiante.cont].NIF, ini, fin, pos)) {
|
||||
for (int i = estudiante.cont; i > 0; i--){
|
||||
estudiante.estudiante[i] = estudiante.estudiante[i - 1];
|
||||
}
|
||||
if (cargar(estudiante.estudiante[pos], archivo)) {
|
||||
estudiante.cont++;
|
||||
insertado = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return insertado;
|
||||
}
|
||||
|
||||
void mostrar(tListaEstudiantes& estudiante) {
|
||||
for (int i = 0; i < estudiante.cont; i++){
|
||||
mostrar(estudiante.estudiante[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void destruir(tListaEstudiantes& estudiantes) {
|
||||
delete[] estudiantes.estudiante;
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
#ifndef _LISTAESTUDIANTES
|
||||
#define _LISTAESTUDIANTES
|
||||
|
||||
#include "Estudiante.h"
|
||||
|
||||
//Constantes:
|
||||
|
||||
|
||||
//Tipos:
|
||||
typedef struct tListaEstudiantes {
|
||||
tEstudiante *estudiante; //Ordenada por NIF.
|
||||
int cont;
|
||||
};
|
||||
|
||||
|
||||
//Funciones:
|
||||
bool cargar(tListaEstudiantes& lista, std::ifstream& archivo, int&);
|
||||
bool buscar(tListaEstudiantes& lista, std::string NIF, int& ini, int& fin, int& pos); //Binaria y recursiva.
|
||||
bool insertar(tListaEstudiantes& estudiante, int&, std::ifstream&);
|
||||
void mostrar(tListaEstudiantes& estudiante);
|
||||
void destruir(tListaEstudiantes& estudiantes);
|
||||
|
||||
|
||||
#endif // !_LISTAESTUDIANTES
|
@ -0,0 +1,62 @@
|
||||
#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];
|
||||
}
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
#ifndef _LISTAGRUPOS
|
||||
#define _LISTAGRUPOS
|
||||
|
||||
#include "ListaEstudiantes.h"
|
||||
|
||||
//Constantes:
|
||||
const int MAX_GRUPOS = 10;
|
||||
|
||||
//Tipos:
|
||||
typedef struct tGrupo {
|
||||
tListaEstudiantes estudiantes;
|
||||
std::string id;
|
||||
};
|
||||
|
||||
typedef struct tListaGrupos {
|
||||
tGrupo *grupo[MAX_GRUPOS];
|
||||
int cont;
|
||||
};
|
||||
|
||||
|
||||
//Funciones:
|
||||
bool cargar(tListaGrupos& grupos);
|
||||
void mostrar(tListaGrupos& grupos);
|
||||
bool buscar(tListaGrupos& grupos, std::string NIF, int& pos); //Recursiva;
|
||||
void destruir(tListaGrupos grupos);
|
||||
|
||||
#endif // !_LISTAGRUPOS
|
@ -0,0 +1,9 @@
|
||||
#ifdef _DEBUG
|
||||
#define _CRTDBG_MAP_ALLOC
|
||||
#include <stdlib.h>
|
||||
#include <crtdbg.h>
|
||||
#ifndef DBG_NEW
|
||||
#define DBG_NEW new (_NORMAL_BLOCK , __FILE__<5F>, __LINE__<5F>)
|
||||
#define new DBG_NEW
|
||||
#endif
|
||||
#endif // _DEBUG
|
36
Exámenes Resueltos (Segundo Semestre)/Junio2016_2/main.cpp
Normal file
36
Exámenes Resueltos (Segundo Semestre)/Junio2016_2/main.cpp
Normal file
@ -0,0 +1,36 @@
|
||||
//Examen Junio 2016 - FP
|
||||
//Grupo_2
|
||||
//Fernando M<>ndez Torrubiano
|
||||
|
||||
#include "ListaGrupos.h"
|
||||
#include "checkML.h"
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); //Detecta fugas de memoria.
|
||||
system("chcp 1252");//Castellano.
|
||||
system("cls");
|
||||
|
||||
tListaGrupos grupos;
|
||||
string NIF;
|
||||
int pos = 0;
|
||||
|
||||
if (cargar(grupos)) {
|
||||
mostrar(grupos);
|
||||
cout << endl << "Introduce un NIF: ";
|
||||
cin >> NIF;
|
||||
if (buscar(grupos, NIF, pos)) {
|
||||
cout << "Grupo: " << grupos.grupo[pos]->id << endl;
|
||||
}
|
||||
else {
|
||||
cout << "No se ha encontrado el alumno." << endl;
|
||||
}
|
||||
}
|
||||
else {
|
||||
cout << "FIN DEL PROGRAMA." << endl;
|
||||
}
|
||||
system("PAUSE");
|
||||
destruir(grupos);
|
||||
|
||||
return 0;
|
||||
}
|
14
Exámenes Resueltos (Segundo Semestre)/Junio2016_2/notas.txt
Normal file
14
Exámenes Resueltos (Segundo Semestre)/Junio2016_2/notas.txt
Normal file
@ -0,0 +1,14 @@
|
||||
A
|
||||
3
|
||||
nombre1 apellidos1
|
||||
76541321G 15/06/01 10
|
||||
nombre2 apellidos2
|
||||
92648282F 15/06/06 5
|
||||
nombre3 apellidos3
|
||||
32154637K 15/06/03 8
|
||||
B
|
||||
2
|
||||
nombre4 apellidos4
|
||||
12345678X 15/06/01 9
|
||||
nombre5 apellidos5
|
||||
12225678F 15/06/01 9
|
Reference in New Issue
Block a user