Faça um Programa que Cadastre 5 Produtos
Por: Wallace Santos • 1/6/2022 • Trabalho acadêmico • 1.099 Palavras (5 Páginas) • 239 Visualizações
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 Prod{
int codigo;
float preco;
int qtde;
struct Prod *prox;
};
/*typedef para simplificar*/
typedef struct Prod Prod;
struct Lista{
struct Prod *inicio; /*aponta para o elemento do início da lista*/
struct Prod *fim; /*aponta para o elemento do fim da lista*/
};
typedef struct Lista Lista;
/*necessitaremos também de dois ponteiros auxilares *aux e *anterior */
Prod *aux;
Prod *anterior;
Lista* cria_lista(){
/*controlar a lista*/
Lista* li = (Lista*) malloc(sizeof(Lista));
if(li != NULL){
/*Se a lista está inicialmente vazia, inicio e fim apontam para NULL */
li->fim = NULL;
li->inicio = NULL;
}
return li;
}
/*produto sera inserido no fim da lista*/
void insere_produto(Lista *li){
/*a cada inserção alocamos dinamicamente um espaço para um novo nó*/
Prod *novo =(Prod*) malloc(sizeof(Prod));
/*cadastro dos dados do produto*/
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 cadastrado, tecle enter para inserir o proximo!");
getch();
}
void aplica_taxa(Lista *li, float taxa){
if(li->inicio == NULL){
printf("\nSem Produtos!");
}else{
aux = li->inicio;
do{
aux->preco = aux->preco - aux->preco * (taxa/100);
aux = aux->prox;
}while(aux != NULL);
printf("Desconto aplicado, tecle enter para continuar!");
}
getch();
}
void imprime_relatorio(Lista *li){
if(li->inicio == NULL){
printf("\nSem Produtos!");
}else{
...