Jump to content
ruir888

o que e que esta a contecer

Recommended Posts

ruir888

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

struct menu//defenir as variaveis que estão no menu ou nele interveêm
{
int pass;//password
int a;//meu principal
int teste;//confirmação
int b;//menus secundarios
};
struct gerir
{
   int c;//código do produto
   int st;//usado para guardar a quantidade dos produtos antes de estes serem guardados no .txt
   int co;//preço unitario
};

int main()
{    system ("color F9");
    setlocale(LC_ALL,"protuguese");
    struct menu m;
    struct gerir g;
FILE *fp0=fopen("stock0.txt","w+");//fixeiros txt para guardar as quantidades de cada produto
FILE *fp1=fopen("stock1.txt","w+");
FILE *fp2=fopen("stock2.txt","w+");
FILE *fp3=fopen("stock3.txt","w+");
FILE *fp4=fopen("stock4.txt","w+");
FILE *fp5=fopen("stock5.txt","w+");
FILE *fp6=fopen("stock6.txt","w+");
FILE *fp7=fopen("stock7.txt","w+");
FILE *fp8=fopen("stock8.txt","w+");
FILE *fp9=fopen("stock9.txt","w+");
FILE *fpA=fopen("stockA.txt","w+");
FILE *fpB=fopen("stockB.txt","w+");
FILE *fpC=fopen("stockC.txt","w+");
FILE *fpD=fopen("stockD.txt","w+");


FILE *ap0=fopen("preco0.txt","w+");//fixeiros txt para guardar os preços dos produtos
FILE *ap1=fopen("preco1.txt","w+");
FILE *ap2=fopen("preco2.txt","w+");
FILE *ap3=fopen("preco3.txt","w+");
FILE *ap4=fopen("preco4.txt","w+");
FILE *ap5=fopen("preco5.txt","w+");
FILE *ap6=fopen("preco6.txt","w+");
FILE *ap7=fopen("preco7.txt","w+");
FILE *ap8=fopen("preco8.txt","w+");
FILE *ap9=fopen("preco9.txt","w+");
FILE *apA=fopen("precoA.txt","w+");
FILE *apB=fopen("precoB.txt","w+");
FILE *apC=fopen("precoC.txt","w+");
FILE *apD=fopen("precoD.txt","w+");

    printf("digite a password:");
    scanf("%i",&m.pass);
    if(m.pass!=12345)
    {
        printf("acesso não autorizado");
    }else

    {
        printf("Acesso autorizado\nBEM VINDO\n\n");
        do{
               printf("digite o que pretende fazer:\n[1]-gerir stock\n[2]-registar vendas\n[3]-obter relatorio\n[4]-sair\n");
               scanf("%i",&m.a);
               switch(m.a)
               {
               case 1:
                   do
                       {
                           printf("digite:\n[1]-adiconar nvo produto\n[2]-excluir produto\n");
                           scanf("%i",&m.b);
                           if(m.b==1)
                           {
                               do{
                                   printf("digite código do produto (sendo que este tem de ser sequencial e de 1 a 14):");
                               scanf("%i",&g.c);
                               switch(g.c)
                               {
                               case 1:printf("digite a quantidade de produto que tem em stock:");
                                      scanf("%i",&g.st);
                                      fprintf(fp0,"%i",g.st);

                                      printf("\ndigite o preço unitario:");
                                      scanf("%i",g.co);
                                      fprintf(ap0,"%i",g.co);break;

                               case 2:printf("digite a quantidade de produto que tem em stock:");
                                      scanf("%i",&g.st);
                                      fprintf(fp1,"%i",g.st);

                                      printf("\ndigite o preço unitario:");
                                      scanf("%i",g.co);
                                      fprintf(ap1,"%i",g.co);break;

                               case 3:printf("digite a quantidade de produto que tem em stock:");
                                      scanf("%i",&g.st);
                                      fprintf(fp2,"%i",g.st);

                                      printf("\ndigite o preço unitario:");
                                      scanf("%i",g.co);
                                      fprintf(ap2,"%i",g.co);break;

                               case 4:printf("digite a quantidade de produto que tem em stock:");
                                      scanf("%i",&g.st);
                                      fprintf(fp3,"%i",g.st);

                                      printf("\ndigite o preço unitario:");
                                      scanf("%i",g.co);
                                      fprintf(ap3,"%i",g.co);break;

                               case 5:printf("digite a quantidade de produto que tem em stock:");
                                      scanf("%i",&g.st);
                                      fprintf(fp4,"%i",g.st);

                                      printf("\ndigite o preço unitario:");
                                      scanf("%i",g.co);
                                      fprintf(ap4,"%i",g.co);break;

                               case 6:printf("digite a quantidade de produto que tem em stock:");
                                      scanf("%i",&g.st);
                                      fprintf(fp5,"%i",g.st);

                                      printf("\ndigite o preço unitario:");
                                      scanf("%i",g.co);
                                      fprintf(ap5,"%i",g.co);break;

                               case 7:printf("digite a quantidade de produto que tem em stock:");
                                      scanf("%i",&g.st);
                                      fprintf(fp6,"%i",g.st);

                                      printf("\ndigite o preço unitario:");
                                      scanf("%i",g.co);
                                      fprintf(ap6,"%i",g.co);break;

                               case 8:printf("digite a quantidade de produto que tem em stock:");
                                      scanf("%i",&g.st);
                                      fprintf(fp7,"%i",g.st);

                                      printf("\ndigite o preço unitario:");
                                      scanf("%i",g.co);
                                      fprintf(ap7,"%i",g.co);break;

                               case 9:printf("digite a quantidade de produto que tem em stock:");
                                      scanf("%i",&g.st);
                                      fprintf(fp8,"%i",g.st);

                                      printf("\ndigite o preço unitario:");
                                      scanf("%i",g.co);
                                      fprintf(ap8,"%i",g.co);break;

                               case 10:printf("digite a quantidade de produto que tem em stock:");
                                      scanf("%i",&g.st);
                                      fprintf(fp9,"%i",g.st);

                                      printf("\ndigite o preço unitario:");
                                      scanf("%i",g.co);
                                      fprintf(ap9,"%i",g.co);break;

                               case 11:printf("digite a quantidade de produto que tem em stock:");
                                      scanf("%i",&g.st);
                                      fprintf(fpA,"%i",g.st);

                                      printf("\ndigite o preço unitario:");
                                      scanf("%i",g.co);
                                      fprintf(apA,"%i",g.co);break;

                               case 12:printf("digite a quantidade de produto que tem em stock:");
                                      scanf("%i",&g.st);
                                      fprintf(fpB,"%i",g.st);

                                      printf("\ndigite o preço unitario:");
                                      scanf("%i",g.co);
                                      fprintf(apB,"%i",g.co);break;

                               case 13:printf("digite a quantidade de produto que tem em stock:");
                                      scanf("%i",&g.st);
                                      fprintf(fpC,"%i",g.st);

                                      printf("\ndigite o preço unitario:");
                                      scanf("%i",g.co);
                                      fprintf(apC,"%i",g.co);break;

                               case 14:printf("digite a quantidade de produto que tem em stock:");
                                      scanf("%i",&g.st);
                                      fprintf(fpD,"%i",g.st);

                                      printf("\ndigite o preço unitario:");
                                      scanf("%i",g.co);
                                      fprintf(apD,"%i",g.co);break;


                               }printf("deseja acrescentar mais algum produto?\n[1]-sim\n[2]-não");
                               scanf("%i",&m.teste);

                               }while(m.teste==1);

                           }else if(m.b==2)
                           {do
                           {
                               printf("digite o código do produto que deseja excluir");
                               scanf("%i",g.c);
                               switch(g.c)
                               {
                               case 1:fprintf(fp0,"");

                                      fprintf(ap0,"");break;

                               case 2:fprintf(fp1,"");

                                      fprintf(ap1,"");break;

                               case 3:fprintf(fp2,"");

                                      fprintf(ap2,"");break;

                               case 4:fprintf(fp3,"");

                                      fprintf(ap3,"");break;

                               case 5:fprintf(fp4,"");

                                      fprintf(ap4,"");break;

                               case 6:fprintf(fp5,"");

                                      fprintf(ap5,"");break;

                               case 7:fprintf(fp6,"");

                                      fprintf(ap6,"");break;

                               case 8:fprintf(fp7,"");

                                      fprintf(ap7,"");break;

                               case 9:fprintf(fp8,"");

                                      fprintf(ap8,"");break;

                              case 10:fprintf(fp9,"");

                                      fprintf(ap9,"");break;

                              case 11:fprintf(fpA,"");

                                      fprintf(apA,"");break;

                              case 12:fprintf(fpB,"");

                                      fprintf(apB,"");break;

                              case 13:fprintf(fpC,"");

                                      fprintf(apC,"");break;

                              case 14:fprintf(fpD,"");

                                      fprintf(apD,"");break;


                               }printf("deseja excluir mais algum produto?\n[1]-sim\n[2]-não");
                               scanf("%i",&m.teste);

                               }while(m.teste==1);

                           }


                   }while(m.teste==1);break;

               }






        }while (m.a==3 || m.a==1 || m.a==2);


    }






   return 0;
}

