Simulacion Banco

Iniciado por Gerik, 4 Octubre 2010, 04:11 AM

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

Gerik

Este programa crea o atiende clientes (lo hace random) lo maximo a crear o atender son 4 clientes ejem;

Se crearon n clientes (los muestra)
se atendieron n clientes (borra los atendidos de acuerdo TDA Cola)

ahora lo que intento hacer en modo grafico es mostar pero cuando intento mostrar con outtextxy (x,y,"string") siempre se sobreescribe ejem:
se crearon # clientes
# es donde se sobreescriba obviamente al llmar a la funcion
como podria borrar solo esa parte
no se si me hice entender (dejo el codigo asi es mas facil de entender lo que quiero hacer xD)


Código (cpp) [Seleccionar]
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

class Nodo
  {Nodo *sig;
   int id;
   public:
   Nodo()
       {sig=NULL;}
   Nodo(int id)
       {sig=NULL;
        setId(id);}
  Nodo* getNodo()
       {return sig;}
  void setNodo(Nodo *siguiente)
       {sig=siguiente;}
   int getId()
    {return id;}
   void setId(int valor)
    {id=valor;}
   };

class Lista
   {Nodo *inicio, *final;
    int  cantidad;
    public:
    Lista()
         {inicio=NULL;
          final=NULL;
          cantidad=0;}
   Nodo * getinicio()
       {return inicio;}
   Nodo * getfinal()
       {return final;}
   int cantidadNodos()
       {return cantidad;}
   bool insertar(Nodo *nodo)
       {if(inicio==NULL)
          {inicio=nodo;
           final=nodo;}
        else
          {final->setNodo(nodo);
           final=nodo;}
        cantidad++;
        return true;}
   void mostrar()
       {if(inicio==NULL)
          {exit;}
        else
          {Nodo *p;
           p=inicio;
           int conta=1;
           int miprioridad=-1;
           cout<<endl;
           while(p!=NULL && conta<=cantidad)
               {cout<<"C"<<p->getId()<<"\t";
       p=p->getNodo();
                conta++;};
          }
       }
   void mostrarNodosDirecciones()
       {if(inicio==NULL)
          {exit;}
        else
          {Nodo *p;
           p=inicio;
           int conta=1;
           int miprioridad=-1;
           cout<<endl;
           while(p!=NULL && conta<=cantidad)
                {cout<<"Nodo C"<<p->getId()<<" Direccion --> "<< p <<" Nodo Sig-->  "<<p->getNodo()<<endl;
        p=p->getNodo();
                 conta++;};
           }
       }
   bool eliminarNodo(int total) //cantidad de nodos a eliminar
      {if(inicio==NULL ||  cantidad==0)
         {cout<<"Lista vacia "<<endl;
          return false;}
       else
         {if(total>cantidad)
            {cout<<endl<<"Solo puede eliminar como maximo "<< cantidad  <<" nodos."<<endl;
             return false;}
             int conta=1;
             Nodo *p;
             p=inicio;
             while(p!=NULL && total>0 && cantidad>0)
               {inicio=inicio->getNodo();
                   total--;
                   cantidad--;
                   delete p;
                   p=inicio;};
             if (cantidad==0)
                inicio=NULL;
             return true;
         }
      }
   bool eliminarNodo()
       {if(inicio==NULL || cantidad==0)
           return false;
        else
          {Nodo *p;
           p=inicio;
     inicio=inicio->getNodo();
           delete p;
           cantidad --;
           return true;}
       }
   };

class Simulacion
  {Lista servidor;
   Lista clientes;
   int  codigo;
   public:
   Simulacion()
      {codigo=0;}
   generarClientes(int cantidad)
      {for(int x=1;x<=cantidad;x++)
    {codigo++;
     Nodo *minodo=new Nodo(codigo);
     clientes.insertar(minodo);}
       }
   int cantidadClientes()
      {return clientes.cantidadNodos();}
   int atenderClientes()
      {int valor;
       if(clientes.cantidadNodos()==0)
          return 0;
       valor=random(4);
       clientes.eliminarNodo(valor);
       return valor;
      }
   mostrarClientes()
     {//clientes.mostrarNodosDirecciones() ;
      clientes.mostrar();}
   mostrarServidor()
      {}
   };

int main()
   {Simulacion lab;
    bool activo=true;
    int canti=0;
    randomize();
    int c=0;
    int turno=-1;
    c=getch();
    cout<<"Presione ENTER para continuar la simulacion y ESC para salir..."<<endl;
    while(c!=27)
         {//determinar si llegan clientes o si atienden
          turno=random(2);
          if(turno==1)
            {//crear clientes
             int cuantos=0;
             cuantos=random(5);
             lab.generarClientes(cuantos);
             cout<<endl<<"Se crearon  "<<cuantos<<"  clientes."<<endl;
             lab.mostrarClientes();}
          else
            {//atender clientes
             canti=lab.atenderClientes();
             cout<<endl<<"Cantidad a atender "<<canti<<endl;
             if (canti>0)
                 lab.mostrarClientes();
            }
          c=getch();
         }
  clrscr();
  cout<<endl<<"El servidor no admite mas clientes..."<<endl;
  if(lab.cantidadClientes()>0)
    {cout<<"Clientes pendientes por atender... "<< lab.cantidadClientes() <<endl;
     lab.mostrarClientes();
     while(lab.cantidadClientes()>0) //si quedan clientes atenderlos
      {canti=lab.atenderClientes();
          cout<<endl<<"Cantidad a atender "<<canti<<endl;
          lab.mostrarClientes();}
     cout<<endl<<"Se atendieron todos clientes..."<<endl;
    }
  getch();
  }



[L]ord [R]NA

Evita utilizar 'conio.h' no es del standard.

leogtz

Tampoco lo es iostream.h.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com