Ir ao conteúdo
  • Cadastre-se

André Luiz Feijó

Membro Júnior
  • Posts

    9
  • Cadastrado em

  • Última visita

posts postados por André Luiz Feijó

  1. Exercícios: Crie uma classe que representa um funcionário, registrando seu nome, salário e data de admissão. Em seguida, crie uma classe que represente um departamento de uma empresa, registrando o nome e os funcionários que nele trabalham (para uso de vetores, considere um máximo de 100 funcionários). Por fim, crie uma classe que representa uma empresa, registrando seu nome, CNPJ e departamentos (considere um máximo de 10 departamentos). Faça um programa que:

    • Crie uma empresa;

    • Adicione a esta empresa alguns departamentos;

    • Adicione aos departamentos alguns funcionários;

    • Dê aumento de 10% a todos os funcionários de um determinado departamento;

    • Transfira um funcionário de um departamento para outro.  

     

    Ainda não está pronto o código, algumas coisas eu não fiz exatamente igual como o pedido, mas estou com certos problemas. Alguém pode me ajudar?

     

    #include <cstdio>
    #include <cstdlib>
    #include <iostream>
    #include <locale.h>
    using namespace std;
    
    class Departamento //cria a classe para um departamento
    {
        public:
            char nome[256];
            string funcionarios[100];
            double salario[100];
    };
    
    
    //prototipe as funções
    void createDeparts(Departamento* departs[], int nCount);
    
    int main(int nNumberofArgs, char* pszArgs[])
    {
        setlocale(LC_ALL, "Portuguese");
    
        int nNumberofDeparts; //crie a variável nNumberofDeparts
        char nomeEmpresa[256], CNPJ[256]; //crie as variáveis nomeEmpresa e CNPJ
    
        cout << "Nome da sua empresa: ";
        cin.getline(nomeEmpresa, 256); //leia nomeEmpresa
    
        cout << "CNPJ: ";
        cin.getline(CNPJ, 256); //leia CNPJ
    
        cout << "Número de departamentos: ";
        cin >> nNumberofDeparts; //leia o número de departamentos
    
        Departamento departs[nNumberofDeparts];
    
        puts("=============================================");
    
        createDeparts(&departs, nNumberofDeparts); //chame a função createDeparts
    
        system("PAUSE");
        return 0;
    }
    
    //crie funções
    void createDeparts(Departamento* departs[], int nCount) //crie createDeparts
    {
        int numFunc; //crie numFunc
    
        for(int i = 0; i < nCount; i++)
        {
            cout << i+1 << "° Departamento: ";
            cin >> *departs[i].nome; //leia o nome dos departamentos
    
            cout << "Número de funcionários nesse departamento: ";
            cin >> numFunc; //leia o número de funcionários
    
            for(int n = 0; n < numFunc; n++)
            {
                cout << n+1 << "° funcionário: "; 
                cin >> *departs[n].funcionarios[n]; //leia o nome dos funcionários
    
                cout << "Salário: ";
                cin >> *departs[n].salario[n]; //leia o salário de cada um
            }
        }
    }

     

    Erros:

     

     

    Sem título.pngcddcdc.png

    • Curtir 1
  2. Obrigado!

     

    adicionado 25 minutos depois

    @devair1010 Pensei um pouco e consegui fazer dessa forma a função (Funcionou):

    void countStr(char Str[])
    {
        int n = 0;
        for(int i = 0; i < strlen(Str); i++)
        {
            if(isspace(Str[i]))
            {
                if(i == 0)
                {
                }
                if(isspace(Str[i-1]))
                {
                }
                else
                {
                    n++;
                }
            }
        }
        cout << n+1 << endl;
    }

     

    • Curtir 2
  3. Questão: Fazer uma rotina que recebe um string como parâmetro e imprime quantas palavras (separadas por espaços em branco) o mesmo contém.

    Fiz o seguinte: 

    #include <cstdio>
    #include <cstdlib>
    #include <iostream>
    #include <locale.h>
    using namespace std;
    
    void countStr(char Str[]);
    
    int main(int nNumberofArgs, char* pszArgs[])
    {
        setlocale(LC_ALL, "Portuguese");
    
        char Str[257];
    
        cout << "Digite uma String: ";
        cin.getline(Str, 257);
    
        countStr(Str);
    
        system("PAUSE");
        return 0;
    }
    
    void countStr(char Str[])
    {
        int n = 0;
    
        if(isdigit(Str[0]))
        {
            n++;
        }
    
        for(int i = 1; Str[i] != '\0'; i++)
        {
            if(isspace(Str[i]))
            {
                if(isdigit(Str[i + 1]))
                {
                    n++;
                }
            }
        }
        cout << n << endl;
    }

    Acontece que sempre dá um erro, alguém pode me ajudar a corrigir?!

    • Curtir 1
  4. 2 horas atrás, Mauro Britivaldo disse:
    
    void pontInfo (char Str[], int nCount) {
    
        cout << "Pontuação: ";
    
        char cAux[nCount];
        char nArrayPont[] = {'?', '.', '!', ':', ',', ';', '-'};
        int nSize = strlen (nArrayPont); // #Aqui tem um erro.
    
    
    
      ...

    A função strlen () exige, em seu parâmetro, uma argumento string.

    A única coisa que distingue um vetor de caracteres (char) de uma string (char) é o ultimo elemento, porque uma vetor string tem o caractere '\0' no fim da lista. Todas as funções que manipulam strings [strlen...strcmp] só terminam suas tarefas quando esse caractere for encontrado. Daí a array nArrayPont só precisa dele no fim da lista para strlen retorna a largura certa.

     

    Assim:

    
    void pontInfo (char Str[], int nCount) {
    
        cout << "Pontuação: ";
    
        char cAux[nCount];
        char nArrayPont[] = {'?', '.', '!', ':', ',', ';', '-', '\0'};
        int nSize = strlen (nArrayPont); // Correto retorno para nSize.
    
    
    
      ...

    :thumbsup: Resolve aí

    Obrigado!

    Acontece que erros ainda estão sendo retornados...

    Ex.: Se eu boto "-", ele me retorna "?, o, G"

    • Curtir 1
  5. Acontece que, sou novo em C++ e baixei um PDF com exercícios pra treinar... o Exercícios diz "Faça um programa que lê uma String e diz quantas letras minusculas ela tem, quantos números e quantos caracteres de pontuação"

    -Fiz a seguinte função:

    void pontInfo(char Str[], int nCount)
    {
        cout << "Pontuação: ";
    
        char cAux[nCount];
        char nArrayPont[] = {'?', '.', '!', ':', ',', ';', '-'};
        int nSize = strlen(nArrayPont);
    
        for(int n = 0; n < nCount; n++)
        {
            for(int j = 0; j < nSize; j++)
            {
                if(Str[n] == nArrayPont[j])
                {
                    cAux[n] = nArrayPont[j];
                }
            }
        }
    
        int nAuxLen = strlen(cAux);
        char nPont[nAuxLen];
    
        if(nAuxLen == 0)
        {
            cout << "Nenhuma" << endl;
        }
    
        for(int i = 0; i < nAuxLen; i++)
        {
            nPont[i] = cAux[i];
        }
    
        for(int i = 0; i < nAuxLen; i++)
        {
            if(i < nAuxLen - 1)
            {
                cout << nPont[i] << ", ";
            }
            else
            {
                cout << nPont[i] << endl;
            }
        }
    }

    Sempre acontece dá erro.. Alguém pode me explicar onde eu erro?

  6. Sou iniciante em C++ e ando fazendo alguns exercícios. Estou em um exercício onde o programa pede ao usuário 10 números e depois apresenta o maior e o menor.

    Fiz o código da seguinte forma: 

     

    #include <cstdio>
    #include <cstdlib>
    #include <iostream>
    #include <locale.h>
    
    using namespace std;
    
    
    
    int main(int nNumberofArgs, char* pszArgs[])
    {
        setlocale(LC_ALL, "portuguese");
    
    
    
        int i, final, nMax = 10;
        double nAux, nNumeros[10];
    
    
    
        printf("Determine 10 números\n");
    
    
    
        for(i = 0; i < nMax; i++)
        {
            cout << i + 1 << ": ";
            cin >> nNumeros;
        }
    
    
    
        do{
            final = 0;
            for(i = 0; i < nMax; i++)
            {
                if(nNumeros > nNumeros[i+1])
                {
                    nAux = nNumeros;
                    nNumeros = nNumeros[i+1];
                    nNumeros[i+1] = nAux;
                    final = 1;
                }
            }
        }while(final);
    
    
    
        cout << "Maior número: " << nNumeros[9] << endl;
        cout << "Menor número: " << nNumeros[0] << endl;
    
        system("PAUSE");
        return 0;
    }

     

    De fato, o menor valor funciona, porém o maior sempre imprime lixo. Já li e reli milhares de vezes o código, mudei várias coisas... Nada Funciona... 

    Alguma dica??

     

    • Curtir 1
  7. Bom, já estou há um tempo lendo o livro "Começando a programar em C++ para leigos", como o nome diz, é um livro para leigos que estão começando. Bom, acredito que só esse livro não vá me ensinar "tudo" sobre C++. A partir daí, crio duas dúvidas:

     

    1 - O "C++ para leigos" (também do Stephen R. Davis) seria um livro que traz informações novas e mais avançadas em relação ao "Começando a programar em C++ para leigos"?

     

    2 - Alguém poderia me recomendar mais livros sobre C++, Básicos... Intermediários... Avançados...?

     

    Obrigado desde já!!

    • Curtir 1

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!