Ir para conteúdo

Programa simples para Aluguer de Cacifos - Trabalho Escolar


herculespt

Posts Recomendados

Boas meus amigos,

 

Sou iniciante em C++, em conteúdo escolar, e o professor pediu que fizesse um programa de aluguer de cacifos, muito básico com algumas informações.

 

Consegui fazer tudo, como soube... Agora nas funções 4 e 5, não sei como adicionar qual o número dos respectivos cacifos vazios e cheios.

 

Deixo aí o código caso alguem me possa ajudar.

//Programa de aluguer de cacifos
//Inserir bibliotecas

#include <iostream>
#include <string>
using namespace std;
string cacifo[20], nome, ocupado, n[20];
int i, op[6];


float main()
{
    for (i = 0; i < 21; i++)
    {
        cacifo[i] = "Vazio";
        ocupado = "Ocupado";
        cout << i;
    }
    cout << "                   Bem-Vindo ao Sistema de Aluguer de Cacifos da Escola Profissional de Valongo\n";
    cout << "\nCacifo " << i << cacifo[0] << endl;
    cout << "Cacifo 1: " << cacifo[1] << endl;
    cout << "Cacifo 2: " << cacifo[2] << endl;
    cout << "Cacifo 3: " << cacifo[3] << endl;
    cout << "Cacifo 4: " << cacifo[4] << endl;
    cout << "Cacifo 5: " << cacifo[5] << endl;
    cout << "Cacifo 6: " << cacifo[6] << endl;
    cout << "Cacifo 7: " << cacifo[7] << endl;
    cout << "Cacifo 8: " << cacifo[8] << endl;
    cout << "Cacifo 9: " << cacifo[9] << endl;
    cout << "Cacifo 10: " << cacifo[10] << endl;
    cout << "Cacifo 11: " << cacifo[11] << endl;
    cout << "Cacifo 12: " << cacifo[12] << endl;
    cout << "Cacifo 13: " << cacifo[13] << endl;
    cout << "Cacifo 14: " << cacifo[14] << endl;
    cout << "Cacifo 15: " << cacifo[15] << endl;
    cout << "Cacifo 16: " << cacifo[16] << endl;
    cout << "Cacifo 17: " << cacifo[17] << endl;
    cout << "Cacifo 18: " << cacifo[18] << endl;
    cout << "Cacifo 19: " << cacifo[19] << endl;

    cout << "\nMenu:\n" << endl;
    cout << "1 - Alugar cacifo" << endl;
    cout << "2 - Desocupar cacifo" << endl;
    cout << "3 - Ver todos os cacifos" << endl;
    cout << "4 - Ver todos os cacifos disponíveis" << endl;
    cout << "5 - Ver todos os cacifos ocupados" << endl;
    cout << "0 - Sair" << endl;
    cout << "\nDigite a sua escolha: ";
    cin >> op[i];

    while (op[i] != 0)
    {

        if (op[i] == 1)
        {
            cout << "\nEscolheu alugar um cacifo!\n" << endl;
            cout << "Informe que cacifo pretende alugar: ";
            cin >> i;
            
            while (cacifo[i] != "Vazio")
            {
                cout << "\nO cacifo ja se encontra ocupado!" << endl;
                cout << "-------------------------------" << endl;
                cout << "Escolha outro cacifo: " << endl;
                cin >> i;
            }
            
            cout << "Insira o seu nome: ";
            cin >> nome;
            cout << "O cacifo foi alugado com sucesso." << endl;
            cacifo[i] = ocupado;

            cout << "\nCacifo 0: " << cacifo[0] << endl;
            cout << "Cacifo 1: " << cacifo[1] << endl;
            cout << "Cacifo 2: " << cacifo[2] << endl;
            cout << "Cacifo 3: " << cacifo[3] << endl;
            cout << "Cacifo 4: " << cacifo[4] << endl;
            cout << "Cacifo 5: " << cacifo[5] << endl;
            cout << "Cacifo 6: " << cacifo[6] << endl;
            cout << "Cacifo 7: " << cacifo[7] << endl;
            cout << "Cacifo 8: " << cacifo[8] << endl;
            cout << "Cacifo 9: " << cacifo[9] << endl;
            cout << "Cacifo 10: " << cacifo[10] << endl;
            cout << "Cacifo 11: " << cacifo[11] << endl;
            cout << "Cacifo 12: " << cacifo[12] << endl;
            cout << "Cacifo 13: " << cacifo[13] << endl;
            cout << "Cacifo 14: " << cacifo[14] << endl;
            cout << "Cacifo 15: " << cacifo[15] << endl;
            cout << "Cacifo 16: " << cacifo[16] << endl;
            cout << "Cacifo 17: " << cacifo[17] << endl;
            cout << "Cacifo 18: " << cacifo[18] << endl;
            cout << "Cacifo 19: " << cacifo[19] << endl;
        }

        if (op[i] == 2)
        {
            cout << "\nEscolheu desocupar um cacifo!\n" << endl;
            cout << "Informe qual o cacifo que pretende desocupar: ";
            cin >> i;

            while (cacifo[i] == "Vazio")
            {
                cout << "O cacifo ja se encontra vazio!" << endl;
                cout << "Escolha outro cacifo: " << endl;
                cin >> i;
            }

            
            cout << "O cacifo foi desocupado com sucesso." << endl;
            cacifo[i] = "Vazio";

        }


        if (op[i] == 3)
        {
            cout << "\nCacifo 0: " << cacifo[0] << endl;
            cout << "Cacifo 1: " << cacifo[1] << endl;
            cout << "Cacifo 2: " << cacifo[2] << endl;
            cout << "Cacifo 3: " << cacifo[3] << endl;
            cout << "Cacifo 4: " << cacifo[4] << endl;
            cout << "Cacifo 5: " << cacifo[5] << endl;
            cout << "Cacifo 6: " << cacifo[6] << endl;
            cout << "Cacifo 7: " << cacifo[7] << endl;
            cout << "Cacifo 8: " << cacifo[8] << endl;
            cout << "Cacifo 9: " << cacifo[9] << endl;
            cout << "Cacifo 10: " << cacifo[10] << endl;
            cout << "Cacifo 11: " << cacifo[11] << endl;
            cout << "Cacifo 12: " << cacifo[12] << endl;
            cout << "Cacifo 13: " << cacifo[13] << endl;
            cout << "Cacifo 14: " << cacifo[14] << endl;
            cout << "Cacifo 15: " << cacifo[15] << endl;
            cout << "Cacifo 16: " << cacifo[16] << endl;
            cout << "Cacifo 17: " << cacifo[17] << endl;
            cout << "Cacifo 18: " << cacifo[18] << endl;
            cout << "Cacifo 19: " << cacifo[19] << endl;
        }

        if (op[i] == 4)
        {
            for (i = 0; i < 20; i++)
            {
                if (cacifo[i] == "Vazio")

                    cout << "O cacifo esta " << cacifo[i] << endl;
            }
        }

        if (op[i] == 5)
        {
            for (i = 0; i < 20; i++)
            {
                if (cacifo[i] != "Vazio")

                    cout << "O cacifo esta " << cacifo[i] << endl;
            }
        }


    cout << "\nMenu:\n" << endl;
    cout << "1 - Alugar cacifo" << endl;
    cout << "2 - Desocupar cacifo" << endl;
    cout << "3 - Ver todos os cacifos" << endl;
    cout << "4 - Ver todos os cacifos disponíveis" << endl;
    cout << "5 - Ver todos os cacifos ocupados" << endl;
    cout << "0 - Sair" << endl;
    cout << "\nDigite a sua escolha: ";
    cin >> op[i];

    }

}

 

