#include #include #include typedef struct loja{ int codigo; char nome[120]; char cnpj[20]; char uf[4]; struct loja * proximo; }elemento_loja; void monta_tabela(){ int i=0; for(i=0; i<59; i++){ printf("%c", 205); } } elemento_loja * cria_elemento_lista(int codigo, char nome[], char cnpj[],char uf[]){ elemento_loja * novo = malloc(sizeof(elemento_loja)); novo->codigo = codigo; strcpy(novo->nome, nome); strcpy(novo->cnpj, cnpj); strcpy(novo->uf, uf); novo->proximo = NULL; return novo; } elemento_loja * inserir_loja_na_lista(elemento_loja * lista, elemento_loja * novo){ elemento_loja * inicio_lista = lista; if (lista == NULL){ return novo; }else{ while(lista->proximo != NULL){ lista = lista->proximo; } lista->proximo = novo; return inicio_lista; } } void exibe_lista_lojas(elemento_loja * lista){ int cont = 0; printf("==============================================================================\n"); printf("%-10s %-48s %-15s %-2s\n", "CODIGO","NOME","CNPJ","UF"); printf("==============================================================================\n"); while(lista != NULL){ printf( "%-10d %-48s %-15s %-2s\n", lista->codigo, lista->nome, lista->cnpj, lista->uf); lista = lista->proximo; cont++; if (cont == 40){ system("pause"); cont = 0; printf("==============================================================================\n"); printf("%-10s %-48s %-15s %-2s\n", "CODIGO","NOME","CNPJ","UF"); printf("==============================================================================\n"); } } } elemento_loja * carregar_arquivo(char path[]){ FILE * arq; elemento_loja * lista_de_lojas = NULL; elemento_loja * novo = NULL; int codigo; char nome[100]; char cnpj[20]; char uf[3]; if((arq = fopen(path, "r")) == NULL){ printf("Erro ao abrir arquivo: %s \n", path); return NULL; } while (fscanf(arq, "%d,%[^,],%[^,],%2s,", &codigo, nome, cnpj, uf) != EOF ){ novo = cria_elemento_lista(codigo, nome, cnpj, uf); lista_de_lojas = inserir_loja_na_lista(lista_de_lojas, novo); } if(fclose(arq)){ printf("Erro ao fechar arquivo: %s \n", path); return NULL; } return lista_de_lojas; } int main(){ int op; do{ char path[] = "dados_trabalho.txt"; elemento_loja * lista_de_lojas = carregar_arquivo(path); clrscr(); textcolor(12); monta_tabela(); printf("\n |<<<<<<< MENU ARVORE C >>>>>>|\n"); printf(" | 1 - Apresenta loja por codigo |\n"); printf(" | 2 - Apresenta loja por nome |\n"); printf(" | 3 - Apresenta loja por CNPJ |\n"); printf(" | 4 - Buscar por loja |\n"); printf(" | 5 - Todas lojas |\n"); printf(" | 0 - Sair |\n"); monta_tabela(); printf("\nInforme a opcao desejada: "); scanf("%d", &op); switch(op) { case 1: break; case 2: break; case 3: break; case 4: break; case 5: exibe_lista_lojas(lista_de_lojas); break; default: if(op <0 || op>5){ printf("Escolha errada... tente novamente! \n"); } getch(); } }while(op !=0); }