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
#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(); }