Ir ao conteúdo
  • Cadastre-se

C++ Compreensão de caso, usar struct


Victor Lenno

Posts recomendados

Boa tarde pessoal, estudo Sistemas de Informação (2º semestre apenas), gostaria de uma ajuda pra entender um projeto que foi passado pelo professor. Bem... nesse projeto ele pedia algumas coisas que vou listar a baixo e que ainda não compreendi exatamente como transformar em código, acho que por não conhecer esse tipo de sistema ou por ele ter requisitado de maneira incompleta. Caso alguém já tenha visto algo do tipo e possa me explicar, ficaria muito grato.

É o seguinte: 

" Considere uma empresa que deseja controlar seu caixa com as seguintes características:

Conta { codigo: int ; descricao: string}

Historico {codigo: int;     descricao: string;      tipo: char( C:crédito e D:debito ) }

Movimentacao { data: dia, mes, ano;    conta: Conta;      historico: Historico;    valor: float }

 

Sabendo que a movimentação do dia se resume ao máximo de 100 movimentos, faça:
        1 - Cadastrar conta, histórico;
        2 - Cadastrar movimentação;
        3 - Listar caixa dia : credito - debito = saldo dia;
        4 - Listar somente o movimento de uma conta específica;
        5 - Listar somente o movimento de um histórico específico;
        Obs : item 4 e 5 deverá solicitar também a Data;

"

Nesse caso é um programa que ele quer que usemos struct.

Ps: ainda não foi ensinado ponteiros e função.

Grato desde já, tenham uma boa tarde.

Link para o comentário
Compartilhar em outros sites

@Victor Lenno  
 

Conta { codigo: int ; descricao: string}

Historico {codigo: int;     descricao: string;      tipo: char( C:crédito e D:debito ) }

Movimentacao { data: dia, mes, ano;    conta: Conta;      historico: Historico;    valor: float }
 


struct Conta{
int codigo;
char descricao[100];
}conta;
/*Mesma coisa pros outros*/

Sabendo que a movimentação do dia se resume ao máximo de 100 movimentos, faça:
        

printf("Pressione 1 para Cadastrar conta");
scanf("%d",&opcao);

 Depois usa um switch pra fazer as ações (onde nesse caso o case 1: seria pra cadastrar uma conta)
 Depois você lista...
 

 Listar caixa dia : credito - debito = saldo dia;

 Você pode pegar o valor definido pra credito e subtrair do debito depois listar o valor
 

Listar somente o movimento de uma conta específica;

 Mesma coisa, é só definir no código na hora de listar pra mostrar somente credito ou somente débito e pedir a data referente.

PS: Como se trata de exercícios ninguém pode dar código pronto (nem mesmo um código modelo) então tenta ai e posta seu código que a gente te ajuda:atirador:

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Perfeito, camarada @Xaws!

Estou bem ciente disso e de maneira nenhuma gostaria de tê-lo pronto hehe, perderia a graça :D! Queria só o empurrão inicial da questão exatamente como você postou! Muito obrigado, estou dando uma revisada em struct pra ver se acho maneiras mais eficazes de usá-lo, e ja inicio o projeto. 

Grande abraço.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Xaws, opa! Boa tarde mano.

Voltei aqui só pra agradecer mais uma vez a ajuda.

Infelizmente não consegui fazer o projeto, não entendi direito como eu colocaria os structs pra se comunicarem ainda, abro pra fazer mas não ta fluindo Kkkkkkkkkkkkk. Bom, como é um assunto novo, vou tentar estudar mais e depois tento fazer. 

A estrutura que o professor colocou como base foi essa: 

typedef struct Conta{
    int codigo;
    char descricao[T];
};
typedef struct Historico{
    int codigo;
    char descricao[T];
    char tipo;
};
typedef struct Data{
    int dia, mes, ano;
};
typedef struct Movimentacao{
    struct Data data;
    struct Conta conta;
    struct Historico historico;
    int registro;
    float valor;
    char complemento[T];
};


Mas não sei como fazer essas estruturas se comunicarem.

Pedi que ele me explicasse melhro e ele me mandou esse e-mail:

 

"Objetivo do sistema é o controle de caixa de uma empresa ou pessoa.

Todo valor que ele recebe é lançado como credito e todo valor que você paga é debito.

Vamos dizer que quero controlar a despesas de sua casa e que você tem seu pai, sua mãe, sua irmã e você.

Então a conta será:1 - você, 2 - Pai , 3 - Mãe e 4 - Irmã

O Histórico será: Pagar Conta de Celular - Debito, Pagar Conta Luz - Debito, Salário do Mês - Credito, Empréstimo Banco - Credito - Pagar cartão Crédito

O Movimento será como você lança a conta e o histórico.

Ex.

Movimento: 11/09/2017

Conta: Irmã

Histórico: Salario Mês

Complemento: Referente a 08/2017

valor 2.000,00
 

Movimento: 11/09/2017

Conta: Irmã

Histórico: Pagar Cartão

Complemento: Hipercard fatura 10/09/2017

valor  500,00   "

 

To me sentindo burro kkkkkkkk, não entra em minha cabeça isso por nada, se fosse pra remodelar as estruturas e tentar fazer de outro jeito talvez eu conseguiria, mas desse jeito que ele colocou não consigo entender como trabalhar os structs.

Link para o comentário
Compartilhar em outros sites

@Victor Lenno  Eu também não sou bom com struct kkk mais pra se comunicar com struct é mais ou menos assim:

 

struct folha{
char funcionario[30];
char salario[30];
};
main()
{
struct folha pagamento;
printf("Digite o nome do funcionario");
scanf("%s",pagamento.funcionario");
printf("Digite agora o salario: ");
scanf("%s,pagamento.salario");

 é mais ou menos assim, tenta ai...segue um tutorial

http://linguagemc.com.br/struct-em-c/

 Depois posta seu código como você tentou que a gente tenta te ajudar

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Victor Lenno  Tava no trabalho na hora que respondi, olha um exemplo de como as structs se comunicam do jeito que seu professor passou

 

#include <stdio.h>
#include <windows.h>
main(){
 struct Conta{
    int codigo;
    char descricao[25];
};
 struct Historico{
    int codigo;
    char descricao[25];
    char tipo;
};
 struct Data{
    int dia, mes, ano;
};
 struct Movimentacao{
    struct Data data;
    struct Conta conta;
    struct Historico historico;
    int registro;
    float valor;
    char complemento[30];
};
struct Movimentacao movimentacao;
printf("Funcionario: ");
scanf("%s",movimentacao.conta.descricao);
printf("Funcionario e: %s",movimentacao.conta.descricao);
}

tesx.png

Mais assim você tem que passar por uma struct pra ir pra outra struct o que não vale a pena (ou tenha como fazer alguma função que eu desconheça), o certo seria assim ↓
 

#include <stdio.h>
#include <windows.h>
main(){
 struct Conta{
    int codigo;
    char descricao[25];
};
 struct Historico{
    int codigo;
    char descricao[25];
    char tipo;
};
 struct Data{
    int dia, mes, ano;
};
 struct Movimentacao{
    int registro;
    float valor;
    char complemento[30];
};
	struct Movimentacao movimentacao;
 	struct Data data;
    struct Conta conta;
    struct Historico historico;
printf("Funcionario: ");
scanf("%s",conta.descricao);
printf("Funcionario e: %s",conta.descricao);

}

:atirador: Com o atalho pra struct fora de uma struct você vai diretamente pra struct sem ter que passar por outra..Dessa forma colocando somente (struct.referência)
conta.descricao (exemplo)

struct Movimentacao movimentacao;
 	struct Data data;
    struct Conta conta;
    struct Historico historico;
printf("Funcionario: ");
scanf("%s",conta.descricao);
printf("Funcionario e: %s",conta.descricao);
}

 

"O comando typedef permite ao programador definir um novo nome para um determinado tipo''

http://mtm.ufsc.br/~azeredo/cursoC/aulas/cb60.html

@Victor Lenno @edit , vi agora que a tag está como C++ e voltei pra avisar que os códigos e exemplos que te passei são C e não C++

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!