Ir ao conteúdo
  • Cadastre-se

C Sistema de fruteira em liguagem C


Posts recomendados

Sou da Engenharia Civil e estou estudando Algoritmos, estou tendo dificuldade de montar um sistema de fruteira, podem me ajudar?

O Exercicio pede o seguinte:

 

A presente atividade envolve todos os conhecimentos adquiridos na disciplina de Algoritmos e Lógica Computacional. Será necessário usar nele: variáveis, estrutura de decisão, estrutura de repetição, vetor e structs. O uso de funções também pode ocorrer, mas não é obrigatório.

 

DESCRIÇÃO: Dona Maria tem uma pequena fruteira na região central de Chapecó e precisa de um sistema para auxiliar em cálculos e controle de estoque de seu estabelecimento. Dentre as atividades que serão gerenciadas: Cadastro das frutas (total de 10 tipos de frutas existentes na fruteira), Opção de mostrar todas as frutas cadastradas, Comprar frutas para inserir ao estoque e Vender Frutas do estoque para clientes.

 

   1) Cada tipo de fruta tem um código (int) (que recebe a posição da fruta no vetor, ou seja, seu índice), nome (string), preço de venda ao quilo (float) e quantidade de quilos em estoque (float).

 

   2) O total de tipos de frutas é 10 (criar vetor de 10 posições para armazenar as frutas).

 

   3) A interface será feita tal que tenha um menu com as seguintes restrições:

           1) Cadastrar nova fruta;

           2) Mostra todas as frutas cadastradas;

           3) Compra de Fruta para estoque;

           4) Venda de Fruta para cliente;

           5) Sair do Sistema.

 

4) Explicando o que ocorre em cada opção mencionada anteriormente:

           1) O cadastro de nova fruta solicita ao usuário inserir os dados da fruta. O código deve ser a posição (índice) em que a fruta será inserida no vetor (não precisa ler do teclado). O nome, preço ao quilo e quantidade em estoque devem ser lidos via teclado. A cada nova inserção de fruta deve ser incrementada a posição do vetor e quando as 10 frutas forem inseridas não deve mais permitir inserção de frutas, ou seja, precisa verificar se ainda tem espaço para cadastro ou não.    

         2) Mostra todos os dados das frutas cadastradas.

 

3) A compra de frutas é o ato de aquisição de novas frutas por Dona Maria para repor estoque. Ela deve informar o código da fruta a ser comprada e também a quantidade em quilos comprados e na sequência a quantidade de estoque daquele produto deve ser atualizada.

 

4) A venda de frutas é o ato de uma venda ao cliente. Dona Maria informa o código da fruta e sua quantidade e o sistema deve ver se tem a quantidade solicitada em estoque, caso tenha em estoque, deve permitir a venda, calcular qual será o preço total da venda e atualizar o estoque do produto.

 

Ficou assim: 

 

CODE:

#include <stdio.h>
 struct str_nomefruta{
 int cod[10];
  float valor_venda;
 float quant_estoque;
  };

int main()
{
    int Frutas_Vetor[10];
    int op;
    struct str_nomefruta fruta; 

      printf("1) Cadastrar nova fruta.\n");
      printf("2)Mostrar todas as frutas cadastradas.\n");
      printf("3)Compras de fruta para o estoque.\n");
      printf("4)Venda de frutas para cliente.\n");
      printf("5)Sair do sistema.\n");
      
      printf("Escolha uma opção:");
      scanf("%d", &op);
      
      if(op==1)
       
         printf("Cadastre a fruta:\n");
         printf("\nCodigo : ");
             scanf ("%d", fruta.cod);
         printf("\nNome: ");
             scanf("%s", fruta.nome);
         printf("\nQuilos em estoque: ");
             scanf("%f", fruta.quilos);
         printf("\nValor: %1f");
              
         
     else if (op==2)
        printf("\nInformacoes da fruta de codigo %d:\n", fruta.cod);
        printf ("\nNome: %s", fruta.nome);
        printf ("\nQuilo em estoque: %f",fruta.quilos);
        printf ("\nValor: %f", fruta.valor);
        
     else if (op==3)
        printf ("\n Codigo de fruta em falta %d: \n", fruta.cod);
             scanf("%d", &fruta.cod);
        printf ("\nQuilos necessario %f: \n". fruta.quilos);
             scanf ("%f", %fruta.quilos);
        printf ("\nEstoque atualizado %f: \n", fruta.estoque);
             scanf ("%f", &fruta.estoque);
        
        
      
}

    return 0;
}
 

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

Use o tal botão "code" e formate o programa melhor. Fica difícil ler assim e copiar às vezes traz caracteres estranhos...

 

Eu sempre escrevo a mesma coisa quando vejo isso. E sempre vejo isso :) :
 

Citação

o menu devia  ser a última coisa que você escreve e não a primeira. Escrever o menu antes faz você perder muito tempo


Primeiro escreva  a função que lista o cadastro, depois o cadastro, depois a compra, depois a venda...

 

  • Porque tem DEZ códigos para fruta? int cod[10] é isso...
  • Notou que não tem o campo nome? E depois tenta ler o nome?
  • Frutas_vetor[10] não é redundante? É claro que é um vetor. É o centro do programa. Não seria mais significativo algo assim:

    image.png.878ccf8718c48e4c9e4b6b8678e3f527.png

Afinal cada registro é uma fruta. O vetor é de frutas, cada fruta tem um código e um nome. Tem um custo e um estoque em kg. Fica mais fácil.
 

typedef Fruta cria um alias, um sinônimo, e fica mais legível, além de a partir daí não ter que ficar repetindo struct em todo lugar.

 

Usar a primeira letra maiúscula para de algo definido assim é um costume em java por exemplo, mas se usa uma convenção assim em C fica mais fácil entender quando vê um tipo definido pelo programa, como é o caso de Fruta

 

Quanto mais perto sua abstração (representação) fica da realidade mais fácil é escrever o programa e entender a solução.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...