示例#1
0
int main(){
	lista *li;
	li = criaLista();
	int i;
	int quantCarros,quantRemocao;
	int opcao;
	while(1){
		system("cls");
		setlocale(LC_ALL,"Portuguese");
		printf("[1] Adicionar carro\n[2] Excluir carro\n[3] Mostrar carros\n[4] Mostrar tamanho da lista\n[5] Sair\nEscolha a opção: ");
		fflush(stdin);
		scanf("%d",&opcao);
		
		if(opcao == 1){
			printf("Desejas adicionar quantos carros? ");
			fflush(stdin);
			scanf("%d",&quantCarros);
			carros car[quantCarros];
			for(i=0; i<quantCarros; i++){
				fflush(stdin);
				printf("Digite a marca: ");fflush(stdin);
				gets(car[i].marca);
				printf("Digite o ano: ");fflush(stdin);
				scanf("%d",&car[i].ano);
				printf("Digite a cor: ");fflush(stdin);
				gets(car[i].cor);
				printf("Digite o preco: ");fflush(stdin);
				scanf("%f",&car[i].preco);
				inserirLista(li,car[i]);
			}			
		}else if(opcao == 2){
			system("cls");
			printf("Deseja remover quantos? ");
			scanf("%d",&quantRemocao);
			if(removeInicio(li,quantRemocao) == 1){
				printf("Removido com Sucesso!\n");
			}else{
				printf("Erro ao Remover!");
			}
			system("pause");
		}else if(opcao == 3){
			imprimirLista(li);
		}else if(opcao == 4){
			system("cls");
			if(tamanhoLista(li) == 0){
				printf("Lista está vazia!\n");
			}else{
				printf("Tamanho da lista: %d\n",tamanhoLista(li));
			}
			system("pause");
		}else if(opcao == 5){
			return 0;
		}else{
			printf("Opção inválida!\n");
		}
	}
	
	liberarLista(li);
return 0;
}
示例#2
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);
}
示例#3
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);
}