JavaTeco, help-me!

2 respostas
J

kra, valew msmo… é muito simples… falta só acabar umas coisinhas… o detalhe, é no meu programa, ele esta apenas cadastrando os atributos de pessoa e nada de funcoinario nem de cadastro… entao, vc tera de fazer isso… um campo de RA p/ aluno e um de Salario p/ funcionario… só isso kra…

na implementacao grafica, tera de ter apenas os campos e uma caixa de selecao: se aluno, cadastra RA, se Funcionario, cadastra Salario… Só isso kra… e uma caixa no canto alto da tela com as opcoes de salvar e abrir um gradado p/ exibir… só isos kra… ta ai os codigos…

Codigo PESSOA

Código:

import java.io.* ;

public class Pessoa
{
   //Dados que uma pessoa possui
   String Nome = "", Endereco = "", Cidade = "",Arq = "" ;
          
   RandomAccessFile EntSai ;
   
   long pos, tam ; //Posição atual e tamanho
   int Max_Campo = 15 ;//Tamanho do campo

   /***************************************************************************/   
   
       
   boolean Abrir()
   {      
      try
      {
   
         EntSai = new RandomAccessFile(Arq+".txt","rw") ;
            return(true) ;         
      }
      catch (IOException e)  {return(false) ;}            
   }
      
   
   /***************************************************************************/
   
   public String Palavra(BufferedReader BR)
   {
      String str = "" ;
      try
      {
         str = BR.readLine().toUpperCase() ;   
         
         for (int i = str.length();i < Max_Campo;i++)
         {
            str = str + " " ;
         }         
         return(str.substring(0,Max_Campo)) ;   
      }
      catch (IOException e)
      {
         for (int i = str.length();i < Max_Campo;i++)
         {
            str = str + " " ;
         }         
         return(str.substring(0,Max_Campo)) ;   
      }
                           
   }   
   

   /***************************************************************************/
   
   
   public void msgln(String texto)
   {
      System.out.println(texto) ;
   }

   /***************************************************************************/
   
   public void msg(String str)
   {
      System.out.print(str) ;
   }
   
   /***************************************************************************/

   public void ImprimirCampos()
   {
      
      if ((Nome.length() > 0) || (Endereco.length() > 0) ||
          (Cidade.length() > 0) || (Cidade.length() > 0))
      {
         msgln("Nome.....: " + Nome) ;
         msgln("Endereco.: " + Endereco) ;
         msgln("Cidade...: " + Cidade) ;
      }
   }
      
   
   /***************************************************************************/   
   public void Alterar()
   {
      
   }
   
   
   /***************************************************************************/   
   
   BufferedReader Cad(boolean Alterar)
   {
      BufferedReader BR = new BufferedReader(new InputStreamReader(System.in)) ;
      
      msg("Nome.....: ") ; Nome     = Palavra(BR) ;
      msg("Endereco.: ") ; Endereco = Palavra(BR) ;
      msg("Cidade...: ") ; Cidade   = Palavra(BR) ;
      return(BR) ;

   }
   
   /***************************************************************************/
   
   public int PreencheCampos(String str)
   {
      int Campo = 0 ;
      
       Nome = Endereco = Cidade = "" ;
      
      for (int i = 0;i < str.length();i++)
      {
         if (str.charAt(i) == '"')
         {
            Campo ++ ;
            //msgln(Integer.toString(Campo)) ;
         }
         else
         {
            switch (Campo)
            {
               case  1 : Nome     = Nome + str.charAt(i) ;
                       break ;
               case  3 : Endereco = Endereco + str.charAt(i) ;
                         break ;
               case  5 : Cidade   = Cidade + str.charAt(i) ;
                       break ;
               
            }
         }
         

         if (Campo == 12)
         {
            Campo = i ;
            break ;           
         }
      }
      return(Campo) ;         
   }   
   
   
   /***************************************************************************/
   
   public boolean GravarCampos(RandomAccessFile DOS)
   {      
    
      try
      {   
             
         DOS.writeUTF('"' + Nome + '"') ;
         DOS.writeUTF('"' + Endereco + '"') ;
         DOS.writeUTF('"' + Cidade + '"') ;
         return(true) ;
      }
      catch (IOException e) {return(false) ;}

      
   
   }   

/***************************************************************************/   

   void Apagar()
   {
      try
      {
         EntSai.seek(0) ;
         
          String str ;    
         
         RandomAccessFile Temp = new RandomAccessFile("temp.txt","rw") ;
          while ((str = EntSai.readLine()) != null)
         {
            if (EntSai.getFilePointer() != (pos + str.length()) )
            {
                 Temp.writeUTF(str) ;
                 Temp.writeChar(10) ;
            }
         }
         Temp.close() ;
         EntSai.close() ;
         
         File Aux = new File(Arq + ".txt") ;
         Aux.delete() ;

         File Aux1 = new File("temp.txt") ;
         Aux1.renameTo(Aux) ;
   
         if (Abrir())   
            EntSai.seek(pos) ;         
      
      }
      catch (IOException e) {}
      
      
   }
   
   
   
   
            
}

