Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * main.c
- *
- * Arquivo principal do projeto.
- *
- * Criado em: 20 de abr de 2016
- * Autor: lincoln
- * Modificado por:
- */
- #include <stdio.h>
- #define PRODUTO_PAO 1 /* numero que identifica o pao */
- #define PRODUTO_MORTADELA 2 /* numero que identifica mortadela */
- #define PRODUTO_BOLO 3 /* numero que identifica bolo */
- #define PRODUTO_LEITE 4 /* numero que identifica o leite */
- #define PRODUTOS_PERMITIDO 1000 /* Numero que identifca a quantidade maxima de produtos permitidos */
- #define MAX_COMPRAS 200 /* numero total de compras que o programa aceita */
- int produtoVendido[PRODUTOS_PERMITIDO];
- float totalProdutos[PRODUTOS_PERMITIDO];
- float totalCompras[MAX_COMPRAS]; /* armazena o total de cada compra */
- int nCompras = 0; /* numero de compras ja registradas */
- int nProdutos;
- int i;
- void ApresentaMenu(void)
- {
- printf("\n\nOpcoes:\n"
- "\n\t1 - Inicia uma venda"
- "\n\t2 - Informa o total de vendas"
- "\n\t3 - Informa a media das vendas"
- "\n\t4 - Informa o valor da maior venda"
- "\n\t5 - Lista todas as compras"
- "\n\t6 - Informa qual o produto mais vendido"
- "\n\t7 - Informa o total de venda por o produto"
- "\n\t8 - Ordena compras"
- "\n\t9 - Encerrar\n\n");
- }
- /**
- * NovaVenda: Le o total vendido de cada produto e calcula o total dessa venda.
- * A propria funcao armazena os produtos vendidos e total da venda
- * nas variaveis adequadas.
- * Parametros:
- * (nenhum)
- * Retorno:
- * Retorna o total da venda.
- * Ou -1 caso não tenha mais espaço para armazenar.
- */
- float NovaVenda(void)
- {
- float totalVenda = 0.0, totalProduto;
- int produto;
- if (nCompras >= MAX_COMPRAS){
- /* Caso o array de compras esteja cheio, nao registrar nova compra */
- printf("Nao ha mais espaco para armazenar nova compra.");
- return -1;
- }
- printf("\n\n ***** Iniciando a venda #%d ***** \n", nCompras + 1);
- printf("Codigo dos produtos: "
- "\n\t1 - Pao"
- "\n\t2 - Mortadela"
- "\n\t3 - Bolo"
- "\n\t4 - Leite"
- "\n\t0 - Sair\n\n");
- /** laco que pede indefinidamente um produto e o valor total vendido desse produto
- * ate que seja digitado produto zero.
- */
- while(1) {
- printf("Digite o codigo do produto a adicionar ou 0 para sair: ");
- scanf("%d%*c", &produto);
- if (produto == 0) {
- /* encerrar a compra */
- break;
- }
- printf("Digite o total vendido desse produto: ");
- scanf("%f%*c", &totalProduto);
- totalVenda += totalProduto; /* adiciona o valor vendido na compra */
- /* TODO 1: registrar o produto e o valor do produto vendido */
- printf("Adicionado R$%.2f do produto %d a compra.\nSubtotal: R$%.2f.\n\n", totalProduto, produto, totalVenda);
- produtoVendido[nProdutos]=produto;
- totalProdutos[nProdutos]=totalProduto;
- nProdutos++;
- totalCompras[nCompras]=totalVenda;
- }
- totalCompras[nCompras]=totalVenda;
- /* TODO 2: armazene o total da nova compra no array totalCompras aqui.
- * A primeira compra deve ficar no indice 0, a segunda 1, ...
- * Exemplo: totalCompras[indice] = valor; */
- nCompras++; /* Finaliza essa compra, a próxima sera armazenada no proximo item */
- return totalVenda;
- }
- /**
- * TotalVendas: Informa o total geral vendido, somando todas as vendas já realizadas.
- */
- float TotalVendas(void)
- {
- float totalVendas = 0;
- for(i=0;i<=nCompras-1;){
- totalVendas = totalVendas + totalCompras[i];
- i++;
- }
- /* while(){
- }*/
- /* TODO percorrer cada elemento do array das compras ja vendidas
- * (ou seja, indice 0 ateh nCompras -1) e informar o total */
- return totalVendas;
- }
- /**
- * MediaVendas: Informa a media de valor das vendas.
- */
- float MediaVendas(void)
- {
- float mediaVendas = 0;
- mediaVendas = TotalVendas()/nCompras;
- /* TODO calcular a media das vendas ja realizadas */
- return mediaVendas;
- }
- /**
- * MaiorVenda: Informa o valor da maior venda já realizada.
- */
- float MaiorVenda(void)
- {
- float maiorVenda = totalCompras[0];
- for(i=0;i<=nCompras;){
- if(maiorVenda<totalCompras[i]){
- maiorVenda=totalCompras[i];
- }
- i++;
- }
- return maiorVenda;
- }
- /**
- * ListaVendas: Lista o valor de cada venda já realizada.
- */
- void ListaVendas(void)
- {
- for(i=0;i<=nCompras-1;){
- printf("Na %d Venda foi gasto %0.2f\n",i+1,totalCompras[i]);
- i++;
- }
- }
- /**
- * TotalVendidoPorProduto: Informa o total vendido do produto especificado.
- * Parametros:
- * produto (entrada): o codigo do produto
- * Retorno:
- * o total que foi vendido do produto especificado
- */
- float TotalVendidoPorProduto(int produto)
- {
- int total=0;
- for(nProdutos=0;nProdutos!=1000;){
- if(produtoVendido[nProdutos]==produto){
- total = total + totalProdutos[nProdutos];
- }
- nProdutos++;
- }
- /* TODO calulcar o total vendido do produto passado no parametro */
- return total;
- }
- /**
- * ProdutoMaisVendido: Informa o código do produto mais vendido.
- */
- int ProdutoMaisVendido(void)
- {
- float pao,mortadela,bolo,leite;
- pao=TotalVendidoPorProduto(1);
- mortadela=TotalVendidoPorProduto(2);
- bolo=TotalVendidoPorProduto(3);
- leite=TotalVendidoPorProduto(4);
- if(pao>mortadela && pao > bolo && pao > leite){
- printf("O Produto mais vendido é pao com %0.2f vendas",pao);
- }
- else{
- if(pao < mortadela && mortadela > bolo && mortadela > leite){
- printf("O Produto mais vendido é mortadela com %0.2f vendas",mortadela);
- }
- if(bolo>mortadela && bolo > pao && bolo > leite){
- printf("O Produto mais vendido é bolo com %0.2f vendas",bolo);
- }
- if(leite > mortadela && leite > bolo && pao < leite){
- printf("O Produto mais vendido é leite com %0.02f vendas",leite);
- }
- }
- /* TODO procurar qual produto mais aparece no array de produtos vendidos */
- return 0;
- }
- float OrdenarCrescente(void){
- float aux;
- int o=0;
- int y=0;
- for(o=0;o<nCompras;o++){
- for(y=o+1;y<nCompras;y++){
- if(totalCompras[o]>totalCompras[y]){
- aux=totalCompras[o];
- totalCompras[o]=totalCompras[y];
- totalCompras[y]=aux;
- }
- }
- }
- for(o=0;o<nCompras;o++){
- printf("Compras em ordens crescente %d = %0.2f\t",o+1,totalCompras[o]);
- }
- }
- /**
- * Funcao main()
- */
- int main()
- {
- float totalVenda, total, media;
- char opcao;
- /* Mensagem de boas vindas */
- printf("Ola, esse programa registra as compras"
- "de um mercadinho\n");
- /* Loop infinito com opcoes do usuario */
- while(1) {
- ApresentaMenu();
- printf("Escolha uma opcao do menu: ");
- scanf("%c%*c", &opcao);
- if (opcao == '9') {
- break;
- }
- switch (opcao) {
- case '1':
- totalVenda = NovaVenda();
- printf("Venda #%d finalizada. Total: R$%.2f.\n", nCompras, totalVenda);
- break;
- case '2':
- total = TotalVendas();
- printf("Total vendido em %d compras: R$ %.2f", nCompras, total);
- break;
- case '3':
- media= MediaVendas();
- printf("A Média de %d compras é R$%0.2f\n",nCompras,media);
- break;
- case '4':
- printf("A Maior venda foi %0.2f",MaiorVenda());
- break;
- case '5':
- ListaVendas();
- break;
- case '7':
- printf("O total Vendido de Pao foi : %0.2f\n", TotalVendidoPorProduto(1));
- printf("O total Vendido de mortadela foi : %0.2f\n", TotalVendidoPorProduto(2));
- printf("O total Vendido de bolo foi : %0.2f\n", TotalVendidoPorProduto(3));
- printf("O total Vendido de leite foi : %0.2f\n", TotalVendidoPorProduto(4));
- break;
- case '6':
- ProdutoMaisVendido();
- break;
- case '8':
- OrdenarCrescente();
- break;
- /* TODO: adicionar demais opcoes */
- default:
- printf("Opcao \'%c\' invalida, tente novamente.\n", opcao);
- }
- }
- printf("Obrigado por utilizar esse programa.");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement