Jump to content
Fórum Script Brasil
  • 0

Ajuda com programa de mercadinho


DiegoMB

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      652k
×
×
  • Create New...