duarteol2000 Posted March 12, 2013 at 07:59 AM Report #498809 Posted March 12, 2013 at 07:59 AM 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!!!
HappyHippyHippo Posted March 12, 2013 at 09:05 AM Report #498810 Posted March 12, 2013 at 09:05 AM 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 Portugol Plus
duarteol2000 Posted March 12, 2013 at 02:16 PM Author Report #498860 Posted March 12, 2013 at 02:16 PM 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
pmg Posted March 12, 2013 at 02:22 PM Report #498863 Posted March 12, 2013 at 02:22 PM 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!
duarteol2000 Posted March 12, 2013 at 02:34 PM Author Report #498866 Posted March 12, 2013 at 02:34 PM (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 March 13, 2013 at 10:42 AM by brunoais geshi
HappyHippyHippo Posted March 12, 2013 at 02:52 PM Report #498869 Posted March 12, 2013 at 02:52 PM (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 March 12, 2013 at 02:52 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
AJBM Posted March 12, 2013 at 02:52 PM Report #498870 Posted March 12, 2013 at 02:52 PM 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?
pmg Posted March 12, 2013 at 03:02 PM Report #498871 Posted March 12, 2013 at 03:02 PM 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!
duarteol2000 Posted March 12, 2013 at 03:26 PM Author Report #498875 Posted March 12, 2013 at 03:26 PM (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 March 13, 2013 at 10:43 AM by brunoais geshi
AJBM Posted March 12, 2013 at 03:32 PM Report #498876 Posted March 12, 2013 at 03:32 PM (edited) tenta algo assim typedef struct{ char nome[50]; char dataNas[10]; } Cliente; typedef struct{ Cliente cliente; long numConta; }Conta; E ve este link http://en.wikipedia.org/wiki/Struct_(C_programming_language) Edited March 12, 2013 at 03:33 PM by AJBM
HappyHippyHippo Posted March 12, 2013 at 03:33 PM Report #498877 Posted March 12, 2013 at 03:33 PM ... no entanto falta a palavra reservada "typedef" no INÍCIO da definição da estrutura // typedef <definição> <nome_do_tipo> typedef struct // a estrutura pode ou não ter nome { // definições } XPTO; // nome do tipo : XPTO IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
duarteol2000 Posted March 12, 2013 at 04:00 PM Author Report #498888 Posted March 12, 2013 at 04:00 PM continua o mesmo erro
HappyHippyHippo Posted March 12, 2013 at 04:10 PM Report #498892 Posted March 12, 2013 at 04:10 PM continua o mesmo erro que código tens agora ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
duarteol2000 Posted March 12, 2013 at 04:13 PM Author Report #498893 Posted March 12, 2013 at 04:13 PM (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 March 12, 2013 at 04:16 PM by pmg Falta LP no GeSHi
pmg Posted March 12, 2013 at 04:22 PM Report #498895 Posted March 12, 2013 at 04:22 PM 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!
HappyHippyHippo Posted March 12, 2013 at 04:35 PM Report #498898 Posted March 12, 2013 at 04:35 PM #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 Portugol Plus
duarteol2000 Posted March 12, 2013 at 06:09 PM Author Report #498913 Posted March 12, 2013 at 06:09 PM (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 March 12, 2013 at 06:22 PM by pmg Falta LP no GeSHi
AJBM Posted March 12, 2013 at 06:18 PM Report #498917 Posted March 12, 2013 at 06:18 PM Cliente cliente;-----> assim é que declaras uma variável do tipo cliente
HappyHippyHippo Posted March 12, 2013 at 06:19 PM Report #498919 Posted March 12, 2013 at 06:19 PM 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 Portugol Plus
duarteol2000 Posted March 12, 2013 at 06:41 PM Author Report #498923 Posted March 12, 2013 at 06:41 PM 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now