Come on baby... don't fear the reaper
Baby take my hand... don't fear the reaper
We'll be able to fly... don't fear the reaper
¡Saludos! @fferegrino |:)
No basta con decirle al ser amado que ya no quieres seguir… hay que romper no con ella o el, sino con la relación y eso, sólo lo puedes hacer cuando rompes con una parte de ti y después, eres libre.
Y ¿a qué es a lo que te atas? ¿Qué es lo que no te deja avanzar? lo que no te deja descansar.
lista *crear_l();
bool vacia_l(lista *);
bool insertar_vac_l(lista *, tipodato);
bool insertar_inicio_l(lista *, tipodato);
bool insertar_final_l(lista *, tipodato);
bool insertar_cualquiera(lista *, tipodato, int);
tipodato sacar_inicio_l(lista *);
tipodato sacar_final_l(lista *);
tipodato sacar_cualquiera_l(lista *, int);
int buscar_l(lista *, tipodato);
int n_elementos_l(lista *);
void mostrar_l(lista *);
/*
* Archivo: Banco.c
* Autores: Rodrigo y Antonio
*
* Creado el 17 de febrero de 2011, 09:30 PM
*/
#include "colas.h"
int main() {
cola *Fila_Banco = crear_c();//Creamos una nueva pila
int tiempo_espera = 0;//Esta variable controlará el tiempo de espera.
int menu = 0;//Variable para el menu principal
do{
printf("Banco Bonito :D\n");
printf("Menú de administrador:\n\t1)Llegada de cliente\n\t2)Salida de cliente\n\t3)Salir\n");
printf("Elige: ");
scanf("%d",&menu);
switch(menu)//Opciones de administrador
{
case 1://Recibimos al cliente
printf("\n\n\n\tNuevo cliente\n");
tipodato nuevo_cliente;//Creamos una nueva estructura
printf("Introduce el nombre del cliente: ");
getchar();//Evitar retorno de carro, Linux ;)
nuevo_cliente.nombre =(char *) calloc(51,sizeof(char));//Reservar memoria para el nombre del cliente
gets(nuevo_cliente.nombre);//Obtener el nombre del cliente
int tiempo_operaciones = 0;//Aquí se guardará el tiempo de operaciones del nuevo cliente
int submenu = 0;//Variable para el submenu
do{
printf("\nElija la(s) operacion(es) que %s realizará:\n",nuevo_cliente.nombre);
printf("\t1)Depósito\n\t2)Retiro\n\t3)Cobro de cheques\n\t4)Depósito a terceros\n\t5)Consulta de saldo\n\t6)Nada");
printf("\nElige: ");
scanf("%d",&submenu);
switch(submenu)//Se acumula el tiempo de operaciones del nuevo cliente
{
case 1: tiempo_operaciones += 5; break;
case 2: tiempo_operaciones += 6; break;
case 3: tiempo_operaciones += 8; break;
case 4: tiempo_operaciones += 4; break;
case 5: tiempo_operaciones += 2; break;
default: break;
}
}while(submenu != 6);
nuevo_cliente.tiempo = tiempo_operaciones;//Se guarda en la estructura el tiempo total de operaciones de el cliente nuevo
if(introducir_c(nuevo_cliente,Fila_Banco))
{
printf("\n\n\t%s está formado y va a esperar %d minutos para ser atendido\n\n",nuevo_cliente.nombre,tiempo_espera);//Desplegar información
}
tiempo_espera += tiempo_operaciones;//Se suma el tiempo de operaciones al tiempo de espera global
break;
case 2://Atendemos al cliente
if(vacia_c(Fila_Banco))//Si la cola está vacía
{
printf("\t\nLa fila está vacía, ya atendiste a todos tus clientes... o nunca has tenido clientes :P\n");
}
else
{
tipodato cliente_atendido = sacar_c(Fila_Banco);//Se saca el cliente de la cola
if(!(cliente_atendido.nombre == NULL)){
printf("\t\nWoha! se ha atendido a %s\n", cliente_atendido.nombre);
tiempo_espera -= cliente_atendido.tiempo;//Un cliente sacado de la cola es un cliente atendido, se resta su tiempo de atención al tiempo global de espera
}
}
break;
case 3: break;
default: break;
}
}while(menu != 3);
return (EXIT_SUCCESS);
}
/* * File: main.cpp * Author: Rodrigo y ToñoGates */ #includeLas funciones básicas son desarrolladas:#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; }
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 :)