Buscar

ATIVIDADE 01

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

/*1 – (1,0 ponto) Faça um programa que cadastre 5 produtos. Para cada produto devem ser cadastrados
código do produto, preço e quantidade estocada. Os dados devem ser armazenados em uma lista
simplesmente encadeada e não ordenada. Posteriormente, receber do usuário a taxa de desconto (ex.:
digitar 10 para taxa de desconto de 10%). Aplicar a taxa digitada ao preço de todos os produtos
cadastrados e finalmente mostrar um relatório com o código e o novo preço. O final desse relatório deve
apresentar também a quantidade (contagem) de produtos com quantidade estocada superior a 500.*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
struct No{
 int codigo;
 float preco;
 int qtde;
 struct No *prox;
};
typedef struct No No;
struct Lista{
 struct No *inicio;
 struct No *fim;
};
typedef struct Lista Lista;
No *aux;
No *anterior;
Lista* cria_lista(){
	 Lista* li = (Lista*) malloc(sizeof(Lista));
 if(li != NULL){
 li->fim = NULL;
 li->inicio = NULL;
 }
 return li;
}
void insere_produto(Lista *li){
 No *novo =(No*) malloc(sizeof(No));
 printf("Digite o codigo do produto: ");
 scanf("%d",&novo->codigo);
 printf("Digite o preco do produto: ");
 scanf("%f",&novo->preco);
 printf("Digite a quantidade em estoque do produto: ");
 scanf("%d",&novo->qtde);
 
 if(li->inicio == NULL){
 li->inicio = novo;
 li->fim = novo;
 li->fim->prox = NULL;
 }else{
 li->fim->prox = novo;
 li->fim = novo;
 li->fim->prox = NULL;
 }
 printf("\nProduto inserido com sucesso!");
 getch();
}
void aplica_taxa(Lista *li, float taxa){
 if(li->inicio == NULL){
 printf("\nLista Vazia!!");
 }else{
 aux = li->inicio;
 do{
 aux->preco = aux->preco - aux->preco * (taxa/100);
 aux = aux->prox;
 }while(aux != NULL);
 printf("Taxa aplicada com sucesso!");
 }
 getch();
}
void imprime_relatorio(Lista *li){
 if(li->inicio == NULL){
 printf("\nLista Vazia!!");
 }else{
 int quantidade = 0;
 aux = li->inicio;
 printf(">>Relatorio<<\n");
 do{
 printf("\nCodigo do produto %d ", aux->codigo);
 printf("\nPreco do produto %.2f \n\n", aux->preco);
 if(aux->qtde > 500)
 quantidade++;
 aux = aux->prox;
 }while(aux != NULL);
 printf("\nQuantidade de produtos com quantidade estocada superior a 500: %d", quantidade);
 }
 getch();
}
void esvaziar_lista(Lista *li){
 if(li->inicio == NULL){
 printf("\nLista Vazia!!");
 }else{
 aux = li->inicio;
 do{
 li->inicio = li->inicio->prox;
 free(aux);
 aux = li->inicio;
 }while(aux != NULL);
 printf("\nLista Esvaziada!!");
 }
 getch();
}
int main(){
 int i;
 float taxa;
 Lista *li = cria_lista();
 for(i = 1; i <= 5; i++){
 system("CLS");
 printf("Insira o produto numero %d\n", i);
 insere_produto(li);
 }
 system("CLS");
 printf("Insira a taxa de desconto: ");
 scanf("%f", &taxa);
 aplica_taxa(li, taxa);
 system("CLS");
 imprime_relatorio(li);
 esvaziar_lista(li);
 return 0;
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando