Enviado em 17/11/2018 - 16:40h
E aí, pessoa tudo certo?#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
typedef struct kabum
{
char desc [30];
int cod;
float valor;
struct kabum *ant;
} p;
p *novo, *topo=NULL;
int i=0;
int quant;
FILE *arquivo;
int inserir ()
{
printf("\n\n QUANTOS PRODUTOS QUER CADASTRAR?: ");
scanf("%d",&quant);
for (i=0; i<quant; i++)
{
novo=(p *) malloc (2*sizeof(p));
fflush(stdin);
printf("\n\n PRODUTO: ");
gets(novo->desc);
printf(" CODIGO: ");
scanf("%d",&novo->cod);
printf(" VALOR: R$");
scanf("%f",&novo->valor);
novo->ant=NULL;
if(topo==NULL) //pilha vazia?
{
topo=novo;
}
else
{
novo->ant=topo;
topo=novo;
}
}
return (0);
}
int mostrar ()
{
p *tmp;
tmp=topo;
if (tmp==NULL) //aqui ele testa p/ saber se a pilha está fazia
{
printf ("\n\n PILHA VAZIA! INSIRA UM DADO E TENTE NOVAMENTE.\n");
}
else
{
while (tmp!=NULL)
{
printf("\n\n PRODUTO: %s\n", tmp->desc);
printf(" CODIGO: %d\n",tmp->cod);
printf(" VALOR: R$%0.2f\n\n",tmp->valor);
tmp=tmp->ant;
}
}
return (0);
}
int deletar ()
{
char alerta;
p *extra;
extra = topo;
if (topo == NULL)
{
printf ("\n\n PILHA VAZIA!\n");
}
else
{
printf("\n\n TEM CERTEZA DE DESEJA EXCLUIR A PILHA? (S/N): ");
scanf("%c",&alerta);
alerta=tolower(alerta);
if (alerta=='s')
{
topo = topo -> ant;
free(extra);
printf("\n PILHA DELETADA! \n");
}
if (alerta=='n')
{
printf("\n PILHA NAO DELETADA! \n");
}
if (alerta!='s' && alerta!='n')
{
printf("\n\n OPCAO INVALIDA\n");
}
}
return(0);
}
int salvar()
{
p *tmp;
tmp=topo;
arquivo=fopen("text.txt","wb");
/* if (tmp==NULL)
{
printf("\n\n ERRO AO SALVAR, PILHA ESTA VAZIA. INSIRA UM DADO E TENTE NOVAMENTE! \n");
}*/
while (tmp!=NULL)
{
fprintf(arquivo,"\n\n PRODUTO: %s \n",tmp->desc);
fprintf(arquivo," CODIGO: %d \n",tmp->cod);
fprintf(arquivo," VALOR: %f ",tmp->valor);
tmp=tmp->ant;
}
fclose(arquivo);
printf("\n\n ARQUIVO SALVO COM SUCESSO!\n");
return 0;
}
int abrir()
{
p *tmp;
tmp=topo;
arquivo=fopen("text.txt","rt");
if (arquivo == NULL)
{
printf("\n\n NAO FOI POSSIVEL ABRIR O ARQUIVO. SALVE E TENTE NOVAMENTE! \n");
}
char frase [10000];
while (fgets(frase, 1000,arquivo)!=NULL)
{
printf("%s\n",frase);
}
fclose(arquivo);
return 0;
}
void sobre ()
{
printf("\n\n");
printf(" *================================ SOBRE ================================*\n");
printf(" | |\n");
printf(" |PROGRAMA CRIADO UTILIZANDO ALOCACAO DINAMICA, STRUCTS E PONTEIROS, COMO|\n");
printf(" |FORMA DE AVALIACAO DA DISCIPLINA DE ESTRUTURA DE DADOS, DO PROFESSOR: |\n");
printf(" |GUSTAVO QUIRINO E APRESENTADO EM SALA DE AULA, COM A FINALIDADE DE |\n");
printf(" |OBTER UMA DAS NOTAS DA SEGUNDA UNIDADE. |\n");
printf(" | |\n");
printf(" | IDENTIFICACAO |\n");
printf(" | |\n");
printf(" |IFBA - CAMPUS BARREIRAS |\n");
printf(" |TURMA: 732 |\n");
printf(" |CURSO: INFORMATICA |\n");
printf(" |PROFESSOR: GUSTAVO QUIRINO |\n");
printf(" |COMPONENTES: LUCAS GOMES, MATEUS SENE E RICARDO CARVALHO |\n");
printf(" | |\n");
printf(" =========================================================================\n");
}
int main ()
{
char op_menu=0, op_menu_interno=0; /*variaveis zeradas porque pode ser que o programa seja exacutado mais de uma vez
por isso eu zerei todas, para não pegar os valores das vezes anteriores. A cada nova execução
todas são zeradas*/
do
{
printf("\n\n");
printf(" *======================= MENU PRINCIPAL =========================*\n");
printf(" | |\n");
printf(" | |\n");
printf(" | A - INSERIR B - MOSTRAR |\n");
printf(" | |\n");
printf(" | C - DELETAR D - EDITAR |\n");
printf(" | |\n");
printf(" | E - BUSCAR F - SALVAR |\n");
printf(" | |\n");
printf(" | G - ABRIR H - SOBRE |\n");
printf(" | |\n");
printf(" | S - SAIR |\n");
printf(" | |\n");
printf(" | |\n");
printf(" ==================================================================\n");
fflush(stdin);
printf("\n Digite...: ");
scanf("%c", &op_menu);
op_menu=tolower(op_menu);
fflush(stdin); //limpa o buffer do teclado
switch(op_menu)
{
case 'a' :
fflush(stdin);
system("cls"); //limpa a tela
inserir();
printf("\n");
do
{
printf(" 0 - Menu principal: ");
scanf("%s",&op_menu_interno);
}
while (op_menu_interno!='0');
system("cls");
break;
fflush(stdin);
case 'b':
system("cls");
mostrar();
printf("\n");
do
{
printf(" 0 - Menu principal: ");
scanf("%s",&op_menu_interno);
}
while (op_menu_interno!='0');
system("cls");
break;
case 'c':
fflush(stdin);
system("cls");
deletar();
printf("\n");
do
{
printf(" 0 - Menu principal: ");
scanf("%s",&op_menu_interno);
}
while (op_menu_interno!='0');
system("cls");
break;
fflush(stdin);
case 'd':
fflush(stdin);
system("cls");
printf("você digitou: 4");
printf("\n");
do
{
printf(" 0 - Menu principal: ");
scanf("%s",&op_menu_interno);
}
while (op_menu_interno!='0');
system("cls");
break;
fflush(stdin);
case 'e':
case 'f':
fflush(stdin);
system("cls");
salvar();
printf("\n");
do
{
printf(" 0 - Menu principal: ");
scanf("%s",&op_menu_interno);
}
while (op_menu_interno!='0');
system("cls");
break;
case 'g':
fflush(stdin);
system("cls");
abrir();
printf("\n");
do
{
printf(" 0 - Menu principal: ");
scanf("%s",&op_menu_interno);
}
while (op_menu_interno!='0');
system("cls");
break;
case 'h':
system("cls");
sobre();
printf("\n");
do
{
printf(" 0 - Menu principal: ");
scanf("%s",&op_menu_interno);
}
while (op_menu_interno!='0');
system("cls");
break;
case 's':
system("cls");
printf("\n");
printf("Finalizando programa...");
printf("\n");
exit(0);
break;
default:
system("cls");
printf("Codigo invalido! Digite novamente");
break;
}
}
while (op_menu!=5);
return (0);
}
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
É cada coisa que me aparece! - não é só 3% (1)
Alguma pessoa pode me ajudar com drriver Core i3 7020u (Debian 12)? (2)
Mikrotik não mostra bytes nem packtes (1)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código [RESOLVID... (4)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta