Ir para conteúdo

Arquivado

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

Luizinho do Forró

Algoritmo de Vendas

Recommended Posts

Boa tarde, estou com dificuldades para terminar o seguinte algoritmo:


Uma loja quer registrar suas vendas mensais.

Cada venda deve ter:


1. Código do produto [100]

2. Código do vendedor [10]

3. Código do cliente [40]

4. Valor da unidade de cada produto vendido

5. Qntd. de produtos vendidos

6. Formas de pagamento, que podem ser:

6.1. À vista (dinheiro), com desconto de 5% ao valor da unidade

6.2. À vista (cartão), o preço fica o mesmo

6.3. Parcelado, com acréscimo de 10% ao da unidade


No início do programa, o usuário tem de informar quantas vendas serão cadastradas.

Após isso, o usuário vai digitar todos os dados de cada uma das vendas que serão registrada. Quando a digitação terminar, o programa deve informar o produto que deu maior faturamento (valor unitário X qntd. de vnda), o cód. do vendedor que faturou mais, o cód. do cliente que mais comprou e o faturamento total do mês.


Ah, sendo que as informações do valor total de vendas tanto do produto, quanto por vendedor, quanto por cliente deve estar nos vetores de 300, 10 e 100 respectivamente.


O programa deve usar 3 funções:

1a. não terá parâmetros e deve pedir que o usuário digite cada um dos dados de uma única venda da seguinte forma: os códigos de produto, de vendedor e de clientes.

2a. para caso o usuário digite algum valor menor que 1 ou maior do que o limite, a função tem de usar a estrutura DO e WHILE até que o usuário digite um valor satisfatório. Essa função seria "dentro" da 1a função.

3a. terc_funcao (float *vet, int limite). Esta deve receber como parâmetro um vetor de vendas(dos produtos, dos vendedores ou dos clientes) e a qntd. de valores que existem nesse vetor. A função deve retornar o código(que é o indice do vetor) do maior valor encontrado nesse vetor. Essa procura pode ser feita pela estrutura FOR.


A main ficaria então para receber cada registro de venda lido pela 1a função e armazenará o valor total da venda nos três vetores(produtos, vendedores, clientes), fazendo assim somas por produto, por vendedor e por cliente, além do faturamento mensal.


O que já tenho






#include <stdio.h>
#include <stdlib.h>
#include<math.h>

void LeVenda(){
printf("Digite o codigo do produto:");
LeCodigo(100);


venda.produto = a;
printf("Digite o codigo do vendedor:");
LeCodigo(10);


venda.vendedor = a;
printf("Digite o codigo do cliente:");
LeCodigo(40);


venda.cliente = a;




printf("Digite a quantidade vendida:");
scanf("%d",&venda.qtde);
printf("Digite o valor unitario da venda:");
scanf("%f",&venda.valor_un);
venda.valorT = valor_un * qtde


printf ("Escolha a forma de pagamento:\n Digite 1 para a vista(dinheiro)\n Digite 2 caso for a vista(cartao)\n Digite 3 caso seja parcelado"
switch( "forma_de_pagamento" )

{
case 1:
valorT = valorT - 1/20*valorT;
break;


case 2:
valorT = valorT;
break;


case 3:
valorT = valorT + 1/10*valorT;
break


default:
printf ("Voce digitou uma opcao invalida!");


}


}


int LeCodigo(int limite){
int a;
do{
printf("Digite o codigo do produto: ");
scanf("%d",&a);
if(a<1 || a>limite)
printf("Codigo incorreto, de outro.");
}while(a<1 || a>limite);
return a;
}


int produto[100],vendedor[10],cliente[40],i;
struct venda{
int produto,vendedor,cliente,qtde;
float valorT;
}venda[i];

int terc_funcao(float *vet[], int limite){
float maior = 0; int indice = 0
int i;
for(i=0;i<limite;i++){
if(vet[i]>maior){
maior = vet[i];
indice = i;
}
}
return indice;
}


main(){


int n_vendas, q, ;
printf("Digite a quantas vendas irao ser feitas: ");
scanf("%d",&n_vendas);


for(q=0;q<n_vendas;q++){
void levenda();
vetfaturamento = venda.unitario


-----------


Minhas dúvidas são principalmente no que diz respeito à struct... como será retornado para a função principal, suas variáveis nos vetores...

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

1a. não terá parâmetros e deve pedir que o usuário digite cada um dos dados de uma única venda da seguinte forma: os códigos de produto, de vendedor e de clientes.

Que função é essa? Se não terá parâmetros deve retornar uma variável local com static (o que eu imagino que vc nem aprendeu ainda) ou vai ser tudo uma variável global (o que me faz querer saber o nome do professor).

 

 

2a. para caso o usuário digite algum valor menor que 1 ou maior do que o limite, a função tem de usar a estrutura DO e WHILE até que o usuário digite um valor satisfatório. Essa função seria "dentro" da 1a função.

Não tem como definir funções internas em C. Essa descrição está mal feita.

 

 

 

3a. terc_funcao (float *vet, int limite). Esta deve receber como parâmetro um vetor de vendas(dos produtos, dos vendedores ou dos clientes) e a qntd. de valores que existem nesse vetor. A função deve retornar o código(que é o indice do vetor) do maior valor encontrado nesse vetor. Essa procura pode ser feita pela estrutura FOR.

Se recebe um argumento que foi alterado pela 1a função, é porque não é local. Se não é local existe o problema do escopo da variável dentro da 1a função.

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.