Salve,
Chiedo innanzitutto venia in caso il titolo non sia sufficientemente adeguato, non mi viene altro in mente.
Ho sviluppato questo codice in basa ad un esercizio (aggiungo anche le richieste).
Codice:
codice:
#include <iostream>
using namespace std;

//funzioni
int sceltaClasse(); //include il mess. di benvenuto
void visualizzaCartaImbarco(int, int);
int cercaPosti1(); //cerca i posti disponibili nella prima classe
int cercaPosti2(); //cerca i posti disponibili nella classe economica
void cercaAltro(int);



const int size = 11;
int arrayPosti[size] = {0}; //array di 10 elementi (escludendo l'elemento con indice 0)

int main(void)
{
  
  cout << "Benvenuto nel programma.";
 
  while (true){  //condizione?
  
  int classe = sceltaClasse();
  
  int posto = 0;
   //controlli su classe
   if (classe == 1 ){
     posto=cercaPosti1();
     visualizzaCartaImbarco(classe, posto);
      }
    else if (classe == 2)
    {
    posto=cercaPosti2();
    visualizzaCartaImbarco(classe, posto);
    }
     else
    cout << "Dato inserito non valido." << endl;
   
   }
  return 0;
}

int sceltaClasse()
{
    int classeScelta;
    cout << "\nIn quale classe desidera viaggiare?\nDigitare 1 per la prima classe.\nDigitare 2 per la classe economica." << endl;
    cin >> classeScelta;

   return classeScelta;
}
int cercaPosti1()
{

    for (int i = 1; i<5; i++) //cerco i posti nell'array, partendo dall'indice 1: se un elemento ha valore 0 lo utilizza come posto e lo incrementa.
     {
         if (arrayPosti[i] == 0)
         {
             arrayPosti[i]++;
             return i;

         }

     }

cercaAltro(1);

}

int cercaPosti2()
{

    for (int i = 6; i<10; i++)//cerco i posti nell'array, partendo dall'indice 1: se un elemento ha valore 0 lo utilizza come posto, lo incrementa, e lo ritorna.
     {
         if (arrayPosti[i] == 0)
         {
             arrayPosti[i]++;
             return i;

         }

     }
cercaAltro(2);
}


void cercaAltro(int classe)
{
    int x =0;
   switch (classe)
   {
       case 1:
       cout << "Non è stato possibile trovare un posto nella prima classe. Passare alla classe economica?\nDigiti 1 per passare alla classe economica;\nDigiti 2 per uscire dal programa."
            <<endl;
       cin >> x;
       if (x == 1){
        cercaPosti2();
      
        }
       else
       {
         cout << "Arrivederci!"<<endl;
       }
       break;
       case 2:
       cout << "Non è stato possibile trovare un posto nella classe economica. Passare alla prima classe?\nDigiti 1 per passare alla prima classe;\nDigiti 2 per uscire dal programa."
            <<endl;
       cin >>x;
       if (x == 1){
        cercaPosti1();
        
        }
       else{
         cout << "Arrivederci!"<<endl;
       }
       break;
       default:
       cout << "Valore inserito non valido."<<endl;








   }

}


void visualizzaCartaImbarco(int classe, int posto)
 {
   cout << "\nPosto assegnato: " << posto << "\nNella classe: " << classe << endl;

 }
Richieste:

codice:
Problema:
Creazione di un programma che permetta di effettuare delle prenotazioni.
Caratteristiche e dati particolari:

-Massimo 10 posti nell'aereo;
-Ci sono due classi: la prima classe(posti 1-5), e la classe economica (post 6-10);
-Il programma, deve visualizzare la carta d'imbarco contenente il posto ed il tipo di classe;
-Il programma, deve controllare che il posto sia libero: in caso tutta la classe sia completa, bisogna chiedere se passare all'altra (e viceversa).
Altrimenti visualizzare un messaggio, che informa l'utente che il prossimo viaggio è fra 3 ore.
Non sapendo quale condizione utilizzare, ho impostato la condizione del while su true, che appunto impedisce il termine del programma.
Un'idea sarebbe utilizzare un valore che è effettua la somma di tutti gli elementi dell'array: quando questo valore arriva al massimo (considerando che gli elementi dell'array hanno due valori: 0 ed 1) il while risulterà false e terminerà.
Ma non saprei come impostarlo; naturalmente altre proposte saranno bene accette.

Un altro problema, è questo:
http://i47.tinypic.com/2v2tvdd.png

Vi invito a darmi dei consigli, sono un novellino in materia
Grazie per l'attenzione.