Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
gabrielleletice

construtores, vetores e destrutor

Recommended Posts

olá, como poderia armazenar a nota de mais de um aluno em um vetor nessa classe ?

#include <iostream>
#include <cstdlib>
#include <string>

using namespace std;
// questao 2
class Aluno
{
public:
string nome;
int nota1,nota2;
float media;
};
void setValues(Aluno&);
void getValues(const Aluno&);
void setValues(Aluno& alu)
{
cout<< "Informe o nome do aluno: ";
getline(cin, alu.nome);
cout<< "Informe a primeira nota : ";
cin>> alu.nota1;
cin.ignore();
cout<< "Informe a segunda nota : ";
cin>> alu.nota2;
cin.ignore();
alu.media = (alu.nota1 + alu.nota2)/2;
}
void getValues(const Aluno&alu)
{
cout<< "Nome: " << alu.nome<< endl;

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

No se entende muito bem sua consulta. Pode reformular a pergunta?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • @vangodp na verdade, eu estou interessada em criar 3 objetos da mesma classe, no caso, aluno, e poder destruir um caso eu queira

    adicionado 2 minutos depois

    @vangodp no caso, eu coloquei todos os alunos em só uma classe e se eu criasse um destrutor iria destruir toda a classe e não só um aluno como eu queria 

    #include <iostream>
    #include <cstdlib>
    #include <string>
    
    using namespace std;
    // questao 2
    class Alunos
    {
    public:
    
    string nome1;
    string nome2;
    string nome3;
    int nota11,nota12,nota21,nota22,nota31,nota32;
    float media1,media2,media3;
    };
    void setValues(Alunos&);
    void getValues(const Alunos&);
    void setValues(Alunos& alu)
    {
    cout<< "Informe o nome do aluno 1: ";
    getline(cin, alu.nome1);
    cout<< "Informe a primeira nota : ";
    cin>> alu.nota11;
    cin.ignore();
    cout<< "Informe a segunda nota : ";
    cin>> alu.nota12;
    cin.ignore();
    alu.media1 = (alu.nota11 + alu.nota12)/2;
    cout<< "Informe o nome do aluno 2: ";
    getline(cin, alu.nome2);
    cout<< "Informe a primeira nota : ";
    cin>> alu.nota21;
    cin.ignore();
    cout<< "Informe a segunda nota : ";
    cin>> alu.nota22;
    cin.ignore();
    alu.media2 = (alu.nota21 + alu.nota22)/2;
    cout<< "Informe o nome do aluno 3: ";
    getline(cin, alu.nome3);
    cout<< "Informe a primeira nota : ";
    cin>> alu.nota31;
    cin.ignore();
    cout<< "Informe a segunda nota : ";
    cin>> alu.nota32;
    cin.ignore();
    alu.media3 = (alu.nota31 + alu.nota32)/2;
    }
    void getValues(const Alunos&alu)
    {
    cout<< "Nome: " << alu.nome1<< endl;
    cout<< "A media é: " << alu.media1<< endl;
    }
    int main()
    {
    Alunos a1;
    setValues(a1);
    cout<<endl;
    cout<< "Informando dados sobre o aluno:\n";
    cout<< "======================\n";
    getValues(a1);
    return 0;
    }

     

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Aluno aluno[3];

    aluno[0].nome = "Orlando";

    aluno[0].nota1 = 10;
    aluno[0].nota2 = 10;
    aluno[0].media = (nota1+nota2)/2;
    aluno[1].nome = "Maria";
    ....

    Algo assim?

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @vangodp

     

    extaamente, só que o usuario teria que entrar com os dados e escolher destruir um dos alunos

    Editado por gabrielleletice
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Sim ok, porém um array na pilha não pode ser destruído, talvez o melhor seria usar outros mecanismos como listas dinâmicas ou usar stl que seria melhor porém n4ao sei seu nivel em programação.
    Imagine que um array é uma coisa de um tamanho fixo, algo como:
    [aluno1][aluno2][aluno3]....

    O caso é que você pode formatar um aluno, mas não borrar, algo como isso:
    [aluno1][           ][aluno3]....

    porém como podemos ver o espaço continua aí. O que poderia ser feito é passar os dados de aluno3 em cima de aluno2:
    [aluno1][aluno3]<-[aluno3]....

    E por ultimo formatar o aluno3 original:
    [aluno1][aluno3][           ]....

    Si tiver mais alunos seria repetir esse processo até que o espaço vazio fique no final, copiando o seguinte no anterior.

    Outro sistema seria criar um vetor temporal copiar nele os dados, excluindo o/os dado/s que não lhe interesse, depois voltar a copiar ele no vetor original. Trata-se de tarefas de otimização do array.

    Se por outro lado se não lhe importa que tenha espaço entre um aluno e outro no array, não seria necessário realizar os passos anteriores, bastaria com por uma variável tipo bool para saber se o espaço está livre ou não. Quando você quiser borrar o aluno ponha algo como bool livre = true dentro da classe, e quando for imprimir ou não leve em consideração alunos com livre = true, porém se for escrever um novo aluno deveria ser copiado em cima desse espaço.

     

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×