Código
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <conio.h> #include "lib.h" #define Amoladora 0 #define Mezcladora 1 #define Taladro 2 int main() { eTipoEquipo equipos[3]; eCliente clientes[100]; eAlquiler alquiler[100]; eAlquiler alquileres[100]; eTipoEquipo tipos; int tam; int idCliente=10; int idAlquiler=20; int altaC; int i; int id; int altaA; int cont[i]; inicializarClientes(clientes, 100); char seguir='s'; int opcion; int confirma; do { switch(opcion) { case 1: altaC=altaCliente(clientes, idCliente, 100); if (altaC!=-1) { cont[i]=cont[i]++; idCliente++; } break; case 2: modificarCliente(clientes, idCliente, 100); break; case 3: bajaCliente(clientes, idCliente, 100); break; case 4: altaA=nuevoAlquiler(alquiler, clientes, equipos, 100, idAlquiler); if (altaA!=-1) { idAlquiler++; } break; case 5: finAlquiler(alquiler, 100); break; case 6: clienteRecurrente(alquileres,clientes , tam, id); mayorAlquiler(alquileres,tipos , tam); informar (alquileres,clientes,tipos,tam); break; case 7: if (confirma=='s') { seguir='n'; } else { break; } break; }while(seguir=='s'); return 0; } ESTE ES EL LIB.H ::) ::) #define LIB.H typedef struct { int id; int dni; char nombre[20]; char apellido[20]; int estado; }eCliente; typedef struct { int idTipo; char descripcion[10]; }eTipoEquipo; typedef struct { int id; int cliente; int estado; int equipo; int tiempoEsti; int tiempoReal; }eAlquiler; /** \brief Inicializa los clientes con estado en 0 * * \param Array de clientes * \param Tamaño del array * */ void inicializarClientes (eCliente[], int); /** \brief Busca el primer espacio libre en el array de clientes * * \param Array de clientes * \param Tamaño del array * \return El indice del primer espacio libre * */ int buscarLibre (eCliente[], int); /** \brief Da de alta un cliente * * \param Array de clientes * \param Id del cliente * \param Tamaño del array * \return El cliente * */ int altaCliente (eCliente[], int, int); /** \brief Modifica algunos datos seleccionados del cliente * * \param Array de clientes * \param Id del cliente * \param Tamaño del array * */ void modificarCliente (eCliente[], int, int); /** \brief Muestra los clientes habilitados en sistema * * \param Array de clientes * \param Tamaño del array * */ void mostrarClientes (eCliente[], int); /** \brief Realiza la baja lógica de un cliente en sistema. (estado=2) * * \param Array de clientes * \param ID del cliente * \param Tamaño del array * */ void bajaCliente (eCliente[], int, int); /** \brief Muestra los tipos de equipos * * \param Array de tipos * \param Tamaño del array * */ void mostrarTipos(eTipoEquipo[], int); /** \brief Habilita en sistema un nuevo alquiler * * \param Array de alquileres * \param Array de clientes * \param Array de tipos de equipos * \param Tamaño del array * \param ID del alquiler * \return El indice del alquiler * */ int nuevoAlquiler (eAlquiler[], eCliente[], eTipoEquipo[], int, int); /** \brief Realiza el fin de un alquiler * * \param Array de alquileres * \param Tamaño del array * */ void finAlquiler (eAlquiler[], int); /** \brief Busca un alquiler por su ID * * \param Array de alquileres * \param Tamaño del array * \param ID del alquiler * \return El indice del alquiler * */ int buscarAlquiler (eAlquiler[], int, int); /** \brief Informa segun varios criterios * * \param Array de clientes * \param Tamaño del array * */ int clienteRecurrente(eAlquiler[], eCliente[], int, int); int mayorAlquiler(eAlquiler[], eTipoEquipo, int); void informar (eAlquiler[], eCliente[],eTipoEquipo, int); ESTE ES EL LIB.C ::) ::) #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <conio.h> #include "lib.h" void inicializarClientes (eCliente clientes[], int tam) { int i; for (i=0;i<tam;i++) { clientes[i].estado=0; } } void inicializarTipos(eTipoEquipo tipo[], int tam) { tipo[0].idTipo = 0; tipo[1].idTipo = 1; tipo[2].idTipo = 2; } int buscarLibre (eCliente clientes[], int tam) { int indice=-1; int i; for (i=0;i<tam;i++) { if(clientes[i].estado == 0) { indice=i; break; } } return indice; } int buscarCliente (eCliente clientes[], int tam, int id) { int indice=-1; int i; for (i=0;i<tam;i++) { if (clientes[i].id == id) { indice=i; break; } } return indice; } int altaCliente (eCliente clientes[], int id, int tam) { int indice; int i; int cont[i]; char auxCad[40]; indice=buscarLibre(clientes, tam); cont[i]=0; if (indice==-1) { } else { cont[i]=cont[i]+1; clientes[indice].id=id; while (clientes[indice].dni < 0) { } { } { } clientes[indice].estado=1; } return indice; } void mostrarClientes (eCliente clientes[], int tam) { int i; for (i=0;i<tam;i++) { if (clientes[i].estado == 1) { } } } void modificarCliente (eCliente clientes[], int id, int tam) { int indice; int opcion; char auxCad[40]; mostrarClientes(clientes, tam); indice=buscarCliente(clientes, tam, id); if (indice==-1) { } else { switch (opcion) { case 1: { } break; case 2: { } break; } } } void bajaCliente (eCliente clientes[], int id, int tam) { int indice; int confirma; mostrarClientes(clientes, tam); indice=buscarCliente(clientes, tam, id); if (indice == -1) { } else { if (confirma == 's') { clientes[indice].estado=2; } else { } } } int buscarLibreAlquiler (eAlquiler alquileres[], int tam) { int indice=-1; int i; for (i=0;i<tam;i++) { if(alquileres[i].estado == 0) { indice=i; break; } } return indice; } int menuTipo(eTipoEquipo tipos[], int tam) { int tipo; mostrarTipos(tipos, tam); return tipo; } void mostrarTipos(eTipoEquipo tipos[], int tam) { } int nuevoAlquiler (eAlquiler alquileres[], eCliente clientes[], eTipoEquipo equipos[], int tam, int id) { int indice; int aux; indice=buscarLibreAlquiler(alquileres, tam); if (indice==-1) { } else { alquileres[indice].id=id; mostrarClientes(clientes, tam); alquileres[indice].equipo=menuTipo(equipos, tam); alquileres[indice].estado=1; while (aux < 0) { } alquileres[indice].tiempoEsti=aux; } return indice; } void mostrarAlquileres (eAlquiler alquileres[], int tam) { char tipos[][15]={"Amoladora", "Mezcladora", "Taladro"}; int i; int tipo; int cont0; int cont1; int cont2; for (i=0;i<tam;i++) { if (alquileres[i].estado==1) { if (alquileres[i].id >= 20 && alquileres[i].id <= 100) { if(tipo==0) { cont0=cont0+1; } if(tipo==1) { cont1=cont1+1; } if(tipo==2) { cont2=cont2+1; } } } } } int buscarAlquiler (eAlquiler alquileres[], int tam, int id) { int indice=-1; int i; for (i=0;i<tam;i++) { if (alquileres[i].id == id) { indice=i; } } return indice; } void finAlquiler (eAlquiler alquileres[], int tam) { int indice; int id; int confirma; mostrarAlquileres(alquileres, tam); indice=buscarAlquiler(alquileres, tam, id); if (indice==-1) { } else { if (confirma == 's') { alquileres[indice].estado=2; } else { } } } int clienteRecurrente(eAlquiler alquileres[], eCliente clientes[], int tam, int id) { int indice; int i; mostrarAlquileres(alquileres, tam); indice=buscarAlquiler(alquileres, tam, id); } int mayorAlquiler(eAlquiler alquileres[],eTipoEquipo tipos,int tam) { int indice; int id; int i; mostrarAlquileres(alquileres, tam); indice=buscarAlquiler(alquileres, tam, id); int cont0; int cont1; int cont2; int mayorAlq; for (i=0;i<tam;i++) { if (indice==1) { if(cont0>cont1 && cont0>cont2) { mayorAlq=cont0; } if(cont1>cont0 && cont1>cont2) { mayorAlq=cont1; } if(cont2>cont0 && cont2>cont1) { mayorAlq=cont2; } if(mayorAlq==cont0) { } if(mayorAlq==cont1) { } if(mayorAlq==cont2) { } } } } void informar (eAlquiler alquileres[], eCliente clientes[], eTipoEquipo tipos,int tam) { int opcion; switch(opcion) { case 1: break; case 2: mayorAlquiler(alquileres,tipos,tam); break; case 3: mostrarAlquileres(alquileres, tam); break; } }
ya se habran dado cuenta lo que tengo que hacer, dar alta a un cliente, poder modificarlo y borrarlo, y hacer que alquile, eso me sale.
pero el profesor me pidio que haga un informar para que este informe 3 cosas
-la persona de id con mas alquileres.
-el equipo mas alquilado.
-mostrar el tiempo estimado, por favor ayudaaa ya nose que hacer
Mod: Los códigos deben ir en etiquetas GeSHi, no se debe escribir en mayúsculas