CODIGO ALUNO

Código:

import java.io.* ;

public class Aluno extends Pessoa
{
   



   /***************************************************************************/
   
   Aluno (String Arq)
   {
      this.Arq = Arq ;
   }
   
      
   /***************************************************************************/
   
   BufferedReader Cad(boolean Alterar)
   {
      BufferedReader BR = super.Cad(Alterar) ; ;      
      salvar(Alterar) ;               
      return(BR) ;
   }
      
   

   /***************************************************************************/   
   
   char lechar()
   {
   
      try
      {
         String str ;

         BufferedReader BR = new BufferedReader(new InputStreamReader(System.in)) ;
         str = BR.readLine().toUpperCase() ;

         if (str.length() <= 0)       
            str = " " ;    
         
         return(str.charAt(0)) ;
      }
      catch (IOException e) {return(' ') ; }
      
   }


   
   /***************************************************************************/   
   
   
   public void Alterar()
   {   
      try
      {
         if (Abrir())
         {
             
            String str ;
            
            char op ;
            
            //Coloca o arquivo na primeira posicao
            EntSai.seek(0) ;
            
            pos = 0 ;
            while ((str = EntSai.readLine()) != null)
            {
               
                pos = EntSai.getFilePointer() - str.length() ;
                tam = str.length() ;
               

               //*Leio a primeira linha
               PreencheCampos(str) ;      
               ImprimirCampos() ;
               msgln(" A - Altera Cadastro ") ;
               msgln(" D - Apagar ") ;
               msgln(" V - Voltar") ;
               msg("Selecione a opcao: ") ;
               op = lechar() ;
               
               switch (op)
               {
                  case 'A' :
                           {
                              Cad(true) ;
                              break ;
                           }
                  case 'D' :
                           {
                              Apagar() ;
                              break ;
                           }
               }
                
               
               if (op == 'V')
                    break ;               
            }
            EntSai.close() ;
         }
      }
      catch (IOException e)  {}
   }
   
   /***************************************************************************/   
   
   public void salvar(boolean Alterar)
   {   
      
         
         
        try
        {
          
   
           if (! Alterar)
           {
              Abrir() ;
              EntSai.seek(EntSai.length()) ;
           }
           else
             EntSai.seek(pos) ;
                       
          if (super.GravarCampos(EntSai))
          {
            //caracter de fim de linha               
            EntSai.writeChar(10) ;    
         
            if (! Alterar)   
               EntSai.close() ;               

         }

      }
      catch (IOException e)  {}
   }

      
}

falta criar um campo RA

CODIGO FUNCIONARIO

Código:

import java.io.* ;

public class Funcionario extends Pessoa
{
   /*So pra mostrar alguma implemEntSaiação na classe*/
   String Empresa = "", Salario = "" ;
   int N_Campos = 8 ; //Numero de campos


   /***************************************************************************/
   
   Funcionario (String Arq)
   {
      this.Arq = Arq ;
   }
   
   /***************************************************************************/   
   
   public void ImprimirCampos()
   {
      super.ImprimirCampos() ;
      if ((Empresa.length() > 0) || (Salario.length() > 0))
      {
         msgln("Empresa..: " + Empresa) ;
         msgln("Salario..: " + Salario) ;
      }
   }

   
   /***************************************************************************/
   
   BufferedReader Cad(boolean Alterar)
   {
      
      BufferedReader BR = super.Cad(Alterar) ;
      msg("Empresa..: ") ; Empresa = Palavra(BR) ;
      msg("Salario..: ") ; Salario = Palavra(BR) ;
      salvar(Alterar) ;
      return(BR) ;
               
   }
      
   /***************************************************************************/
   
   public int PreencheCampos(String str)   
   {
      int Campo = 0 ;
      int pos   = super.PreencheCampos(str) + 1;
      
      Empresa = Salario = "" ;
      
      for (int i = pos;i < str.length();i++)
      {
         if (str.charAt(i) == '"')
            Campo ++ ;
         else
         {
            switch (Campo)
            {
               case  1 : Empresa  = Empresa + str.charAt(i) ;
                         break ;
               case  3 : Salario  = Salario + str.charAt(i) ;
                       break ;
               
            }
         }
      }      
      return(0) ;
   }
   
   
   /***************************************************************************/   
   
   char lechar()
   {
   
      try
      {
         String str ;

         BufferedReader BR = new BufferedReader(new InputStreamReader(System.in)) ;
         str = BR.readLine().toUpperCase() ;

         if (str.length() <= 0)       
            str = " " ;    
         
         return(str.charAt(0)) ;
      }
      catch (IOException e) {return(' ') ; }
      
   }

   /***************************************************************************/   
   
       


   
   
