Pessoal este é um trabalho escolar meu, que pede que um sistema armazene dados ( como nome, cpf, portador de necessidades, professor ou aluno) e efetue um cadastro do participante da palestra antes que ele possa efetuar compra do ingresso, não estou sabendo fazer com que a matriz armazene esses dados e mostra nas cadeiras caso ela já esteja ocupada ou não.
sendo que as duas primeiras fileiras são destinados a professores e a última destinada a deficiente, se puderem me darem dicas agradeço, segue o que eu consegui fazer abaixo
//estrutura dos dados
struct participante {
char nome[30];
float cpf;
int cargo; //0 - Professor; 1- Aluno; 2- Convidado
int pne; //0 - Sem necessidades especiais; 1- Portador de necessidades especiais
};
typedef struct participante part;
int main(void) {
char matriz[ROW][COL];
int opcao;
int loopContinue = TRUE;
inicializa(matriz); //Iniciliza a matriz com valores .(Livre)
do {
system("cls");//Limpa a tela
opcao = menuOpcao();
switch (opcao) {
case 1:
system("cls");
system("cls");
mostrarPainel(matriz);//Mostra o Painel atualizado
comprar(matriz); // Realiza a compra de uma cadeira no painel, marcando c/ um X
break;
case 2:
system("cls");
system("cls");
mostrarPainel(matriz);
reservar(matriz); //Realiza a reserva de uma cadeira no painel, marcando c/ um R
break;
case 3:
system("cls");
mostrarPainel(matriz);
getchar();
break;
case 4:
loopContinue = FALSE; //condicao para saída do programa
}
} while (loopContinue);
getchar();
return 0;
}
void cadastro(char matriz[ROW][COL]) {
int row, col;
printf("digite seu nome: ");
row = linhaX();
col = colunaY();
system("pause");
}
void inicializa(char matriz[ROW][COL]) {
int i, j;
for (i = 1; i <= ROW; i++)
for (j = 1; j <= COL; j++)
matriz[j] = '.';
}
void mostrarPainel(char matriz[ROW][COL]) {
int i, j;
printf("\n\n %c PAINEL DE OCUPACOES %c\n\n", 16, 17);
printf(" ");
for (i = 1; i <= COL; i++)
printf("%d ", i);
for (i = 1; i <= ROW; i++) {
printf("\n\n %d", i);
for (j = 1; j <= COL; j++)
printf(" (%c)", matriz[j]);
}
//apresenta o menu na tela
legenda();
system("pause");
}
int menuOpcao() {
int opcao = 5;
do {
system("cls");
printf("\n\n %c MENU %c\n\n", 16, 17);
printf(" %c 1- Comprar %c\n", 16, 17);
if (opcao <= 0 || opcao > 5) {
printf("\n\n\n DIGITE APENAS VALORES CORESPONDENTES AO MENU !!");
getchar();
}
} while (opcao <= 0 || opcao > 5);
return opcao;
}
//apresenta a legenda na tela
void legenda() {
printf("\n\n\n .-Livre X-Ocupado R-Reservado\n\n");
}
//efetica a compra da cadeira
void comprar(char matriz[ROW][COL]) {
int row, col;
printf("\n COMPRA DE CADEIRAS\n\n");
row = linhaX();
col = colunaY();
if (matriz[row][col] == '.') {
matriz[row][col] = 'X';
printf("\n\n COMPRA EFETIVADA COM SUCESSO !!");
}
else if (matriz[row][col] == 'X')
printf("\n\n CADEIRA já OCUPADA!! ESCOLHA OUTRA !!\n\n");
else if (matriz[row][col] == 'R')
printf("\n\n CADEIRA já RESERVADA!! ESCOLHA OUTRA !!\n\n");
getchar();
}
//reserva a cadeira no teatro
void reservar(char matriz[ROW][COL]) {
int row, col;
printf("\n\n RESERVA DE CADEIRAS\n\n");
row = linhaX();
col = colunaY();
if (matriz[row][col] == '.') {
matriz[row][col] = 'R';
printf("\n\n RESERVA EFETIVADA COM SUCESSO !!");
}
else if (matriz[row][col] == 'X')
printf("\n\n CADEIRA já OCUPADA!! ESCOLHA OUTRA !!\n\n");
else if (matriz[row][col] == 'R')
printf("\n\n CADEIRA já RESERVADA !! ESCOLHA OUTRA !!\n\n");
getchar();
}
//ler a linha oferecida pelo usuario
int linhaX() {
int row;
printf(" Linha: "); scanf("%d", &row);
if (row > 100)
{
printf("\t\n Esta cadeira não existe!!! ");
}
return row;
}
//ler a coluna oferecida pelo usuario
int colunaY() {
int col;
printf(" Coluna: "); scanf("%d", &col);
if (col > 100)
{
printf("\t\n Esta cadeira não existe!!! ");
}
return col;
}
Pergunta
Vinicius Prates
Pessoal este é um trabalho escolar meu, que pede que um sistema armazene dados ( como nome, cpf, portador de necessidades, professor ou aluno) e efetue um cadastro do participante da palestra antes que ele possa efetuar compra do ingresso, não estou sabendo fazer com que a matriz armazene esses dados e mostra nas cadeiras caso ela já esteja ocupada ou não.
sendo que as duas primeiras fileiras são destinados a professores e a última destinada a deficiente, se puderem me darem dicas agradeço, segue o que eu consegui fazer abaixo
#include <stdio.h>
#include<stdlib.h>
#include "string.h"
#include "time.h"
#define COL 10
#define ROW 10
#define FALSE 0
#define TRUE 1
void cadastro(char matriz[ROW][COL]);
void inicializa(char matriz[ROW][COL]);
void mostrarPainel(char matriz[ROW][COL]);
void comprar(char matriz[ROW][COL]);
void reservar(char matriz[ROW][COL]);
void legenda();
int menuOpcao();
int colunaY();
int linhaX();
//estrutura dos dados
struct participante {
char nome[30];
float cpf;
int cargo; //0 - Professor; 1- Aluno; 2- Convidado
int pne; //0 - Sem necessidades especiais; 1- Portador de necessidades especiais
};
typedef struct participante part;
int main(void) {
char matriz[ROW][COL];
int opcao;
int loopContinue = TRUE;
inicializa(matriz); //Iniciliza a matriz com valores .(Livre)
do {
system("cls");//Limpa a tela
opcao = menuOpcao();
switch (opcao) {
case 1:
system("cls");
system("cls");
mostrarPainel(matriz);//Mostra o Painel atualizado
comprar(matriz); // Realiza a compra de uma cadeira no painel, marcando c/ um X
break;
case 2:
system("cls");
system("cls");
mostrarPainel(matriz);
reservar(matriz); //Realiza a reserva de uma cadeira no painel, marcando c/ um R
break;
case 3:
system("cls");
mostrarPainel(matriz);
getchar();
break;
case 4:
loopContinue = FALSE; //condicao para saída do programa
}
} while (loopContinue);
getchar();
return 0;
}
void cadastro(char matriz[ROW][COL]) {
int row, col;
printf("digite seu nome: ");
row = linhaX();
col = colunaY();
system("pause");
}
void inicializa(char matriz[ROW][COL]) {
int i, j;
for (i = 1; i <= ROW; i++)
for (j = 1; j <= COL; j++)
matriz[j] = '.';
}
void mostrarPainel(char matriz[ROW][COL]) {
int i, j;
printf("\n\n %c PAINEL DE OCUPACOES %c\n\n", 16, 17);
printf(" ");
for (i = 1; i <= COL; i++)
printf("%d ", i);
for (i = 1; i <= ROW; i++) {
printf("\n\n %d", i);
for (j = 1; j <= COL; j++)
printf(" (%c)", matriz[j]);
}
//apresenta o menu na tela
legenda();
system("pause");
}
int menuOpcao() {
int opcao = 5;
do {
system("cls");
printf("\n\n %c MENU %c\n\n", 16, 17);
printf(" %c 1- Comprar %c\n", 16, 17);
printf(" %c 2- Reservar %c\n", 16, 17);
printf(" %c 3- Mostrar Painel %c\n", 16, 17);
printf(" %c 4- Exit %c\n\n", 16, 17);
printf(" %c 5- cadastro %c\n", 16, 17);
printf(" opcao: "); scanf("%d", &opcao);
if (opcao <= 0 || opcao > 5) {
printf("\n\n\n DIGITE APENAS VALORES CORESPONDENTES AO MENU !!");
getchar();
}
} while (opcao <= 0 || opcao > 5);
return opcao;
}
//apresenta a legenda na tela
void legenda() {
printf("\n\n\n .-Livre X-Ocupado R-Reservado\n\n");
}
//efetica a compra da cadeira
void comprar(char matriz[ROW][COL]) {
int row, col;
printf("\n COMPRA DE CADEIRAS\n\n");
row = linhaX();
col = colunaY();
if (matriz[row][col] == '.') {
matriz[row][col] = 'X';
printf("\n\n COMPRA EFETIVADA COM SUCESSO !!");
}
else if (matriz[row][col] == 'X')
printf("\n\n CADEIRA já OCUPADA!! ESCOLHA OUTRA !!\n\n");
else if (matriz[row][col] == 'R')
printf("\n\n CADEIRA já RESERVADA!! ESCOLHA OUTRA !!\n\n");
getchar();
}
//reserva a cadeira no teatro
void reservar(char matriz[ROW][COL]) {
int row, col;
printf("\n\n RESERVA DE CADEIRAS\n\n");
row = linhaX();
col = colunaY();
if (matriz[row][col] == '.') {
matriz[row][col] = 'R';
printf("\n\n RESERVA EFETIVADA COM SUCESSO !!");
}
else if (matriz[row][col] == 'X')
printf("\n\n CADEIRA já OCUPADA!! ESCOLHA OUTRA !!\n\n");
else if (matriz[row][col] == 'R')
printf("\n\n CADEIRA já RESERVADA !! ESCOLHA OUTRA !!\n\n");
getchar();
}
//ler a linha oferecida pelo usuario
int linhaX() {
int row;
printf(" Linha: "); scanf("%d", &row);
if (row > 100)
{
printf("\t\n Esta cadeira não existe!!! ");
}
return row;
}
//ler a coluna oferecida pelo usuario
int colunaY() {
int col;
printf(" Coluna: "); scanf("%d", &col);
if (col > 100)
{
printf("\t\n Esta cadeira não existe!!! ");
}
return col;
}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.