Skip to content

Commit

Permalink
Nuevo
Browse files Browse the repository at this point in the history
aa
  • Loading branch information
HipolitoGimenez committed Nov 22, 2023
1 parent 463aff7 commit 9905516
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 44 deletions.
59 changes: 27 additions & 32 deletions Proyecto/libreria/funciones.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,22 @@ void registrarCliente(Cliente*& listaClientes, int *tamactual, Cliente nuevoClie
delete[] listaClientes;
listaClientes = aux;
}
void agregar_clases(Clases*&lista_clases, Clases clase, int*tamactual){
void agregar_clases(Clases*&lista_clases, Clases* clase, int*tamactual){
*tamactual=*tamactual+1;
int i=0;
Clases*aux=new Clases[*tamactual];
while(i<*tamactual-1&&*tamactual-1!=0){
aux[i]=lista_clases[i];
i++;
}
aux[i]=clase;
aux[i]=*clase;
delete[]lista_clases;
lista_clases=aux;

}
void leerAsistencias(string archibinrd) {
ifstream f(archibinrd, ios::out | ios::binary);
cout<<"Nombre archivo";
cout<<archibinrd;

if (f.is_open()) {
cout<<"Estoy leyendo el archivo";
sAsistencia asistencia;
Expand Down Expand Up @@ -69,14 +67,14 @@ Clases* leerClase(string& archivo, int* cantidadClases) {
ss>>nuevaClase.idClase;
getline(ss, nuevaClase.nombre, coma);
ss>>nuevaClase.horario;
agregar_clases(listaClases, nuevaClase, cantidadClases);
cantidadClases++;
agregar_clases(listaClases, &nuevaClase, cantidadClases);
}
infile.close();
return listaClases;
}
Cliente* guardarCliente(string archivo, int* cantidadClientes) {
Cliente* listaCliente;
Cliente* listaCliente=new Cliente[0];
*cantidadClientes=0;
ifstream infile("iriClientesGYM.csv");
if (!infile.is_open()) {
cout << "Error al leer archivo";
Expand All @@ -95,18 +93,16 @@ Cliente* guardarCliente(string archivo, int* cantidadClientes) {
getline(ss, nuevoCliente.telefono);
ss>>nuevoCliente.estado;
registrarCliente(listaCliente, cantidadClientes, nuevoCliente);
cantidadClientes++;
}
infile.close();
return listaCliente;
}

Inscripcion*reservarClase(Cliente*cliente, Clases*clase){
if(!existeSuperposicion(cliente, clase)){
if(clase->cupo<clase->cupoMax){
cout<<"Se pudo reservar";
cliente->cantClases++;
cliente->clases[cliente->cantClases]=clase;
agregar_clases(cliente->clases,clase, cliente->cantClases);
clase->cupo++;
Inscripcion*nuevainscripcion;
nuevainscripcion->fechaInscripcion=obtenerFechaHora();
Expand All @@ -119,38 +115,37 @@ Inscripcion*reservarClase(Cliente*cliente, Clases*clase){
}
time_t obtenerFechaHora()
{
static tm ultimaFechaReset = {}; //static mantiene a la variable y la inicializa solo la primera vez que se llama a la funcion
//static mantiene a la variable y la inicializa solo la primera vez que se llama a la funcion
time_t auxiliar_fecha = time(0);
//tm* hoy = localtime(&auxiliar_fecha);
/*tm fecha_hoy;
fecha_hoy.tm_mday = hoy->tm_mday;
fecha_hoy.tm_mon = hoy->tm_mon;
fecha_hoy.tm_year = hoy->tm_year;
if (hoy->tm_mday != ultimaFechaReset.tm_mday || hoy->tm_mon != ultimaFechaReset.tm_mon || hoy->tm_year != ultimaFechaReset.tm_year) {
// Resetear el archivo
reseteararchivo("iriClientes.csv");
// Actualizar la fecha del último reseteo
ultimaFechaReset = *hoy;
}
return auxiliar_fecha;*/
//
return auxiliar_fecha;
}
void reseteararchivo(string rutaarchi){
ofstream ofs;
ofs.open("iriClientes.csv", ofstream::out | ofstream::trunc);
ofs.close();
}
void regenerarArchivo(){

void reseteararchivo(string rutaarchi, tm* fechadereset){
time_t auxiliar_fecha = time(0);
tm* hoy = localtime(&auxiliar_fecha);
if(hoy->tm_mday!=fechadereset->tm_mday)
{
ofstream ofs;
ofs.open("iriClientes.csv", ofstream::out | ofstream::trunc);
fechadereset=hoy;
ofs.close();
}
}
bool existeSuperposicion(Cliente* cliente, Clases*clase){
for(int i=0;i<cliente->cantClases;i++){

for(int i=0;i<*cliente->cantClases;i++){
if(cliente->clases[i]->horario==clase->horario){
return true;
}

}
return false;
}
void filtrar_clase(Cliente* cliente, int*tamactual)
{
for(int i=0;i<tamactual;i++)
{
int id_clase=lista_clases[i].idClase;
}
}

16 changes: 4 additions & 12 deletions Proyecto/libreria/funciones.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,13 @@
#include <sstream>
#define MAXCLASES 200
using namespace std;

struct Clases {
unsigned idClase;
string nombre;
float horario;
int cupo;
int cupoMax;
};


struct Cliente {
unsigned int idCliente;
string nombre;
Expand All @@ -24,10 +21,9 @@ struct Cliente {
string telefono;
string fechaNac;
int estado;
Clases*clases[MAXCLASES];
int cantClases;
Clases*clases;
int* cantClases;
};

struct Inscripcion {
unsigned int idClase;
unsigned int idCliente;
Expand All @@ -38,18 +34,14 @@ typedef struct {
unsigned int idCliente, cantInscriptos;

Inscripcion* CursosInscriptos;

} sAsistencia;



void registrarCliente(Cliente*& listaClientes, int* tamactual, Cliente nuevoCliente);
void agregar_clases(Clases*&lista_clases, Clases clase, int*tamactual);
void agregar_clases(Clases*&lista_clases, Clases *clase, int*tamactual);
Clases*read_archivo_clases(string a1, int*contador);
Cliente* guardarCliente(string archivo, int* cantidadClientes);
time_t obtenerFechaHora();
void leerAsistencias(string archibinrd);
void reseteararchivo(string rutaarchi);
void reseteararchivo(string rutaarchi, time_t fechadereset);
Clases* leerClase(string& archivo, int* cantidadClases);
bool existeSuperposicion(Cliente* cliente, Clases*clase);
//void reservarClase(Clases*& listaClases, string& nombreClase, int horario, int& cantidadClases);
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit 9905516

Please sign in to comment.