Ir ao conteúdo
  • Cadastre-se

Programa para restaurante


Tiagoandre

Posts recomendados

Boas,

preciso de ajuda, o meu programa nao está a funcionar e nao sei o que alterar para que ele funcione.

Da me erro "nao foi possivel encontrar o ficheiro especificado..."

#include<stdio.h>

#include <stdlib.h>

#define pass 2563

void tot()

{

int quant=0,a;

float preco=0,total=0;

char str[50];

FILE *f;

f=fopen("saida.txt","rt");

printf("Introduza a Palavra Passe: ");

scanf("%d",&a);

if(a==pass)

{

while(feof(f)==0)

{

fscanf(f,"%s %f %d ",&str,&preco,&quant);

total=total+(preco*quant);

}

printf("O Total de vendas e: %4.2f\n\n", total);

}

else

printf("Palavra Passe Errada\n\n");

fclose(f);

}

float compra(int np, float total)

{

FILE *f;

FILE *e;

int quant=0,quanti=0,a=0;

float preco=0;

char str[50];

f=fopen("saida.txt","rt");

e=fopen("s.txt","wt");

printf("\nQuantidade: ");

scanf("%d",&quanti);

while(feof(f)==0)

{

fscanf(f,"%s %f %d ",&str,&preco,&quant);

if(a==np-1)

{

quant=quant+quanti;

total=total+(preco*quanti);

}

fprintf(e,"%s %f %d",str,preco,quant);

if(a!=9)

fprintf(e,"\n");

a++;

}

fclose(f);

fclose(e);

remove("saida.txt");

rename("s.txt","saida.txt");

return total;

}

void mostra()

{

int quant=0;

float preco=0;

char str[50];

FILE *f;

f=fopen("saida.txt","rt");

while(feof(f)==0)

{

fscanf(f,"%s %f %d ",&str,&preco,&quant);

printf("%s %2.2f %d\n",str,preco,quant);

}

printf("\n\n");

fclose(f);

}

int main()

{

char car;

float total=0;

mostra();

do

{

fflush(stdin);

printf("Insira um caracter entre 1 e 5 para prato principal!\nInsira entre A e E para Sobremesa!\nPara o total de vendas insira S!\nPara termina prima 0!\n");

scanf("%c",&car);

if(car=='s'||car=='S')

tot();

if(car=='1')

total=compra(1,total);

if(car=='2')

total=compra(2,total);

if(car=='3')

total=compra(3,total);

if(car=='4')

total=compra(4,total);

if(car=='5')

total=compra(5,total);

if(car=='a'||car=='A')

total=compra(6,total);

if(car=='b'||car=='B')

total=compra(7,total);

if(car=='c'||car=='C')

total=compra(8,total);

if(car=='d'||car=='D')

total=compra(9,total);

if(car=='e'||car=='E')

total=compra(10,total);

printf("\n\n");

mostra();

}while(car!='0');

printf("\n\nO Total da compra e: %2.2f\n",total);

return 0;

}

Algum informacao adicional, digam me pf. é um pouco urgente!

Link para o comentário
Compartilhar em outros sites

Na linha


f=fopen("saida.txt","rt");

"rt" é um modo de acesso existente? Eu não conheço.

De qualquer maneira, verifique se o arquivo existe.

Pois , também acho que seja aí o problema. Foi um colega meu que disse para meter assim, mas se souber como corrigir essa parte, se puder explicar/dar o codigo agradecia imenso!

Link para o comentário
Compartilhar em outros sites

Você deve colocar as letras que identificam a menria que o algoritmo irá tratar o programa.

Catei aqui uma listinha em espanhol

r: sólo lectura. El fichero debe existir.

w: se abre para escritura, se crea un fichero nuevo o se sobreescribe si ya existe.

a: añadir, se abre para escritura, el cursor se situa al final del fichero. Si el fichero no existe, se crea.

r+: lectura y escritura. El fichero debe existir.

w+: lectura y escritura, se crea un fichero nuevo o se sobreescribe si ya existe.

a+: añadir, lectura y escritura, el cursor se situa al final del fichero. Si el fichero no existe, se crea.

t: tipo texto, si no se especifica "t" ni "b", se asume por defecto que es "t"

b: tipo binario.

Link para o comentário
Compartilhar em outros sites

Você deve colocar as letras que identificam a menria que o algoritmo irá tratar o programa.

Catei aqui uma listinha em espanhol

Olá. Se eu lhe disser o enunciado do exercicio, e com base no que já fiz, será que me consegue meter o programa a funcionar? Você ou outro membro do forum!É que estou a desesperar e a ficar sem tempo para o acabar!:(

Link para o comentário
Compartilhar em outros sites

Amigo, o fórum serve como um suporte para que vocÊ solucione suas dúvidas... ninguém aqui gosta de ficar fazendo trabalho dos outros.

O que você pode fazer é postar suas dúvidas, e o pessoal terá prazer em respondê-las.

De qualquer maneira, poste o enunciado.

Mas eu estou a colocar uma duvida, nao estou a pedir para me resolverem o problema mas sim para me ajudarem a ver onde estou a errar!:(

Link para o comentário
Compartilhar em outros sites

Mas eu estou a colocar uma duvida, nao estou a pedir para me resolverem o problema mas sim para me ajudarem a ver onde estou a errar!:(

Se tu tá pedindo para EU colocar o programa pra funcionar, é a mesma coisa que pedir para eu fazê-lo.

Se eu lhe disser o enunciado do exercicio, e com base no que já fiz, será que me consegue meter o programa a funcionar?

Poste o enunciado... só assim há como saber qual o parâmetro que tu deve colocar no fopen().

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...