[RESOLVIDO] Exercício 17

Veja, compartilhe, discuta, ajude, mostre como você resolveu os exercícios deste módulo!

[RESOLVIDO] Exercício 17

Mensagempor prog.tiago em Qui Fev 04, 2010 7:27 pm

Galerinha,

esse código deu um trabalho...

Tentei utilizar tudo o q aprendi até aqui, fiz um código totalmente comentado.

O código ficou extenso, mas acho q deu para eu trabalhar melhor meu cérebro, e por em prática a maior quantidade possível de aprendizado!

Código: Selecionar tudo
/*
   EXERCÍCIO 17
   Utilize a classe Pessoa e a classe Sala, desenvolvidas nos exercícios anteriores,
   e mais uma classe Escola com atributos nome, CNPJ e salas (máximo de 20 salas ocupadas).
   Faça um programa que:
   
   Crie uma escola;
   Adicione a esta escola algumas salas,
   adicione as salas pessoas(alunos),
   transfira um aluno de uma sala para outra
*/

import java.util.Scanner;
class Escola{

   //atributos
   // private String nome;
   private String cnpj;
   private int nSalas;
   private Sala[] salas=new Sala[20];
   private Scanner s=new Scanner(System.in);
   private Menu menu;
   private Escola escola;
   
   //construtor
   public Escola(){
      System.out.println("---------------------------");
      System.out.println("CRIAR NOVA ESCOLA");
      System.out.println("---------------------------");
      
      //Solicitando o nome da escola
      System.out.print("nome   --> ");
      nome=s.nextLine();
      //Solicitando o cnpj da escola
      System.out.print("cnpj   --> ");
      cnpj=s.nextLine();
      
      System.out.println("\nEscola criada com sucesso!\n");
   }
   
   public String getNome(){
      //Retorna o nome da escola
      return nome;
   }
   
   public void setMenu(Menu menu){
      //armazena a referência do menu para voltar
      this.menu=menu;
   }
   
   public void setEscola(Escola escola){
      //armazena a referencia desse objeto para repassar a outro para voltar no menu
      this.escola=escola;
   }

   //Método do menu
   public void Menu(){
      
      //Inicializando a variável de opção
      int opcao=0;
      
      System.out.println("Escola " + nome + " inicializada com sucesso!");
      
      
      //Exibindo o menu de opções
      do{
         System.out.println("----------------------------------------------");
         System.out.println("MENU ESCOLA\n");
         System.out.println("1. Criar sala");
         System.out.println("2. Listar salas");
         System.out.println("3. Abrir salas criadas");
         System.out.println("4. Transferir aluno de sala");
         System.out.println("5. Voltar");
         System.out.println("----------------------------------------------");
         System.out.print("\nDigite a opcao desejada: ");
         opcao=s.nextInt();
         s.nextLine();
         EncaminharEscolha(opcao);
      }while(opcao<=5);
   }

   private void EncaminharEscolha(int opcao){
   
      //Executa a opção selecionada no menu
      switch(opcao){
         case 1:
            //Cria uma nova sala
            CriarSala();
            break;
         case 2:
            //Lista as salas
            ListarSalas();
            break;
         case 3:
            //Exibe as salas criadas
            ListarSalas();
            //Questiona sobre qual abrir
            AbrirSalaCriada();
            break;
         case 4:
            //Transfere o aluno de sala
            TransferirAluno();
            break;
         case 5:
            menu.Iniciar();
            break;
      }
   }
   
