Adriano Carvalho dos Anjos 0 Denunciar post Postado Dezembro 4, 2018 Olá pessoal, sou novo na área e estou com uma dificuldade para resolver um exercício da faculdade.Estou desenvolvendo um código em C para o controle de entrada de participantes de uma palestra. Como requisitos, tenho que conter: permitir o cadastro de cada participante e emitir (mostrar na tela) um ticket com a data, a hora e o número do assento. Nenhum participante poderá ter um assento com o mesmo número do assento de outro participante. Quando não existir mais assentos disponíveis o sistema deverá emitir uma mensagem em tela e não poderá mais aceitar novos participantes. O sistema deverá reservar 5% dos assentos aos portadores de deficiência e deverá também reservar as duas primeiras filas de assentos do teatro para professores e convidados do palestrante. Ao final da palestra alguns brindes serão sorteados entre os participantes. O sistema deverá fazer o sorteio de tal modo que os convidados do palestrante não participem. Consegui desenvolver o código abaixo, mas quando compilo no DEV, ele apresenta um erro na tela 02 e não sei o que significa. Alguém poderia me ajudar? #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <windows.h> #include <ctype.h> struct participantes{ char data[11],hora[9]; int cpf,acento; char nome[30]; int tipo; //Professor=0, Convidado=1, Aluno=2 int portador; //Não=0, Sim=1 }/*MP[200]*/; //Matriz participantes struct participantes MP[200]; void tela_01(); int tela_02(); void tela_03(); int MA[10],cont; int carac[8]={179,47,196,92,179,47,196,92}; void gotoxy(int x, int y) { COORD c; c.X = x; c.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c); } int localizapart(int x){ return 0; } void inicia_participa(){ MP[0].cpf = 12345; strcpy(MP[0].nome, "João Santos"); MP[0].tipo= 2; MP[0].portador= 0; MP[1].cpf = 13245; strcpy(MP[1].nome, "Fernanda Tavares"); MP[1].tipo= 2; MP[1].portador= 0; MP[2].cpf = 14245; strcpy(MP[2].nome, "Fernando Silva"); MP[2].tipo= 2; MP[2].portador= 0; MP[3].cpf = 14255; strcpy(MP[3].nome, "Juliano Sousa"); MP[3].tipo= 2; MP[3].portador= 1; MP[4].cpf = 12255; strcpy(MP[4].nome, "Silvio Santos"); MP[4].tipo= 2; MP[4].portador= 0; MP[5].cpf = 12555; strcpy(MP[5].nome, "Augusto Silva"); MP[5].tipo= 2; MP[5].portador= 0; MP[6].cpf = 32555; strcpy(MP[6].nome, "Joaquina Soares"); MP[6].tipo= 2; MP[6].portador= 1; } void inicia_particp(){ int MA[10][10]; } void inicia_auditorio(){ int i,j,MA[10]; for(i = 0; i < 10; i++){ for(j = 0; j < 10; j++) MA[j] = 0; } } void listar(){ int i,j; printf("Listando todos participantes :\n" ); for(j=0;j<cont;j++){ printf("Nome -----: %s\n" ,MP[j].nome ); printf("cpf ---------: %d\n" ,MP[j].cpf ); printf("Tipo -------: %d\n" ,MP[j].tipo ); printf("Portador -: %d\n" ,MP[j].portador); printf("Acento ---: %d\n" ,MP[j].acento ); printf("Data ------: %s\n" ,MP[j].data ); printf("Hora ------: %s\n\n",MP[j].hora ); } } void espera(int r){ int j,w,x,y; /* variáveis simples */ HANDLE hOut; /* controle dos dispositivos do pc */ hOut= GetStdHandle(STD_OUTPUT_HANDLE); /* pega a saída padrão */ CONSOLE_SCREEN_BUFFER_INFO SBInfo; /* informações sobre a buffer da tela */ GetConsoleScreenBufferInfo(hOut, &SBInfo);/* pega a posição do cursor do console */ x = SBInfo.dwCursorPosition.X; /* X será a posição x do cursor no console */ y = SBInfo.dwCursorPosition.Y; /* Y será a posição y do cursor no console */ gotoxy(x+2,y); for(j=0;j<10;j++){ printf(" %d",9-j); for(w=0;w<8;w++){ if(kbhit()){ j=10; break; } gotoxy(x+1,y); printf("%c",carac[w]);/* gira o caractere na tela */ Sleep(r/25); /* dorme um tempinho */ } } gotoxy(x,y); printf(" \n\n"); } void tela(){ int opcao; do{ printf("1 - Cadastro\n"); printf("2 - Reserva\n"); printf("3 - Sorteio\n"); printf("4 - Listar\n"); printf("5 - Sair\n"); scanf("%d", &opcao); switch (opcao){ case 1 : tela_01();/* cadastro */ break; case 2 : tela_02();/* reserva */ break; case 3 : tela_03();/* sorteio */ break; case 4 : listar(); break; case 5 : printf("Saindo do programa !"); espera(1200); break; default : printf("Opcao invalida !\n\n"); } } while (opcao != 5); } /*==================== inicio do programa =============================================*/ int main(){ HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_SCREEN_BUFFER_INFO SBInfo; GetConsoleScreenBufferInfo(hOut, &SBInfo);/* SBInfo é do tipo intpega a posição do cursor */ tela(); return 0; } /*================================ fim do proframa =============================================*/ /* funções abaixo da main precisam ser declaradas lá no início antes do início */ /* acima da main não precisam ser declaradas */ void tela_01(){/* cadastrar */ char aux; printf("Aqui cadastrar participantes"); espera(1200); printf("\nInforme os dados do participante\n"); printf("o cpf : "); fflush(stdin); scanf("%d",&MP[cont].cpf); printf("o nome : "); fflush(stdin); scanf("%s",&MP[cont].nome); printf("o tipo : "); fflush(stdin); scanf("%d",&MP[cont].tipo); printf("portador 1 ou 0 : "); fflush(stdin); scanf("%d",&MP[cont].portador); printf("numero do acento : "); fflush(stdin); scanf("%d",&MP[cont].acento); _strdate(MP[cont].data);/* pega a data em inglês */ _strtime(MP[cont].hora);/* pega a hora atual */ aux =MP[cont].data[3]; MP[cont].data[3]=MP[cont].data[0]; MP[cont].data[0]=aux; aux =MP[cont].data[4]; MP[cont].data[4]=MP[cont].data[1]; MP[cont].data[1]=aux; aux =MP[cont].data[7]; MP[cont].data[9]=MP[cont].data[7]; MP[cont].data[8]=MP[cont].data[6]; MP[cont].data[6]='2'; MP[cont].data[7]='O';/* data formato português */ MP[cont].data[10]='\0';/* sinaliza o final da string */ cont++; } int tela_02(int cpf){/* reserva */ int part,i,inicio,fim,posicao=-1; /*part = localizapart(cpf);*/ if(MP[part].portador == 1){ inicio = 99; if(MP[part].tipo <= 1) fim = 0; else fim = 20; } else{ if (MP[part].tipo <= 1) inicio = 0; else inicio = 20; fim = 94; } if (inicio > fim){ i = inicio; do{ if (MA != 0) //i é bidimensional posicao = i; else i--; }while(posicao != -1 && i >= fim); } else{ i = inicio; do{ if(MA != 0) posicao = i; else i++; }while(posicao != -1 && (i <= fim)); } if(posicao != -1) MA[posicao] = MP[part].cpf; else printf("Auditorio sem lugar disponivel"); localizapart(cpf); /*int posicao = -1;*/ /*int i = 0;*/ while(posicao == -1 && i < 200){ if(MP[1].cpf == cpf) posicao = i; i++; } return posicao; } void tela_03(){ char aux[2]; printf("Aqui sortear participantes"); espera(1200); } Compartilhar este post Link para o post Compartilhar em outros sites