Duvida para chamar uma funcao no metodo main

1 resposta
java
R

Preciso de ajuda na parte de chamar a funcao “MediaAlunos();” no menu, ao qual vai ser inicializado no metedo main. agradeco desde ja.

import javax.swing.*;

public class TrabEscola {
	
	static int TAMANHO = 5;
	static String A[] = new String[TAMANHO];
	static double B[] = new double [TAMANHO];
	static double alunos[] = new double [TAMANHO];
	static int i;
	static int menu;
	static double soma;
	
	
	public static void MenuAlunos(){
		
	int menu = 1;	
		
		
	while(menu >= 1 && menu <=3){ 
	
		menu = Integer.parseInt(JOptionPane.showInputDialog("Menu: \n "
			  + "1) Digitar nome dos alunos \n "
			  + "2) Digitar nota dos alunos \n"
			  + "3) para saber a media dos alunos \n"));
		switch(menu) {
			case 1:
				Alunos();
			break;
				
			case 2:
				Notas();
			break;
			
			case 3:
				MediaAlunos();
			break;		
		}
			
	}
			
	}
	
	public static void Alunos() {
		for(i = 0; i < TAMANHO; i++) {
			A[i] = JOptionPane.showInputDialog("Informe o nome dos alunos");
		}
	}
	
	public static void Notas() {
		for(i = 0; i < TAMANHO; i++) {
			B[i] = Double.parseDouble(JOptionPane.showInputDialog("informe as notas dos alunos"));
		}
	}
	
	public static void Soma() {
		for(i = 0; i <TAMANHO; i++) {
			soma += B[i];
		}
	}
	
	public static double MediaAlunos(double media) {
		for(i = 0; i < TAMANHO; i++) {
			media = soma / 5;
		}
		return media;
	}
	
	public static void main(String[] args) {
		MenuAlunos();
		
	}
}

1 Resposta

P

Vamos lá:

Primeiro: métodos são ações. dê nomes que faça sentido, use verbos. por exemplo, calcularMedia é muito mais legivel.

Segundo: qual o seu objetivo com este programa?

por que você tem dois Array A e B? Por que não chamar de “alunos” e “notas”?

Um aluno tem uma nota só?

Se a nota de todos for 6, a media é 6, certo?

Seria somar 6, 5 vezes ( daria 30 ) e nesse caso o método Soma faz o trabalho direitinho.

Pra calcular a media não é só pegar 30 e divisor por 5? você não precisa de laço for ali rapaz.

E vamos la, você criou uma função que recebe uma variável media ( por que? ) e retorna ela, mas não faz nada. o seu método seria simplesmente

calcularMedia(){ return soma/5 ; }

mas ai você tem que mostrar, certo? JOptionPane.showInputDialog é suficiente.

da uma repensada nas coisas e bola pra frente.

Criado 5 de novembro de 2016
Ultima resposta 5 de nov. de 2016
Respostas 1
Participantes 2