   //metodos
   public void CriarSala(){
      //Permite criar uma nova sala de aula
      
      //Primeiro verifica-se se o limite de salas para
      //esta escola não foi atingido
      
      if(nSalas>=salas.length){
         System.out.println("\nO limite de salas para essa escola foi atingido!\n");
         return;
      }
      
      //Caso não tenha sido atingido, uma nova sala é criada nessa escola
      salas[nSalas]=new Sala(nome);
      nSalas++;   //O atributo nSalas controla a quantidade de salas criadas.
   }
   

   
   public void TransferirAluno(){
      
      int salaAtual=0;
      int codAtual=0;
      int novaSala=0;
      
   
      //Permite transferir o aluno
      System.out.println("\n---------------------------------");
      System.out.println("TRANSFERENCIA DE ALUNO ");
      System.out.println("---------------------------------\n");
      
      
      //Questiona a sala atual
      do{
         System.out.print("Qual a sala atual do aluno     --> ");
         salaAtual=s.nextInt();
         s.nextLine();
      }while(verificarExistenciaSala(salaAtual)==false);
      
      //Questiona o código do aluno
      do{
         System.out.print("Qual o codigo do aluno         --> ");
         codAtual=s.nextInt();
         s.nextLine();
      }while(salas[salaAtual].verificarExistenciaAluno(codAtual)==false);
      
      //Questiona a nova sala
      do{
         System.out.print("Qual a nova sala do aluno      --> ");
         novaSala=s.nextInt();
         s.nextLine();
      }while(verificarExistenciaSala(novaSala)==false);
      
      
      //Cria um novo aluno na nova classe
      if(salas[novaSala].receberTransferencia(salas[salaAtual].getAluno(codAtual))){
         //exclui o objeto na sala antiga
         salas[salaAtual].excluirAluno(codAtual);
      }
   }
      
   
   
   
   public void ListarSalas(){
   
      //Exibe todas as salas existentes
      System.out.println("\n---------------------------------");
      System.out.println("SALAS EXISTENTES NA ESCOLA " + nome);
      System.out.println("---------------------------------\n");
      
      for(int i=0;i<salas.length;i++){
         //Antes de exibir verifica se a sala realmente existe
         if(salas[i]!=null){
            System.out.printf("sala %d\n",i);
         }
      }
   }

   public void AbrirSalaCriada(){
   
      int cod=0;
      do{
         //Pede-se para o usuario digitar o numero da sala para abertura
         System.out.println("\n---------------------------------");
         System.out.println("ABRIR SALA EXISTENTE");
         System.out.println("---------------------------------\n");
         System.out.print("Digite o numero da sala: ");
         cod=s.nextInt();
         s.nextLine();
         
         //Verifica se o valor digitado é válido
         if(cod>=0&&cod<salas.length){
            //O valor é válido
            
            //Verifica-se agora se a sala existe
            if (verificarExistenciaSala(cod)){
               salas[cod].setSalas(salas[cod]);
               salas[cod].setMenu(escola);
               salas[cod].Menu();
            }
         }
      }while(cod>=0&&cod<salas.length);
   }
   
   
   public boolean verificarExistenciaSala(int sala){
   
      //Método responsável por verificar a existência da sala solicitada
      
      
      if(salas[sala]==null){
         //Caso a sala não exista
         System.out.println("\n A sala solicitada nao existe!\n");
         return false;
      }else{
         //Cao a sala exista
         return true;
      }
   }
         
   
}
   
class Sala{

   //atributos
   private int nAlunos;
   private Aluno[] aluno=new Aluno[20];
   private Scanner s=new Scanner(System.in);
   private Escola menu;
   private Sala salas;
   
   //construtor
   public Sala(String escola){
      System.out.println("--------------------------------------------");
      System.out.println("CRIAR NOVA SALA NA ESCOLA " + escola);
      System.out.println("--------------------------------------------");
      System.out.println("\nSala criada com sucesso!\n");
   }
   
   public void setMenu(Escola menu){
      this.menu=menu;
   }
   
   public String getAluno(int cod){
      return aluno[cod].getNome();
   }
   
   public void setSalas(Sala salas){
      this.salas=salas;
   }
   
   
   //método do menu da sala
   public void Menu(){
   //Inicializando a variável de opção
      int opcao=0;
      
      System.out.println("Sala aberta com sucesso!");
      
      
      //Exibindo o menu de opções
      do{
         System.out.println("----------------------------------------------");
         System.out.println("MENU SALA\n");
         System.out.println("1. Adicionar Aluno");
         System.out.println("2. Listar alunos");
         System.out.println("3. Abrir aluno existente");
         System.out.println("4. Voltar");
         System.out.println("----------------------------------------------");
         System.out.print("\nDigite a opcao desejada: ");
         opcao=s.nextInt();
         s.nextLine();
         EncaminharEscolha(opcao);
      }while(opcao!=4);
   }
   
   private void EncaminharEscolha(int opcao){
   
      //Executa a opção selecionada no menu
      switch(opcao){
         case 1:
            //Cria um novo aluno na sala
            criarAluno();
            break;
         case 2:
            //Lista os alunos
            ListarAlunos();
            break;
         case 3:
            //Exibe os alunos criados
            ListarAlunos();
            //Questiona sobre qual abrir
            AbrirAlunoExistente();
            break;
         case 4:
            //Volta para o menu principal
            menu.Menu();
      }
   }
   