eu tenho um projeto final para fazer mas quando chega a parte de acrescentar produtos diz que que o programa deixa de responder. Alguem me sabe dizer pq?

Edited by pwseo
syntax highlight!...............

Share this post


Link to post
Share on other sites
HappyHippyHippo

não vou comentar a qualidade do código, vou deixar isso para o teu professor.

no que toca ao teu problema, faz a limpeza do buffer de entrada após as chamadas scanf


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
ruir888

eu to no 10 ano por isso é normal que n seja pro nenhum mas obg pela ajuda

Share this post


Link to post
Share on other sites
ruir888

desculpa a minha ignorância mas como é que eu limpo o buffer?

ja descobri mas não resultou pode ser problema das variáveis ou do txt??

Share this post


Link to post
Share on other sites
HappyHippyHippo

eu to no 10 ano por isso é normal que n seja pro nenhum mas obg pela ajuda

sem comentários

pode ser problema das variáveis ou do txt??

olha bem para as tuas chamadas da função scanf ?

deverás ter algum exemplo nos teus apontamentos das aulas


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
donatello

Estás a usar um editor de texto ou a trabalhar numa IDE? Qual a mensagem de erro que recebes?

Share this post


Link to post
Share on other sites
PsySc0rpi0n

Eu tentei apenas corrigir a indentação e os parêntesis que andavam muitos fora de sítio...

https://ideone.com/Eianqx

Obviamente ainda pode estar algo errado.

Uma sugestão...

O code dos switch cases pode ser feito em 1/4 das linhas que tens. Basta para isso criares uma função que faça o que tens em cada case, enviando para ela os parâmetros que necessitas e depois nos cases fazes apenas a chamada da função e o break...

PS: acho que te faltam ainda dois cases do switch mais externo. E também, todos os switchs devem ter um default para evitar erros que venham sem a gente contar!

switch (opt){
   case 1: /*code here*/
   /*...
     ...
   */
   default: /*code here*/
}

Edited by PsySc0rpi0n

Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.