Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

viciado

Arquivo

Recommended Posts

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

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.