Advertisement
l_evandro

AlunoTeste

Jun 18th, 2019
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.16 KB | None | 0 0
  1. import java.util.Random;
  2. import java.util.Scanner;
  3.  
  4. public class AlunoTeste {
  5.     public static void main(String args[]){
  6.         Scanner teclado = new Scanner(System.in);
  7.        
  8.         Random random = new Random(); // Classe que gera numeros aleatorios
  9.         // Vetor onde será armazenado os Alunos
  10.         final int QUANT_ALUNOS = 3;
  11.         Aluno alunos[] = new Aluno[QUANT_ALUNOS];
  12.         Aluno aluno = new Aluno();
  13.  
  14.         int notas[] = null; // Variável onde será armazenada as notas antes de passar para o vetor de notas
  15.         NotasEDisciplina nd = null; // Variaval onde será armazenada a disciplina e suas respectivas notas
  16.  
  17.         for(int x = 0; x < alunos.length; x++) {
  18.             System.out.printf("Digite o nome do %d aluno\n", x+1);
  19.             aluno.setNome(teclado.nextLine()); // cadastra o nome do aluno na posicao x do vetor de Alunos
  20.            
  21.             System.out.printf("Digite a idade do %d aluno\n", x+1);
  22.             aluno.setIdade(Integer.parseInt(teclado.nextLine()));// cadastra o idade do aluno na posicao x do vetor de Alunos
  23.  
  24.             if(x == 0){
  25.                 System.out.printf("Digite o RA do %d aluno\n", x+1);
  26.                 aluno.setRA(Integer.parseInt(teclado.nextLine()));
  27.             }
  28.             else{
  29.                 boolean ok;
  30.                 do{
  31.                     ok = false;
  32.                     System.out.printf("Digite o RA do %d aluno\n", x+1);
  33.                     aluno.setRA(Integer.parseInt(teclado.nextLine()));
  34.                     for(int i = 0; alunos[i] != null; i++){
  35.                         if(alunos[i].getRA() == aluno.getRA()){
  36.                             ok = true;
  37.                             System.out.println("RA ja cadastrado, tente novamente!");
  38.                             break;
  39.                         }
  40.                     }
  41.                 }while(ok);
  42.             }
  43.  
  44.             notas = new int[8]; // cria um vetor de inteiro com 8 posições
  45.  
  46.             nd = new NotasEDisciplina(); // cria uma instancia da classe Vetor
  47.             System.out.printf("\nDigite a disciplina\n");
  48.             nd.setDisciplina(teclado.nextLine()); // cadastra a disciplina do aluno na instancia Vetor          System.out.printf("Disciplina cadastrada com sucesso\n");
  49.  
  50.             System.out.printf("\nCadastrando notas automaticamente!\n");
  51.             for(int i = 0; i < notas.length; i++){
  52.                 notas[i] = 1 + random.nextInt(100); // gera numeros aleatorios entre 0 e 100 e atribui ao vetor notas
  53.                 System.out.printf("%c", '-'); //
  54.                
  55.                 // Método estatico sleep da classe Thread só para fazer um charme :)
  56.                 try{
  57.                     Thread.sleep(200);
  58.                 }catch(Exception e){
  59.                     e.printStackTrace();
  60.                 }
  61.             } // fim do for que cadastra as notas
  62.  
  63.             // Cadastrando a disciplina e as ntas
  64.             nd.setNotas(notas); // preenche as notas da instancia de Vetor com notas[]
  65.             aluno.setNotasEDisciplina(nd);
  66.  
  67.             alunos[x] = new Aluno(aluno.getNome(), aluno.getIdade(), aluno.getRA(), aluno.getNotasEDisciplina());
  68.             System.out.printf("\nNotas Cadastrada com sucesso\n\n");   
  69.         }
  70.        
  71.         aluno = null;
  72.                    
  73.         System.out.printf("\n\n\n");
  74.        
  75.  
  76.         int opcao = 0;
  77.         do{ // laço do while que repete o menu até ser escolhida a posicao 5
  78.             // Menu de Opções
  79.             System.out.println("Menu:");
  80.             System.out.printf("\t1 - Modificar Aluno\n");
  81.             System.out.printf("\t2 - Consultar Boletim\n");
  82.             System.out.printf("\t3 - Apresentar distribuição de notas\n");
  83.             System.out.printf("\t4 - Apresentar distribuição de idade\n");
  84.             System.out.printf("\t5 - Sair\n");
  85.             opcao = Integer.parseInt(teclado.nextLine());
  86.  
  87.             switch(opcao){
  88.                 case 1:  // Menu Moficar Aluno
  89.                         opcao = 0;
  90.                         do{
  91.                             System.out.println("Menu(Modificar Aluno)");
  92.                             System.out.printf("\t1 - Modificar Nome\n");
  93.                             System.out.printf("\t2 - Modificar Idade\n");
  94.                             System.out.printf("\t3 - Modificar Nota de Disciplina\n");
  95.                             System.out.printf("\t4 - Voltar\n");
  96.                             opcao = Integer.parseInt(teclado.nextLine());
  97.                            
  98.                             switch(opcao){
  99.                                 case 1 : // Modificar nome do Aluno
  100.                                         modificaNomeDoAluno(alunos,teclado);
  101.                                     break;
  102.                                 case 2 : // Modificar Idade do Aluno
  103.                                         modificaIdadeDoAluno(alunos, teclado);
  104.                                     break;
  105.                                 case 3 : // Modificar Notas de Disciplina
  106.                                         modificaNotas(alunos,teclado);
  107.                                     break;
  108.                                 case 4 : // Voltar;
  109.                             }
  110.                         }while(opcao != 4);
  111.                     break;
  112.                 case 2 :
  113.                         opcao = 0;
  114.                         aluno = null;
  115.                         do{
  116.                             System.out.println("Menu(Apresentar de notas)");
  117.                             System.out.printf("\t1 - Um Aluno\n");
  118.                             System.out.printf("\t2 - Todos os alunos\n");
  119.                             System.out.printf("\t3 - Voltar\n");
  120.                             opcao = Integer.parseInt(teclado.nextLine());
  121.                            
  122.                             switch(opcao){
  123.                                 case 1 : // Apresentar notas de um aluno
  124.                                         aluno = consultaAluno(alunos, teclado);
  125.                                         //System.out.println("Disciplina: " +  aluno.getVetor().getDisciplina());
  126.                                         apresentarNotasDeUmAluno(aluno);
  127.                                     break;
  128.                                 case 2 : // Apresentar a nota de todos os alunos
  129.                                         apresentarNotasDeTodosALunos(alunos);
  130.                                     break;
  131.                                 case 3 : // Voltar;
  132.                             }
  133.                         }while(opcao != 3);
  134.                     break;
  135.                 case 3 : // Apresentar Distribuição de Notas
  136.                         if(alunos != null){
  137.                             apresentarNotasDistribuidas(alunos);
  138.                             linha(); // metodo que exibe uma linha tracejada
  139.                         }else{
  140.                             System.out.println("Nenhum aluno cadastrado!");
  141.                         }
  142.                     break;
  143.                 case 4 : // Apresentar Distribuição de Idade
  144.  
  145.                         // Dificuldade para implementar esta parte
  146.  
  147.                     break;
  148.                 case 5 : ;
  149.             }  
  150.         }while(opcao != 5);
  151.     }
  152.  
  153.     // Metodo que faz Modifica as notas disciplina
  154.     private static void modificaNotas(Aluno alunos[], Scanner teclado){
  155.         Aluno aluno = consultaAluno(alunos, teclado);
  156.  
  157.         if(aluno != null){ // verifica se o aluno existe
  158.             linha();
  159.             System.out.println("Notas atuais: ");
  160.             int notas[] = aluno.getNotasEDisciplina().getNotas();
  161.             // exibe as notas dos alunos antes das alterações
  162.             for(int i = 0; i < notas.length; i++){
  163.                 System.out.printf("\t%d - Nota %d: \n", i+1, notas[i]);
  164.             }
  165.            
  166.             linha(); // exibe uma linha tracejada
  167.  
  168.             // for que solicita as novas notas e atribui ao vetor notas[]
  169.             for(int i = 0; i < notas.length; i++){
  170.                 System.out.printf("Digite a %d Nota: ", i+1);
  171.                 notas[i] = Integer.parseInt(teclado.nextLine());
  172.                 System.out.println("");
  173.             } // fim do for que solicita as notas
  174.  
  175.             aluno.getNotasEDisciplina().setNotas(notas); // cadastra as novas notas do aluno
  176.             System.out.println("Notas atualizadas com sucesso!");  
  177.         }
  178.         else{ // aluno nao encontrado
  179.             System.out.println("Aluno não encontrado");
  180.         }// fim do if que verifica se existe aluno
  181.     }
  182.  
  183.     // Metodo que faz a Modificação do nome
  184.     private static void modificaNomeDoAluno(Aluno alunos[], Scanner teclado){
  185.         Aluno aluno = consultaAluno(alunos, teclado);                      // Verifica se o aluno existe, caso sim devolve a referencia desse aluno, caso no setorna null
  186.  
  187.         if(aluno != null){ // verifica se o aluno existe
  188.             System.out.println("Nome atual do Aluno: " + aluno.getNome()); // Exibe o antigo nome do aluno
  189.             System.out.println("Digite o novo nome: ");
  190.             aluno.setNome(teclado.nextLine());                             // cadastra o novo nome do aluno
  191.             System.out.println("Nome atualizado com sucesso!");
  192.         }
  193.         else{ // aluno nao encontrado
  194.             System.out.println("Aluno não encontrado");
  195.         }// fim do if que verifica se existe aluno
  196.     }
  197.  
  198.     // Metodo que faz a Modificação a idade do aluno
  199.     private static void modificaIdadeDoAluno(Aluno alunos[], Scanner teclado){
  200.         Aluno aluno = consultaAluno(alunos, teclado);                        // Verifica se o aluno existe, caso sim devolve a referencia desse aluno, caso no setorna null
  201.  
  202.         if(aluno != null){                                                   // verifica se o aluno existe
  203.             System.out.println("Idade atual do Aluno: " + aluno.getIdade()); // Exibe a idade antiga do aluno
  204.             System.out.println("Digite a nova Idade: ");
  205.             aluno.setIdade(Integer.parseInt(teclado.nextLine()));            // cadastra a nova idade
  206.             System.out.println("Idade atualizada com sucesso!");   
  207.         }
  208.         else{ // aluno nao encontrado
  209.             System.out.println("Aluno não encontrado");
  210.         }// fim do if que verifica se existe aluno
  211.     }  
  212.  
  213.     // Apresentar as notas de um Aluno
  214.     private static void apresentarNotasDistribuidas(Aluno alunos[]){
  215.         int n[] = new int[11];
  216.  
  217.         for(int x = 0; x < alunos.length; x++){
  218.             int notas[] = alunos[x].getNotasEDisciplina().getNotas();
  219.             for(int i = 0; i < notas.length; i++){
  220.                 n[notas[i]/10]++;
  221.             }
  222.         }  
  223.  
  224.         System.out.println("Distribuição de notas: ");
  225.  
  226.         for(int i = 0;  i < n.length; i++){
  227.             if(i == 10){
  228.                 System.out.printf("%5d: ", i*10);
  229.             }else{
  230.                 if(i == 0){
  231.                     System.out.printf("0%d-0%d: ", i, i+9);
  232.                 }else{
  233.                     System.out.printf("%d-%d: ", (i*10), (i*10+9));
  234.                 }  
  235.             }
  236.            
  237.            
  238.             for(int x = 0; x < n[i]; x++){
  239.                 System.out.print("*");
  240.             }
  241.             System.out.println("");
  242.         }
  243.     }
  244.  
  245.     // Metodos que apresenta idade Distribuida
  246.     public static void apresentaIdadeDistribuida(Aluno alunos[]){
  247.    
  248.     }
  249.  
  250.     // Metodo que imprime uma linha tracejada para separação
  251.     private static void linha(){
  252.         System.out.println("");
  253.         for(int i = 0; i < 25; i++){
  254.             System.out.print("-");
  255.         }
  256.         System.out.println("");
  257.     }
  258.  
  259.     private static Aluno consultaAluno(Aluno alunos[], Scanner teclado){
  260.         int ra = 0;
  261.         int index = -1;
  262.         boolean isExist = false;
  263.  
  264.         System.out.println("Digite o RA do aluno a ser consultado");
  265.         ra = Integer.parseInt(teclado.nextLine());
  266.  
  267.         for(int i = 0; i < alunos.length && isExist == false; i++){
  268.             if(alunos[i].getRA() == ra){
  269.                 index = i;
  270.                 isExist = true;
  271.             }
  272.         }
  273.  
  274.         if(isExist){
  275.             return alunos[index];
  276.         }
  277.  
  278.         return null;
  279.     }
  280.  
  281.     private static void apresentarNotasDeUmAluno(Aluno aluno){
  282.         System.out.println("Disciplina: " + aluno.getNotasEDisciplina().getDisciplina());
  283.         int i = 1;
  284.  
  285.         for(int nota : aluno.getNotasEDisciplina().getNotas()){
  286.             System.out.printf("%d - nota = %d\n", i, nota);
  287.             i++;
  288.         }
  289.     }
  290.  
  291.     private static void apresentarNotasDeTodosALunos(Aluno alunos[]){
  292.         for(int x = 0; x < alunos.length; x++){
  293.             linha();
  294.             System.out.println("Aluno: " + alunos[x].getNome());
  295.             linha();
  296.             System.out.println("Disciplina: " + alunos[x].getNotasEDisciplina().getDisciplina());
  297.             linha();
  298.             int i = 1;
  299.  
  300.             for(int nota : alunos[x].getNotasEDisciplina().getNotas()){
  301.                 System.out.printf("\t%d nota: %d\n", i, nota);
  302.                 i++;
  303.             }
  304.  
  305.             System.out.println("");
  306.         }
  307.     }
  308. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement