julio2043
(usa Ubuntu)
Enviado em 08/06/2014 - 22:52h
Boa noite galera, estou com dificuldades para colocar um método de pesquisa de valores já inseridos no ato da execução do código. Se alguém puder me ajudar o código é este:
Obs: criei no menu o chamamento da opção pesquisar na opção 4 do switch
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#define LIMPA_TELA system("cls")
typedef struct Fila{
int valor;
struct Fila *proximo;
} Dados;
Dados *principal = NULL;
Dados *final = NULL;
void insere();
void exclui();
void mostra();
void mostra_erro();
void pesquisa();
void insere(){
FILE *arquivo;
arquivo = fopen("teste.txt","w");
int val;
LIMPA_TELA;
printf("\nINSERÇÃO: \n");
printf("--------------------------------------\n");
while(val<0 || val>99999999){
printf("INSIRA SOMENTE NÚMEROS NA LISTA: ");
scanf("%i",&val);
fflush(stdin);
};
Dados *atual = (Dados*)malloc(sizeof(Dados));
atual -> valor = val;
atual -> proximo = NULL;
if(principal == NULL){
principal = final = atual;
}
else{
final->proximo=atual;
final=atual;
}
}
void exclui(){
Dados *auxiliar;
printf("\nEXCLUSÃO: \n");
printf("--------------------------------------\n");
auxiliar=principal->proximo;
free(principal);
principal=auxiliar;
printf("\nVALOR EXCLUÍDO!\n");
printf("--------------------------------------");
getchar();
}
void mostra(){
int posicao=0;
Dados *nova=principal;
LIMPA_TELA;
printf("\nMOSTRANDO VALORES: \n");
printf("--------------------------------------\n");
for (; nova != NULL; nova = nova->proximo){
posicao++;
printf("POSIÇÃO %d, CONTÉM O VALOR %d\n",posicao,nova->valor);
}
printf("--------------------------------------");
getchar();
}
void mostra_erro(){
LIMPA_TELA;
printf("\nERRO DE DIGITAÇÃO: \n");
printf("--------------------------------------\n");
printf("\nDIGITE UMA OPÇÃO VÁLIDA \nPRESSIONE -ENTER- PARA CONTINUAR)!\n");
printf("--------------------------------------");
getchar();
}
void pesquisa(){
}
int main(){
FILE *arquivo;
arquivo = fopen("teste.txt","w");
system("color 0A");
setlocale(LC_ALL,"portuguese");
char escolha;
do {
LIMPA_TELA;
printf("\n=============FILA=============\n\n");
printf("ESCOLHA UMA OPÇÃO ABAIXO: \n\n");
printf("\t1 - INSERIR VALOR?\n");
printf("\t2 - REMOVER VALOR?\n");
printf("\t3 - MOSTRAR VALORES?\n");
printf("\t4 - PESQUISAR VALORES?\n"); // FALTA AJUSTAR EM CIMA
printf("\t5 - SALVAR UM ARQUIVO?\n"); // FALTA AJUSTAR EM CIMA
printf("\t6 - LER ARQUIVO SALVO?\n"); // FALTA AJUSTAR EM CIMA
printf("\t9 - SAIR?\n\n");
printf("OPÇÃO NÚMERO: ");
printf("\a");
scanf("%c", &escolha);
printf("\a");
switch(escolha) {
case '1':
system("color 1F");
insere();
break;
case '2':
system("color 2F");
if(principal!=NULL){
exclui();
}
else{
printf("\nA FILA ESTÁ VAZIA!\n");
getchar();
}
break;
case '3':
system("color 3F");
if(principal!=NULL){
mostra();
}
else{
printf("\nA FILA ESTÁ VAZIA!\n");
getchar();
}
break;
case '4': // FALTA IMPLEMENTAR O 4,5 e 6
system("color 4F");
pesquisa();
break;
case '5':
system("color 5F");
break;
case '6':
system("color 6F");
break;
case '9':
system("color 9F");
printf("\nOBRIGADO POR UTILIZAR ESSE PROGRAMA!\n");
printf("------>TERMINAL DE INFORMAÇÃO<------\n\n");
exit(0);
break;
default:
mostra_erro();
break;
}
getchar();
}
while (escolha > 0);
return 0;
}