   public void criarAluno(){
      
      //Verifica se cabe um novo aluno na sala de aula
      if(nAlunos<aluno.length){
         //Cria um novo aluno
         aluno[nAlunos]=new Aluno(nAlunos);
         nAlunos++;
      }else{
         System.out.println("\nA sala ja esta cheia, nao e possivel prosseguir!\n");
      }
   }
   

   
   public boolean receberTransferencia(String nome){
   
      //Verifica se cabe um novo aluno na sala de aula
      
      if(nAlunos<aluno.length){
         //Cria um novo aluno
         aluno[nAlunos]=new Aluno(nAlunos,nome);
         nAlunos++;
         return true;
      }else{
         System.out.println("\nA sala ja esta cheia, nao e possivel prosseguir!\n");
         return false;
      }
   }
   
   //Método para excluir objeto
   public void excluirAluno(int cod){
      if(verificarExistenciaAluno(cod)){
         aluno[cod]=null;
      }
   }


   
   
   public boolean verificarExistenciaAluno(int cod){
      //Verifica a existência de um aluno
      
      if(aluno[cod]==null){
         //Se o aluno não existe
         System.out.println("\nO aluno nao foi encontrado!\n");
         return false;
      }else{
         //Se o aluno existe
         return true;
      }
   }
   
   


   
   private void ListarAlunos(){
   
      //Exibe todos os alunos existentes na sala
      System.out.println("\n---------------------------------");
      System.out.println("ALUNOS EXISTENTES NA SALA ");
      System.out.println("---------------------------------\n");
      
      for(int i=0;i<aluno.length;i++){
         if(aluno[i]!=null){
            System.out.printf("%d. %s \n",i,aluno[i].getNome());
         }
      }
   }
   
   private void AbrirAlunoExistente(){
      int cod=0;
      do{
         //Pede-se para o usuario digitar o codigo do aluno para abertura
         System.out.println("\n---------------------------------");
         System.out.println("ABRIR ALUNO EXISTENTE");
         System.out.println("---------------------------------\n");
         System.out.print("Digite o cod do aluno: ");
         cod=s.nextInt();
         s.nextLine();
         
         //Verifica se o valor digitado é válido
         if(cod>=0&&cod<aluno.length){
            //O valor é válido
            //verifica se o aluno exite
            if (verificarExistenciaAluno(cod)){
            
               aluno[cod].setMenu(salas);
               aluno[cod].Menu();
            }
         }
      }while(cod>=0&&cod<aluno.length);
   }
   
   
}

class Aluno{

   //atributos
   private int cod;
   private String nome;
   private Scanner s=new Scanner(System.in);
   private Sala menu;
   
   //construtor
   public Aluno(int cod){
   
      //Adiciona o código recebido por parâmetro
      this.cod=cod;
      
      //Solicita a entrada do nome do aluno
      System.out.print("Qual o nome do aluno? ");
      nome=s.nextLine();
   
      //Exibe o resultado da operação
      System.out.println("\nNovo aluno adicionado na sala!\n");
   }
   
   //construtor de transferência
   public Aluno(int cod,String nome){
      this.cod=cod;
      this.nome=nome;
      System.out.println("\nTransferência efetuada com sucesso!\n");
   }
   
   public void setMenu(Sala menu){
      this.menu=menu;
   }
   
   //metodos get
   public String getNome(){
      //retorna o nome do aluno
      return nome;
   }
   
   //metodo para iniciar o menu
   public void Menu(){
      int opcao=0;
      
      do{
         System.out.println("----------------------------------------------");
         System.out.println("MENU ALUNO\n");
         System.out.println("1. Exibir propriedades doa aluno");
         System.out.println("2. Voltar");
         System.out.println("----------------------------------------------");
         System.out.print("\nDigite a opcao desejada: ");
         opcao=s.nextInt();
         s.nextLine();
         EncaminharEscolha(opcao);
      }while(opcao!=2);
   }
   
   private void EncaminharEscolha(int opcao){
      
      //Executa a opção selecionada no menu
      switch (opcao){
         case 1:
            //Exibe as propriedades do aluno
            Apresentar();
         case 2:
            menu.Menu();
            break;
      }
   }
   
   //Metodo de apresentacao do aluno
   public void Apresentar(){
      System.out.println("\n---------------------------------");
      System.out.println("codigo --> " + cod);
      System.out.println("nome   --> " + nome);
      System.out.println("---------------------------------\n");
   }

}

