Banco - Aplicación con colas.

Para Windows

Requerimos el uso de las funciones básicas de colas, que están en estos links: colas.h colas.c Código fuente:
/* 
 * File:   main.cpp
 * Author: Rodrigo y ToñoGates
 */

#include 
#include "colas.h"

void imprimemenu();
void menu_transacciones();
int calcular_tiempo(int []);
int tiempo_espera(Cola *c);

int main(int argc, char** argv) {
char ch;
int num=0;
//clrscr();
printf("\n\t\t\t Toño&Rod´s Bank \n\n\n ¿Deseas hacer una Cola de clientes? S/N\n");
scanf("%c",&ch);
    if((ch == 'N')||(ch == 'n')){
        printf("Salgo del programa\n");
        return (EXIT_SUCCESS);
    }
int t_espera=0;
 int i=0;

int trans[10]={0};
Cola *c;
c=crear();
TipoDato p1;
p1.nombre=(char *)calloc(100,sizeof(char));
do{
    imprimemenu();
    scanf("%d",&num);
    switch (num)
    {
     case 1:
  i=0;
                printf("\n\tNombre:");
                getchar();
                gets(p1.nombre);
                printf("\n\n\tTransaccion(es)a realizar(10 max):");
                do{
                 menu_transacciones();
                 scanf("%d",&trans[i]);
   printf("\n¿Desea realizar otra transacción? S/N");
                 getchar();
                 scanf("%c",&ch);
                     if((ch == 'N')||(ch == 'n')){
                         printf("Listo");
                         num=7;
                     }else i++;
                }while(num!=7);
                t_espera=tiempo_espera(c);
                printf("\nFaltan %d",t_espera);
                printf(" minutos.");
                p1.tiempo=calcular_tiempo(trans);
                if(insertar(c,p1))
                 printf("\n\n\nCliente introducido con éxito");
                else 
                    printf("\n\n\nLo sentimos tu Cliente no se pudo insertar...");
                break;
            case 2:
                if(vacia(c)) printf("\nLa Cola esta vacía. \n");
                else{
                 printf("\nAtendiendo a ...");
                 TipoDato dat=eliminar(c);
                 printf("\n %s",dat.nombre);
                }
                break;
            case 3:
                if(vacia(c)) printf("\nCola vacía");
                else{
                 printf("\nEstos son tus clientes en espera...\n");
                 mostrar(c);
                }
                break;
     }
  }while (num!=4);
  return EXIT_SUCCESS;
}
Las funciones básicas son desarrolladas:
int calcular_tiempo(int trans[]){
    int t,suma=0;
    for(int i=0;i<11;i++){
        switch(trans[i]){
            case 1: t=5; break;
            case 2: t=6; break;
            case 3: t=8; break;
            case 4: t=4; break;
            case 5: t=2; break;
            default: t=0; break;
 }
        suma=suma+t;
    }
    return suma;
};

int tiempo_espera(Cola *c){
    int suma=0;
    Nodo  *aux=c->frente;
        while(aux!=NULL){
            suma+=aux->dato.tiempo;
            aux=aux->atras;
        }
 return suma;
};
¡Saludos! @fferegrino :)

1 comment:

  1. exelente tu programa, no me mandarias en un zip el archivo .cpp y las librerias porfavor!!! seria de gran ayuda, .cpp porque estoy estudiando estructura de datos y programamos en borland c++, mi correo es fanstein@hotmail.com

    ReplyDelete

¡Hey, gracias por tu comentario! No seas anónimo, inicia sesión para que te responda más fácilmente.