Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com programa de mercadinho


DiegoMB

Pergunta

Boa Tarde a todos, gostaria de pedir a vocês que me ajudem pois estou desenvolvendo um trabalho para faculdade na qual tenho que fazer um sistema que utiliza struct e funções.

A minha dificuldade está na parte que tenho que fazer uma função que realize a venda. Trecho do texto a seguir.

4. Realizar uma venda: são fornecidos os códigos dos produtos e o sistema imprime na tela os nomes dos produtos, seus preços e o total; (para realizar uma venda é necessário ver se o produto tem o estoque necessário para a venda).

Minha dificuldade está na parte que tenho que passa os códigos do produtos, exibir seus nomes, preços e total da compra. Até cheguei a fazer essa opção no meu código mais o jeito que fiz funciona apenas de 1 em 1, aí todo hora preciso ficar voltando na função para efetuar outras vendas. Gostaria de fazer isso de uma vez só.

Se alguém estiver disposto a me ajudar ficaria muito grato.

Estou usando Dev C++ versão 5.10 para a construção desse sistema.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

#include<stdio.h>
#include<stdlib.h>
#include<locale.h>
/*
Autor: Diego
Disciplina: Linguagem de programação 1
*/
//CONSTANTE PARA CONTROLAR QUANTIDADE DE DADOS
#define QTREG 30
//ESTRUTURA UTILIZADA PARA CADASTRAR PRODUTOS
typedef struct{
int codigo;
char nome[30];
int quantidade;
float preço;
}REGPRODUTO;
//CRIA VARIAVEL DO TIPO regproduto
REGPRODUTO produto[QTREG];
//VARIAVEIS GLOBAIS
float caixaAtual = 800.00;
//CABEÇALHO DAS FUNÇÕES QUE SERÃO USADAS
//CABEÇALHO DA FUNÇÃO INSERIR UM PRODUTO NO ESTOQUE
int cadastrar();
//CABEÇALHO DA FUNÇÃO AUMENTAR O ESTOQUE DE UM PRODUTO
void alterarEstoque(int pCodgio, int pQuantidade);
//CABEÇALHO DA FUNÇÃO MODIFICAR O PREÇO DE UM PRODUTO
void modificarPreco(int pCodigo, float pPreco);
//CABEÇALHO DA FUNÇÃO REALIZAR VENDA
float venda();
//CABEÇALHO DA FUNÇÃO CONSULTAR O ESTOQUE DOS PRODUTOS
void listaProduto(int pQtProduto);
//CABEÇALHO DA FUNÇÃO CONSULTAR O SALDO DO CAIXA
void consultarSaldo();
int main(void){
int op = 0;
setlocale(LC_ALL,"Portuguese");
while(op != 7){
printf("\n\n\t** Mercadinho - Sistema de gerenciamento de mercadoria 2015 **\n\n\n");
printf("MENU\n\n1 - Cadastrar Produto\n2 - Atualizar Estoque\n3 - Alterar preço produto");
printf("\n4 - Realizar venda\n5 - Consultar estoque\n6 - Consultar saldo do caixa\n7 - Sair\n");
scanf("%d",&op);
system("cls");
switch(op){
case 1://OPÇÃO CADASTRAR PRODUTO
int qtProduto;
qtProduto = cadastrar();
break;
case 2:{//OPÇÃO ATUALIZAR ESTOQUE
int pCodigo, pQuantidade;
printf("Digite o código do produto que deseja atualizar o estoque:");
scanf("%d",&pCodigo);
printf("Deseja alterar quantidade do produto: %s - quantidade: %d \n",produto[pCodigo].nome,produto[pCodigo].quantidade);
printf("Nova quantidade:");
scanf("%d",&pQuantidade);
fflush(stdin);
system("pause");
alterarEstoque(pCodigo, pQuantidade);
}
break;
case 3:{//OPÇÃO ALTERAR PREÇO DO PRODUTO
int pCodigo;
float pPreco;
printf("Digite o código do produto que deseja modificar o preço:");
scanf("%d",&pCodigo);
printf("Deseja modificar o preço do produto: %s - preço: %0.2f \n",produto[pCodigo].nome,produto[pCodigo].preço);
printf("Novo preço:");
scanf("%f",&pPreco);
fflush(stdin);
system("pause");
modificarPreco(pCodigo, pPreco);
}
break;
case 4://OPÇÃO DE REALIZAR VENDA
int pCodigo;
float lucro;
lucro = venda();
caixaAtual = caixaAtual + lucro;
break;
case 5://OPÇÃO DE LISTAR PRODUTOS
listaProduto(qtProduto);
break;
case 6://CONSULTAR SALDO NO CAIXA
consultarSaldo();
break;
case 7://OPÇÃO SAIR DO PROGRAMA
exit;
break;
default:// EXIBI MENSAGEM DE OPÇÃO INVALIDA CASO DIGITE UM NUMERO QUE NÃO TENHA NO MENU
printf("Opção inválida");
break;
}
}
system("pause");
return 0;
}
//CORPO DA FUNÇÕES
//FUNÇÃO INSERIR UM PRODUTO NO ESTOQUE
int cadastrar(){
char opSub;
int cont=0,qtProdutoCad=0;
float compra;
do{
produto[cont].codigo = cont;
fflush(stdin);
printf("Digite o nome do produto:");
gets(produto[cont].nome);
printf("Digite a quantidade:");
scanf("%d",&produto[cont].quantidade);
fflush(stdin);
printf("Digite o preço:");
scanf("%f",&produto[cont].preço);
fflush(stdin);
caixaAtual = caixaAtual - produto[cont].preço;
qtProdutoCad = qtProdutoCad + cont;
cont++;
printf("Deseja cadastrar um novo produto sim(s) ou não(n)?");
scanf("%c",&opSub);
}while(opSub == 's' or opSub == 'S');
return qtProdutoCad;
}
//FUNÇÃO AUMENTAR O ESTOQUE DE UM PRODUTO
void alterarEstoque(int pCodigo, int pQuantidade){
produto[pCodigo].quantidade = pQuantidade;
}
//FUNÇÃO MODIFICAR O PREÇO DE UM PRODUTO
void modificarPreco(int pCodigo, float pPreco){
produto[pCodigo].preço = pPreco;
}
//FUNÇÃO REALIZA VENDA
float venda(){
int pCodigo;
float lucro;
printf("Informe o código do produto");
scanf("%d",&pCodigo);
if(produto[pCodigo].quantidade < 0){
printf("Produto indisponivel");
}else{
printf("\t %s - \t %1.2f",produto[pCodigo].nome,produto[pCodigo].preço);
lucro = lucro + produto[pCodigo].preço;
}
printf("\t\t\t Total: %1.2f",lucro);
return lucro;
}
//FUNÇÃO CONSULTAR SALDO
void consultarSaldo(){
printf("Saldo atual em caixa: %1.2f",caixaAtual);
}
//FUNÇÃO CONSULTAR O ESTOQUE DOS PRODUTOS
void listaProduto(int pQtProduto){
int i, qtProduto;
qtProduto = pQtProduto;
for(i=0; i<qtProduto; i++){
printf("\tCódigo - %d \tNome - %s \tQuantidade - %d \n",produto.codigo,produto.nome,produto.quantidade);
}
}
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...