Ir para conteúdo
Fórum Script Brasil

keytous

Membros
  • Total de itens

    11
  • Registro em

  • Última visita

Tudo que keytous postou

  1. Opa vangodp, claro você tem razão, já te add lá, "vangodp vamp". Assim q você acc, agente se fala por lá. Cara muito Obrigado !!
  2. Sistema windows 7 64bits, IDE = Dev-C++
  3. # include <stdio.h> //# include <cstdio> struct dados{ int cod; char nome[30]; float salario; char setor[30]; char funcao[30]; }; struct dados cadastro[100]; int main (); void cadastrar (){ int cont = 0, i = 0; char soun; FILE *arquivo; arquivo = fopen("dados.txt", "r+"); if (arquivo == NULL){ printf ("ERRO !! Banco nao existe, criando novo Banco de Dados..."); getchar (); arquivo = fopen("dados.txt", "w+"); } else { printf ("Banco de Dados Carregado com Sucesso !!"); while (!feof(arquivo)){ // enquando não(!) chegar no final do arquivo fread(&cadastro[i], sizeof(struct dados), 1, arquivo); if (!feof(arquivo)){ // condicão caso não chegue no final, ou seja tem arquivos cont = cadastro[i].cod + 1; i++; } } } do{ cadastro[cont].cod = cont; printf("\nCodigo: %d", cadastro[cont].cod); getchar (); printf("\nNome: "); fgets (cadastro[cont].nome, 30, stdin); printf("\nSalario: "); scanf ("%f", &cadastro[cont].salario); getchar(); printf("\nSetor de Trabalho: "); gets (cadastro[cont].setor); printf("\nFuncao: "); gets (cadastro[cont].funcao); printf ("\nLetra (n) para novo cadastro, ou qualquer outra para sair: "); scanf ("%c", &soun); cont++; getchar (); if (cont >= 100){ printf ("Esgotado limite de cadastro !!"); soun = 'a'; } }while (soun == 'n'); arquivo = fopen("dados.txt", "w"); for(i=0; i < cont; i++){ fwrite(&cadastro[i], sizeof(struct dados), 1, arquivo); } fclose(arquivo); main (); } void listar (){ int i, cont = 0; FILE *arquivo; arquivo = fopen("dados.txt", "r"); while (!feof(arquivo)){ fread(&cadastro[cont], sizeof(struct dados), 1, arquivo); if (!feof(arquivo)){ cont++; } } fclose(arquivo); for(i=0; i < cont; i++){ printf("\nCodigo: %d", cadastro[i].cod); printf("\nNome: %s",cadastro[i].nome); printf("Salario: %5.2f\n",cadastro[i].salario); printf("Setor: %s\n",cadastro[i].setor); printf("Funcao: %s\n",cadastro[i].funcao); } main (); } void media (){ int cont = 0; float salario = 0, mediasalario = 0; FILE *arquivo; arquivo = fopen("dados.txt", "r"); while (!feof(arquivo)){ fread(&cadastro[cont], sizeof(struct dados), 1, arquivo); if (!feof(arquivo)){ salario = salario + cadastro[cont].salario; cont++; } } mediasalario = salario / cont; printf ("\nAtualmente existe %d funcionarios contratados", cont); printf ("\nA Media geral de Salario eh: %5.2f por Funcionario Registrado\n\n", mediasalario); main (); } void pesquisa (){ int cont = 0, codigo, aux = 2; printf ("Digite o codigo do Funcionario: "); scanf ("%d", &codigo); printf ("\nPesquisando no Banco de Dados..."); FILE *arquivo; arquivo = fopen("dados.txt", "r"); while (!feof(arquivo)){ fread(&cadastro[cont], sizeof(struct dados), 1, arquivo); if (!feof(arquivo)){ if (codigo == cadastro[cont].cod){ aux = 1; printf ("\n\n\nCadastro Encontrado !!"); printf("\nCodigo: %d", cadastro[cont].cod); printf("\nNome: %s",cadastro[cont].nome); printf("Salario: %5.2f\n",cadastro[cont].salario); printf("Setor: %s\n",cadastro[cont].setor); printf("Funcao: %s\n\n\n",cadastro[cont].funcao); } cont++; } } if (aux == 2){ printf ("\nCadastro NAO Encontrado !!\n\n"); } main (); } void excluir (){ int cont = 0, i = 0, codigo; printf ("Digite o codigo do Funcionario: "); scanf ("%d", &codigo); FILE *arquivo; arquivo = fopen("dados.txt", "r+"); while (!feof(arquivo)){ fread(&cadastro[i], sizeof(struct dados), 1, arquivo); if (!feof(arquivo)){ cont = cadastro[i].cod + 1; i++; } } arquivo = fopen("dados.txt", "w"); for(i=0; i < cont; i++){ if (cadastro[i].cod != codigo){ fwrite(&cadastro[i], sizeof(struct dados), 1, arquivo); } } fclose(arquivo); main (); } int main (){ int op; printf ("\nEscolha uma opcao\n"); printf ("\n(1) - Para Cadastrar"); printf ("\n(2) - Para Listar"); printf ("\n(3) - Media de Salario dos funcionarios"); printf ("\n(4) - Pesquisar Funcionario pelo Codigo de Cadastro"); printf ("\n(5) - Excluir Cadastro"); printf ("\n(0) - Sair \n>> "); scanf ("%d", &op); if (op == 1){ cadastrar (); } if (op == 2){ listar (); } if (op == 3){ media (); } if (op == 4){ pesquisa (); } if (op == 5){ excluir(); } if (op == 0){ return 0; } }
  4. Boa noite vangodp. Sabe q quando estava desenvolvendo o código do trabalho eu sabia q deveria ter bastante erros, mesmo sem ter certeza disso eu sabia. Eu faço Faculdade de Sistemas, sou um cara meio fechado assim, e como sou iniciante isso me prejudica bastante pois não tenho ninguém que poço contar... Me ajudar... Tudo q consegui até aqui foi com meu esforço, sozinho. Quando você fala "ou o professor não ta sabendo explicar nada direito" me fez lembrar q esses dias estava pensando em trocar de faculdade, porque já estou cansado dos professores dar trabalhos para os alunos sem passar o conteúdo. Na verdade o professor não explicou nada. Para você ter uma noção na ultima aula q tivemos ele tinha apenas MOSTRADO um código simples de umas 10 linhas sobre ponteiros, e nos passou uns dois exercícios sobre isso, mas o básico do básico, abrir arquivos, fechar escrever em arquivos NADA !!! Funções muito pouco, apenas exercícios básicos muito básicos. Neste mesmo semestre eu cancelei uma cadeira, pois bem no inicio o professor pediu um baita trabalho sobre um assunto q eu não sabia nem por onde começar. É como se alguém for te ensinar a ler mostrando apenas as vogais... Bom voltando ao código, realente o que você falou faz muito sentido, pois o arquivo fica todo desconfigurado quando eu excluo algum cadastro. Até acho q avancei bastante, pois em modo geral a unica coisa q esta dando problema diante de todos erros e bugs é para excluir. O restante esta ok. Mas vou dar uma olhada em tudo q você falou, e muito obrigado por ajudar, apenas pelo simples fato de você ter respondido é porque se importou de alguma forma. É bom saber q ainda existe pessoas boas dispostas a ajudar os outros. Admirável. Obrigado de verdade, e desculpa ai meu desabafo....
  5. Obrigado, Felipe-Petropolis, mesmo você não podendo me ajudar muito, como falaste, fico muito grato pela sua boa vontade, valeu mesmo e irei levar em considerações suas citações. Muito obrigado !! Mesmo.
  6. Bom dia. Cara o mesmo problema de sempre, você não deve estar testando como eu descrevi.
  7. Olá instalei a nova IDE, e o mesmo problema, você fez como eu falei? Cadastra 3, exclui o SEGUNDO, depois cadastra mais 1, e lista. O segundo vai estar duplicado.
  8. Bom dia Amigo Barao, poxa OBRIGADO !! Achei q ninguém iria me ajudar.... Mas infelizmente com suas modificações esta acontecendo o mesmo erro q acontece para mim. Faz assim, executa o programa, ai depois você adiciona 3 funcionários, lista eles vai estar ok. Depois você exclui o segundo, ai você faz um novo cadastro, apos o novo cadastro lista de novo, vai aparecer 4 registro com dois duplicados..... Eu já fiz de tudo até onde eu sabia e não sabia, para resolver, e nada !!! MUITO OBRIGADO!!
  9. Boa tarde Pessoal Estou com meu código praticamente pronto mas esta acontecendo apenas um erro q não consigo identificar, corrigir. Quando excluo algum registro e depois vou cadastrar outro novamente sem fechar o programa o cadastro duplica quando mando listar novamente. Alguém poderia me ajudar? Acredito q seja apenas um detalhe mas não o encontro. OBRIGADO !! ---------------------- # include <stdio.h> struct dados{ int cod; char nome[30]; float salario; char setor[30]; char funcao[30]; }; struct dados cadastro[100]; int main (); int cadastrar (){ int cont = 0, i = 0; char soun; FILE *arquivo; arquivo = fopen("dados.txt", "r+"); if (arquivo == NULL){ printf ("ERRO !! Banco não existe, criando novo Banco de Dados..."); fflush(stdin); getchar (); arquivo = fopen("dados.txt", "w+"); } else { printf ("Banco de Dados Carregado com Sucesso !!"); while (!feof(arquivo)){ // enquando não(!) chegar no final do arquivo fread(&cadastro, sizeof(struct dados), 1, arquivo); if (!feof(arquivo)){ // condicão caso não chegue no final, ou seja tem arquivos cont = cadastro.cod + 1; i++; } } } do{ cadastro[cont].cod = cont; printf("\nCodigo: %d", cadastro[cont].cod); getchar (); printf("\nNome: "); fgets (cadastro[cont].nome, 30, stdin); printf("\nSalario: "); scanf ("%f", &cadastro[cont].salario); getchar(); printf("\nSetor de Trabalho: "); gets (cadastro[cont].setor); printf("\nFuncao: "); gets (cadastro[cont].funcao); printf ("\nLentra (n) para novo cadastro, ou qualquer outra para sair: "); scanf ("%c", &soun); cont++; getchar (); if (cont >= 100){ printf ("Esgotado limite de cadastro !!"); soun = 'a'; } }while (soun == 'n'); arquivo = fopen("dados.txt", "w"); for(i=0; i < cont; i++){ fwrite(&cadastro, sizeof(struct dados), 1, arquivo); } fclose(arquivo); main (); } int listar (){ int i, cont = 0; FILE *arquivo; arquivo = fopen("dados.txt", "r"); while (!feof(arquivo)){ fread(&cadastro[cont], sizeof(struct dados), 1, arquivo); if (!feof(arquivo)){ cont++; } } fclose(arquivo); for(i=0; i < cont; i++){ printf("\nCodigo: %d", cadastro.cod); printf("\nNome: %s",cadastro.nome); printf("Salario: %5.2f\n",cadastro.salario); printf("Setor: %s\n",cadastro.setor); printf("Funcao: %s\n",cadastro.funcao); } main (); } int media (){ int cont = 0; float salario = 0, mediasalario = 0; FILE *arquivo; arquivo = fopen("dados.txt", "r"); while (!feof(arquivo)){ fread(&cadastro[cont], sizeof(struct dados), 1, arquivo); if (!feof(arquivo)){ salario = salario + cadastro[cont].salario; cont++; } } mediasalario = salario / cont; printf ("\nAtualmente existe %d funcionarios contratados", cont); printf ("\nA Media geral de Salario é: %5.2f por Funcionario Registrado\n\n", mediasalario); main (); } int pesquisa (){ int cont = 0, codigo, aux = 2; printf ("Digite o codigo do Funcionario: "); scanf ("%d", &codigo); printf ("\nPesquisando no Banco de Dados..."); FILE *arquivo; arquivo = fopen("dados.txt", "r"); while (!feof(arquivo)){ fread(&cadastro[cont], sizeof(struct dados), 1, arquivo); if (!feof(arquivo)){ if (codigo == cadastro[cont].cod){ aux = 1; printf ("\n\n\nCadastro Encontrado !!"); printf("\nCodigo: %d", cadastro[cont].cod); printf("\nNome: %s",cadastro[cont].nome); printf("Salario: %5.2f\n",cadastro[cont].salario); printf("Setor: %s\n",cadastro[cont].setor); printf("Funcao: %s\n\n\n",cadastro[cont].funcao); } cont++; } } if (aux == 2){ printf ("\nCadastro não Encontrado !!\n\n"); } main (); } int excluir (){ int i = 0, cont = 0, codigo; printf ("Digite o codigo do Funcionario: "); scanf ("%d", &codigo); FILE *arquivo; arquivo = fopen("dados.txt", "r+"); while (!feof(arquivo)){ fread(&cadastro, sizeof(struct dados), 1, arquivo); if (!feof(arquivo)){ cont = cadastro.cod + 1; i++; } } arquivo = fopen("dados.txt", "w"); for(i=0; i < cont; i++){ if (cadastro.cod != codigo){ fwrite(&cadastro, sizeof(struct dados), 1, arquivo); } } fclose(arquivo); main (); } int main (){ int op; printf ("\nEscolha uma opcao\n"); printf ("\n(1) - Para Cadastrar"); printf ("\n(2) - Para Listar"); printf ("\n(3) - Media de Salario dos funcionarios"); printf ("\n(4) - Pesquisar Funcionario pelo Codigo de Cadastro"); printf ("\n(5) - Excluir arquivo"); printf ("\n(0) - Sair \n\n>> "); scanf ("%d", &op); if (op == 1){ cadastrar (); } if (op == 2){ listar (); } if (op == 3){ media (); } if (op == 4){ pesquisa (); } if (op == 5){ excluir (); } if (op == 0){ return 0; } } ---------------------------------------
  10. Obrigado vangodf mas minha ideia não é bem essa, não adianta eu copiar o teu código e ficar com duvidas, por isso filtrei ao máximo meu programa para poder ir entendendo gradualmente. Obrigado !!
  11. Boa tarde. Pessoal tenho um trabalho a fazer, onde devo manipular dados em um banco .txt. (cadastrar, consultar, excluir). Meu problema Inicial: Gravar arquivos de uma struct no meu .txt. --------------------------------------------------------------------------------- # include <stdio.h> int main (){ FILE *file; file = fopen ("banco.txt", "w"); int i; struct pessoa{ char nome[50]; int idade; }; struct pessoa cadastro[2]; printf ("Cadastro de Pessoas:\n\n"); for (i=0; i < 2; i++){ printf ("\nNome: "); fgets (cadastro.nome, 50, stdin); printf ("Idade: "); scanf ("%d", &cadastro.idade); getchar (); } return 0; } --------------------------------------------------------------------------------------- Sei que na forma q esta apenas cria o arquivo .txt, e as entradas de dados não são gravadas no mesmo. Minha dificuldade é justamente essa. Obrigado !!
×
×
  • Criar Novo...