class Menu{
   
   //atributos
   private int opcao;
   private int nEscolas;
   private Scanner s=new Scanner(System.in);
   private Escola[] escolas=new Escola[20];
   private Menu menu;
   


   
   //Métodos
   public void Iniciar(){
      
      //Inicia com o menu
      do{
         System.out.println("----------------------------------------------");
         System.out.println("MENU PRINCIPAL\n");
         System.out.println("1. Criar uma escola");
         System.out.println("2. Listar escolas");
         System.out.println("3. Abrir escola criada");
         System.out.println("4. Sair");
         System.out.println("----------------------------------------------");
         System.out.print("\nDigite a opcao desejada: ");
         opcao=s.nextInt();
         s.nextLine();
         EncaminharEscolha();
      }while(opcao!=4);
   }
   
   public void setMenu(Menu menu){
      //armazena a variável menu para retorno
      this.menu=menu;
   }
   
   private void EncaminharEscolha(){
      
      //Executa a opção selecionada no menu
      switch (opcao){
         case 1:
            //Cria uma nova escola
            criarEscola();
            break;
         case 2:
            ListarEscolas();
            break;
         case 3:
            //Primeira lista-se as escolas
            ListarEscolas();
            //Pede-se para o usuario escolher uma e abre
            AbrirEscolaExistente();
            break;
         case 4:
            //Finalizando a aplicação
            System.out.println("\n\nEncerrado!\ncriado por Tiago Jose\nprog.tiago@gmail.com");
            System.exit(0);
      }
   }
   
   private void criarEscola(){
      
      //Cria uma nova escola
      
      //Antes verifica-se se ainda há espaço
      if (nEscolas<20){
         escolas[nEscolas]=new Escola();
         nEscolas++;
         }else{
         System.out.println("\nNao ha espaco para novas escolas!\n");
      }
   }
   
   
   private void ListarEscolas(){
      
      //Exibe todas as escolas existentes
      System.out.println("\n---------------------------------");
      System.out.println("ESCOLAS EXISTENTES");
      System.out.println("---------------------------------\n");
      
      for(int i=0;i<escolas.length;i++){
         if(escolas[i]!=null){
            System.out.printf("%d. %s\n",i,escolas[i].getNome());
         }
      }
   }
   
   private void AbrirEscolaExistente(){
      
      int cod=0;
      do{
         //Pede-se para o usuario digitar o codigo da escola para abertura
         System.out.println("\n---------------------------------");
         System.out.println("ABRIR ESCOLA EXISTENTE");
         System.out.println("---------------------------------\n");
         System.out.print("Digite o cod da escola: ");
         cod=s.nextInt();
         s.nextLine();
         
         //Verifica se o valor digitado é válido
         if(cod>=0&&cod<escolas.length){
            //O valor é válido
            if(verificarExistenciaEscola(cod)){
               escolas[cod].setMenu(menu);
               escolas[cod].setEscola(escolas[cod]);
               escolas[cod].Menu();
               
            }
         }
      }while(cod>=0&&cod<escolas.length);
   }
   
   public boolean verificarExistenciaEscola(int escola){
      
      //verifica se a escola existe
      if(escolas[escola]==null){
         System.out.println("\nA escola nao existe!\n");
         return false;
      }else{
         return true;
      }
   }
}

public class Exercicio17{
   public static void main(String[] args){
      
      //Exibindo o título
      System.out.println("--------------------------------------------------");
      System.out.println("Exercicio 17 - modulo 4");
      System.out.println("--------------------------------------------------\n\n");
      
      //Criando um objeto Menu
      Menu menu=new Menu();
      
      //informando a variável menu
      menu.setMenu(menu);
      
      //Iniciando o menu
      menu.Iniciar();
      
      
   }

}


      
      




Abraços e boa noite

:mrgreen: :mrgreen: :mrgreen:
prog.tiago
 
Mensagens: 69
Data de registro: Dom Dez 27, 2009 10:54 pm

Re: [RESOLVIDO] Exercício 17

Mensagempor JHS6544 em Seg Abr 19, 2010 7:53 am

