Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

TurboReemix-BR

Ajuda com Vetores e Laços de Repetição

Recommended Posts

Eu to fazendo um sistema bem simples de cadastro de nota pra escola, o problema é que na questão 3, ele pega apenas duas notas da materia atual, e ignora demais notas e materias anteriores

package rafa.bianca.agna.projeto;

import javax.swing.JOptionPane;

public class ProjetoCadastro {
			static int preenchidos = 0;
			
			public static void main(String[] args) {
			String[] materias = new String[200];
			for (int i = 0; i <= 199; i++) {
				materias[i] = "";
			}
			double[] notas = new double[200];
			for (int i = 0; i < 200; i++) {
				notas[i] = 0;
			}
			
			/* Questão 1 */
			for (;;) {
				int op = primeira_tela();
				if (op == 1) {
					for (int i = 0; i <= 199; i++) {
						if (materias[i].equals("")) {
							materias[i] = JOptionPane.showInputDialog("Disciplina");
							notas[i] = Double.parseDouble(JOptionPane.showInputDialog("Nota")); 
							JOptionPane.showMessageDialog(null, "Disciplina cadastrada com sucessso!");
							preenchidos++;
							break;
	
						}
					}
	
				}
			/* Questão 2 */
			if (op == 2) {
				int remover = Integer.parseInt(JOptionPane.showInputDialog(
						"Indique a qual posição em que se encontra" + " a disciplina que deseja remover!"));
				int i = remover;
				materias[i] = "";
				notas[i] = 0;
				JOptionPane.showMessageDialog(null, "Disciplina removida com sucessso!");
			}

			/* Questão 3 */
			if (op == 3) {
				int aux = 1;
				String x= "";
				String buffer= "";
				for (int i = 0; i < preenchidos; i++) {
					if(i==0) {
						buffer = "";
					}else {
						buffer = materias[i-1];
					}
					if(materias[i].equals(buffer)) {
						x = "Disciplina: " + materias[i] + "\n" + "Nota" + " " + aux + ":" + " " + notas[i];
					}else {
						x = "Disciplina: " + materias[i] + "\n" + "Nota" + " " + aux + ":" + " " + notas[i];
					}
					aux++;
				}
				if (aux == 1) {
					JOptionPane.showMessageDialog(null, "Essa disciplina não foi cadastrada!");
				} else {
					JOptionPane.showMessageDialog(null, x);
				}

			}
			
			/* Questão 4 */
			if (op == 4) {
				int aux = 1;
				String disci = JOptionPane.showInputDialog("Digite o nome da disciplina desejada!");
				String x = "Disciplina: " + disci;
				for (int i = 0; i < 199; i++) {
					if (materias[i].equals(disci)) {
						x = x + "\n" + "Nota" + " " + aux + ":" + " " + notas[i];
						aux++;

					}
				}
				if (aux == 1) {
					JOptionPane.showMessageDialog(null, "Essa disciplina não foi cadastrada!");
				} else {
					JOptionPane.showMessageDialog(null, x);
				}

			}
			}
		}
	

	public static int primeira_tela() {

		return Integer.parseInt(
				JOptionPane.showInputDialog("CADASTRO DE DISCIPLINA" + "\n" + "\n 1 - Adicionar" + "\n 2 - Remover"
						+ "\n 3 - Consultar todos" + "\n 4 - Consultar disciplina" + "\n" + "\n - Escolha uma opção:"));

	}
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tive que remover as chamadas ao swing p/ poder usar o REPL.

 

import java.util.Scanner;

public class Main {
			static int preenchidos = 0;
			static final int MAX_MATERIAS = 5;
			

			public static void main(String[] args) {
			  Scanner cin = new Scanner(System.in);
			  
			  String[] materias = new String[MAX_MATERIAS];
			  for (int i = 0; i < MAX_MATERIAS; i++) {
  				materias[i] = "";
	    	}
			  double[] notas = new double[MAX_MATERIAS];
  			for (int i = 0; i < MAX_MATERIAS; i++) {
  				notas[i] = 0;
  			}
			
			
			while(true) {
				System.out.println("CADASTRO DE DISCIPLINA" + "\n" + "\n 1 - Adicionar" + "\n 2 - Remover"
						+ "\n 3 - Consultar todos" + "\n 4 - Consultar disciplina" + "\n" + "\n - Escolha uma opção:");
				int op = Integer.parseInt(cin.nextLine());
				
				if (op == 1) {
					for (int i = 0; i < MAX_MATERIAS; i++) {
						if (materias[i].equals("")) {
						  System.out.print("Disciplina: ");
							materias[i] = cin.nextLine();
							System.out.print("Nota: ");
							notas[i] = Double.parseDouble(cin.nextLine());
							System.out.println("Disciplina cadastrada com sucessso!");
							preenchidos++;
						}
					}
				} else if (op == 2) {
				  System.out.print("Indique a qual posição em que se encontra a disciplina que deseja remover: ");
  				int remover = Integer.parseInt(cin.nextLine());
  				if (remover > MAX_MATERIAS) {
  				  System.err.println("Posição inválida");
  				} else {
  				  materias[remover] = "";
  				  notas[remover] = 0;
  				  System.out.println("Disciplina removida com sucessso!");
  				}
  				
  			} else if (op == 3) {
  				for (int i = 0; i < MAX_MATERIAS; i++) {
  					if (materias[i].equals("") == false) {
  					  System.out.println(String.format("Disciplina: %s \t Notas: %.2f\n", materias[i], notas[i]));
  					}
  				}
  			} else 	if (op == 4) {
  			  System.out.print("Digite o nome da disciplina desejada: ");
  				String nomeConsulta = cin.nextLine();
  				int i;
  				for (i = 0; i < MAX_MATERIAS; i++) {
  					if (materias[i].equals(nomeConsulta)) {
  						System.out.println(String.format("Nota: %.2f\n", notas[i]));
  						break;
  					}
  				}
  				if (i >= MAX_MATERIAS) {
  					System.err.println("Essa disciplina não foi cadastrada!");
  			  }
		    }
			}
		}
	
}

 

Cuide com o índice antes de acessar o array.
Se você quiser outra versão:

 

import java.util.Scanner;
import java.util.Map.Entry;
import java.util.List;
import java.util.ArrayList;

public class Main {
      public static enum OPCOES_PRINCIPAIS{NOOP, ADICIONAR, REMOVER, EXIBIR, CONSULTAR, SAIR};
      
