Ir para conteúdo

roberto de souza gomes

Members
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que roberto de souza gomes postou

  1. roberto de souza gomes

    programa não permitir reservar uma cadeira ja reservada em c.

    boa noite pessoal, eu sou estudante de ADS , e sou novo na programacao, estou desenvolvendo um sistema para um trabalho final do curso, um sistema de controle de entrada e saida de usuarios, mas nele esta acontecendo um erro, quando eu digito um numero de uma cadeira que ja esta comprada ele aceita, estou vendo e revendo o codigo mas nao vejo erro. alguem pode apontar o meu erro? obrigado, segue o codigo: #include <stdio.h> #include <time.h> #include <stdlib.h> #define linha 11 #define coluna 11 #define valor_minimo 29 #define valor_maximo 121 int valida(int num, int *ant, int cont); void edita (int sort,int cont); void chamaSorteio(); void CadeiraNum();//declara a funcao que preenche os lugares com numeros void painel();//declara a funcao que mostra a matriz void compra();//declara a funcao que faz a compra dos lugares void cad(); int resp; int matriz[linha][coluna];// FILE *ponteiroArquivo; struct cadastro{ char nome [50]; char cpf [15]; char email [30]; }; struct cadastro aux; int main(){ int opcao=0; int contador=0,lugares=92; char nomes[30]; char timeStr[9]; struct tm *data_hora_atual; time_t segundos; time(&segundos); data_hora_atual = localtime(&segundos); CadeiraNum(matriz);//aqui complementa a funcao cadeiraNum(); colocando os numeros. do{ //a partir daqui e mostrado para o usuario as opcoes do programa principal system("cls"); printf("\n\n MENU \n\n"); printf(" 1- Reservar Cadeira (Ainda restam (%d) lugares)\n",lugares-contador); printf(" 2- Mostrar Painel de lugares\n"); printf(" 3- Sorteio\n"); printf(" 4- SAIR \n"); printf(" opcao: "); scanf("%d",&opcao); switch(opcao){ case 1: system("cls"); //cad(); // getch(); system("cls"); painel(matriz);//antes de escolher o lugar antes e chamado a matriz e o usuario pode ver o painel, inclusive com os lugares do teatro comprados atualizados. texto: printf("\n\nDigite o numero da cadeira desejada: \n"); scanf("%d",&resp); if ((resp<=0) || (resp>=122)){ printf("Esta cadeira não existe!!!Escolha outra!\n"); goto texto; getch(); }else if ((resp>=1) && (resp<=22)){ printf("Esta cadeira ja esta reservada!!!Escolha outra!\n"); goto texto; getch(); } else if ((resp>=23) && (resp<=28)){ printf("Esta cadeira é preferencial!!!Escolha outra!\n"); goto texto; getch(); }else if (matriz[linha][coluna]==0){ printf("Esta cadeira esta ocupada!!! Escolha outra!\n"); goto texto; getch(); } else (printf(" \n")); ponteiroArquivo=fopen("arquivo.txt","r"); fgets(nomes,30,ponteiroArquivo); fclose(ponteiroArquivo); system("cls"); _strtime( timeStr ); printf_s( "\tParabens %s pela sua compra no dia %d/%d/%d as %s \n\nSeu ticket sera enviado por e-mail!!\n",aux.nome, data_hora_atual->tm_mday,data_hora_atual->tm_mon+1,data_hora_atual->tm_year+1900,timeStr); printf("seu assento e %d\n",resp); contador++; system("pause"); break; case 2: system("cls"); system("cls"); painel(matriz);//chama a funcao painel que contem a matriz printf("\n\n"); system("pause"); break; case 3: system("cls"); chamaSorteio(); system("pause"); break; //o usuario escolhendo este caso o programa retorna nada e fecha case 4: return 0; break; default: printf("OPCAO INVALIDA!!!\n"); system("pause"); break; } }while(1==1); system("pause"); return(0); } //esta e a funcao responsavel por preencher todos os lugares do teatro com numeros! void CadeiraNum(){ int c,l; int num; num=1; for(l=1;l<=linha;l++) for(c=1;c<=coluna;c++){ matriz[l][c]=num; num++; } matriz[3][1]=333; matriz[3][2]=333; matriz[3][3]=333; matriz[3][4]=333; matriz[3][5]=333; matriz[3][6]=333; /**/ matriz[1][1]=222; matriz[1][2]=222; matriz[1][3]=222; matriz[1][4]=222; matriz[1][5]=222; matriz[1][6]=222; matriz[1][7]=222; matriz[1][8]=222; matriz[1][9]=222; matriz[1][10]=222; matriz[1][11]=222; /**/ matriz[2][1]=222; matriz[2][2]=222; matriz[2][3]=222; matriz[2][4]=222; matriz[2][5]=222; matriz[2][6]=222; matriz[2][7]=222; matriz[2][8]=222; matriz[2][9]=222; matriz[2][10]=222; matriz[2][11]=222; } //esta e a funcao que cria as linhas e as colunas do teatro matriz void painel(){ int c,l; printf("\n PAINEL DE OCUPACOES \n\n"); printf(" "); for(c=1;c<=coluna;c++) printf("\t%d",c); for(l=1;l<=linha;l++){ printf("\n\n\t%d",l); for(c=1;c<=coluna;c++) if(matriz[l][c]==222){ printf("\t(R)"); }else if(matriz[l][c]==resp){ matriz[l][c]=0; printf("\t(C)"); }else if(matriz[l][c]==0){ printf("\t(c)"); } else if(matriz[l][c]==333){ printf("\t(P)"); } else printf("\t(%d)",matriz[l][c]); } printf("\n\n\t(29-121) - LUGAR LIVRE (p) - Assento preferencial (C) - CADEIRA JA COMPRADA (R) CADEIRA RESERVADA\n"); } //funcao que marca no lugar escolhido o valor 0 guardando o lugar /*void compra(int l, int c){ if(resp==matriz[linha][linha]){ matriz[linha][coluna] = 0; } } */ void cad(){ ponteiroArquivo=(fopen("arquivo.txt","a")); // "a" - cria um arquivo novo, ou modifica um ja existente. getchar(); printf("\t\tSEJA BEM VINDO AO TEATRO DA UNIP!!\n\n"); printf("Antes de comprar a cadeira vamos fazer um breve cadastro........\n\npresssione ENTER para continuar......\n\n\n"); getch(); printf("Digite seu nome: "); fgets (aux.nome, 50 ,stdin); getchar(); printf("Digite seu CPF: "); fgets (aux.cpf, 15 ,stdin); getchar(); printf("Digite seu Email: "); fgets (aux.email , 30 ,stdin); //gravando com fprintf no arquivo printf("\n"); fprintf(ponteiroArquivo, "\n------------------------\n"); fprintf(ponteiroArquivo,"nome: %s\n",aux.nome); fprintf(ponteiroArquivo,"CPF: %s\n",aux.cpf); fprintf(ponteiroArquivo,"Email: %s\n",aux.email); fclose(ponteiroArquivo);//fecha o arquivo } void chamaSorteio(){ int i; int sorteados[4]; srand(time(NULL)); printf("---------|SORTEIO\n\n"); for(i=0;i<4;i++){ sorteados = valor_minimo+rand()%(valor_maximo-valor_minimo); if(i==0){ edita(sorteados,i); } else { sorteados = valida(sorteados,sorteados,i); edita(sorteados,i); } } printf("------------------------------------------"); getch(); printf("\nParabens a todos os premiados!!\n\n"); getch(); } int valida(int num, int *ant, int cont){ int aux; for(aux=0;aux<cont;aux++){ while(num==*(ant+aux)){ num=valor_minimo+rand()%(valor_maximo-valor_minimo); } } return num; } void edita (int sort,int cont){ printf("\t%d°premiado usuario da caderia : %.2d\n",cont+1,sort); }
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.