Cadastro de aluno, lançamento de nota e media

6 respostas
Y

Alguém pode me ajudar, não estou conseguindo puxar as nota e fazer a média.
Crie um programa para armazenar as notas de um aluno em diversas matérias. Para isso, você deverá escrever uma classe chamada Disciplina, que conterá o nome_da_disciplina, nota1, nota2 e faltas. Escreva também a classe Aluno, com seu nome, RA e lista de disciplinas. Escreva em um método main o código necessário para instanciar um objeto Aluno e incluir suas várias disciplinas. Quando o usuário encerrar o cadastro, mostre todas as matérias cadastradas, assim como a média de cada uma (ou seja, (nota1 + nota2) / 2) e a média geral (considerando todas as disciplinas).

package provajavabasic;

public class ProvaJavaBasic {    
    public static void main(String[] args) {
	
        Curso curso = new Curso("Java Master Class", 1,"Pós-Graduação");
        curso.addDisciplina(new Disciplina("Java Basic", 1));
        curso.addDisciplina(new Disciplina("Java advantage", 2));
        curso.addDisciplina(new Disciplina("Java web", 3));
        curso.addDisciplina(new Disciplina("Java mobile", 4));
        
        Aluno aluno1 =new Aluno("Taiane ", 1);
        
        java.util.Scanner entrada = new java.util.Scanner(System.in);
        
        if (aluno1.cadastrarDisciplina(curso.getDisciplinas(1)))
            System.out.println("Cadastrada com sucesso");
        else
            System.out.println("Erro ao cadastrar ");
        if (aluno1.cadastrarDisciplina(curso.getDisciplinas(2)))
            System.out.println("Cadastrada com sucesso");
        else 
            System.out.println("Erro ao cadastrar");
        if (aluno1.cadastrarDisciplina(curso.getDisciplinas(3)))
            System.out.println("Cadastrada com sucesso");
        else 
            System.out.println("Erro ao cadastrar");
        if (aluno1.cadastrarDisciplina(curso.getDisciplinas(4)))
            System.out.println("Cadastrada com sucesso");
        else 
            System.out.println("Erro ao cadastrar");
        
        aluno1.listarDisciplinas();
    }   
}
public class Curso {
    private String nome;
    private int codigo;
    private String tipo;
    private ArrayList<Disciplina> disciplinas;

    public Curso(String nome, int codigo, String tipo) {
        this.nome = nome;
        this.codigo = codigo;
        this.tipo = tipo;
        
        this.disciplinas = new ArrayList<Disciplina>();
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

	public void addDisciplina(Disciplina disciplina){
		this.disciplinas.add(disciplina);
	}
	
	public Disciplina getDisciplinas(int codDisciplina) {
        int index = 0;
        for(int i = 0; i < this.disciplinas.size(); i++)
			if(this.disciplinas.get(i).getCodigo()==codDisciplina) {
				index = i;
				break;
			}
		
		return this.disciplinas.get(index);
    }
}
package provajavabasic;

public class Disciplina {
	private String disciplina;
	private int codigo;
	private double nota1, nota2;   
	private int faltas;

    public Disciplina(String disciplina){
        this.disciplina=disciplina;
    }
	
    public Disciplina (Disciplina disciplina){
        this.disciplina=disciplina.getDisciplina();
        this.codigo=disciplina.getCodigo();
        this.nota1=0;
        this.nota2=0;
    }

    public Disciplina(String disciplina, int codigo) {
        this.disciplina = disciplina;
        this.codigo = codigo;
    }
    
    public String getDisciplina() {
        return disciplina;
    }

    public void setDisciplina(String disciplina) {
        this.disciplina = disciplina;
    }

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    public double getNota1() {
        return nota1;
    }

    public void setNota1(float nota1) {
        this.nota1 = nota1;
    }

    public double getNota2() {
        return nota2;
    }

    public void setNota2(float nota2) {
        this.nota2 = nota2;
    }

    public int getFaltas() {
        return faltas;
    }

    public void setFaltas(int faltas) {
        this.faltas = faltas;
    }  
    
	public double Media(){
        return ((nota1+nota2)/2);
    }
}
package provajavabasic;

import java.util.ArrayList;

public class Aluno {

    private static final int MAXDISCIPLINAS = 5;
    private String nome;
    private int RA;
    private ArrayList<Disciplina> disciplinas;

    public Aluno(String nome, int RA) {
        this.nome = nome;
        this.RA = RA;
        
        this.disciplinas = new ArrayList<>();
    } 
    
	public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getRA() {
        return RA;
    }

    public void setRA(int RA) {
        this.RA = RA;
    }
    
    public ArrayList<Disciplina> getDisciplina() {
        return disciplinas;
    }

    public void setDisciplinas(ArrayList<Disciplina> disciplina) {
        this.disciplinas = disciplina;
    }
    
    public boolean cadastrarDisciplina(Disciplina disciplina){
        if (this.disciplinas.size()<Aluno.MAXDISCIPLINAS){
            this.disciplinas.add(disciplina);
            return true;
        }
		
        return false;
    }
	
    public void listarDisciplinas(){
        for(int i=0; i<this.disciplinas.size();i++)
            System.out.println("Disciplina " + (i+1) + " : " 
            + this.disciplinas.get(i).getDisciplina());
    }

    @Override
    public String toString() {
        return "Aluno{" + "nome=" + nome + ", RA=" + RA 
                + ", disciplinas=" + disciplinas + '}';
    }
}

6 Respostas

D

Não entendi nada do que esse trecho de código faz:

java.util.Scanner entrada = new java.util.Scanner(System.in);

if (aluno1.cadastrarDisciplina(curso.getDisciplinas(1)))
    System.out.println("Cadastrada com sucesso");
else
    System.out.println("Erro ao cadastrar ");
if (aluno1.cadastrarDisciplina(curso.getDisciplinas(2)))
    System.out.println("Cadastrada com sucesso");
else 
    System.out.println("Erro ao cadastrar");
if (aluno1.cadastrarDisciplina(curso.getDisciplinas(3)))
    System.out.println("Cadastrada com sucesso");
else 
    System.out.println("Erro ao cadastrar");
if (aluno1.cadastrarDisciplina(curso.getDisciplinas(4)))
    System.out.println("Cadastrada com sucesso");
else 
    System.out.println("Erro ao cadastrar");

Explica?

Achei um código bem confuso…

Bom, sobre a dúvida, em que lugar você está lendo as disciplinas? Não encontrei isso. Sem ler as disciplinas, não tem como obter as notas, nem calcular a média.

Y

então, peguei da classe curso.
fui montando com alguns exemplos parei nisso.
Estou quase zerando tudo e refazendo

D

Eu realmente não entendi, mas, se faz sentido para ti, boa sorte.

Y

não faz, essa é a questão. postei pra pedir ajuda

L

Nesse código, faltou a parte em que a nota é atribuída para o aluno na disciplina adicionada. Sem isso, não dá para fazer os cálculos que vc precisa.

D

De novo:

Se você conseguir explicar a razão pela qual está fazendo assim, quem sabe eu possa até ajudar.

Criado 26 de dezembro de 2019
Ultima resposta 26 de dez. de 2019
Respostas 6
Participantes 3