Jump to content

roberto de souza gomes

Members
  • Content count

    1
  • Joined

  • Last visited

Community Reputation

0 Comum

About roberto de souza gomes

Recent Profile Visitors

119 profile views
  1. 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); }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.