Ir para conteúdo
Fórum Script Brasil
  • 0

Algoritmo de armazenar cadastro ( dúvidas)


Vinicius Prates

Pergunta

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

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...