Necesito ayuda para un programa en C++

Iniciado por Miguel_15, 18 Diciembre 2010, 18:59 PM

0 Miembros y 1 Visitante están viendo este tema.

Miguel_15

Pues eso chicos, estoy en primer año de carrera, en una ingeniería, y el nivel que tenemos de informática es muy bajo, aun asi a mi no se me da nada bien, y el lunes tengo que entregar este trabajo. Se trata de un programa en C++ para gestionar la ocupación de un hotel de 60 habitaciones y 6 plantas (a 10 hab/planta). Me basta con un guión mas o menos entendible para mi, el cual me explique los pasos para ir haciendolo, y ya veremos que sale  ;D

a. Utilizar la estructura de datos adecuada para almacenar la ocupación de las 60
habitaciones. Es obligatorio justificar la elección mediante comentarios en el programa.
b. Nos indican que en todas las plantas las habitaciones pares son individuales (máximo una persona por habitación) y las impares son dobles (puede haber hasta dos personas, pero también se puede alojar una sola). Además, en la última planta existe la posibilidad de añadir una cama supletoria, tanto en las habitaciones individuales como en las dobles, pudiendo dormir una persona más.
Se leerá por teclado, para cada habitación, cuántas personas hay alojadas, no
admitiéndose valores erróneos.
c. Mostrar por pantalla la ocupación del hotel con el siguiente formato de salida:
Habitación: 1 -- 2 -- 3 -- 4 -- 5 -- 6 -- 7 -- 8 -- 9 --10
Planta 6:    1 -- 3 -- 0 -- 2 -- 1 -- 2 -- 1 -- 0 -- 2 -- 3
Planta 5:    1 -- 2 -- 1 -- 2 -- 0 -- 0 -- 1 -- 2 -- 1 -- 2
Planta 4:    1 -- 2 -- 1 -- 2 -- 0 -- 0 -- 1 -- 2 -- 1 -- 2
Planta 3:    1 -- 2 -- 1 -- 1 -- 0 -- 0 -- 1 -- 1 -- 1 -- 0
Planta 2:    1 -- 1 -- 1 -- 2 -- 1 -- 2 -- 0 -- 2 -- 0 -- 2
Planta 1:    1 -- 2 -- 1 -- 2 -- 0 -- 0 -- 1 -- 2 -- 1 -- 2

Un saludo, y muchas gracias  ;D

Akai

Aquí no se hacen trabajos. Si tienes dudas, pregunta, pero nadie te va a resolver el problema.

Miguel_15

#2
Dije un guión, no que nadie lo haga, al menos una pauta para empezar, que bucles utilizar... una ayuda.

Un saludo!

Puedo ayudaros en muchas cosas, excepto en el campo de la informática, donde mis conocimientos son practicamente nulos... :-[

Voy a intentar hacer algo, y lo pego aquí para que me ayudeis.
Se que tengo que hacer una matriz con las habitaciones y los pisos, con dos bucles for, pero no se como representarla, con los ocupantes de cada habitación..

Akai

Haz lo que puedas, y sobre lo que tengas hecho, planteas dudas.

Una cosa es que se comente o modifique el código que tu previamente has hecho, que te ayudemos sobre el código. Pero lo que no vamos a hacer es escribirte el código que tu has de hacer.

Littlehorse

Puedes trabajar con una matriz y recorrerla con dos ciclos for, cada columna una habitación y cada fila una planta. Para recorrerla te basta con tener dos ciclos anidados e ir imprimiendo cada dato, cuando llegaste al final de una fila, imprimes un salto de linea.
Utiliza el buscador que hay bastante información sobre matrices y arrays.

Saludos

#
No cierro el hilo porque no me parece que se este pidiendo tarea en forma alevosa, si no que se esta pidiendo una pauta, una idea de como hacerlo.


An expert is a man who has made all the mistakes which can be made, in a very narrow field.

Miguel_15

y como imprimo cada dato? es lo que no entiendo...

Littlehorse

Lo que te recomiendo es que empieces por aqui para que comiences a leer un libro sobre el tema.

En cuanto a imprimir los datos, has probado utilizando cout? me temo que si todavía no sabes imprimir un dato, tendrás que empezar desde el principio antes de realizar ese ejercicio.

Codifica el ejercicio que tienes que realizar, y cuando tengas dudas posteas el código y las dudas en este mismo hilo.

Saludos
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

Miguel_15

#include <iostream>
using namespace std;
const int plantas=6;
const int habitaciones=10;
// Utilizamos un vector bidimensional para almacenar las plantas del hotel y las habitaciones.
int main ()
{
int hotel [plantas][habitaciones],vector[plantas], i, j;
bool correcto;
for (i=0;i<plantas;i++)
{
for(j=0;j<habitaciones;j++)
{
do {
//Introducimos el número de ocupantes de cada habitación.
cout<<"Introduzca el numero de ocupantes de la habitacion "<<j+1<<" de la planta "<<i+1<<endl;
correcto=true;
cin>>hotel[j];
// Comprobaciones para ver si el numero de ocupantes es correcto.
if(i<plantas-1)
{
if (((j+1)%2==0)&& ((hotel[j]>1) || (hotel[j]<0)))
{
correcto=false;
}
if (((j+1)%2==1) && ((hotel[j]>2)|| (hotel[j]<0)))
{
correcto=false;
}
}
else
{
if (((j+1)%2==0)&&((hotel[j]>2)||(hotel[j]<0)))
{
correcto=false;
}
if (((j+1)%2==1) && ((hotel[j]>3)||(hotel[j]<0)))
{
correcto=false;
}
}
} while (correcto==false);
}
}
// Mostramos por pantalla las habitaciones con sus ocupantes.
cout<<"La distribucion de plantas es la siguiente:"<<endl;
cout<<"Habitacion: ";
for (j=0;j<habitaciones;j++)
{
cout<<j<<" - ";
}
cout<<endl;
for(i=plantas;i>0;i--)
{
cout<<"Planta"<<i<<": ";
for (j=0;j<habitaciones;j++)
{
cout<<hotel[i-1][j]<<" - ";
}
cout<<endl;
}

system ("pause");
return 0;
}

Gracias por la ayuda prestada  ;D
De momento, este programa funciona correctamente, necesite algo de ayuda porque no tenía ni idea de como mostrar por pantalla las plantas del 1 al 6, ya que las posiciones de la matriz venian dadas del 0 al 5. Lo que ahora necesito hacer es esto:

Se sabe que la habitación simple cuesta 75€, la doble 100€ y la cama
adicional tiene un recargo del 15%. Calcular y almacenar (en un array con
la misma estructura que la creada para almacenar la ocupación del hotel) el
precio que se tiene que pagar por cada habitación. Mostrar por pantalla
esta información de forma similar a cómo se mostró la ocupación del hotel.

Tengo unas 4 horas para entregarlo, espero que alguien me heche un cable con un guión.

Un saludo y gracias chicos!

PD: el mensaje anterior no lo escribí yo, obviamente si se como se muestra un dato por pantalla ;)