Skip to content

Commit

Permalink
24/11
Browse files Browse the repository at this point in the history
NO HAY ERRORES :)
  • Loading branch information
vickygidekel committed Nov 24, 2023
1 parent 6b7be4d commit 331b8da
Show file tree
Hide file tree
Showing 7 changed files with 73 additions and 68 deletions.
10 changes: 5 additions & 5 deletions Proyecto/libreria/clases.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Inscripto estaInscriptoClases(Asistencia* asistencia, Clases* clase, string nomb

return Inscripto::noEsta;
}
superposicion superposicionHorarios(Asistencia* asistencia, Clases* clase, u_int idCliente, int cantClientes,
superposicion superposicionHorarios(Asistencia* asistencia, Clases* clase, u_int idCliente, u_int& cantClientes,
string nombreClase, u_int horario)
{
int pos;
Expand All @@ -43,11 +43,11 @@ superposicion superposicionHorarios(Asistencia* asistencia, Clases* clase, u_int

return superposicion::noSH;
}
Reservas clases(sClientes cliente, Asistencia* asistencia, Clases* clase, u_int *cantClientes, string nombreClase, u_int horario)//modificar
Reservas clases(sClientes cliente, Asistencia* asistencia, Clases* clase, u_int &cantClientes, string nombreClase, u_int horario)
{
int cont=0;
Inscripto resul = estaInscriptoClases(asistencia, clase,nombreClase, horario);
superposicion resul2 = superposicionHorarios(asistencia, clase, cliente.idCliente, *cantClientes, nombreClase, horario);
superposicion resul2 = superposicionHorarios(asistencia, clase, cliente.idCliente, cantClientes, nombreClase, horario);
if(resul != Inscripto::Esta && resul2 != superposicion::SH)
{
for(u_int i=0; i<asistencia->cantInscriptos; i++)
Expand Down Expand Up @@ -118,9 +118,9 @@ Reservas clases(sClientes cliente, Asistencia* asistencia, Clases* clase, u_int
}
return reservar::ErrR;
}
Baja cancelarClase(Asistencia* asistencia, u_int idClase, u_int* cant)//modificar
Baja cancelarClase(Asistencia* asistencia, u_int idClase, u_int& cant)//modificar
{
for(int i=0; i<*cant; i++)
for(u_int i=0; i<cant; i++)
{
if(asistencia[i].CursosInscriptos->idCurso == idClase)
{
Expand Down
6 changes: 3 additions & 3 deletions Proyecto/libreria/clases.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ typedef struct {
} Clases;

Inscripto estaInscriptoClases(Asistencia* asistencia, Clases* clase, string nombreClase, u_int horario); //verificar que no se inscriba dos veces
superposicion superposicionHorarios(Asistencia* asistencia, Clases* clase, u_int idCliente, int cantClientes, string nombreClase,
superposicion superposicionHorarios(Asistencia* asistencia, Clases* clase, u_int idCliente, u_int& cantClientes, string nombreClase,
u_int horario); //verificar que no se superpongan horarios
Reservas clases(sClientes cliente, Asistencia* asistencia, Clases *clase, u_int *cantClientes, string nombreClase, u_int horario); //reservar clase
Baja cancelarClase(Asistencia* asistencia, u_int idClase, u_int *cant); //dar de baja clase
Reservas clases(sClientes cliente, Asistencia* asistencia, Clases *clase, u_int &cantClientes, string nombreClase, u_int horario); //reservar clase
Baja cancelarClase(Asistencia* asistencia, u_int idClase, u_int &cant); //dar de baja clase
Asistencia* resizeAsistencia(Asistencia* asistencia, u_int tam, u_int nuevoTam); //tamaño de asistencia
bool espacioAsistencias(u_int cantMaxAsistencia, u_int cantAsistencias);
Inscripcion* resizeInscripcion(Inscripcion* inscripcion, u_int tam, u_int nuevoTam);
Expand Down
38 changes: 19 additions & 19 deletions Proyecto/libreria/clientes.cpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#include "clientes.h"

bool espacio(u_int cantMaxima, u_int *cant)
bool espacio(u_int cantMaxima, u_int &cant)
{
return ((cantMaxima-(*cant))>0);
return ((cantMaxima-(cant))>0);
}
sClientes* resizeClientes(sClientes* cliente, u_int *tam, u_int nuevoTam)
sClientes* resizeClientes(sClientes* cliente, u_int &tam, u_int nuevoTam)
{
sClientes* aux = new sClientes[nuevoTam];
u_int longitud = (*tam < nuevoTam) ? *tam : nuevoTam;
u_int longitud = (tam < nuevoTam) ? tam : nuevoTam;

if(aux!=nullptr)
{
Expand All @@ -20,22 +20,22 @@ sClientes* resizeClientes(sClientes* cliente, u_int *tam, u_int nuevoTam)

return nullptr;
}
int buscarCliente(sClientes* cliente, str dni, u_int *cant)
int buscarCliente(sClientes* cliente, str dni, u_int &cant)
{
u_int i;
for(i=0; i<*cant; i++)
for(u_int i=0; i<cant; i++)
{
if(cliente[i].dni==dni)
return cliente[i].idCliente;
}
if(i==*cant)
if(i==cant)
return -1;
}
eEstado Cuota(sClientes* cliente, str dni, u_int *cant)
eEstado Cuota(sClientes* cliente, str dni, u_int &cant)
{
u_int id = buscarCliente(cliente, dni, cant);

for(u_int i=0; i<*cant; i++)
for(u_int i=0; i<cant; i++)
{
if(cliente[i].idCliente == id)
{
Expand All @@ -49,18 +49,18 @@ eEstado Cuota(sClientes* cliente, str dni, u_int *cant)
}
}
}
int eliminarCliente(sClientes* cliente, str dni, u_int *cant)
int eliminarCliente(sClientes* cliente, str dni, u_int &cant)
{
u_int id=buscarCliente(cliente, dni, cant); //cambiar tamaño
u_int i=0;
while(true){
if(cliente[i].idCliente==id){
cliente[i]=clienteNulo;
return (*cant)-1;
return (cant)-1;
}
if(i==*cant)
if(i==cant)
{
return *cant;
return cant;
break;
}
i++;
Expand All @@ -80,28 +80,28 @@ int cantClientes(ifstream &archiClientes)
}else
return -1;
}
eAgregar agregarCliente(sClientes* cliente, sClientes nuevoCliente, u_int *cant, int cantMaxima)
eAgregar agregarCliente(sClientes* cliente, sClientes nuevoCliente, u_int &cant, u_int cantMaxima)
{
int id = buscarCliente(cliente, nuevoCliente.dni, cant);
int nuevoTam = (*cant)+30;
u_int nuevoTam = (cant)+30;
if(!espacio(cantMaxima, cant))
{
cliente = resizeClientes(cliente, cant, nuevoTam);
cantMaxima = nuevoTam;
}
if(id == -1) //me aseguro que el cliente ya no este inscripto
{
(*cant)++;
cliente[(*cant)-1]=nuevoCliente;
cant++;
cliente[cant-1]=nuevoCliente;
return eAgregar:: ExitoAg;
}
else
return eAgregar::ErrorAg;
}
eModificar modificarCliente(sClientes* cliente, sClientes clienteModificado, str dni, u_int *cant)
eModificar modificarCliente(sClientes* cliente, sClientes clienteModificado, str dni, u_int &cant)
{
u_int id=buscarCliente(cliente,dni,cant);
for(int i=0;i<*cant;i++)
for(u_int i=0;i<cant;i++)
{
if(cliente[i].idCliente==id)
{
Expand Down
14 changes: 7 additions & 7 deletions Proyecto/libreria/clientes.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,12 @@ typedef struct {
Inscripcion* CursosInscriptos;
} Asistencia;
const sClientes clienteNulo{"","","","","",{0,0,0},0,0};
sClientes* resizeClientes(sClientes* cliente, u_int *tam, u_int nuevoTam); //tamaño de clientes
int buscarCliente(sClientes* cliente, str dni, u_int *cant); //buscar clientes por dni
eEstado Cuota(sClientes* cliente, str dni, u_int *cant); //verificar el estado del cliente
int eliminarCliente(sClientes* cliente, str dni, u_int *cant); //eliminar cliente
eAgregar agregarCliente(sClientes* cliente, sClientes nuevoCliente, u_int *cant, int cantMaxima); //agregar cliente
eModificar modificarCliente( sClientes* cliente, sClientes clienteModificado, str dni, u_int *cant); //modificar cliente
bool espacio(u_int cantMaxima, u_int *cant); //verificar el espacio disponible
sClientes* resizeClientes(sClientes* cliente, u_int &tam, u_int nuevoTam); //tamaño de clientes
int buscarCliente(sClientes* cliente, str dni, u_int &cant); //buscar clientes por dni
eEstado Cuota(sClientes* cliente, str dni, u_int &cant); //verificar el estado del cliente
int eliminarCliente(sClientes* cliente, str dni, u_int &cant); //eliminar cliente
eAgregar agregarCliente(sClientes* cliente, sClientes nuevoCliente, u_int &cant, u_int cantMaxima); //agregar cliente
eModificar modificarCliente(sClientes* cliente, sClientes clienteModificado, str dni, u_int &cant); //modificar cliente
bool espacio(u_int cantMaxima, u_int &cant); //verificar el espacio disponible
int cantClientes(ifstream &archiClientes); //paso el archivo como parámetro y leo la cantidad de registros
#endif // CLIENTES_H
20 changes: 10 additions & 10 deletions Proyecto/main/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ int main()
cout << "Huno un error." << endl;

u_int nuevoTam = *cant+30; //para agregar mas espacio hacemos un rezise
cliente = resizeClientes(cliente, cant, nuevoTam);
cliente = resizeClientes(cliente, *cant, nuevoTam);
int cantMaxima = nuevoTam;
sClientes ultimo = cliente[(*cant)-1];
u_int cantMaxAsistencia = cantAsistencia+30;
Expand Down Expand Up @@ -77,7 +77,7 @@ int main()

if(opcion==2)//modificar
{
int pos = buscarCliente(cliente, aux.dni, cant);
int pos = buscarCliente(cliente, aux.dni, *cant);
cout << "Ingrese su estado actual"<<endl;
cin >> aux.estado;
aux.idCliente= cliente[pos].idCliente; //el id sigue siendo el mismo
Expand Down Expand Up @@ -112,7 +112,7 @@ int main()
case 1: //agregar cliente
{

eAgregar result1 = agregarCliente(cliente, aux, cant, cantMaxima);
eAgregar result1 = agregarCliente(cliente, aux, *cant, cantMaxima);
if(result1 == -1)
cout << "Hubo un error, porfavor vuelva a intentar." << endl;
else
Expand All @@ -121,7 +121,7 @@ int main()
}
case 2: //actualizar cliente
{
eModificar result2 = modificarCliente(cliente, aux, aux.dni, cant);
eModificar result2 = modificarCliente(cliente, aux, aux.dni, *cant);
if(result2 == -1)
cout << "Hubo un error, intente nuevamente." << endl;
else
Expand All @@ -133,7 +133,7 @@ int main()
str dni;
cout << "Ingrese el dni del cliente a eliminar: " << endl;
cin >> dni;
u_int eliminar = eliminarCliente(cliente, dni, cant);
u_int eliminar = eliminarCliente(cliente, dni, *cant);
if(eliminar == (*cant)-1)
cout << "Cliente eliminado." << endl;
else
Expand All @@ -155,7 +155,7 @@ int main()

int pos=0;
int posCliente=0;
u_int id = buscarCliente(cliente, dni, cant);
u_int id = buscarCliente(cliente, dni, *cant);
for(u_int i=0;i<*cant;i++)
{
if(cliente[i].idCliente == id)
Expand All @@ -165,7 +165,7 @@ int main()
if(clase[i].nombreClase==nombreClase && clase[i].horarioClase==horario)
pos=i;
}
Reservas lugares= clases(cliente[pos], asistencia,clase,cant, nombreClase, horario);
Reservas lugares= clases(cliente[pos], asistencia,clase,*cant, nombreClase, horario);
if(lugares !=1)
cout<<"No hay lugar para dicha clase para ese horario"<<endl;

Expand Down Expand Up @@ -206,7 +206,7 @@ int main()
cout << "Ingrese 'Si' en caso de querer cancelarla, o 'No' en caso de no desearlo: " << endl;
cin >> respuesta;
if(respuesta == "Si"){
Baja cancelar= cancelarClase(asistencia, clase[pos].idClase, cant);
Baja cancelar= cancelarClase(asistencia, clase[pos].idClase, *cant);
if(cancelar==1)
{
cout << "Su reserva se cancelo con exito." << endl;
Expand Down Expand Up @@ -238,12 +238,12 @@ int main()
cout<<"Ingrese el horario de la clase que desea cancelar"<<endl;
cin>>horario;

for(u_int i=0;i<*cant;i++)
for(u_int i=0; i<*cant; i++)
{
if(clase[i].nombreClase==nombre && clase[i].horarioClase==horario)
pos=i;
}
Baja cancelar=cancelarClase(asistencia, clase[pos].idClase, cant);
Baja cancelar=cancelarClase(asistencia, clase[pos].idClase, *cant);
if(cancelar==1)
cout<<"Su clase fue cancelada con exito"<<endl;
else
Expand Down
7 changes: 4 additions & 3 deletions Proyecto/testing/test_clases.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,11 @@ const Inscripcion DefaultInscripcion[3] = {
TEST_CASE("Inscripcion multiple")
{
Asistencia *aux= new Asistencia; //tamaño
aux=nullptr;
sClientes cliente;
u_int num=1;
u_int *cantClientes;
cantClientes=&num;
u_int cantClientes;
cantClientes=num;
Clases *curso;
cliente.apellido={"serene"};
cliente.dni={"23456897"};
Expand Down Expand Up @@ -54,7 +55,7 @@ TEST_CASE("Inscripcion multiple")
REQUIRE(result == 1);
}
SECTION("Superposicion horaria"){
superposicion superp = superposicionHorarios(aux, curso, cliente.idCliente, *cantClientes,curso->nombreClase, curso->horarioClase);
superposicion superp = superposicionHorarios(aux, curso, cliente.idCliente, cantClientes,curso->nombreClase, curso->horarioClase);
REQUIRE(superp == 1);
}
SECTION("Reserva de clases"){
Expand Down
Loading

0 comments on commit 331b8da

Please sign in to comment.