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 :)