      public static List<java.util.Map.Entry<String, Double>> materias = new ArrayList<java.util.Map.Entry<String, Double>>();
      
      public static Scanner cin = new Scanner(System.in);
      
			public static void menuPrincipal() {
			  System.out.println("-- CADASTRO DE DISCIPLINA --");
			  System.out.println("1- Adicionar");
			  System.out.println("2- Remover");
			  System.out.println("3- Exibir todas");
			  System.out.println("4- Consultar disciplina");
			  System.out.println("5- Sair");
			  System.out.print("Opção:");
			}
			
			public static void adicionarDisciplinas() {
			  String op;
			  do {
  			  System.out.print("Informe o nome da disciplina: ");
  			  String nome = cin.nextLine();
  			  
  			  System.out.print("Informe a nota da disciplina: ");
  			  Double nota = Double.parseDouble(cin.nextLine());
  			  
  			  materias.add(new java.util.AbstractMap.SimpleEntry<String,Double>(nome, nota));
  			  System.out.println("Disciplina cadastrada com sucesso.");
  			  
  			  System.out.print("Cadastrar outra disciplina (S/N)? ");
  			  op = cin.nextLine();
			  } while ("s".equalsIgnoreCase(op));
			}
			
			public static void removerDisciplina() {
			  System.out.print("Informe a posição da disciplina que deseja remover: ");
			  Integer pos = Integer.parseInt(cin.nextLine());
			  
			  if (pos < 0 || pos >= materias.size()) {
			    System.err.println("Posição inválida.");
			  } else {
			    materias.remove(pos);
			    System.out.println("Disciplina removida com sucesso.");
			  }
			}
			
			public static void exibirDisciplinas() {
			  for(java.util.Map.Entry<String, Double> e : materias) {
			      System.out.println(String.format("Disciplina: %s \t Nota: %.2f\n", e.getKey(), e.getValue()));
			  }
			}
			
			public static void consultarDisciplina() {
			  System.out.print("Informe o nome da disciplina: ");
			  String nome = cin.nextLine();
			  Boolean found = false;
			  materias.stream().filter(o -> o.getKey().equalsIgnoreCase(nome))
			                   .findFirst()
			                   .ifPresent(m -> System.out.println(String.format("Disciplina: %s \t Nota: %.2f\n", m.getKey(), m.getValue())));
			}
			  
			
			public static void main(String[] args) {
			  
			  while(true) {
			      menuPrincipal();
				    int op = Integer.parseInt(cin.nextLine());
				    
				    if (op == OPCOES_PRINCIPAIS.SAIR.ordinal()) break;
				    
				    if (op == OPCOES_PRINCIPAIS.ADICIONAR.ordinal()) {
                  adicionarDisciplinas();
				    } else if (op == OPCOES_PRINCIPAIS.REMOVER.ordinal()) {
                  removerDisciplina();
				    } else if (op == OPCOES_PRINCIPAIS.EXIBIR.ordinal()) {
					        exibirDisciplinas();
				    } else if (op == OPCOES_PRINCIPAIS.CONSULTAR.ordinal()) {
                  consultarDisciplina();
				    } else {
                  System.err.println("Opção inválida.");
				    }
			  }
			}
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Estou escrevendo um Sistema Java Web e quando clico no Botão Salvar, o Java acusa esse erro:

      ERROR: Cannot invoke "Object.toString()" because the return value of "java.util.Map.get(Object)" is null
       
      Já tentei de várias formas resolver esse problema, mas não estou conseguindo.

      Por favor, alguém pode me ajudar identificar a origem e resolver o problema acima ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Estou enfrentando um problema que não consigo entender.

      Após Instalar o MySql versão 8.0.36, funciona corretamente realizando as conexões.

      O problema é:
      ---[ após reiniciar o micro, o MySql não faz as conexões.
      --[ tenta localizar este arquivo, mas não acha: my.ini
       
      Onde localizo ou configuro este arquivo na Pasta MySql ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, preciso de ajuda em Relação a Instalar o Jasper Reports no Eclipse, pois a opção de Eclipse Marketplace, não encontra para instalar.
       
      Já tentei de todas as formas mas não consegui, alguém conhece alguma rotina explicando este procedimento ?
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amantes da informática.
       
      Saudações.
       
      Estou usando o Eclipse Mars versão 4.5.0  e o 4.5.2, acredito que deva ter versões mais novas. 
      Sou novato em JAVA e estou encontrando alguns problema em Instalação de alguns plugins, como por exemplo:
       
      1) quando tento instalar o JBoss Tools através do Eclipse Marteplace, o Eclipse não o encontra na lista de plugins.
      2) se tento instalar através do Install New Software, abaixa alguns arquivos, mas também não instala o JBoss.
      3) se abro o site e arrasto o download para a área de trabalho do Eclipse, também não instala o JBoss.
       
      Caros amigos, existe outra alguma forma de instalar o JBoss Tools no Eclipse e como seria ?
       
      Grato,
       
      Cesar
       
       
    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.