Ver Mensaje Individual
  #4 (permalink)  
Antiguo 09/03/2015, 05:12
aguml
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 9 meses
Puntos: 3
Respuesta: menu swicth en c++

Lo primero, intenta no usar friend, para acceder a miembros privados de otra clase usa metodos como te muestro en el siguiente codigo. No he probado si funciona como tu quieres ya que ni tengo todo el codigo funcional ni se lo que quieres hacer aunque por lo que veo parece un trabajo de listas enlazadas. Ahora compila y ya puedes seguir trabajando sobre esto para ir añadiendo lo que quieras:
En el Main.cpp:
Código PHP:
#include<iostream>
#include<conio.h>
#include "Lista_Parcial.h"

using namespace std;

int main()
{
   
int m;
   
TLista list;
   
cout<<"\n\t\t***Reserva tu Pasaje OAI***\n\n"<<endl;
   
cout<<"Menu Principal:\n\n";
   
cout<<"1>  Reservar Ticket Vuelo\n\n";
   
cout<<"2>  Eliminar Reserva\n\n";
   
cout<<"3>  Imprimir Reporte Diario\n\n";
   
cout<<"4>  Ingresar Cupos para Vuelos\n\n";
   
cout<<"5>  Salir de la Aplicaci\xA2n\n\n";
   
cout<<"****Escoja una Opci\xA2n:  ";
   
cin>>m;

   switch(
m)
   {
      case 
1:
         
//Los valores que meto en Insertar son de prueba
         
list.Insertar(1,"prueba",1);
         break;
      case 
2:
         list.
eliminar();
         break;
      case 
3:
         list.
printreporte();
         break;
      case 
4:
         list.
cupos();
         break;
      case 
5:
         
cout<<"\n\nExit"<<endl;
         break;
      default:
         
cout<<"La Opci\xA2n no esta en el menu"<<endl;
   }
   
cin.ignore();
   return 
0;

En el Lista_Parcial.h:
Código PHP:
//---------------------------------------------------------------------------
#ifndef LISTAPARCIAL_H_INCLUDED
#define LISTAPARCIAL_H_INCLUDED
#include "Nodo.h"
//---------------------------------------------------------------------------

class TLista {
   public:
      
TLista();
      ~
TLista();
      
void Insertar(int vstring N,int C);
      
void eliminar();
      
bool ListaVacia();
      
void cupos();
      
void printreporte();

   private:
      
pnodo primero;
      
pnodo actual;
};

#endif // LISTAPARCIAL_H_INCLUDED 
En Lista_Parcial.cpp:
Código PHP:
#include "Lista_Parcial.h"
//---------------------------------------------------------------------------

TLista::TLista()
{
   
primero actual NULL;
}
//---------------------------------------------------------------------------

TLista::~TLista()
{
   
pnodo aux;

   while(
primero) {
      
aux primero;
      
primero primero->GetSiguiente() ;
      
delete aux;
   }
   
actual NULL;
}
//---------------------------------------------------------------------------

bool TLista::ListaVacia()
{
   return 
primero == NULL;
}
//---------------------------------------------------------------------------

void TLista::Insertar(int vstring N,int C)
{
   
cout<<"\n\nDigite ID: ";
   
cin>>v;
   
cout<<"Ingrese Nombre: ";
   
cin>>N;
   
cout<<"Ingrese Ciudad Destino(1.Bogota - 2.Cartagena - 3.Miami - 4.Barcelona): ";
   
cin>>C;
   
pnodo anterior;

   if(
ListaVacia() || primero->GetID() > v) {
      
primero = new TNodo(v,N,Cprimero);
   }else {
      
anterior primero;
      while(
anterior->GetSiguiente() && anterior->GetSiguiente()->GetID() <= v)
         
anterior anterior->GetSiguiente();
      
anterior->SetSiguiente(v,N,C,anterior->GetSiguiente());
   }
}
//---------------------------------------------------------------------------

void TLista::eliminar()
{
cout<<"\n\n SALIDA ";
}
//---------------------------------------------------------------------------

void TLista::cupos()
{
    
int Cbogota=20;
    
int Ccartagena=30;
    
int Cmiami=10;
    
int Cbarcelona=8;

    
cout<<"\n\n SALIDA ";
}
//---------------------------------------------------------------------------

void TLista::printreporte()
{


En Nodo.h:
Código PHP:
#ifndef NodoH
#define NodoH

#include <iostream>

using namespace std;

class 
TNodo;
typedef TNodo *pnodo;

class 
TNodo {
    public:
        
TNodo(int v,string N,int CTNodo *sig);
        
TNodoGetSiguiente();
        
TNodoTNodo::SetSiguiente(int vstring Nint CTNodonodo);
        
int GetID();
    private:
        
int ID;
        
string nombre;
        
int ciudad;
        
pnodo siguiente;
};
#endif 
En Nodo.cpp:
Código PHP:
#include "Nodo.h"

TNodo::TNodo(int v,string N,int CTNodo *sig)
{
   
sig=NULL;
   
ciudad C;
   
ID v;
   
nombre N;
   
siguiente sig;

}
//---------------------------------------------------------------------------

TNodoTNodo::GetSiguiente()
{
   return 
siguiente;
}

int TNodo::GetID()
{
   return 
ID;
}

TNodoTNodo::SetSiguiente(int vstring Nint CTNodosig)
{
   
TNodoretval;
   
   try
   {
      
retval = new TNodo(v,N,Csig->siguiente);
   }catch(
bad_alloc){
      
retval=NULL;
   }
   return 
retval;

Por facilitar el trabajo, te aconsejo que cada clase la coloques en un archivo independiente para poder luego trabajar mas facilmente con cada una. Espero haber sido de utilidad y perdona por los fallos que pueda tener.