Tive que adaptar a Classe sala de aula eu sei que o correto era não fazer nenhuma adaptação mas tive que mudar ela um pouco.
Pois havia feito o main direto nela.(coisa que tive que retirar).
Segue código da classe SalaDeAula:
Código: Selecionar tudo
package Modulo4JavaStart;
import java.util.Scanner;
public class SalaDeAula {
private String turma;
private Aluno alunos[]= new Aluno[10];   
public void setTurma(String nomeTurma){
this.turma=nomeTurma;
}
public void criaSala(){
   int resp=0,cont=0;
      do{
         Scanner str=new Scanner(System.in);
         if(cont>=10){
            System.out.println("A sala esta lotada desculpe");
            break;
         }else{
               alunos[cont]=new Aluno();
               System.out.println("Qual o nome do aluno");
               alunos[cont].setNome(str.nextLine());
               System.out.println("Qual a idade");
               alunos[cont].setIdade(str.nextInt());
               System.out.println("Qual o CPF");
               alunos[cont].setCpf(str.nextDouble());
               cont++;
        }
         System.out.println("Deseja cadastar mais um aluno? 1 para sim ou 0 para não");
         resp=str.nextInt();
      }while(resp!=0);
      
   }
}


Segue código da classe Escola:
Código: Selecionar tudo
package Modulo4JavaStart;
import javax.swing.JOptionPane;;
public class Escolas {
private String nome;
private double cnpj;
private Sala salas[]=new Sala[20];
private int qtd=salas.length;

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

public void setCnpj(){
   this.cnpj=cnpj;
}

public boolean setSalas(SalaDeAula s){
   int qtdcad=0;
   String num=JOptionPane.showInputDialog(null,"Deseja criar quantas salas");
    while(qtdcad<Integer.parseInt(num)){
       s.setTurma(JOptionPane.showInputDialog(null,"Qual o nome da sala"));
       s.criaSala();
       qtdcad++;
    }
    if(qtd==0)
       return true;   
    qtd-=qtdcad;
    return false;
}
}


Segue classe Aluno:

Código: Selecionar tudo
package Modulo4JavaStart;
import java.util.Scanner;
public class SalaDeAula {
private String turma;
private Aluno alunos[]= new Aluno[10];   
public void setTurma(String nomeTurma){
this.turma=nomeTurma;
}
public void criaSala(){
   int resp=0,cont=0;
      do{
         Scanner str=new Scanner(System.in);
         if(cont>=10){
            System.out.println("A sala esta lotada desculpe");
            break;
         }else{
               alunos[cont]=new Aluno();
               System.out.println("Qual o nome do aluno");
               alunos[cont].setNome(str.nextLine());
               System.out.println("Qual a idade");
               alunos[cont].setIdade(str.nextInt());
               System.out.println("Qual o CPF");
               alunos[cont].setCpf(str.nextDouble());
               cont++;
        }
         System.out.println("Deseja cadastar mais um aluno? 1 para sim ou 0 para não");
         resp=str.nextInt();
      }while(resp!=0);
      
   }
}

JHS6544
 
Mensagens: 106
Data de registro: Qua Mar 24, 2010 10:47 am

Re: [RESOLVIDO] Exercício 17

Mensagempor JHS6544 em Seg Abr 19, 2010 8:18 am

Fiz bastante reuso acho que 90% do código fou reusado.
A única classe que tive que criar foi a classe escola.
E se não tivesse colococado o método main na classe Aluno, não teria o trabalho de renomea-lo.
O programa funciona de forma bem simples.
Instaciamos a classe escola logo em seguida classe SalaDeAula.
chamamos o método SetSalaDeAula na instancia de escola passando o objeto SalaDeAula.
método setSalaDeAula pergunta quantas salas desejamos cadastrar e cadastra a quantidade indicada , dando a possibilidade de cadastrar o restante das salas depois.
uso qtd da instancia de escola como controle para verificar a quantidade cadastrada
metodo setSalaDeAula retorna true, quando o limite de 20 salas for atingido o mesmo retorna false e a possibilidade de cadastro de salas não é mais permitida.
todo esse código fica em um laço com menu que possibilita o usuário incluir salas de aula, exceção o objeto escola;
Bom a idéia pelo menos é essa vou construir o main do programa agora e depois posto para dizer se tudo correu cnforme meus pensamentos.

Acho que da mais trabalho preencher o nome dos alunos da sala e da escola do que criar este programa.(a execução demanda mais tempo que o programa em sí. Essa apostila em sí é muito boa). :twisted: :twisted: :twisted:
JHS6544
 
Mensagens: 106
Data de registro: Qua Mar 24, 2010 10:47 am