Agradeço qualquer ajuda, para o menu 4 e 5... Eles funcionam, não entendo é como ir buscar o número de cada cacifo.

 

Obrigado

Link para o comentário
Compartilhar em outros sites

Olá, @herculespt, beleza?

Acho que antes de implementar as opções 4 e 5, precisamos acertar o seu código. Do contrário, vai ficar cada vez mais difícil. ?

Vejo os seguintes problemas:

1. main() precisar retornar int

A função main() não pode retornar um float. Tem que ser int. Falta também um return 0 no fim do seu código.

2. A variável que vai abrigar a opção não precisa ser um array

Você declara essa variável int op[6], mas como ela só vai abrigar uma opção por vez, ou seja, um número por vez, basta que seja int op.

3. Provavelmente era pra você criar um tipo cacifo

Pela estrutura do programa, me parece que a resposta mais correta seria criar uma struct ou class do tipo cacifo, ou seja, seu próprio tipo. Até dá pra fazer com as propriedades do cacifo (nome e estado - ocupado ou vazio), em variáveis independentes, mas seria mais complicado e menos eficiente. A não ser que você não precise do nome, aí basta um array de strings mesmo ou, mais eficiente, de inteiros (você pode usar 0 para vazio e 1 para ocupado). Se for nesta última opção, você só vai precisar declarar como int cacifos[20], mas acho que antes vale verificar se estes cacifos não precisam de nome ou de outras propriedades. Se precisarem, aí é melhor criar uma struct ou class (depende do que seu professor, ou professora, ensinou).

4. Você precisa usar mais loops

Ao invés de fazer:

   cout << "\nCacifo " << i << cacifo[0] << endl;
    cout << "Cacifo 1: " << cacifo[1] << endl;
    cout << "Cacifo 2: " << cacifo[2] << endl;
    cout << "Cacifo 3: " << cacifo[3] << endl;
    cout << "Cacifo 4: " << cacifo[4] << endl;
    cout << "Cacifo 5: " << cacifo[5] << endl;
    cout << "Cacifo 6: " << cacifo[6] << endl;
    cout << "Cacifo 7: " << cacifo[7] << endl;
    cout << "Cacifo 8: " << cacifo[8] << endl;
    cout << "Cacifo 9: " << cacifo[9] << endl;
    cout << "Cacifo 10: " << cacifo[10] << endl;
    cout << "Cacifo 11: " << cacifo[11] << endl;
    cout << "Cacifo 12: " << cacifo[12] << endl;
    cout << "Cacifo 13: " << cacifo[13] << endl;
    cout << "Cacifo 14: " << cacifo[14] << endl;
    cout << "Cacifo 15: " << cacifo[15] << endl;
    cout << "Cacifo 16: " << cacifo[16] << endl;
    cout << "Cacifo 17: " << cacifo[17] << endl;
    cout << "Cacifo 18: " << cacifo[18] << endl;
    cout << "Cacifo 19: " << cacifo[19] << endl;

Você pode fazer:

for (int i=0; i<20; i++) {
  cout << "Cacifo " << i + 1 << ":" << cacifo[i] << "\n";
}

Sempre que estiver repetindo linhas como essas no seu código, substitua por um loop. Você vai errar muito menos assim

Faz essas correções aí, porque pra avançar precisaremos delas. Aí a gente continua a conversa. ?

Um abraço!

Link para o comentário
Compartilhar em outros sites

2 minutos atrás, Fernando Mercês disse:

Olá, @herculespt, beleza?

Acho que antes de implementar as opções 4 e 5, precisamos acertar o seu código. Do contrário, vai ficar cada vez mais difícil. ?

Vejo os seguintes problemas:

1. main() precisar retornar int

A função main() não pode retornar um float. Tem que ser int. Falta também um return 0 no fim do seu código.

2. A variável que vai abrigar a opção não precisa ser um array

Você declara essa variável int op[6], mas como ela só vai abrigar uma opção por vez, ou seja, um número por vez, basta que seja int op.

3. Provavelmente era pra você criar um tipo cacifo

Pela estrutura do programa, me parece que a resposta mais correta seria criar uma struct ou class do tipo cacifo, ou seja, seu próprio tipo. Até dá pra fazer com as propriedades do cacifo (nome e estado - ocupado ou vazio), em variáveis independentes, mas seria mais complicado e menos eficiente. A não ser que você não precise do nome, aí basta um array de strings mesmo ou, mais eficiente, de inteiros (você pode usar 0 para vazio e 1 para ocupado). Se for nesta última opção, você só vai precisar declarar como int cacifos[20], mas acho que antes vale verificar se estes cacifos não precisam de nome ou de outras propriedades. Se precisarem, aí é melhor criar uma struct ou class (depende do que seu professor, ou professora, ensinou).

4. Você precisa usar mais loops

Ao invés de fazer:

   cout << "\nCacifo " << i << cacifo[0] << endl;
    cout << "Cacifo 1: " << cacifo[1] << endl;
    cout << "Cacifo 2: " << cacifo[2] << endl;
    cout << "Cacifo 3: " << cacifo[3] << endl;
    cout << "Cacifo 4: " << cacifo[4] << endl;
    cout << "Cacifo 5: " << cacifo[5] << endl;
    cout << "Cacifo 6: " << cacifo[6] << endl;
    cout << "Cacifo 7: " << cacifo[7] << endl;
    cout << "Cacifo 8: " << cacifo[8] << endl;
    cout << "Cacifo 9: " << cacifo[9] << endl;
    cout << "Cacifo 10: " << cacifo[10] << endl;
    cout << "Cacifo 11: " << cacifo[11] << endl;
    cout << "Cacifo 12: " << cacifo[12] << endl;
    cout << "Cacifo 13: " << cacifo[13] << endl;
    cout << "Cacifo 14: " << cacifo[14] << endl;
    cout << "Cacifo 15: " << cacifo[15] << endl;
    cout << "Cacifo 16: " << cacifo[16] << endl;
    cout << "Cacifo 17: " << cacifo[17] << endl;
    cout << "Cacifo 18: " << cacifo[18] << endl;
    cout << "Cacifo 19: " << cacifo[19] << endl;

Você pode fazer:

for (int i=0; i<20; i++) {
  cout << "Cacifo " << i + 1 << ":" << cacifo[i] << "\n";
}

Sempre que estiver repetindo linhas como essas no seu código, substitua por um loop. Você vai errar muito menos assim

Faz essas correções aí, porque pra avançar precisaremos delas. Aí a gente continua a conversa. ?

Um abraço!

Mas na escola ainda não demos o loop... só este código, o prof quer que se faça só com este codigo. usamos tambem o Else if... mas aqui não vejo como.

Link para o comentário
Compartilhar em outros sites

Ué, mas você usa loops for e while em várias partes do teu código. Não entendi...

De qualquer forma, ignorando tudo que pode ser corrigido e/ou melhorado, no caso da sua implementação das opções 4 e 5, só faltou imprimir na tela o número do cacifo, dentro do loop. Então ao invés de:

cout << "O cacifo esta " << cacifo[i] << endl;

Você pode fazer:

cout << "O cacifo " << i << " esta " << cacifo[i] << endl;

Abraço.

Link para o comentário
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

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

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...