Dev - C++ - Ayuda con trabajo de la universidad

 
Vista:
sin imagen de perfil

Ayuda con trabajo de la universidad

Publicado por Anarq (7 intervenciones) el 01/01/2017 11:25:54
Buenas, tengo que hacer un programa en C++ para gestionar hasta 5 hoteles, añadir , anular reservas... si alguien puede ayudarme le estaría muy agradecido. (hablamos por email, skype whatsapp... )

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.062
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con trabajo de la universidad

Publicado por agustin (522 intervenciones) el 01/01/2017 14:03:44
Y que duda tienes?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con trabajo de la universidad

Publicado por Anarq (7 intervenciones) el 01/01/2017 16:50:40
Es un problema largo, podemos hablar por skype o algun otro sitio? Para explicartelo mas detallado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.062
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con trabajo de la universidad

Publicado por agustin (522 intervenciones) el 01/01/2017 18:51:02
Que tiene de complejo usar listas simples? Solo necesitas gestionar hasta 5 listas simples o usar archivos secuenciales o alguna base de datos (aunque no creo que este último sea lo que te pida).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Manuel
Val: 4
Ha disminuido su posición en 15 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con trabajo de la universidad

Publicado por Manuel (4 intervenciones) el 01/01/2017 19:23:56
Lo primero sería que subiera el texto exacto de lo que tienes que hacer... después especificar si no saber como arrancar para solucionar el problema, si ya tienes casi todo pero te has atascado en algún sitio y no sabe continuar, si te aparece algún error que no sabes porque se produce... Y a partir de ahí se va ayudando poco a poco.

Porque no somos adivinos, ni leemos las hojas de te... se te puede ayudar si das información y sabemos ayudarte.

feliz año
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con trabajo de la universidad

Publicado por Anarq (7 intervenciones) el 01/01/2017 22:14:53
Puedo subirlo, pero esta en catalan : Estoy atascado al principio, no se como hacerlo. Primero se que tengo que comprovar que la fecha de entrada sea valida, pero lo hago y siempre me sale que no es valida... y ahi me he quedado. Solo se puede usar acciones, funciones, tablas , tuplas e iteraciones

