#include <cstdlib>
#include <iostream>
#include <conio.c>
#include <dos.h>
#include <string.h>
#define Tot 20
using namespace std;
int ColaLlena(int iC);
int ColaVacia(int iC);
void Divisiones(int x, int y);
void Rayas(int x, int y);
void Esquinas(int x,int y);
void Dibujar();
void Banco();
void SacarValoresDeLaCola(int Cola[], int &iC, int &CyC, int pos);
void SacarLaCola(int Cola[], int &iC, int &CyC);
void DesplegarLaCola(int Cola[], int iC);
void Menu(int Cola[],int &iC,int &CyC);
int main(int argc, char *argv[])
{
int Cola[Tot];
int iC=0;
int CyC=5;
system("CLS");
Menu(Cola, iC, CyC);
system("PAUSE");
return EXIT_SUCCESS;
}
void Dibujar()
{
int x=-29, y=23;
Divisiones(x,y);
Rayas(x,y);
Esquinas(x,y);
}
void Divisiones(int x, int y)
{
for(int i=0; i<9; i++)
{
gotoxy(x+69,y);
cout<<"º";
y=y+2;
}
}
void Rayas(int x, int y)
{
y--;
for(int i=0; i<19; i++)
{
gotoxy(x+69,y+i);
cout<<"º";
gotoxy(x+72,y+i);
cout<<"º";
}
}
void Esquinas(int x,int y)
{
int i;
y-=2;
x--;
for(int i=0; i<2; i++)
{
gotoxy(x+70,y);cout<<"É";cout<<"ÍÍ";
gotoxy(x+70,y+20);cout<<"È";cout<<"ÍÍ";
gotoxy((x+70)+3,y);cout<<"»";
gotoxy((x+70)+3,y+20);cout<<"¼";
}
}
void Banco()
{
int i, j;
for(i=2;i<=40;i++)
for(j=2;j<=20;j++)
{
gotoxy(i, j);cout<<"º";
}
gotoxy(40,18);cout<<" ";
gotoxy(40,19);cout<<" ";
gotoxy(40,20);cout<<" ";
gotoxy(40,20);cout<<" ";
cout<<"Entrada";
}
int ColaVacia(int iC)
{
if(iC==0)
return 1;
else
return 0;
}
int ColaLlena(int iC)
{
if(iC==Tot)
return 1;
else
return 0;
}
int Buscar(int Array[],int iN, int Val, int &pos)
{
int Ya=0;
for(int j=0;j<iN;j++)
{
if(Array[j]==Val)
{
Ya=1;
pos=j;
}
}
return Ya;
}
void SacarValoresDeLaCola(int Cola[], int &iC, int &CyC, int pos)
{
int x=41, y, j, i, k, temp;
temp=iC-1;
for(k=0; k<pos+1; k++)
{
gotoxy(x,22);
cout<<" ";
gotoxy(x,19);
cout<<Cola[0];
gotoxy(x,19);
cout<<" ";
Cola[0]=-1;
for(j=0;j<iC;j++)
Cola[j]=Cola[j+1];
y=24;
iC--;
for(j=0;j<iC;j++)
{
gotoxy(x,y);
cout<<" ";
gotoxy(x,y-2);
cout<<Cola[j];
y=y+2;
}
}
}
void SacarLaCola(int Cola[], int &iC, int &CyC)
{
int valor, pos;
gotoxy(1,24);cout<<"Proceso para sacar algo de la cola";
gotoxy(1,28);cout<<"Proces de sacar a una persona";
gotoxy(2,34);cout<<" ";
gotoxy(2,37);cout<<" ";
gotoxy(2,31);
if(ColaVacia(iC))
{
cout<<"Disculpe la cola esta vacía";
getch();
}
else
{
cout<<"Ingrese el numero de personas que desea eleminar";
cin>>valor;
if(Buscar(Cola, iC, valor, pos))
SacarValoresDeLaCola(Cola, iC, CyC, pos);
else
{
gotoxy(1,37);cout<<"Disculpe ese numero no existe";
getch();
}
}
}
void DesplegarLaCola(int Cola[], int iC)
{
int x=41, y=42, dif, i;
dif=Tot-iC;
for(i=0;i<dif;i++)
{
gotoxy(x,y);cout<<Cola[iC];
gotoxy(x,y);cout<<" ";
y-=2;
}
gotoxy(x,y);cout<<Cola[iC];
}
void MeterEnLaCola(int Cola[], int &iC, int &CyC)
{
int valor, pos;
gotoxy(1,24);cout<<"Cola del Banco Quetzal\t";
gotoxy(1,28);cout<<"Ingresar una persona\t";
gotoxy(2,34);cout<<" " ;
gotoxy(2,37);cout<<" ";
gotoxy(1,31);
if(ColaLlena(iC))
{
cout<<"La cola esta llena\n";
getch();
}
else
{
cout<<"Numero de personas \t";
cin>>Cola[iC];
DesplegarLaCola(Cola, iC);
iC++;
CyC+=2;
}
}
void Menu(int Cola[],int &iC, int &CyC)
{
int Opcion = 0;
while (Opcion != 3)
{
system("CLS");
Dibujar();
Banco();
cout<<"\n\n\n\n\n\n\n\n";
cout<<"\t \t \t UNIVERSIDAD MARIANO GALVEZ \n \n";
cout<<"\t \t Proyecto Final Estructura De Datos \n";
cout<<"\t \t Carlos Rolando Calan Ajquill Junio/2006 \n";
cout<<"\t \t Carne: 0910-04-13429 5to. Semestre \n";
cout<<"\t \t ----------------------------------------------\n";
cout<<"\t \t Proceso de una Cola en un Banco \n ";
cout<<"\t \t ----------------------------------------------\n\n";
cout<<"\t 1.- Ingreso de Personas \n";
cout<<"\t 2.- Salida de Personas \n";
cout<<"\t 3.- Salir \n";
cout<<"\t -------------------------------------------------\n";
cout<<"\t \t Seleccione una opcion \t";
cin>>Opcion;
switch (Opcion)
{
case 1:
cout<<"OPCION 1:";
MeterEnLaCola(Cola, iC, CyC);
break;
case 2:
cout<<"OPCION 2:";
SacarLaCola(Cola, iC, CyC);
case 3:
cout<<"OPCION 3:";
system("CLS");
cout<<"Hecho por Carlos Rolando Calán Ajquill, hasta pronto ......\n\n";
break;
default:
cout;
cout<<"Opcion Invalida \n\n";
break;
}
}
}

