Ir ao conteúdo
  • Cadastre-se

Angelripper

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Tudo que Angelripper postou

  1. Cara, muito obrigado, deu certo, já estava quase desistindo.
  2. Fiz dessa forma que você falou, mas mesmo assim não esta dando certo.
  3. Boa noite, queria pedir a ajuda de vocês, pois estou fazendo um programa em c que simula cadastro de funcionários, e estou com muita dificuldade numa função que pesquisa o nome de um funcionário, eu informo um nome que esta cadastrado mas o programa não faz a devida comparação com o nome já armazenado, segue o código. #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #define MAX 10 void inserir(char nome[10][50],int matricula[10], float salario[10], int *cont); void listar(char nomes[10][50],int matriculas[10], float salarios[10], int *cont); void excluir(char nome[10][50],int matricula[10], float salario[10], int *cont); void pesquisar(char nome[10][50],int matricula[10], float salario[10], int *cont); void ordenar(char nome[10][50],int matricula[10], float salario[10], int *cont); void ler(char nome[10][50],int matricula[10], float salario[10], int *cont); void escrever(char nome[10][50],int matricula[10], float salario[10], int *cont); int main(){ char nome[10][50]; int matricula[10]; float salario[10]; char seguir='s'; int opcao; int cont=0; ler(nome, matricula, salario, &cont);//Função para carregar os dados do arquivo, se ja existir. while(seguir =='s') { system("cls"); ///apagar tela printf(" [ Cadastro de Funcionarios ] \n\n"); printf("1) NOVO CADASTRO \n"); printf("2) REMOVER FUNCIONARIO\n"); printf("3) LISTAR TODOS OS FUNCIONARIOS\n"); printf("4) PESQUISAR \n"); printf("0) SAIR "); printf("\n\n > > > Digite sua opcao: "); scanf("%d%*c",&opcao); printf("\n"); system("cls"); switch(opcao) { case 1: { printf("INSERINDO NOVO REGISTRO... \n\n"); if(cont < MAX) { inserir(nome, matricula, salario, &cont); printf("DADOS INSERIDOS COM SUCESSO!!!\n\n"); } else { printf("O Sistema de Cadastro esta no limite!\n\n"); } break; } case 2: { if(cont == 0) { printf("não há dados para serem excluidos!\n\n"); } else { excluir(nome, matricula, salario, &cont); } break; } case 3: { if(cont == 0) { printf("não há dados no sistema! %d\n\n",cont); } else { printf(" Listando os Funcionarios cadastrados...\n\n"); listar(nome, matricula, salario,&cont); } break; } case 4: { if(cont == 0) { printf("não há dados no sistema!\n\n"); } else { printf("PESQUISANDO DADO...\n\n"); pesquisar(nome, matricula, salario,&cont); } break; } case 0: { printf ("SAIR\n"); system ("pause"); escrever(nome, matricula, salario, &cont); return 0; break; } default: printf(" ( OPCAO INVALIDA! )\n\n"); break; } printf(" CONTINUAR?(S/N) "); scanf("%s",&seguir); } escrever(nome, matricula, salario, &cont); return 0; } void inserir(char nome[10][50],int matricula[10], float salario[10], int *cont) { fflush(stdin); printf("Informe o nome do funcionario:\n"); fgets(nome[*cont],50,stdin); fflush(stdin); printf("Digite o numero da matricula:\n"); scanf("%d",&matricula[*cont]); fflush(stdin); printf("informe o salario:\n"); scanf("%f",&salario[*cont]); fflush(stdin); *cont = *cont + 1; ordenar(nome, matricula, salario,cont); } void listar(char nomes[10][50],int matriculas[10], float salarios[10], int *cont) { int i; for(i = 0;i < *cont; i++) /// listar usando vetores { printf ("\nNome: "); puts(nomes); printf("Matricula: %d",matriculas); printf("\nSalario: %.2f\n\n",salarios); } } void excluir(char nome[10][50],int matricula[10], float salario[10], int *cont) { int i,j; int pesquisa; printf("Digite a Matricula do funcionario que deseja excluir\n"); scanf("%d",&pesquisa); for(i=0;i<*cont;i++){ if(pesquisa==matricula){ for(j=i;j<((*cont)-1);j++){ matricula[j] = matricula[j+1]; strcpy(nome[j],nome[j+1]); } printf(" DADO EXCLUIDO COM SUCESSO!\n\n"); *cont = *cont - 1; } printf("Matricula nao encontrada\n"); } ordenar(nome, matricula, salario,cont); } void ordenar(char nome[10][50],int matricula[10], float salario[10], int *cont){ int i,j,aux; float aux2; char temp[50]; for(i = 1; i < *cont; i++){ for (j = 0; j < (*cont)-1; j++){ if(strcmp(nome[j],nome[j+1]) > 0){ strcpy(temp,nome[j]); strcpy(nome[j],nome[j+1]); strcpy(nome[j+1],temp); aux = matricula[j]; matricula[j] = matricula[j+1]; matricula[j+1] = aux; aux2 = salario[j]; salario[j]= salario[j+1]; salario[j+1] = aux2; } } } } void pesquisar(char nome[10][50],int matricula[10], float salario[10], int *cont) { int i,j, contador,pergunta; float dado; char dado2[50]; printf("||||||| PESQUISA ||||||\n"); printf("\nPor salario digite 1:\nPor Nome digite 2:\n"); scanf("%d",&pergunta); if(pergunta == 1){ printf("digite o salario que deseja pesquisar\n"); scanf("%f", &dado); for(i = 0;i < *cont; i++) { if(dado == salario) { printf("Dado Encontrado \n\n"); printf("Nome: %s",nome); printf("Matricula: %d\n",matricula); printf("Salario: %f",salario); printf("\n"); contador = contador + 1; } } if(cont == 0) { printf(" Registro não Encontrado!\n\n"); } } if(pergunta == 2){ printf("digite o nome que deseja persquisar\n"); scanf("%s", &dado2[50]); //fflush(stdin); //fgets(dado2,50,stdin); //fflush(stdin); //printf ("%s", dado2); //s = strlen(dado2); char nm[50]; for(i = 0;i < *cont; i++) { if(dado2 == nome) printf ("[%s][%s]", nome, dado2); { printf("\nDado Encontrado \n\n"); printf("NOME: %s",nome); printf("MATRICULA: %d\n",matricula); printf("SALARIO: %f",salario); printf("\n"); contador = contador + 1; } } if(cont == 0) { printf(" Registro não Encontrado!\n\n"); } } } void ler (char nome[10][50],int matricula[10], float salario[10], int *cont) //função para criar o arquivo, e ler os dados { FILE *arquivo; //declarando apontador do tipo FILE que irá apontar para o arquivo desejado. int i; char aux[200]; arquivo = fopen("dados.txt", "r");//Abre o aquivo no modo leitura. if(arquivo == NULL) { arquivo = fopen("dados.txt", "w");//Se não existir o arquivo, a função cria. fclose(arquivo); } else { fscanf(arquivo, "Pessoas cadastradas: %d\n", cont); for(i = 0; i < *cont; i++) { fgets(aux, 100, arquivo); //leitura de string //strtok(aux, "\n"); //função pra retirar o \n que pura linha da string lida. strcpy(nome, aux); //copiando o aux pra posição do array de nomes. fscanf(arquivo, "Matricula: %d\n", &matricula); fscanf(arquivo, "Salario: %f\n\n", &salario); } fclose(arquivo); } return ; } void escrever (char nome[10][50],int matricula[10], float salario[10], int *cont) //função para escrever os dados no arquivo. { FILE *arquivo; int i; arquivo = fopen("dados.txt", "w"); if(arquivo == NULL) //Ele não conseguiu abrir o arquivo/criar. { printf("Erro. \n"); } else { fprintf(arquivo, "Pessoas cadastradas: %d\n", *cont); //Escrevendo a quantidade no arquivo, para ser recuperado quando o programa for aberto novamente for(i = 0; i < *cont; i++) { fputs( nome, arquivo); fprintf(arquivo, "Matricula: %d\n", matricula); fprintf (arquivo, "Salario: %.2f\n\n", salario); } fclose(arquivo); } return ; }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!