/* Cerrar ciclo de votacion y procesar resultados */ bool comando_votar_fin(maquina_votacion_t* maquina) { #ifdef DEBUG printf("Comando votar fin ejecutado \n"); #endif if(maquina->estado < ABIERTA) return error_manager(MESA_CERRADA); if(maquina->estado < VOTACION) return error_manager(OTRO); if(maquina->votando_cargo < FIN) return error_manager(FALTA_VOTAR); while(!pila_esta_vacia(maquina->ciclo)) { voto_t* voto = pila_desapilar(maquina->ciclo); lista_iterar(maquina->listas, votar_partido, voto); destruir_voto(voto); } // Reset de variables. #ifdef DEBUG if(pila_esta_vacia(maquina->ciclo)) printf("Pila vacia\n"); #endif pila_destruir(maquina->ciclo, free); maquina->ciclo = NULL; maquina->estado = ABIERTA; return true; }
int listar_inscriptos(char* idc, base_t* basedatos){ int pos = existe_curso(idc,basedatos->listadecursos); if (pos==-1) return -1; curso_t* curso = conseguir_curso(idc,basedatos->listadecursos); int regularocondicional = curso->vacantes; lista_iterar(curso->inscriptos,(funcioniterador)&imprimir_inscripto,(void*)®ularocondicional); return 0; }
/* Formatear y mostrar menu de votacion */ void mostrar_menu_votacion(maquina_votacion_t* maquina) { int votando = maquina->votando_cargo; printf("Cargo: %s\n", CARGOS[votando]); lista_iterar(maquina->listas, imprimir_cargo, &votando); }