   public void Alterar()
   {   
      try
      {
         if (Abrir())
         {
             
            String str ;
            
            char op ;
            
            //Coloca o arquivo na primeira posicao
            EntSai.seek(0) ;
            
            pos = 0 ;
            while ((str = EntSai.readLine()) != null)
            {
               
                pos = EntSai.getFilePointer() - str.length() ;
                tam = str.length() ;
               

               //*Leio a primeira linha
               PreencheCampos(str) ;      
               ImprimirCampos() ;
               msgln(" A - Altera Cadastro ") ;
               msgln(" D - Apagar ") ;
               msgln(" V - Voltar") ;
               msg("Selecione a opcao: ") ;
               op = lechar() ;
               
               switch (op)
               {
                  case 'A' :
                           {
                              Cad(true) ;
                              break ;
                           }
                  case 'D' :
                           {
                              Apagar() ;
                              break ;
                           }
               }
                
               
               if (op == 'V')
                    break ;               
            }
            EntSai.close() ;
         }
      }
      catch (IOException e)  {}
   }
   
   /***************************************************************************/   
   
   public void salvar(boolean Alterar)
   {   
      
         
         
        try
        {
          
   
           if (! Alterar)
           {
              Abrir() ;
              EntSai.seek(EntSai.length()) ;
           }
           else
             EntSai.seek(pos) ;
                       
          if (super.GravarCampos(EntSai))
          {
            EntSai.writeUTF('"' + Empresa + '"') ;
            EntSai.writeUTF('"' + Salario + '"') ;
            
            //caracter de fim de linha               
            EntSai.writeChar(10) ;    
            
         
         
            if (! Alterar)
            {
               EntSai.close() ;               
            }
         }

      }
      catch (IOException e)  {}
   }
   

}

neste, vc tira a empresa e deixa apenas o salario

CODIGO CADASTRO

Código:

/* Esta classe contém os dados básico de uma pessoa
* Assim como suas formas de gravação qdo for gravar
* não posso esquecer de colocar tudo entre aspas
*/

import java.io.* ;

public class Cadastro
{      

    Pessoa F ;
   
   public void msgln(String texto)
   {
      System.out.println(texto) ;
   }
   

   /***************************************************************************/

   char lechar()
   {
   
      try
      {
         String str ;

         BufferedReader BR = new BufferedReader(new InputStreamReader(System.in)) ;
         str = BR.readLine().toUpperCase() ;

         if (str.length() <= 0)       
            str = " " ;    
         
         return(str.charAt(0)) ;
      }
      catch (IOException e) {return(' ') ; }
      
   }
   
   /***************************************************************************/
   
   public void OpCad(String Arq)
   {
      char ch ;
      
      do
      {
         if (Arq.toUpperCase() == "FUNCIONARIO")
           F = new Funcionario(Arq) ;
         else
           F = new Aluno(Arq) ;

         msgln("Cadastro de " + Arq) ;
         msgln("Opcoes:") ;
         msgln("1 - Cadastrar") ;
         msgln("2 - Listar") ;         
         msgln("3 - Voltar") ;
         ch = lechar() ;
         
         switch (ch)
         {
            case '1' : F.Cad(false) ;
                     break ;
            case '2' : F.Alterar() ;   
                     break ;                      
         }
         
         
      }
      while (ch != '3') ;
      
   }
   
   /***************************************************************************/
   
   public void Inicial()
   {
      char ch ;
      
      do
      {
         msgln("Escolha a opcao") ;
         msgln("1 - Funcionario") ;
         msgln("2 - Aluno") ;
         msgln("3 - Sair") ;
         msgln("Opcao: ") ;
         
         ch = lechar() ;

         switch (ch)
         {
            case '1' : OpCad("Funcionario") ;
                     break ;
            case '2' : OpCad("Aluno") ;
                     break ;                     
         }
         

      }
       while (ch != '3') ;
   }
   

   /***************************************************************************/   
   
   static public void main(String args[])
   {
      Cadastro C = new Cadastro() ;
      C.Inicial() ;
      
      //Funcionario F = new Funcionario("Funcionario.txt") ;
      
   }
}

esta é a classe cadastro… nela, vc só vai implementar, alem do q esta ai, as opcoes de RA se aluno, ou, Salario se Funcionario…

usa esse msmo código e cria a INTERFACE… é uma tela apenas… tendo apenas akela caixa de selacao, ta ligado né… se tiver “tikado”, cadastra RA p/ aluno… se tiver “ticado” p/ funcionario, cadastra salario, p/ funcoinario…

preciso p/ quarta… de manha, tens como?? ou até a tarde… blz kra… to no desespero…

aguardo… e valews msmo… Juliano :frowning:

2 Respostas

R

finalizou a tempo este projeto?

R

vc tera mais chances de que o JavaTeco leia sua mensagem mandando um e-mail para ele ou uma MP

Criado 29 de março de 2004
Ultima resposta 13 de nov. de 2004
Respostas 2
Participantes 3