viciado 1 Denunciar post Postado Dezembro 13, 2008 CLIENTE => número do cliente, nome, telefone, endereço CONTA BANCÁRIA => número da conta, número do cliente, saldo Crie um programa que faça o cadastramento de contas, verificando se o número do cliente titular da conta já foi previamente cadastrado. Se existir, deverá permitir a inclusão. Caso contrário, deverá mostrar a mensagem CLIENTE NÃO CADASTRADO e abrir uma tela que permita o cadastramento. O programa deverá mostrar, ao final, todas as contas cadastradas. Como posso gravar os dados da função no arquivo ? Como verificar se o codigo ja existe no arquivo ? #include <stdio.h> #include <stdlib.h> struct cliente { int num; char nome[30]; float tel; char endereco[100]; } struct conta { int num; int num_cliente; float saldo; } int main() { system("PAUSE"); return 0; } void cadastrar_conta(FILE *fp){ fp = fopen("arquivo.txt","w"); if(fp == NULL){ printf("Erro na abertura do arquivo \n"); } else{ printf("Nome \n"); fgets(cliente.nome, 30, stdin); printf("Numero do cliente \n"); scanf("%d",&cliente.num); printf("Telefone \n"); scanf("%f",&cliente.tel); printf("Endereco \n"); fgets(cliente.endereco, 100, stdin); } } Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Dezembro 13, 2008 percorra o arquivo para achar ql linha esta o codigo.. feito isso, use strcmp para comparar.. []s Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Dezembro 13, 2008 Você exemplos de codigos envolvendo manipulação de arquivo, para poder tirar uma noção ? Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Dezembro 14, 2008 http://forum.imasters.com.br/index.php?showtopic=296440 Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Dezembro 15, 2008 A função de cadastro que eu fiz está correta ? Alguma idéia para fazer as outras duas funções ? #include <stdio.h> #include <stdlib.h> #include <string.h> void cadastrar(FILE *arquivo); typedef struct registro{ char nome[30]; int num_cliente, num_conta; float tel, saldo; char endereco[30]; }dados; int main() { int op; FILE *arquivo; while(op != 4){ printf("(1) Cadastrar \n"); printf("(2) Editar dados \n"); printf("(3) Ver \n"); printf("(4) Sair \n"); printf("Digite uma opcao "); scanf("%d",&op); switch(op){ case 1: cadastrar(arquivo); break; case 2: break; case 3: break; case 4: exit(0); break; } fclose(arquivo); } system("PAUSE"); return 0; } void cadastrar(FILE *arquivo){ dados cliente; if((arquivo = fopen("arquivo.txt","wt")) == NULL){ printf("Erro ao abrir o arquivo\n"); exit(0); } else{ printf("Digite o nome \n"); scanf("%s",cliente.nome); printf("Digite o codigo \n"); scanf("%d",&cliente.num_cliente); printf("Digite o telefone \n"); scanf("%f",&cliente.tel); printf("Digite o endereco \n"); scanf("%s",cliente.endereco); fprintf(arquivo, "%s \n", cliente.nome); fprintf(arquivo, "%d \n", cliente.num_cliente); fprintf(arquivo, "%f \n", cliente.tel); fprintf(arquivo, "%s \n", cliente.endereco); } fclose(arquivo); } Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Dezembro 15, 2008 primeiro o legal seria, você usar um outro txt, para ir armazenando os numeros conforme vao sendo cadastrados.. assim ficara facil fazer a verificacao para ver c o numero jah existe.. e para listar tds as contas, somente você ler o txt inteiro e exibir ele na tela.. []s Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Dezembro 15, 2008 Amigo, desculpa mais eu estou começando em arquivo não sei os comandos para realizar o que você esta sugerindo Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Dezembro 15, 2008 me diga uma coisa, vai ser um txt para tds clientes.. ow 1 txt para kd cliente?? []s Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Dezembro 15, 2008 Um para todos, do metodo mais facil Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Dezembro 15, 2008 Acho que todos num txt. Do jeito que for melhor e mais facil de entender Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Dezembro 15, 2008 entaum no momento, quais suas duvidas?? vow ver c consigo analizar algum codigo amanha.. tente fazer oq achar e oq conseguir, e amanha eu arrumo pra você.. []s Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Dezembro 15, 2008 Estou tendo erro no fprintf "subscripted value is neither array nor pointer" #include <stdio.h> #include <stdlib.h> #include <string.h> void cadastrar(FILE *arquivo); typedef struct registro{ char nome[30]; int num_cliente, num_conta; float tel, saldo; char endereco[30]; }dados; int main() { int op; FILE *arquivo; while(op != 4){ printf("(1) Cadastrar \n"); printf("(2) Editar dados \n"); printf("(3) Ver \n"); printf("(4) Sair \n"); printf("Digite uma opcao "); scanf("%d",&op); switch(op){ case 1: cadastrar(arquivo); break; case 2: break; case 3: break; case 4: exit(0); break; } fclose(arquivo); } system("PAUSE"); return 0; } void cadastrar(FILE *arquivo){ dados cliente; char local[30], nome[30]; int i; printf("Digite o nome do arquivo \n"); fgets(nome, 30, stdin); strcpy(local,"c:\\pasta\\"); strcat(local,nome); strcat(local,".txt"); if((arquivo = fopen("arquivo.txt","w")) == NULL){ printf("Erro ao abrir o arquivo\n"); exit(0); } else{ printf("Digite o nome \n"); scanf("%s",cliente.nome); printf("Digite o codigo \n"); scanf("%d",&cliente.num_cliente); printf("Digite o telefone \n"); scanf("%f",&cliente.tel); printf("Digite o endereco \n"); scanf("%s",cliente.endereco); for(i=0;i<30;i++){ fprintf(arquivo, "%s \n", cliente[i].nome); fprintf(arquivo, "%d \n", cliente[i].num_cliente); fprintf(arquivo, "%f \n", cliente[i].tel); fprintf(arquivo, "%s \n", cliente[i].endereco); } } fclose(arquivo); } Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Dezembro 16, 2008 Como posso editar os dados ? #include <stdio.h> #include <stdlib.h> #include <string.h> void cadastrar(FILE *arquivo); typedef struct{ char nome[30]; int num_cliente; float saldo; char tel[11]; char endereco[30]; }dados; int main() { int op; FILE *arquivo; while(op != 4){ printf("(1) Cadastrar \n"); printf("(2) Editar dados \n"); printf("(3) Ver \n"); printf("(4) Sair \n"); printf("Digite uma opcao "); scanf("%d",&op); switch(op){ case 1: cadastrar(arquivo); break; case 2: editar(arquivo); break; case 3: break; case 4: exit(0); break; } } system("PAUSE"); return 0; } void cadastrar(FILE *arquivo){ dados cliente; getchar(); arquivo = fopen("arquivo.txt","w+"); printf("Digite o nome \n"); scanf("%s", cliente.nome); printf("Digite o codigo \n"); scanf("%d",&cliente.num_cliente); printf("Digite o telefone \n"); scanf("%s",&cliente.tel); printf("Digite o endereco \n"); scanf("%s",cliente.endereco); fprintf(arquivo, "%s \n", cliente.nome); fprintf(arquivo, "%d \n", cliente.num_cliente); fprintf(arquivo, "%s \n", cliente.tel); fprintf(arquivo, "%s \n", cliente.endereco); fclose(arquivo); } void editar(FILE *arquivo){ dados editar; char novo_nome[30]; int novo_num_cliente; float novo_saldo; char novo_tel[11]; char novo_endereco[30]; int op; while (op != 6){ printf("(1) Editar nome \n"); printf("(2) Editar numero do cliente \n"); printf("(3) Editar saldo \n"); printf("(4) Editar telefone \n"); printf("(5) Editar endereco \n"); printf("Digite uma opcao \n"); scanf("%d",&op); switch(op){ case 1: } Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Dezembro 16, 2008 para editar o txt.. você precisa posicionar onde qr editar.. depois usara o fseek.. veja no mew programa um exemplo de como fazer isso: void AlterarDados(){ FILE *fAlter = NULL; int iVar, iOpc; char cNome[100], cNomeTroca[100], cCaracter, cCodCliente[4]; iVar = iOpc = 0; Topo(); printf("\tAlteracao de dados dos Clientes \n\n"); printf(" Digite o codigo do cliente que deseja alterar dados: "); getchar(); scanf(" %s", &cCodCliente); if ((fAlter = fopen(cCodCliente,"r+")) == NULL){ printf(" Cliente nao cadastrado!\n"); getch(); main(); return; } puts(""); cCaracter = getc(fAlter); while (!feof(fAlter)){ printf("%c",cCaracter); cCaracter = getc(fAlter); } puts(""); iOpc = OpcAlterDados(); rewind(fAlter); cCaracter = getc(fAlter); if (iOpc == 1) { while (cCaracter!=':') cCaracter = getc(fAlter); cCaracter = getc(fAlter); fgets(cNome,sizeof(cNome),fAlter); } else if (iOpc == 2) { while (cCaracter!=':') cCaracter = getc(fAlter); cCaracter = getc(fAlter); while (cCaracter!=':') cCaracter = getc(fAlter); cCaracter = getc(fAlter); fgets(cNome,sizeof(cNome),fAlter); } else { while (cCaracter!=':') cCaracter = getc(fAlter); cCaracter = getc(fAlter); while (cCaracter!=':') cCaracter = getc(fAlter); cCaracter = getc(fAlter); while (cCaracter!=':') cCaracter = getc(fAlter); cCaracter = getc(fAlter); fgets(cNome,sizeof(cNome),fAlter); } rewind(fAlter); if (iOpc == 1) { while (cCaracter!=':') cCaracter = getc(fAlter); cCaracter = getc(fAlter); } else if (iOpc == 2) { while (cCaracter!=':') cCaracter = getc(fAlter); cCaracter = getc(fAlter); while (cCaracter!=':') cCaracter = getc(fAlter); cCaracter = getc(fAlter); } else { while (cCaracter!=':') cCaracter = getc(fAlter); cCaracter = getc(fAlter); while (cCaracter!=':') cCaracter = getc(fAlter); cCaracter = getc(fAlter); while (cCaracter!=':') cCaracter = getc(fAlter); cCaracter = getc(fAlter); } fseek(fAlter, 0, SEEK_CUR); if (iOpc == 1) printf(" Digite por qual nome deseja alterar: "); else if (iOpc == 2) printf(" Digite por qual Data deseja alterar: "); else printf(" Digite por qual RG deseja alterar: "); getchar(); gets(cNomeTroca); fprintf(fAlter,"%s",cNomeTroca); if(strlen(cNome) > strlen(cNomeTroca)) for(iVar = strlen(cNomeTroca); iVar < strlen(cNome)-1; iVar++) fprintf(fAlter," "); fprintf(fAlter,"\n"); fclose(fAlter); puts("\n Cliente com cadastrado atualizado!!!"); getch(); } Compartilhar este post Link para o post Compartilhar em outros sites