Exercícios Resolvidos de Ponteiros com classes e objetos

Ver Teoria

Enunciado

Crie um programa que declare uma classe para o cadastro de alunos.

  • Deverão ser armazenados, para cada aluno: matrícula, nome e ano de nascimento.
  • Ao início do programa, o usuário deverá informar o número de alunos que serão armazenados
  • O programa deverá alocar dinamicamente a quantidade necessária de memória para armazenar os registros dos alunos.
  • O programa deverá pedir ao usuário que entre com as informações dos alunos.
  • Ao final, mostrar os dados armazenados e liberar a memória alocada.

Passo 1

E aí, vamos lá?

Pra resolver essa questão a gente vai precisar criar uma classe que armazene os dados de um aluno, e depois utilizar um array dinâmico para armazenar informações de n alunos

Essa classe vai precisar de três atributos nome, matrícula e ano de nascimento. E pra facilitar nossa vida, vai ser útil criar dois métodos pra ajudar a preencher e imprimir cada um dos objetos.

Depois de criar a classe, vamos perguntar quantos alunos o usuário vai querer cadastrar, e criaremos um vetor dinâmico com a quantidade adequada.

Mas vamos começar pelo cabeçalho do código. Como usaremos um atributo de nome, vai ser útil adicionar o cabeçalho < s t r i n g >

Passo 2

Ok, com o cabeçalho do código já feito, vamos desenvolver a classe. Vamos precisar de três atributos uma string chamada n o m e , um inteiro chamado m a t r i c u l a e outro inteiro chamado a n o N a s c i m e n t o . Todos serão privados, por questão de segurança.

Show. Agora vamos mudar para o contexto público, e dentro dele vamos criar um método que nos ajude na hora de preencher essa classe.

Vamos criar o método p r e e n c h e A l u n o , que utiliza o c o u t e c i n para pedir que o usuário preencha valores, e armazenar os valores inseridos nos atributos adequados.

Depois, vamos criar um método que vai nos ajudar a imprimir o conteúdo da classe, chamado i m p r i m e P e s s o a que vai usar o c o u t para imprimir cada um dos atributos junto com uma mensagem adequada:

E pronto, a classe está feita

Passo 3

Agora vamos para a m a i n (   ) , onde vamos começar declarando uma variável n que vai ser usada para armazenar a quantidade de alunos que o usuário quer cadastrar. E também um ponteiro a r r a y A l u n o que aponta para o tipo A l u n o e usaremos no processo de alocação dinâmica.

E em seguida perguntamos pro usuário o quantos alunos serão cadastrados:

E com o valor de n obtido podemos alocar dinamicamente um espaço na memória, com a seguinte sintaxe:

p o n t e i r o = n e w   n o m e C l a s s e [   t a m a n h o   ]

Ou seja, usaremos o operador n e w para alocar n espaços do tipo A l u n o na memória, e guardar o endereço de memória desse espaço no ponteiro a r r a y A l u n o s :

E assim, a memória foi alocada dinamicamente.

Passo 4

Agora vamos preencher cada um dos alunos.

Pra isso vamos usar um loop para acessar cada uma das posições do array a r r a y A l u n o s , e usando o operador ponto . vamos poder acessar os métodos contidos dentro do objeto. Ou seja, poderemos usar o método p r e e n c h e A l u n o (   )

Iniciamos um loop que vai de 0 até n de um em um:

E em cada iteração vamos acessar a posição i de a r r a y A l u n o s e utilizar o método p r e e n c h e A l u n o

E finalizamos o loop.

Passo 5

Para imprimir o conteúdo de cada um dos objetos vamos fazer a mesma coisa. Vamos acessar cada um dos elementos do array e utilizar o método i m p r i m e A l u n o

Iniciamos um loop que vai de 0 até n de um em um:

E em cada iteração vamos acessar a posição i de a r r a y A l u n o e utilizar o método i m p r i m e A l u n o

E finalizamos o loop.

Passo 6

E agora o mais difícil já foi: vector dinâmico criado, preenchido e impresso!

Por último, a gente só não pode esquecer de apagar os elementos criados dinamicamente. Então vamos usar o operador d e l e t e   [   ] para deletar o array dinâmico:

E depois de deletar podemos finalizar o programa com segurança!

Resposta