Jump to content

Recommended Posts

Posted

Olá amigos, bom sou acadêmico e estou com um exercício que não consigo resolver, gostaria muito da ajuda dos amigos. O meu problema é o seguinte tenho que criar uma strutura cliente com os seguintes parametros: nome, cpf, data de nascimento, outra estrutura chamada conta com os seguintes parametros: agencia, conta e saldo, até ai tudo bem, eu só não sei relacionar o cliente a uma determinada conta, os amigos poderiam ajudar? obrigado a todos pela atenção!!!

Posted

primeiro tens de pensar de uma forma não programática.

qual é na realidade a relação entre cliente e a agência ?

quantas agências se podem relacionar a um/cada cliente ?

quantos clientes se podem relacionar a uma/cada agência ?

só depois de responderes a este tipo de perguntas podes pensar em como criar a relação programáticamente

IRC : sim, é algo que ainda existe >> #p@p
Posted

ok então la vai:

Desenvolva uma aplicação em C que simule um controle bancário. Para tanto,

crie o tipo Cliente que tem como atributos nome, cpf e data de nascimento; e o

tipo Conta que tem como atributos o número, a agência, o saldo e o cliente

(atributo do tipo Cliente). Os atributos número e agência devem ser do tipo

Cadeia de Caracteres. Em seguida, solicite ao usuário os números, agências,

saldos e clientes (nome, cpf e data de nascimento) de 10 contas, cadastrandoas

em um vetor de Contas. A aplicação não deve permitir o cadastro de mais

de uma conta com o mesmo número e agência. No caso, o programa deve

apresentar a mensagem de erro “Conta já cadastrada!Tente novamente!”

Depois da leitura de todas as contas, o seu programa deve disponibilizar ao

usuário um menu com as seguintes opções:

1) Efetuar depósito

2) Efetuar saque

3) Consultar o ativo bancário (ou seja, o somatório dos saldos de todos os clientes)

4) Exibir relatório de contas

5) Finalizar programa

Veja os detalhes de cada uma das funcionalidades abaixo:

1) Efetuar depósito: Para efetuar o depósito, o programa deve solicitar ao

usuário o código e a agência da conta, assim como o valor a ser depositado. Se

o valor a ser depositado informado for negativo, o programa deve apresentar a

mensagem de erro “Valor de depósito inválido!Deve ser positivo!” e o valor

deverá ser informado novamente até que o usuário informe um valor de

depósito positivo. Se a conta (agência e número) não estiver cadastrada no

vetor de contas, o programa deve apresentar a mensagem “Conta não

encontrada” e voltar ao menu. Se a conta existir, o saldo da mesma deve ser

atualizado com a realização do depósito.

2) Efetuar saque: Para efetuar saque, o programa deve solicitar ao usuário o

número e agência da conta, assim como o valor a ser sacado. Se o valor a ser

sacado for negativo, deverá ser apresentada a mensagem “Valor de saque

inválido!Deve ser positivo” e o valor deverá ser informado novamente até que o

usuário informe um valor de saque positivo. Se a conta não estiver cadastrada,

o programa deve apresentar a mensagem “Conta não encontrada” e voltar ao

menu. Se a conta existir, deve ser verificado se seu saldo é suficiente para

cobrir o saque (Suponha que a conta não pode ficar com saldo negativo). Se o

saldo for suficiente, o programa deve realizar o saque e voltar ao menu. Caso

contrário, o programa deve mostrar a mensagem “Saldo insuficiente para

saque” e voltar ao menu.

3) Consultar ativo bancário: Para consultar o ativo bancário, deve-se somar o

saldo de todas as contas do banco. O programa deve mostrar esse valor na tela

e voltar ao menu de opções.

4) Exibir relatório de contas: Para exibir relatório de contas, o programa deve

mostrar na tela o número, agência, saldo e cliente (nome, cpf e data de

nascimento) de todas as contas cadastradas no vetor de Contas.

5) O programa só termina quando for digitada a opção 5 – Finalizar programa

Posted
eu só não sei relacionar o cliente a uma determinada conta

Lê o enunciado com atenção:

crie o tipo Cliente que tem como atributos nome, cpf e data de nascimento; e o

tipo Conta que tem como atributos o número, a agência, o saldo e o cliente

(atributo do tipo Cliente)

A relação entre Cliente e Conta está bem explícita: cada cliente pertence a uma conta.

De acordo com a minha interpretação do enunciado não podes ter clientes com 2 ou mais contas.

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted (edited)

olá moderador eu só não sei fazer essa relação e de acordo com a sua interpretação você está correto.

eu tentei fazer da seguinte forma:

struct cliente{
        char nome[100];
        char cpf[14];
        char datanasc[10];
} cliente;
struct conta{
       char agencia[6];
       char conta[8];
       float saldo;
       cliente Cliente;
}

quando faço a solicitação do nome da erro de union, daí parei não consegui desenrolar

Edited by brunoais
geshi
Posted (edited)
struct cliente{
                char nome[100];
                char cpf[14];
                char datanasc[10];
} cliente;  // <--- presumo que querias criar o tipo de dados "cliente"
           //      no entanto falta a palavra reservada "typedef" no início da definição da estrutura

struct conta{
           char agencia[6];
           char conta[8];
           float saldo;
           cliente Cliente; // <-- como te disse acima, o tipo de dados cliente não está definido
}
Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Posted

Boas!

So um pequena obs o tipo de dados cliente põe antes Cliente, quando criares um novo tipo de dado coloca a primeira letra como maiúscula.

Podes mostrar o erro que te da?

Posted

Em C, ao criares um novo tipo de dados com struct qualquercoisa ... o nome que identifica esse tipo de dados é struct qualquercoisa. O identificador mais simples qualquercoisa não existe (como dito atrás podes também criar esse identificador e associá-lo à struct qualquercoisa).

struct cliente { /* whatever */ };
struct conta {
   /* ... */
   struct cliente cliente;
};

No código acima, a estrutura struct conta tem um mebro de tipo struct cliente cujo identificador é cliente.

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted (edited)

meu código até o momento está da seguinte forma:

#include<string.h>
#include<stdio.h>
struct cliente{
                char nome[100];
                char cpf[14];
                char datanasc[10];
} typedef cliente;  // <--- presumo que querias criar o tipo de dados "cliente"
           //      no entanto falta a palavra reservada "typedef" no início da definição da estrutura
struct conta{
           char agencia[6];
           char conta[8];
           float saldo;
           struct cliente cliente; // <-- como te disse acima, o tipo de dados cliente não está definido
}typedef conta;
int main(){
   int i;
   for(i=0; i<10; i++){
       printf("Por favor digite o nome: ");
       gets(cliente.nome);
       printf("Numero da Agencia: ");
       gets(conta.agencia);
   }
}
Edited by brunoais
geshi
Posted (edited)

agora está assim:

#include<string.h>
#include<stdio.h>
typedef struct cliente{
                char nome[100];
                char cpf[14];
                char datanasc[10];
} cliente;  // <--- presumo que querias criar o tipo de dados "cliente"
           //      no entanto falta a palavra reservada "typedef" no início da definição da estrutura
typedef struct conta{
           char agencia[6];
           char conta[8];
           float saldo;
           struct cliente cliente; // <-- como te disse acima, o tipo de dados cliente não está definido
} conta;
int main(){
   int i;
   for(i=0; i<10; i++){
       printf("Por favor digite o nome: ");
       gets(cliente[i].nome);
       printf("Numero da Agencia: ");
       gets(conta[i].agencia);
   }
}

vc. não poderia me fazer um exemplo?

Edited by pmg
Falta LP no GeSHi
Posted

Hint: nao uses float para dinheiro!

Eis a razão:

#include <stdio.h>

int main(void) {
 float naonaonao = 0.01;
 double simsim = 0.01;
 int k;

 printf("iteracao #%d: float tem %f; double tem %f\n",
       0, naonaonao, simsim);
 for (k = 1; k < 17; k++) {
   naonaonao *= 10; naonaonao += 0.01;
   simsim *= 10; simsim += 0.01;
   printf("iteracao #%d: float tem %f; double tem %f\n",
         k, naonaonao, simsim);
 }

 return 0;
}

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted
#include<string.h>
#include<stdio.h>

typedef struct cliente
{
 char nome[100];
 char cpf[14];
 char datanasc[10];
} Cliente;

typedef struct Conta
{
 char agencia[6];
 char conta[8];
 double saldo;
 Cliente cliente; // agora podes usar somente o nome do tipo 
} Conta;

int main(){
   int i;
   for(i=0; i<10; i++){
       printf("Por favor digite o nome: ");
       gets(cliente[i].nome); // <--------- não tens a variável "cliente" declarada em lado nenhum
       printf("Numero da Agencia: ");
       gets(conta[i].agencia);// <--------- não tens a variável "conta" declarada em lado nenhum
   }
}

ps : não digas que foi por ter alterado os nomes dos tipos para ter a primeira letra como maiúscula, porque o fiz para ver se percebes qual é a diferença entre Tipo de Dados e os Dados em si

IRC : sim, é algo que ainda existe >> #p@p
Posted (edited)

bom amigo agora eu modifiquei, até rodou mas ele diz pra fechar o programa

#include<string.h>
#include<stdio.h>
typedef struct cliente
{
char nome[100];
char cpf[14];
char datanasc[10];
};
typedef struct Conta
{
struct cliente Cliente;
char agencia[6];
char conta[8];
double saldo;
} Conta;
int main(){
struct cliente *Cliente;
int i;
for(i=0; i<10; i++){
    printf("Por favor digite o nome: ");
    scanf("%c",Cliente[i].nome);
}
}
Edited by pmg
Falta LP no GeSHi
Posted

apresentas falta de conhecimentos básicos de programação que já deverias ter antes de te meter a realizar este tipo de coisas

só existe uma solução para este tipo de situação : tutoriais

necessitas de saber o que é e como manusear uma estrutura:

1º resultado do google : http://www.codingunit.com/c-tutorial-structures-unions-typedef

também parece que queres mexer em listas :

http://www.codingunit.com/c-tutorial-arrays-and-multi-dimensional-arrays

IRC : sim, é algo que ainda existe >> #p@p
Posted

de fato conheço pouquíssimo linguagem c, tive muita dificuldade de estar presente nas aulas, por problemas particulares que não vem ao caso, porém tenho um um bom conhecimento em programação, más em específico na linguagem c, me falta e tenho que fazer este trabalho que nos foi dado na faculdade e se é impossível vc. mostrar um exemplo, sem problema, eu teria como identificar melhor suas considerações, obrigado assim mesmo pela sua tentativa em me ajudar.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.