14/03/2015, 15:05
|
| | Fecha de Ingreso: septiembre-2010
Mensajes: 16
Antigüedad: 14 años, 4 meses Puntos: 0 | |
Respuesta: menu swicth en c++ cordial saludo sigo con mi programa y espero me puedan ayudar con las siguientes dudas:
adjunto el codigo que llevo hasta ahora
main.ccp
Código:
#include <iostream>
#include<conio.h>
#include"ListaParcial.h"
#include"concolor.h"
using namespace std;
int main()
{
char op='0';
int m;
TLista list;
while(op < '5')
{
cout<<red<<"\n*************************************************"<<endl;
cout<<blue<<"\t*****Reserva tu Tiquete OAI*****\n"<<endl;
cout<<greenb<<"\t\t**Menu Principal**\n\n";
cout<<blue<<"\n1> Reservar Ticket Vuelo\n\n";
cout<<blue<<"2> Eliminar Reserva\n\n";
cout<<blue<<"3> Imprimir Reporte Diario\n\n";
cout<<blue<<"4> Ingresar Cupos para Vuelos\n\n";
cout<<blue<<"5> Salir de la Aplicaci\xA2n\n\n";
cout<<red<<"*************************************************"<<endl;
cout<<yellow<<"\nEscoja una Opci\xA2n=> ";
cin>>m;
switch(m)
{
case 1:list.Insertar();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;
op='0';
getch();
}
}
cin.ignore();
return 0;
}
ListaParcial.h
Código:
#ifndef LISTAPARCIAL_H_INCLUDED
#define LISTAPARCIAL_H_INCLUDED
#include "Nodo.h"
//---------------------------------------------------------------------------
class TLista {
public:
TLista();
~TLista();
void Insertar();
void eliminar();
bool ListaVacia();
void cupos();
void printreporte();
//void storeinfo();
private:
pnodo primero;
pnodo actual;
};
ListaParcial.cpp
Código:
#include "ListaParcial.h"
//---------------------------------------------------------------------------
TLista::TLista()
{
primero = actual = NULL;
}
//---------------------------------------------------------------------------
TLista::~TLista()
{
pnodo aux;
while(primero) {
aux = primero;
primero = primero->GetSiguiente() ;
delete aux;
}
actual = NULL;
}
void TLista::Insertar()
{
int v,C;
string N;
char res='s';
while (res == 's' || res=='S')
{
cout<<"\n**Datos del Pasajero**"<<endl;
cout<<"\nDigite ID: ";
cin>>v;
cout<<"Ingrese Nombre: ";
cin>>N;
cout<<"Ingrese Ciudad Destino(1.Bogota - 2.Cartagena - 3.Miami - 4.Barcelona): ";
cin>>C;
cout<<"\n\n\tDesea hacer otra reserva? (s/n) :\n";
cin>>res;
}
pnodo anterior;
if(ListaVacia() || primero->GetID() > v) {
primero = new TNodo(v,N,C, primero);
}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 ";
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
bool TLista::ListaVacia()
{
return primero == NULL;
}
//---------------------------------------------------------------------------
void TLista::cupos()
{
int l,k,j,h;
cout<<"\n**CUPOS DISPONIBLES A CIUDADES**"<<endl;
cout<<"\nCUPOS DISPONIBLES A BOGOTA=>";
cin>>l;
cout<<"\nCUPOS DISPONIBLES A CARTAGENA=>";
cin>>k;
cout<<"\nCUPOS DISPONIBLES A MIAMI=>";
cin>>j;
cout<<"\nCUPOS DISPONIBLES A BARCELONA=>";
cin>>h;
}
//---------------------------------------------------------------------------
void TLista::printreporte()
{
TNodo *aux;
aux = primero;
cout<<"Identificacion: "<<aux->GetID()<<" Nombre: "<<aux->Getnombre()<<" Destino: "<<aux->Getciudad();
}
Nodo.h
Código:
#ifndef NodoH
#define NodoH
#include <conio.h>
#include <iostream>
using namespace std;
class TNodo;
typedef TNodo *pnodo;
class TNodo {
public:
TNodo(int v,string N,int C, TNodo *sig);
TNodo* GetSiguiente();
TNodo* SetSiguiente(int v, string N, int C, TNodo* nodo);
int GetID();
int Getciudad();
string Getnombre();
private:
int ID;
string nombre;
int ciudad;
pnodo siguiente;
};
#endif
Nodo.cpp
Código:
#include"Nodo.h"
TNodo::TNodo(int v,string N,int C, TNodo *sig)
{
sig=NULL;
ciudad = C;
ID = v;
nombre = N;
siguiente = sig;
}
//---------------------------------------------------------------------------
TNodo* TNodo::GetSiguiente()
{
return siguiente;
}
int TNodo::GetID()
{
return ID;
}
int TNodo::Getciudad()
{
return ciudad;
}
string TNodo::Getnombre()
{
return nombre;
}
TNodo* TNodo::SetSiguiente(int v, string N, int C, TNodo* sig)
{
TNodo* retval;
try
{
retval = new TNodo(v,N,C, sig->siguiente);
}catch(bad_alloc){
retval=NULL;
}
return retval;
}
concolor.h
Código:
//concolor.h
//v0.2
//Pequeña "librería" para mostrar mensajes con color en la consola.
//Funciona en Windows y Linux.
//Uso: cout<<color<<"mensaje";
//Para compilar en Windows, usar -DWIN
//Para compilar en Linux, usar -DLINUX
/*
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. This file is offered as-is,
without any warranty.
*/
//Creado por Johny
//http://www.johny65corp.com.ar
#ifndef _CONCOLOR_
#define _CONCOLOR_
#include <iostream>
#define WIN
#ifdef WIN
#include <windows.h>
static bool normalizado = false;
static HANDLE hStdout;
static WORD normalc;
void normalizar()
{
if (!normalizado){
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO prop;
GetConsoleScreenBufferInfo(hStdout, &prop);
normalc = prop.wAttributes;
normalizado = true;
}
}
inline std::ostream& normal(std::ostream &s)
{
normalizar();
SetConsoleTextAttribute(hStdout, normalc);
return s;
}
inline std::ostream& normalb(std::ostream &s)
{
normalizar();
SetConsoleTextAttribute(hStdout, normalc);
return s;
}
inline std::ostream& black(std::ostream &s)
{
normalizar();
SetConsoleTextAttribute(hStdout, FOREGROUND_INTENSITY);
return s;
}
inline std::ostream& blackb(std::ostream &s)
{
normalizar();
SetConsoleTextAttribute(hStdout, 0);
return s;
}
inline std::ostream& blueb(std::ostream &s)
{
normalizar();
SetConsoleTextAttribute(hStdout, FOREGROUND_BLUE);
return s;
}
inline std::ostream& blue(std::ostream &s)
{
normalizar();
SetConsoleTextAttribute(hStdout, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
return s;
}
inline std::ostream& greenb(std::ostream &s)
{
normalizar();
SetConsoleTextAttribute(hStdout, FOREGROUND_GREEN);
return s;
}
inline std::ostream& green(std::ostream &s)
{
normalizar();
SetConsoleTextAttribute(hStdout, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
return s;
}
inline std::ostream& cyanb(std::ostream &s)
{
normalizar();
SetConsoleTextAttribute(hStdout, FOREGROUND_GREEN | FOREGROUND_BLUE);
return s;
}
inline std::ostream& cyan(std::ostream &s)
{
normalizar();
SetConsoleTextAttribute(hStdout, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY);
return s;
}
inline std::ostream& redb(std::ostream &s)
{
normalizar();
SetConsoleTextAttribute(hStdout, FOREGROUND_RED);
return s;
}
inline std::ostream& red(std::ostream &s)
{
normalizar();
SetConsoleTextAttribute(hStdout, FOREGROUND_RED | FOREGROUND_INTENSITY);
return s;
}
inline std::ostream& magentab(std::ostream &s)
{
normalizar();
SetConsoleTextAttribute(hStdout, FOREGROUND_RED | FOREGROUND_BLUE);
return s;
}
inline std::ostream& magenta(std::ostream &s)
{
normalizar();
SetConsoleTextAttribute(hStdout, FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY);
return s;
}
inline std::ostream& yellowb(std::ostream &s)
{
normalizar();
SetConsoleTextAttribute(hStdout, FOREGROUND_RED | FOREGROUND_GREEN);
return s;
}
inline std::ostream& yellow(std::ostream &s)
{
normalizar();
SetConsoleTextAttribute(hStdout, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY);
return s;
}
inline std::ostream& whiteb(std::ostream &s)
{
normalizar();
SetConsoleTextAttribute(hStdout, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
return s;
}
inline std::ostream& white(std::ostream &s)
{
normalizar();
SetConsoleTextAttribute(hStdout, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY);
return s;
}
struct color {
color(WORD attribute):m_color(attribute){};
WORD m_color;
};
template <class _Elem, class _Traits> std::basic_ostream<_Elem,_Traits>& operator<<(std::basic_ostream<_Elem,_Traits>& i, color& c)
{
SetConsoleTextAttribute(hStdout, c.m_color);
return i;
}
#else
#error Falta definir sistema operativo! Definir WIN o LINUX
#endif
#endif
ahora tengo que usar listas enlazadas para este programa, tengo estas dudas
1 porque cuando imprimo el reporte solo me muestra el ultimo dato guardado y no los datos que se deberían almacenar en la lista (ID, nombre , ciudad destino)
2 como puedo indicarle al programa que el tamaño de los cupo de vuelo a las ciudades sea el valor de tamaño de la lista para poder dar el mensaje de cupos lleno
3como puedo mejorar la impresion para que salga estilo ejemplo
identificacion nombre destino
333333 pepe 1
333333 juan 2
gracias por su valioso tiempo y espero que me puedan guiar que ya me toca entregarlo la semana próxima y es el examen.
Última edición por zojurado; 14/03/2015 a las 15:08
Razón: olvide un archivo
|