Skip to content

Instantly share code, notes, and snippets.

@wagfim
Created August 4, 2019 01:04
Show Gist options
  • Save wagfim/1dfbadc7a9114303e63451acf9b9884f to your computer and use it in GitHub Desktop.
Save wagfim/1dfbadc7a9114303e63451acf9b9884f to your computer and use it in GitHub Desktop.
Elabore um programa para gerenciar o boletim escolar de um aluno. O boletim escolar deve conter 4 bimestres e as matérias de Português, Matemática e Algoritmos.
import java.util.Scanner;
/**
* @author Wagner Bonfim
*/
public class Questao7 {
public static void main(String[] args) {
Scanner leitor = new Scanner(System.in);
boolean rodaPrograma = true;
double[][] notasBimestrais = new double[3][4];
String[] nomeMaterias = {"Português", "Matemática", "Algoritmos"};
System.out.println("*************************");
System.out.println("* *");
System.out.println("* Boletim Escolar 1.0 *");
System.out.println("* *");
System.out.println("*************************");
System.out.println();
int quebraLinha = 0;
do {
if (quebraLinha++ > 0) System.out.println();
System.out.println("Menu Principal");
System.out.println("1. Inserir as notas bimestrais");
System.out.println("2. Exibir Médias");
System.out.println("3. Quanto o aluno precisa para passar de ano?");
System.out.println("0. Sair");
System.out.print("> ");
int opcao = Integer.parseInt(leitor.nextLine());
switch (opcao) {
case 1:
notasBimestrais = escolherMateriaInserirNotas(notasBimestrais, nomeMaterias);
break;
case 2:
exibirMedias(notasBimestrais, nomeMaterias);
pressioneEnter();
break;
case 3:
calcularNotaParaPassar(notasBimestrais, nomeMaterias);
pressioneEnter();
break;
case 0:
rodaPrograma = false;
break;
default:
System.out.println("Opção inválida. Selecione o numero de uma das opções no menu acima.");
break;
}
} while (rodaPrograma);
}
public static double[][] escolherMateriaInserirNotas(double[][] notasBimestrais, String[] nomeMaterias) {
Scanner leitor = new Scanner(System.in);
System.out.println("Escolha uma das matérias abaixo:");
System.out.println("1. " + nomeMaterias[0]);
System.out.println("2. " + nomeMaterias[1]);
System.out.println("3. " + nomeMaterias[2]);
System.out.println("0. Voltar ao Menu Principal.");
System.out.print("> ");
int opcao = Integer.parseInt(leitor.nextLine());
switch (opcao) {
case 1:
notasBimestrais = inserirNotas(notasBimestrais, 0);
pressioneEnter();
break;
case 2:
notasBimestrais = inserirNotas(notasBimestrais, 1);
pressioneEnter();
break;
case 3:
notasBimestrais = inserirNotas(notasBimestrais, 2);
pressioneEnter();
break;
case 0:
return notasBimestrais;
default:
System.out.println("Opção Inválida.");
break;
}
return notasBimestrais;
}
public static double[][] inserirNotas(double[][] notasBimestrais, int indiceMateria) {
Scanner leitor = new Scanner(System.in);
for (int i = 0; i < notasBimestrais[indiceMateria].length; i++) {
System.out.print("Informe a nota do " + (i + 1) + "º bimestre: ");
notasBimestrais[indiceMateria][i] = Double.parseDouble(leitor.nextLine());
}
return notasBimestrais;
}
private static void exibirMedias(double[][] notasBimestrais, String[] nomeMaterias) {
for (int i = 0; i < notasBimestrais.length; i++) {
double media = calculaMedia(notasBimestrais, i);
System.out.print(nomeMaterias[i]+", média: "+media+" ");
if (media < 6.0) System.out.print("(ALUNO CORRE RISCO DE REPROVAR!)");
System.out.println();
}
}
private static double calculaMedia(double[][] notasBimestrais, int indiceMateria) {
double soma = 0.0;
for (int i = 0; i < notasBimestrais[indiceMateria].length; i++) {
soma += notasBimestrais[indiceMateria][i];
}
return (double)soma/notasBimestrais[indiceMateria].length;
}
public static void pressioneEnter() {
Scanner leitor = new Scanner(System.in);
System.out.print("Pressione Enter para continuar...");
leitor.nextLine();
}
private static void calcularNotaParaPassar(double[][] notasBimestrais, String[] nomeMaterias) {
for (int i = 0; i < notasBimestrais.length; i++) {
double media = calculaMedia(notasBimestrais, i);
if (media < 6.0)
System.out.println(nomeMaterias[i]+", nota necessária: "+(10.0-media));
else
System.out.println(nomeMaterias[i]+": Aprovado.");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment