Ir ao conteúdo

Posts recomendados

Postado

Bom, estou criando um projeto para a faculdade, do qual preciso fazer um programa para uma pizzaria em C, devido ao baixo orçamento da pizzaria.  

Sou iniciante em programação ainda. 

Tem uma parte onde eu CADASTRO as coisas, como bebida, sabores de pizzas, pedidos etc. E tem outra onde EXIBE o que eu cadastrei. Fica salvo em "arquivos txt". PORÉM, PEDIDOS não está retornando o que eu cadastrei. Ele abre e volta ao menu anterior, sem mostrar as informaçoes cadastradas. Estou tentando a dias encontrar o erro, mas não encontro. 

Irei tentar deixar a parte que estou enfrentando problema, para que vocês possam me auxiliar. 

 

 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>



typedef struct bebida{
    char nome[50], quantidade[50];
    float preco;
}bebida;
FILE *arq1;
bebida beb;

typedef struct sabores{
    char sabor[50];
    float preco;

}sabores;
FILE *arq2;
sabores sab;





typedef struct funcionario{
    char nome[50];
    char funcao [60];
    float salario;
    int idade;
}funcionario;
FILE *arq3;
funcionario iolo;



//PEDIDO

typedef struct pedidos{
    char nome[50], rua[50], complemento[10];
    char pizza[50], bebida[50];
    int telefone, numero;
    char bebida2[50], sabores2[50];
}pedidos;
FILE *arq4;
pedidos ped;



//AQUI É O CODIGO DE ONDE CADASTRO AS COISAS

else if(opcao1=='4'){

                    arq4 = fopen("Pedido.txt","a+");
                    if (arq4 == NULL){
                    printf("Erro ao abrir arquivo\n");
                    return;
                    }

                    system("cls");
                    printf("\tCADASTRANDO PEDIDO...\n\n");
                    printf("Nome do Cliente: ");
                    fflush(stdin);
                    gets(ped.nome);
                    printf("Rua: ");
                    fflush(stdin);
                    gets(ped.rua);
                    printf("Numero: ");
                    scanf("%d", &ped.numero);
                    printf("Complemento: ");
                    fflush(stdin);
                    gets(ped.complemento);
                    printf("Telefone: ");
                    scanf("%d", &ped.telefone);
                    printf("\n");
                    arq2 = fopen("SaboresPizzaria.txt","a+");
                        if (arq2 == NULL)
                        {
                            printf("Erro ao abrir arquivo\n");
                            return;
                        }
                        fread(&sab,sizeof(sabores),1,arq2);
                        printf("\n------------------------------------------------------------------\n");
                        while (!feof(arq2)){
                            printf("Sabor: %s \tPreco: %.2f \n", sab.sabor, sab.preco);
                            fread(&sab,sizeof(sabores),1,arq2);
                        }
                        fclose(arq2);
                        printf("------------------------------------------------------------------\n");
                    printf("\nSabor da Pizza: ");
                    fflush(stdin);
                    gets(ped.sabores2);
                    printf("\n");
                    arq1 = fopen("BebidasPizzaria.txt","r+");
                    if (arq1 == NULL)
                    {
                        printf("Erro ao abrir arquivo\n");
                        return;
                    }
                    arq1 = fopen("BebidasPizzaria.txt","r+");
                        if (arq1 == NULL)
                        {
                            printf("Erro ao abrir arquivo\n");
                            return;
                        }
                        fread(&beb,sizeof(bebida),1,arq1);
                        printf("\n------------------------------------------------------------------\n");
                        while (!feof(arq1)){
                            printf("Marca: %s %s \tPreco: %.2f \n", beb.nome, beb.quantidade, beb.preco);
                            fread(&beb,sizeof(bebida),1,arq1);
                        }
                        fclose(arq1);
                        printf("------------------------------------------------------------------\n");
                    printf("\nBebida Desejada: ");
                    fflush(stdin);
                    gets(ped.bebida2);

                    fwrite(&ped,sizeof(pedidos),1,arq1);
                    fclose(arq1);

                    system("pause");

                }



///E ESSE É O DE EXIBIR O PEDIDO, O QUAL VOLTA PRO MENU ANTERIOR





else if(opcao2=='4'){

                    printf("*****PEDIDOS*****\n\n");

                    arq4 = fopen("PedidoPizzaria.txt","r+");
                        if (arq4 == NULL)
                        {
                            printf("Erro ao abrir arquivo\n");
                            return;
                        }
                        fread(&ped,sizeof(pedidos),1,arq4);
                        while (!feof(arq4)){
                            printf("\n------------------------------------------------------------------\n");
                            printf("Nome do Cliente: %s\n", ped.nome);
                            printf("Rua: %s\n", ped.rua);
                            printf("Numero: %d \tComplemento: %s\n", ped.numero, ped.complemento);
                            printf("Telefone: %d\n", ped.telefone);
                            printf("Pizza: %s\n", ped.sabores2);
                            printf("Bebida: %s\n", ped.bebida2);
                            printf("\n------------------------------------------------------------------\n");
                            fread(&ped,sizeof(pedidos),1,arq4);
                        }
                        fclose(arq4);
                    system("pause");
                }

 

DEIXEI ELE ANEXADO AQUI  CASO QUEIRAM VER ELE POR COMPLETO

CODGO.txt

Postado

Você está indo por um caminho muito complicado para fazer isso. 

 

Sugiro pensar mais nos dados e o caminho das informações. 

 

ar1 arq2 arq3 e arq4 talvez não sejam nomes significativos para os arquivos. Use nomes significativos.

 

O mais seguro pra você fazer é ler os arquivos na carga do programa e carregar o que tiver no disco. Todos eles. 

 

São vetores apenas afinal.

 

Não misture entrada e saída com as estruturas em si. Só vai te atrasar.

 

Depois de carregados os valores dos arquivos você controla tudo com simples índices para os vetores de estruturas. Ao final grava tudo.

 

Se é um programa sério, você cria um arquivo intermediário onde você registra tudo que vai acontecendo. Tem gente que chama de log, de journal, sei lá. O objetivo é que se cair a força ou o programa cancelar você poder recuperar tudo.

 

Escreva se tem interesse nisso.

 

Vou ver seu programa depois

 

 

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!