Example #1
0
grafo_ret insereVertice(t_grafo* g, char vertice[], int ID_tarefa, int executada, int duracao, int ini_min, int pre_req, int reqs[]){
	if(g == NULL || vertice == NULL){
		return GRAFO_ERR;
	}
	//verifica de o vertice já existe
	else if(buscaLista(g->vertices, vertice) != NULL){
		return GRAFO_ERR;
	}
	insereLista(g->vertices, vertice, duracao, ID_tarefa, executada, ini_min, pre_req, reqs);
	return GRAFO_OK;
}
Example #2
0
void cadastrar(Hashtable *table) {
	Jogador player;
	Chave key;

	readData(&player);

	strcpy(key.pk, player.pk);
	key.rrn = (strlen(ARQUIVO) / TAM_REGISTRO);

	if(buscaLista(table, key)) {
		printf(ERRO_PK_REPETIDA, key.pk);
	} else {
		if(insereLista(table, key))
			insertFile(player, key.rrn);
			printf(REGISTRO_INSERIDO, key.pk);
	}

}
int findEntry(char *cmd, int argc, char **argv, agenda ag) {
    char *valor;
    if (argc > 0) {
        printf("Este comando nao aceita parametros.\n");
        return 1;
    }

    valor = (char *) malloc(STRING_SIZE * sizeof(char));
    if (valor == NULL) {
        printf("Impossivel alocar memoria para armazenar valor\n");
        exit(EXIT_FAILURE);
    }

    printf("Nome: ");
    fgets(valor, STRING_SIZE, stdin);
    strtrim(valor);

    buscaLista(ag, valor);
    free(valor);
    return 0;
}
Example #4
0
int imprimeTarefasNcurses(t_grafo* g, TipoLista *l_atual, TipoLista *l_concluidas, int tempo){
	if(!esta_inicializada){
		return GUI_ERR;
	}
	clear();
	bkgd(COLOR_PAIR(5));
   	box(stdscr, ACS_VLINE, ACS_HLINE);
	int linha = 1, coluna = 2, i;
	char op[11];

	mvprintw(linha, src_cols - 20, "TEMPO : %d", tempo);
	linha++;

	//t_vertix* AUX;
	t_item temp;
	//imprime as tarefas concluidas
	mvprintw(linha, coluna, "Concluidos: ");
	linha++;
	for(i = 0; i < tamanhoLista(l_concluidas) ; i++){
		temp = buscaListaInd(l_concluidas, i);
		attron(COLOR_PAIR(2));
		mvprintw(linha,coluna, "%d",temp.ID);
		refresh();
		attroff(COLOR_PAIR(2));
		linha++;
	}

	//imprime as tarefas ainda não concluidas mas iniciadas
	mvprintw(linha, coluna, "Em andamento: ");
	linha++;
	for(i = 0; i < tamanhoLista(l_atual) ; i++){
		temp = buscaListaInd(l_atual, i);
		attron(COLOR_PAIR(5));
		mvprintw(linha,coluna, "%d", temp.ID);
		refresh();
		attroff(COLOR_PAIR(5));
		linha++;
	}

	mvprintw(linha, coluna, "Não Começadas: ");
	linha++;
	t_vertix* aux;
	for (aux = getVertices(g) ; aux != NULL; aux = aux->prox){
		if(buscaLista(l_atual, aux->propriedades.ID) != NULL || buscaLista(l_concluidas, aux->propriedades.ID) != NULL){
			continue;
		}
		attron(COLOR_PAIR(3));
		mvprintw(linha,coluna, "%d", aux->propriedades.ID);
		linha++;
		attroff(COLOR_PAIR(3));
		refresh();
	}

	attron(COLOR_PAIR(1));
	mvprintw(linha+3,coluna, "Mais opções:     1 : selecionar outro tempo");
	mvprintw(linha+4,coluna+17, "2 : visualizar todas as tarefas");
	mvprintw(linha+5,coluna+17, "3 : Editar Tarefas");
	mvprintw(linha+6,coluna+17, "4 : Procurar Caminho");
	mvprintw(linha+7,coluna+17, "99 : Sair");
	mvprintw(linha+8,coluna+17, "Digite sua opção:");
	refresh();
	getstr(op);
	attroff(COLOR_PAIR(1));

	return atoi(op);
}
Example #5
0
int imprimeCaminhoInterface(t_grafo* g, int IDDestino){
    if(g==NULL){
        return 1;
    }
    char ID[15], op[15];
    do{
	    clear();
	    bkgd(COLOR_PAIR(5));
	   	box(stdscr, ACS_VLINE, ACS_HLINE);
	   	mvprintw(2, 2, "Digite o ID da tarefa que deseja saber o caminho: ");
	   	getstr(ID);
	   	IDDestino = atoi(ID);
	   	if (buscaVertice(g, IDDestino) == NULL){
			attron(COLOR_PAIR(3));
	   		mvprintw(4, 2, "ERRO AO PROCURAR CAMINHO, VERIFIQUE SE A ENTRADA E VALIDA.");
	   		getch();
			attroff(COLOR_PAIR(3));
		}
	}while(buscaVertice(g, IDDestino) == NULL);
    
    TipoLista *l_concluidas = criaLista();
    t_item item_aux, item_suc;
    t_item item_add;
    t_vertix *v, *v_sucessor;
    int true_inicio=0;
    int i =0, j=0;

    //Esses lacos criam a lista de concluidos com os pesos de todas as tarefas
    for(i = 0; i < tamanhoLista(getOrigens(g)); i++){ //checagem das origens e insercao na lista de concluidos
        item_aux = buscaListaInd(getOrigens(g), i);
        v = buscaVertice(g, item_aux.ID);
                item_add.ID = v->propriedades.ID;
                item_add.peso = v->propriedades.duracao + v->propriedades.inicio;
                if(insereLista(l_concluidas, item_add) == LISTA_ERR){
                    return 1;
                }
    }//for
    
    for(i = 0; i < tamanhoLista(l_concluidas); i++){ //checagem e insercao para o resto dos vertices
        item_aux = buscaListaInd(l_concluidas, i);
        v = buscaVertice(g, item_aux.ID); //busca vertice no grafo com a ID igual a celula na lista de concluidos
        if(v == NULL){
            return 1; //assertiva de saida
        }
        for(j = 0; j < tamanhoLista(v->adjacentes); j++){ //trabalha com os sucessores de cada vertice dos concluidos
            item_suc = buscaListaInd(v->adjacentes, j);
            v_sucessor = buscaVertice(g, item_suc.ID);
            if(v_sucessor == NULL){
                return 1; //assertiva de saida
            }
                true_inicio = get_maior_peso(g, l_concluidas, item_suc.ID);
                item_add.ID = v_sucessor->propriedades.ID;
                item_add.peso = true_inicio + v_sucessor->propriedades.duracao;
                    if(buscaLista(l_concluidas, item_add.ID)==NULL){ //evitar a insercao de duplicados
                        if(insereLista(l_concluidas, item_add) == LISTA_ERR){
                             return 1;
                        }
                    }
                    
        }//for sucessores
    }//for lista_concluidos
    achaCaminhoMin(g,l_concluidas, IDDestino);
    //fim dos lacos, prosseguir para a impressao

    clear();
   	box(stdscr, ACS_VLINE, ACS_HLINE);

    int linha = 1, coluna = 2;
    t_vertix* AUX = buscaVertice(g, IDDestino);
    while(AUX != NULL){
    	mvprintw(linha, coluna, "%d -- %s", AUX->propriedades.ID, AUX->propriedades.nome);
    	linha++;
    	AUX = AUX->pai;
    }
    AUX = buscaVertice(g, IDDestino);
    mvprintw(linha, coluna, "Tempo para completar essa tarefa: %d",
             get_maior_peso(g, l_concluidas, AUX->propriedades.ID) + AUX->propriedades.duracao);

    attron(COLOR_PAIR(1));
	mvprintw(linha+3,coluna, "Mais opções:     1 : selecionar outro tempo");
	mvprintw(linha+4,coluna+17, "2 : visualizar todas as tarefas");
	mvprintw(linha+5,coluna+17, "3 : Editar Tarefas");
	mvprintw(linha+6,coluna+17, "4 : Procurar Caminho");
	mvprintw(linha+7,coluna+17, "99 : Sair");
	mvprintw(linha+8,coluna+17, "Digite sua opção:");
	refresh();
	getstr(op);
	attroff(COLOR_PAIR(1));   
 
    return atoi(op);
}