Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Primeiras postagens
Primeiras postagens
Tópico Autor
Mensagens: 1

Dificuldade em linguagem C - exercício

04-12-2018 21:48

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 está apresentando um erro na tela 02, e não sei ao que se trata.

#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);
}
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17851
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Dificuldade em linguagem C - exercício

06-12-2018 13:25

Olá Adriano Carvalho. Esse fórum que você postou é sobre a linguagem CSS.

Aqui no fórum não há área específica para linguagem C. O ideal é que você poste sua dúvida em um fórum específico sobre a linguagem C.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17851
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Dificuldade em linguagem C - exercício

06-12-2018 13:25

Olá Adriano Carvalho. Esse fórum que você postou é sobre a linguagem CSS.

Aqui no fórum não há área específica para linguagem C. O ideal é que você poste sua dúvida em um fórum específico sobre a linguagem C.
0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado