codigo fonte em c
#include
typedef struct lista{ char produto; char data; float quantidade; float preco; float iva; struct lista *proximo, *anterior;
};
struct lista *primeiro; struct lista *actual; struct lista *anterior; struct lista *proximo; struct lista *gravar; char op; char prod[50]; char dat[10]; float quant[5]; float prec[5]; float i[4];
void insere(void){ system("cls"); printf("Inserir novo registo\n\n"); primeiro = NULL; for(; { scanf("%s %s %d %d %d", &prod, &dat, &quant, &prec, &i); op = getch(); actual = malloc( sizeof(struct lista) );
(*actual).produto = prod[50];
(*actual).data = dat[10];
(*actual).quantidade = quant[5];
(*actual).preco = prec[5];
(*actual).iva = i[4];
(*actual).proximo = primeiro; primeiro = actual; if( op == 42) break; } primeiro->proximo = NULL; for(actual = primeiro; actual != NULL; actual = (*actual).proximo) printf( "%s %s %d %d %d\n", (*actual).produto, (*actual).data, (*actual).quantidade,
(*actual).preco, (*actual).iva); system("pause"); }
void listar(void){ system("cls"); actual = primeiro; while( actual != NULL )
{
printf( "%c %c %f %f %f\n", (*actual).produto, (*actual).data, (*actual).quantidade,
(*actual).preco, (*actual).iva); actual = (*actual).proximo;
}
system("pause");
}
void elimina(void){ char op; printf("Elimina produto\n\n"); if(primeiro == NULL){ system("cls"); printf("Nenhum registro armazenado...\n\n"); system("pause"); return;
}
else{ actual = primeiro->proximo; do{ system("cls"); printf("Pressione + e - para alternar entre os registros, sair e confirmar\n\n"); printf("Produto: %s\n\nData: %s\n\nQuantidade: %s\n\nPreco: %s\n\nIVA: %s\n", actual->produto,actual->data,actual->quantidade,actual->preco,actual->iva); op = getch(); switch (op){ case 43:{ if (actual->proximo == primeiro) actual = primeiro->proximo; else actual = actual->proximo; break; } case 45:{ if (actual->anterior == primeiro) actual =