Re: [RESOLVIDO] Exercício 17

Mensagempor JHS6544 em Seg Abr 19, 2010 10:02 am

testei agora esta ok, esta é versão simplificada falta o menu ainda :twisted: :twisted: :twisted:
package Modulo4JavaStart;
Código: Selecionar tudo
import javax.swing.JOptionPane;
public class testaEscola {
public static void main(String args[]){
   Escolas escola=new Escolas();
   char resp='n';
   escola.setNome(JOptionPane.showInputDialog(null,"Qual o nome da escola"));
   escola.setCnpj(Double.parseDouble(JOptionPane.showInputDialog(null,"Qual o CNPJ")));
   do{
      SalaDeAula sala=new SalaDeAula();
      if(escola.setSalas(sala)){
         resp='n';
      }else
      {
         resp=JOptionPane.showInputDialog(null,"Deseja cadastrar mais salas sim/não").toLowerCase().charAt(0);
      }
   }while(resp!='n');
}
}
JHS6544
 
Mensagens: 106
Data de registro: Qua Mar 24, 2010 10:47 am

Re: [RESOLVIDO] Exercício 17

Mensagempor JHS6544 em Sex Jun 04, 2010 5:41 pm

Faz tempo que não entro no fórum.
Voltei a estudar agora, finalizei o módulo 4.

Segue a solução do 17.
O programa possibilita cadastrar várias turmas e alunos, além de permitir opção de visualização da lista de alunos conforme a sala escolhida.

É possível listar os alunos a qualquer hora e visualizar claramente a mundança de turma.
(utilizei uma classe chamada Contador que criei para auxiliar no controle dos Arrays(alunos,salas)).

Código: Selecionar tudo
package Modulo4;

public class Contador {
      //Estado
      private int valInicial;
      private int valAtual;
      
      //comportamento
      public void incremento(int incremento){
         this.valAtual+=incremento;
         System.out.print("|"+valAtual);
      }
      public void decremento(int decremento){
         this.valAtual-=decremento;
      }
      public Integer getValAtual(){
         return this.valAtual;
      }
      public void impValAtual(){
         System.out.println("|"+valAtual);
      }
      public Integer getValInicial(){
         return this.valInicial;
      }
}

Código: Selecionar tudo
package Modulo4;

public class Aluno extends Pessoa{
   public Aluno(String nome, double cpf, int idade) {
      super(nome, cpf, idade);
      // TODO Auto-generated constructor stub
   }
   public Aluno(){
      
   }
   int rm;

   public int getRm() {
      return rm;
   }

   public void setRm(int rm) {
      this.rm = rm;
   }
}



Código: Selecionar tudo
package Modulo4;
import java.util.Arrays;

import javax.swing.JOptionPane;
public class Sala {
      //estado
      String nome;
      String horario;
      Aluno a[]=new Aluno[10];
      Contador cont=new Contador();
      
      //comportamento
      public String getNome() {
         return nome;
      }
      
      public void setNome(String nome) {
         this.nome = nome;
      }
      
      public String getHorario() {
         return horario;
      }
      
      public void setHorario(String horario) {
         this.horario = horario;
      }
      
      public boolean addPessoa(Aluno x){
         if(cont.getValAtual()<11){
            a[cont.getValAtual()]=x;
            cont.incremento(1);
            return true;
         }else
         {
            System.out.println("limite de alunos alcançado");
            return false;
         }
         
      }
      
      //Pesquisa  por rm
      public  int pesquisa(int rm){
         for(int i=0;i<cont.getValAtual();i++)
         {
            if(a[i].getRm()==rm){
               return i;
            }
         }
         return -1;
      }
      //lista os alunos
      public String listarAlunos(){
         String resp="Escolha a Sala de Aula";
         for(int i=0;i<cont.getValAtual();i++)
         {
            resp+="\n Aluno:"+a[i].getNome()+" RM:"+a[i].getRm();
            resp+="\n----------------------------";
         }
         
         return resp;
      }
      //remover um aluno mas antes  verifica se o mesmo existe
      public  Aluno  remover(int x){
         x=pesquisa(x);
         Aluno aux;
         if(x>-1){
            aux=a[x];
            for(int aux2=x;aux2<cont.getValAtual()-1;aux2++)
            {
               a[aux2]=a[aux2+1];
            }
            a[cont.getValAtual()]=null;
            cont.decremento(1);
            return aux;
         }else
         {
            JOptionPane.showMessageDialog(null, "Aluno Não encontrado");
            return aux=null;
         }
         
      }
      
}



Código: Selecionar tudo

package Modulo4;

import javax.swing.JOptionPane;

public class Escola {
   //Estado
   String CNPJ;
   String nome;
   Sala salas[]=new Sala[20];
   Contador cont=new Contador();
   //comportamento
   public String getCNPJ() {
      return CNPJ;
   }
   public void setCNPJ(String cNPJ) {
      CNPJ = cNPJ;
   }
   public String getNome() {
      return nome;
   }
   public void setNome(String nome) {
      this.nome = nome;
   }
   public Sala getSalas(int i) {
      return salas[i];
   }
   public void setSalas(Sala s) {
      this.salas[cont.getValAtual()]=s;
      cont.incremento(1);
   }
   public  int pesquisa(String nome){
      for(int i=0;i<cont.getValAtual();i++)
      {
         if(salas[i].getNome().equals(nome)){
            return i;
         }
      }
      return -1;
   }

   public String listar(){
      String resp="Escolha a Sala de Aula";
      for(int i=0;i<cont.getValAtual();i++)
      {
         resp+="\n Sala:"+salas[i].getNome();
         resp+="\n----------------------------";
      }
      
      return resp;
   }
   public void tranferencia(){
      
   }
}

Código: Selecionar tudo
package Modulo4;
import javax.swing.JOptionPane;
public class TestEscola {
   public static void main(String args[]){
      Escola es=new Escola();
      Sala sa[]=es.salas;
      Contador c=es.cont;
      int pos;
      String resp;
      String resp2;
      do{
         resp="O que deseja fazer?";
         resp+="\n--------------------------------";
         resp+="\n 1 Desejo cadastrar uma sala de aula";
         resp+="\n 2 Desejo cadastar um novo aluno";
         resp+="\n 3 Desejo transferir um aluno de sala";
         resp+="\n 4 listar alunos de um sala";
         resp+="\n 5 Desejo sair do programa";
         resp+="\n--------------------------------";
         resp=JOptionPane.showInputDialog(null,resp);
         
         switch(Integer.parseInt(resp)){
            case 1:
                  Sala s=new Sala();
                  s.setNome(JOptionPane.showInputDialog(null,"Nome:"));
                  s.setHorario(JOptionPane.showInputDialog(null,"Horario:"));
                  sa[c.getValAtual()]=s;
                  c.incremento(1);
                  break;
            case 2:
                  if(c.getValAtual()>0){
                  resp2=JOptionPane.showInputDialog(null,es.listar());
                  pos=es.pesquisa(resp2);
                  Aluno a=new Aluno();
                  a.setNome(JOptionPane.showInputDialog(null,"Nome:"));
                  a.setRm(Integer.parseInt(JOptionPane.showInputDialog("RM:")));
                   sa[pos].addPessoa(a);
                  }
                  else
                  {
                     JOptionPane.showMessageDialog(null,"nenhuma sala cadastrada");
                  }
                  break;
            case 3:
                  if(c.getValAtual()>1){
                  resp2=JOptionPane.showInputDialog(null,es.listar());
                  pos=es.pesquisa(resp2);
                  resp2=JOptionPane.showInputDialog(null,sa[pos].listarAlunos());
                  Aluno x=sa[pos].remover(Integer.parseInt(resp2));
                     if(x!=null){
                     resp2=JOptionPane.showInputDialog(null,es.listar());
                     pos=es.pesquisa(resp2);
                     sa[pos].addPessoa(x);
                     }
                  }
                  else
                  {
                     JOptionPane.showMessageDialog(null,"tem que ter pelo menos 2 salas cadastradas");
                  }
                  break;
            case 4:
                  resp2=JOptionPane.showInputDialog(null,es.listar());
                  pos=es.pesquisa(resp2);
                  JOptionPane.showMessageDialog(null,sa[pos].listarAlunos());
                  break;
            case 5:
                  resp="5";
                  break;
            default:
               JOptionPane.showMessageDialog(null,"Opção inválida");      
         }
      }while(Integer.parseInt(resp)!=5);
   }
}
JHS6544
 
Mensagens: 106
Data de registro: Qua Mar 24, 2010 10:47 am


Retornar para Exercícios - Módulo 04 - OO, Classes e Objetos, Modificadores de Acesso

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante

cron