Ir ao conteúdo

Posts recomendados

Postado

Estou com um exercício da Faculdade para fazer ele é simples mas estou com dificuldade de printar alguem pode me ajuda ....

 

o que eu fiz ( acho que da ruim) 

#include <stdio.h>
#include <stdlib.h>
#define LUGARES 48


void ocupar(int janela[], int poltrona[]);
void consultar(int janela[], int poltrona[]);


int main(){
    int i, opcao, janela[LUGARES], poltrona[LUGARES]; //janela = impares, poltrona = pares

    for(i=0;i<LUGARES;i++){
        if(i%2){
            janela = 0;
            poltrona = -1;
        } else {
            janela = -1;
            poltrona = 0;
        }
    }

    printf("\tGerenciamento de Onibus\nDigite a opcao desejada:\n");
    do {
        printf("(1) Ocupar uma poltrona\n(2) Consultar poltrona\n(4) Sair\n-->");
        scanf("%d", &opcao);
        system("CLS");


        switch(opcao){
            case 1: ocupar(janela, poltrona); break;
            case 2: consultar(janela, poltrona); break;
            case 4: exit(1); break;
        }

    } while (1);

    return(0);
}

void ocupar(int janela[], int poltrona[]){
    int x;
    printf("Digite qual poltrona deseja ocupar: ");
    scanf("%d", &x);
    if(x%2){
        janela[x] = 1;
    } else {
        poltrona[x] = 1;
    }
    printf("Poltrona ocupada com sucesso.\n");
}

void consultar(int janela[], int poltrona[]){
    int x;
    printf("Digite qual poltrona deseja consultar: ");
    scanf("%d", &x);
    if(x%2){
        if(janela[x]){
            printf("Esta poltrona esta ocupada.\n");
        } else {
            printf("Esta poltrona esta livre.\n");
        }
    } else {
        if(poltrona[x]){
            printf("Esta poltrona esta ocupada.\n");
        } else {
            printf("Esta poltrona esta livre.\n");
        }
    }
}

 

 

é o ex4 e tem que printa igual o desenho e n to conseguindo 

LPI - 1ª Lista - 2.2017.pdf

  • Curtir 1
Postado

@Matheus Ponce     no c ou c++ não tem como fazer esse desenho,  já a parte que faz as reservas está funcionando, mas precisa modificar alguns comandos,  então seu código ficaria assim :

#include <stdio.h>
#include <stdlib.h>
#define LUGARES 48
int janela[LUGARES],poltrona[LUGARES];
void ocupar();
void consultar();

int main(){
    int j, opcao; /*//janela = impares, poltrona = pares*/
    for(j=0;j<LUGARES;j++){
        if(j%2){
            janela[j] = 0;
            poltrona[j] = -1;
        } else {
            janela[j] = -1;
            poltrona[j] = 0;
        }
    }
    printf("\tGerenciamento de Onibus\nDigite a opcao desejada:\n");
    do {
        printf("(1) Ocupar uma poltrona\n(2) Consultar poltrona\n(4) Sair\n--> ");
        scanf("%d", &opcao);
        system("CLS");

        switch(opcao){
            case 1: ocupar(); break;
            case 2: consultar(); break;
            case 4: exit(1);
        }
    } while (1);
    return(0);
}
void ocupar(){
    int x;
    printf("Digite qual poltrona deseja ocupar: ");
    scanf("%d", &x);
    if(x%2){
        janela[x] = 1;
    } else {
        poltrona[x] = 1;
    }
    printf("Poltrona ocupada com sucesso.\n");
}
void consultar(){
    int x;
    printf("Digite qual poltrona deseja consultar: ");
    scanf("%d", &x);
    if(x%2){
        if(janela[x]){
            printf("Esta poltrona esta ocupada.\n");
        } else {
            printf("Esta poltrona esta livre.\n");
        }
    } else {
        if(poltrona[x]){
            printf("Esta poltrona esta ocupada.\n");
        } else {
            printf("Esta poltrona esta livre.\n");
        }
    }
}

 

  • Curtir 1
  • Obrigado 1
Postado

@devair1010 então tem como fazer o desenho mas não deitado de pé mesmo ... aee queria deixa o codigo simples pra ele printa direto o desenho e quando eu digito a poltrona ele subistitui o numero por ** ae ele esta reservado e quando eu digita o numero reservado ele só avisa que esta reservado , tendeu? ( Pode Me Ajudar )

dsds.png

adicionado 8 minutos depois

@devair1010  tem como me da um help nisso ?

  • Curtir 1
Postado

@Matheus Ponce     esse desenho não está como o que foi pedido, mas tudo bem pode ser assim mesmo, então você precisa verificar no vetor se a posição está ocupada ou não, se estiver ocupada você precisa colocar no vetor um número que pode ser 2 para informar que esta posição está ocupada e ir na posição no desenho que corresponde a do vetor e imprimir os caractere 

asterisco asterisco e na hora de ver se está ocupada se no vetor for número 2 então está ocupada.

  • Curtir 1
  • Confuso 1
Postado

@Matheus Ponce     experimente esse seu código com algumas modificações :

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
#define LUGARES 48
int janela[LUGARES],poltrona[LUGARES];
void ocupar();
void consultar();
void gotoxy(int x,int y){
    COORD c;
    c.X = x;
    c.Y = y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}
int main(){
    int j,l,co,l2,opcao; /*//janela = impares, poltrona = pares*/
    for(j=0;j<LUGARES;j++){
        if(j%2){
            janela[j] = 0;
            poltrona[j] = -1;
        } else {
            janela[j] = -1;
            poltrona[j] = 0;
        }
    }
    system("cls");
    do {
        system("cls");
        l=2;l2=l;co=60;
        for(j=0;j<LUGARES-24;j+=2){
            gotoxy(co,l);
            printf("||");
            if(janela[j]==1){
                printf("**");
            }
            else{
                if(j<6){
                    printf("0%d",j*2+1);
                }else{printf("%d",j*2+1);}
            }
            l++;
            gotoxy(co,l);
            printf("||");
            if(poltrona[j]==1){
                printf("**");
            }
            else{
                if(j<4){
                    printf("0%d",j*2+2);
                }else{printf("%d",j*2+2);}
            }
            l+=4;
            if(j<21){
            gotoxy(co,l);
            printf("||");
            if(poltrona[j+1]==1){
                printf("**");
            }
            else{
                if(j<4){
                    printf("0%d",j*2+4);
                }else{printf("%d",j*2+4);}
            }
            l++;
            gotoxy(co,l);
            printf("||");
            if(janela[j+1]==1){
                printf("**");
            }
            else{
                if(j<4){
                    printf("0%d",j*2+3);
                }else{printf("%d",j*2+3);}
            }
            }
            l=l2;
            co-=4;
        }
        for(j=15;j<68;j++){
            gotoxy(j,1);
            printf("%c",205);
            gotoxy(j,9);
            printf("%c",205);
            if(j<22){
                gotoxy(14,j-13);
                printf("%c",186);
            }
        }
        gotoxy(14,1);printf("%c",201);
        gotoxy(14,9);printf("%c",200);
        gotoxy(0,12);
        printf("Gerenciamento de Onibus\nDigite a opcao desejada:\n\n");
        printf("(1) Ocupar uma poltrona\n(2) Consultar poltrona\n(4) Sair\n --%c ",16);
        do{
            opcao=0;
            opcao=getch()-48;
            Sleep(200);
        }while(opcao<1||opcao>4||opcao==3);
        system("CLS");

        switch(opcao){
            case 1: ocupar(); break;
            case 2: consultar(); break;
            case 4: exit(1);
        }
    } while (1);
    return(0);
}
void ocupar(){
    int x;
    char a;
    do{
        do{
            a='s';
            printf("Digite qual poltrona deseja ocupar: ");
            scanf("%d", &x);
            if(x < 1 || x > 46){printf("So Pode Numeros Positivos e Maior Que Zero e Menor Que 47\n");}
        }while(x < 1 || x > 46);
        if(x%2){
            janela[x/2-0] = 1;
        } else {
            poltrona[x/2-1] = 1;
        }
        printf("Poltrona ocupada com sucesso.\n");
        printf("Quer Ocupar Outra Poltrona   S/N");
        a=getch();printf("\n");
    }while(a!='n');
}
void consultar(){
    int x;
    char a;
    do{
        a='s';
        do{
            printf("Digite qual poltrona deseja consultar: ");
            scanf("%d",&x);
            if(x < 1 || x > 46){printf("So Pode Numeros Positivos e Maior Que Zero e Menor Que 47\n");}
        }while( x < 1 || x > 46 );
        if(x%2){
            if(janela[x/2-0] == 1){
                printf("Esta poltrona esta ocupada.\n");
            } else {
                printf("Esta poltrona esta livre.\n");
            }
        } else {
            if(poltrona[x/2-1] == 1){
                printf("Esta poltrona esta ocupada.\n");
            } else {
                printf("Esta poltrona esta livre.\n");
            }
        }
        printf("\nQuer Consultar Outra poltrona  S/N ");
        fflush(stdin);
        a=getch();
        printf("\n");
    }while(a!='n'&&a!='N');
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!