Alguns aspectes a tenir en compte:
Al joc de proves d'ACME, el nom del mes de MARÇ consta com a "MARC" (canviant c trencada per c).
Si hi ha alguna reserva de varis dies que acaba més enllà de la data de fi de temporada (és a dir, un any després de la data d'inici), però no hi ha prou places per a aquesta reserva, el missatge que ACME espera és el que indica que no hi ha suficients places.
Per tal d'evitar problemes de memòria de l'ordinador, establiu 5000 com a nombre màxim total de reserves (si les guardeu per hotel, establiu 1000 reserves com a màxim per a cada hotel).

L'empresa "Tocho d'Or S.L", que té un gran complex turístic situat a "Platapesa del Mar" amb diversos hotels situats a ultra-primeríssima línia de la costa que permeten pescar llobarros des de l'habitació, necessita un programa en C++ que permeti gestionar les reserves de tots els hotels.

A l'inici de temporada, "Tocho d'Or" accepta fer reserves d'habitacions fins a un any vista. Aquesta data inicial s'entrarà a l'inici de l'execució.

Un cop definida la temporada, l'usuari entrarà els hotels, amb el número d'habitacions i el preu per cada nit d'allotjament.

Un cop entrats els hotels, es procedeix a fer les altes i baixes de les reserves. Una reserva s'identifica de forma única amb la data, l'hotel, el nom de la persona i el seu DNI. Considerarem que una persona no pot fer dues reserves a un mateix hotel amb el mateix dia d'entrada.

A continuació teniu un resum de les comandes que ha de processar el vostre programa.

crear-hotel [nom hotel] [habitacions] [preu nit] → Crea un hotel amb n habitacions amb un preu/nit especificat en euros.
fi → Mostra la llista agregada dels hotels i les reserves, seguidament surt del programa.
afegir-reserva [nom hotel] [dia] [mes] [any] [nom client] [DNI client] [nits] [habitacions] → Fa una reserva a l'hotel indicat durant n nits a partir de la data d'entrada reservant un nombre h d'habitacions.
anular-reserva [nom hotel] [dia] [mes] [any] [nom client] [DNI client] → Amb totes aquestes dades podem identificar una de les reserves creades i eliminar-la (si existeix).
Nota: els paràmetres que reben les instruccions estan entre claudàtors [].

Tingueu en compte les següents consideracions:

Heu de considerar poder gestionar un màxim de 5 hotels amb 50 habitacions per hotel.
Considerem anys "normals" de 365 dies. (el febrer té 28 dies).
Els preus es representen amb una precisió fixa de dues posicions decimals.
El sagnat de la llista agregada d'hotels es fa amb dos caràcters d'espai a l'inici " ".
Els hotels de la llista agregada i les seves respectives reserves s'han de mostrar en el mateix ordre en què s'han entrat.
Si us entren una comanda que no existeix heu de mostrar: "OPCIO NO VALIDA.".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.062
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con trabajo de la universidad

Publicado por agustin (522 intervenciones) el 01/01/2017 22:22:54
Fácil, ¿a que tu sabes catalán? ¿y castellano? Pues traducelo, que para alguien que habla ambos idiomas con fluidez eso es 2 minutos. Yo podría tirar de traductor pero si tu no te molestas ¿por qué deberíamos de molestarnos el resto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con trabajo de la universidad

Publicado por Anarq (7 intervenciones) el 01/01/2017 22:40:42
Tienes razon, ya lo he traducido
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con trabajo de la universidad

Publicado por Anarq (7 intervenciones) el 01/01/2017 22:56:17
Estoy atascado al principio, no se como hacerlo. Primero se que tengo que comprovar que la fecha de entrada sea valida, pero lo hago y siempre me sale que no es valida... y ahi me he quedado. Solo se puede usar acciones, funciones, tablas , tuplas e iteraciones

Aspectos a tener en cuenta
Si hay alguna reserva de varios dias que acaba mas alla de la fecha dde fin de temporada ( es decir, un año despues del inicio),pero no hay suficientes plazas para esa reserva, el mensaje que se espera es el que indica que no hay suficientes plazas
Por tal de evitar problemas de memoria, estableced 5000 como numero maximo total de reservas(si las guardais por hotel, estableced 1000 reservas como maximo para cada hotel)

La empresa "Tocho d'Or S.L", que tiene un gran complejo turístico situado a "Platapesa del Mar" con diversos hoteles situados a ultra-primeríssima línia de la costa , necessita un programa en C++ que permita gestionar les reservas de todos los hoteles

Al inicio de la temporada, la empresa acepta hacer reservas de habitaciones hasta con un año de antelacion. Esta informacion se entrara al inicio de la ejecucion.

Una vez definida la temporada, el usuario entrara los hoteles, con numero de habitaciones i el precio por cada noche.

Una vez entrados los hoteles, se procede a hacer las altas y bajas de las reservas. Una reserva se identifica de forma unica con la fecha, el hotel, el nombre de la persona y su DNI.. Consideraremos que una persona no puede hacer dos reservas en un mismo hotel el mismo dia.

Un resumen de los comandos que tiene que procesar el programa:

crear-hotel [nombre Hotel] [habitaciones] [precio noche] → Crea un hotel con n habitaciones con un precio/noche especificado en euros.
fi → Muestra la lista agregada de los hoteles y las reservas, seguidamente sale del programa
afegir-reserva [nombre hotel] [dia] [mes] [año] [nombre client]e [DNI cliente] [noches] [habitaciones] → reserva al hotel indicado durante n noches a partir de la fechad'entrada reservando un numero de habitaciones.
anular-reserva [nombre hotel] [dia] [mes] [año] [nombre cliente] [DNI cliente] → Con toda esta informacion se puede identificar una de las reservas creadas y eliminarla(si existe)
Nota: Los parametros que reciben las instrucciones estan entre claudators [].

A tener en cuenta:

Teneis que considerar poder gestionar un màximo de 5 hoteles con 50 habitaciones por hotel.
Consideramos años normales de 365 dias (febrero 28 dias).
Los precios se representan con una precisión fija de dos decimales.
El sangrado de la lista agregada de hoteles se hace con dos caracteres de espacio al inicio " ".
Los hoteles de la lista agregada y sus respectivas reservas se tiene que mostrar en el mismo orden en que se han entrado.
Si entran un comando que no existe, mostrar "OPCION NO VALIDA"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.062
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con trabajo de la universidad

Publicado por agustin (522 intervenciones) el 02/01/2017 00:07:57
Yo para la fecha usaría una string, luego verificaria el formato por si no es correcto y por último usaría la función de ctime.h para pasar de string a formato de tiempo y así te aseguras que el tiempo introducido sea correcto. Para comparar tiempos tienes otra función en ctime.h.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con trabajo de la universidad

Publicado por Anarq (7 intervenciones) el 02/01/2017 10:55:17
Y como pudo hacer el comando crear-hotel? Estoy estancado ahi
El usuario entra : crear-hotel [nombrehotel] [precio]
Y lo tengo que guardar en algun sitio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.062
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con trabajo de la universidad

Publicado por agustin (522 intervenciones) el 02/01/2017 12:24:45
Yo haría algo asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include  <stdio.h>
#include  <string.h>
#include <time.h>
 
typedef struct {
    time_t fecha;
    string nombre;
    string dni;
    int habitacion;
    int nNoches;
}TReserva;
typedef struct {
    string nombre;
    int nHabitaciones;
    float precio;
    TReserva reservas[100];
}THotel;
 
int main (){
	THotel hoteles[5];
	hoteles[0].nombre="Perico";
	hoteles[0].nHabitaciones=50;
	hoteles[0].precio=50.20;
 
	return 0;
}
Con eso ya tendría 5 hoteles con hasta 100 reservas cada uno.
Para los comandos usas un switch y lees el string quedandote con la primera palabra la cual seria el nombre del comando. Si coincide con alguno del switch tendrías un comando válido y dentro de esa opción verificarias los parámetros. Puedes usar por ejemplo strtok para dividir la orden en su comando y parámetros. Son ideas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.062
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con trabajo de la universidad

Publicado por agustin (522 intervenciones) el 03/01/2017 23:16:39
A ver como me dices que no sabes como obtener el comando y sus parámetros te hice un pequeño ejemplo en C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include  <stdio.h>
#include  <string.h>
 
enum {false,true};
 
typedef short bool;
 
int main (){
	char *parametros[10], *comando;
	char linea[250];
	int contador,i;
	bool fin;
 
	do {
		//solicito la linea de comando con sus parametros
		printf ("Introduce un comando: ");
		gets(linea);
		fin=false; //esta es para saber si ya se obtuvieron todos los parametros y salir del bucle donde se obtienen
		contador=0; //coloco el contador de parametros a 0
		comando=strtok(linea," []"); //obtengo el comando
		do { //obtengo los parametros
			parametros[contador]=strtok(NULL,"[]");
			if (parametros[contador] != NULL)
			    contador++;
			else
			    fin=true;
		}while (fin != true);
		//actuo segun el comando introducido
		if (strcmp (comando,"crear_hotel")==0){
			printf ("Intenta crear un hotel\n");
		}else if (strcmp (comando,"crear_reserva")==0){
			printf ("Intenta crear una reserva\n");
		}else if (strcmp (comando,"borrar_reserva")==0){
			printf ("Intenta borrar una reserva\n");
		}else if (strcmp (comando,"salir")==0){
			printf ("adios\n");
		}else {
			printf ("comando no valido\n");
			continue;
		}
		//muestro el comando y los parametros
		printf ("comando: %s\n",comando);
		for (i=0;i < contador;i++)
		{
			printf ("parametro[%i]: %s\n",i, parametros[i]);
		}
	}while  (strcmp (comando,"salir") != 0);
	return 0;
}
Con algunos pequeños cambios como sustituir stdio.h por iostream, printf por cout, gets por getline, y eliminar las líneas del typedef y del enum del inicio ya estaría en c++. Pruebalo y pregunta las dudas que tengas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.062
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con trabajo de la universidad

Publicado por agustin (522 intervenciones) el 04/01/2017 12:00:34
Mira este codigo, lo hago combinando partes de los dos codigos anteriores y algo mas. Con el puedes crear 5 hoteles cada uno con las habitaciones disponibles que le indiques al crearlos y con su precio. Tambien podras crear reservas para dichos hoteles. Con poco que te estrujes la cabeza entenderas el codigo y el tema de usar cabeceras es buscar informacion y preguntar lo que no se entienda, ningun profesor te va a decir que no uses ctime o stdlib o iomanip o sstream ya que todas son del estandar y ninguna te va a dar problemas.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include <iostream>
#include <sstream>
#include <iomanip>
#include <cstring.h>
#include <cstdlib.h>
#include <ctime.h>
 
#define MAXLINESIZE 250
#define MAXNRESERVAS 50
#define MAXNHOTELES 5
 
using namespace std;
 
//Estructura en la que se guarda la informacion de cada reserva
struct TReserva{
    time_t fecha;
    string nombre;
    string dni;
    int nHabitaciones;
    int nNoches;
};
 
//Estructura en la que se guarda la informacion de cada hotel
struct THotel{
    string nombre;
    int nHabitaciones;
    float precio;
    int nReservas;
    struct TReserva reservas[MAXNRESERVAS];
};
//---------------------------------------------------------------------------
 
int main(){
    struct THotel Hotel[MAXNHOTELES];
    int nHoteles=0;
	char *parametros[10], *comando;
	char linea[MAXLINESIZE];
	int nParametros,i;
	bool fin;
 
	do{
		//solicito la linea de comando con sus parametros
		cout << "Introduce un comando: ";
		cin.getline(linea,MAXLINESIZE);
		fin=false; //esta es para saber si ya se obtuvieron todos los parametros y salir del bucle donde se obtienen
		nParametros=0; //coloco el contador de parametros a 0
		comando=strtok(linea," []"); //obtengo el comando
 
		do{ //obtengo los parametros
			parametros[nParametros]=strtok(NULL,"[]");
			if(parametros[nParametros] != NULL)
			    nParametros++;
			else
			    fin=true;
		}while(fin != true);
 
		//actuo segun el comando introducido
		if(strcmp(comando,"crear_hotel")==0){
			cout << "Intenta crear un hotel\n";
            if(nParametros == 3){
                if(nHoteles < MAXNHOTELES){ //si aun quedan hoteles por crearse procedemos a su creacion
                    //El formato tiene que ser:
                    //crear_hotel [nombre hotel][habitaciones][precio]
                    Hotel[nHoteles].nombre = parametros[0];
                    Hotel[nHoteles].nHabitaciones = atoi(parametros[1]);
                    //esta parte que sigue es para dar precision de 2 decimales al valor de la habitacion del hotel
                    stringstream precio;
                    precio.precision(2);
                    precio << fixed << atof(parametros[2]);
                    precio >> Hotel[nHoteles].precio;
                    Hotel[nHoteles].nReservas=0;
                    nHoteles++; //Incremento el contador de hoteles creados
                    cout << "Hotel creado satisfactoriamente\n";
                }else{
                    cout << "Ya se han creado " << MAXNHOTELES << " hoteles" << endl;
                }
            }else{
                cout << "Numero de parametros incorrecto\n";
            }
		}else if(strcmp(comando,"crear_reserva")==0){
            cout << "Intenta crear una reserva\n";
            if(nParametros == 8){
                bool encontrado=false;
                int i;
 
                for(i=0; i < nHoteles; i++)
                    if(strcmp(Hotel[i].nombre.c_str(),parametros[0])==0){
                        encontrado=true;
                        break;
                    }
                if(encontrado==true){
                    if(Hotel[i].nReservas < MAXNRESERVAS){
                        //El formato tiene que ser:
                        //crear_reserva [nombre hotel][dia][mes][año][nombre cliente][DNI cliente][noches][habitaciones]
                        //con esto de a continuacion obtengo el valor time_t de la fecha introducida
                        struct tm *fecha;
                        fecha->tm_mday=atoi(parametros[1]); //coloco el dia del mes en la estructura
                        fecha->tm_mon=atoi(parametros[2])-1; //coloco el mes en la estructura
                        fecha->tm_year=atoi(parametros[3])-1900; //coloco el año en la estructura
                        Hotel[i].reservas[Hotel[i].nReservas].fecha = mktime(fecha); //convierto la estructura al formato time_t
                        //Con eso ya tenemos una fecha en formato time_t con la que poder realizar operaciones
 
                        Hotel[i].reservas[Hotel[i].nReservas].nombre=parametros[4];
                        Hotel[i].reservas[Hotel[i].nReservas].dni=parametros[5];
                        Hotel[i].reservas[Hotel[i].nReservas].nNoches=atoi(parametros[6]);
                        Hotel[i].reservas[Hotel[i].nReservas].nHabitaciones=atoi(parametros[7]);
                        cout << "Reserva creada satisfactoriamente" << endl;
                        Hotel[i].nReservas++;
                    }
                }else{
                    cout << "No se encuentra ningun hotel con ese nombre" << endl;
                }
            }else{
                cout << "Numero de parametros incorrecto" << endl;
            }
		}else if(strcmp(comando,"borrar_reserva")==0){
			cout << "Intenta borrar una reserva\n";
		}else if(strcmp(comando,"salir")==0){
			cout << "adios\n";
		}else{
			cout << "comando no valido\n";
			continue;
		}
	}while  (strcmp (comando,"salir") != 0);
	return 0;
}
//---------------------------------------------------------------------------
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con trabajo de la universidad

Publicado por Anarq (7 intervenciones) el 05/01/2017 13:22:07
Muchas gracias, voy a mirarmelo a ver que tal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con trabajo de la universidad

Publicado por uiyaoireui (1 intervención) el 08/01/2017 12:17:38
Según lo que pone en el problema, hay que hacer un calendario de todo el año con cada hotel para que se guarden las reservas ¿no? ¿Eso como se incluiría?¿Con una nueva tabla dentro de cada hotel? Es decir, si cojen una reserva para 4 noches en X hotel a partir del 4/11/2017, se deberia guardar que en los dias 4,5,6 y 7 hay una reserva de X habitaciones. Así cuando alguien intente cojer una reserva para cualquiera de esos dias pero todas las habitaciones estan ocupadas, que no pueda. Y por cierto, ¿como haríais para destruir una reserva ya hecha?

P.D.: Si alguno se aburre o ve este problema como un "reto" y quiere escribir el código, se lo agradecería muchisimo, aunque solo lo escribiese a cachos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.062
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con trabajo de la universidad

Publicado por agustin (522 intervenciones) el 08/01/2017 17:02:47
1
2
3
4
5
6
7
8
//Estructura en la que se guarda la informacion de cada hotel
struct THotel{
    string nombre;
    int nHabitaciones;
    float precio;
    int nReservas;
    struct TReserva reservas[MAXNRESERVAS];
};
En reservas podrás guardar tantas reservas cómo MAXNRESERVAS permita y he ahí la utilidad de usar el tipo time_t dentro de esa estructura, si quieres hacer una reserva nueva, antes de nada vas mirando todas las reservas que ya se hayan realizado y comprobando cuantas habitaciones hay para cada día ¿como? Dentro de la estructura de reserva tienes esto:
1
2
3
4
5
6
7
8
//Estructura en la que se guarda la informacion de cada reserva
struct TReserva{
    time_t fecha;
    string nombre;
    string dni;
    int nHabitaciones;
    int nNoches;
};
Solo necesitas saber en cuanto incrementa el valor de una variable time_t al incrementar en un día, o sea, misma hora, mismo minuto, mismo segundo. Con eso tendrías el valor inicial de la reserva y al sumar las noches que se reservan tendrás la fecha final de reserva. Ahora solo necesitas una variable inicializada a 0 a la cual se le suma el número de habitaciones de las reservas que estén en la fecha de la reserva que queramos hacer. O sea, imagina que quieres reservar el día 5/2/2017 y necesitas saber si hay habitaciones libres, si tienes por ejemplo una reserva que es del día 2/2/2017 y la reserva es por 5 noches y se reservaron 3 habitaciones, tenemos que la fecha inicial es 2/2/2017, la final 7/2/2017 y como la que queremos hacer ahora es 5/2/2017 y esta dentro de ese rango pues sumamos el número de habitaciones de esa reserva a la variable que contará el número de habitaciones ocupadas con lo que le sumamos 3 y hacemos lo mismo con todas las reservas sumando solo las que la nueva reserva este dentro del rango de fecha inicial y fecha final.
Como la nueva reserva puede ser de más de un día deberás usar un bucle while desde 1 hasta el número de noches que deseas reservar y en cada reserva comprobar que cada día habrá habitaciones suficientes vacías.
No recuerdo cuanto era un día pero es muy fácil de obtener, simplemente haz una prueba, crea una estructura tm y le pones un día y lo conviertes al formato time_t, luego incrementas en uno el día y le restas el valor anterior. En excel también puedes hacerlo simplemente dando a dos celdas el formato fecha y a una le pones un día más que a la otra y en otra celda haces la resta y te dará el valor de un día.
Espero haberme explicado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.062
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con trabajo de la universidad

Publicado por agustin (522 intervenciones) el 09/01/2017 00:01:55
Con este pequeño código obtengo el valor a sumar para incrementar un día:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include  <stdio.h>
#include  <time.h>
 
int main (){
	unsigned long sizeDay;
	time_t ini, fin;
	struct tm *st;
 
	time (&ini);
	st= localtime (&ini);
	st->tm_mday = st->tm_mday+1;
	fin=mktime (st);
	sizeDay=fin-ini;
	printf ("%s\n",ctime (&ini));
	printf ("%s\n",ctime (&fin));
	printf ("El dia vale: %lu\n",sizeDay);
	return 0;
}
Otra opción es usar este mismo código y en vez de incrementar en 1 tm_mday le sumas el número de noches con lo que tendrás en ini la fecha inicial de la reserva y en fin la fecha final de la misma.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.062
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con trabajo de la universidad

Publicado por agustin (522 intervenciones) el 09/01/2017 01:48:42
Sí pruebas mi código veras que te da que un día vale 86400 que es el resultado de la operacion 60*60*24, o sea el número de segundos que tiene un día.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

DUDA

Publicado por Gerson (1 intervención) el 23/05/2020 14:38:42
Cual seria el comando que se tiene que usar?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar