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

@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

@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

×