1 Reply Latest reply: Jan 24, 2013 7:14 AM by PhHein RSS

    can't call method menu in method login (dificultty in authentication)

    986898
      Good day

      I'm new in java, and i try too make a project too school and i have some dificulties, in method login i can't authentication de users and call de menu of each other, i put my project in here and please try too help me

      import java.io.*;
      import java.util.*;

      public class GereEscola implements Serializable
      {
      String user;
      Menu m = new Menu();

      // login
      public void login(Hashtable<String,String> listaUsers) throws IOException
      {
      String password;
      int i;

      Docente doc = new Docente();
      Funcionario func = new Funcionario();
      Aluno al = new Aluno();

      System.out.println("****************LOGIN***************");
      System.out.println("Username: ");
      user = Leitura.LeString();
      System.out.println("Password: ");
      password = Leitura.LeString();
      System.out.println("************************************");

      for(i=0;i<listaUsers.size();i++){
      //tentei desta forma
      if(listaUsers.containsKey(user) && listaUsers.containsValue(al) && password==al.getPass()){
      m.menuAluno();}
      else if (user==doc.getUser() && password==doc.getPass()){ // e desta forma
      m.menuDocente();}
      else if (user==func.getUser() && password==func.getPass()) {
      m.menuFuncionario();}
      else {
      System.out.println("user ou password inválida");
      m.menuInicio(listaUsers);}
      }
      }

      // registo de utilizadores
      public void registo_docente(Hashtable<String,Docente> listaUsers) throws IOException
      {  
      String pass, nome, data_nasc, disciplina;
      int BI, NIF;

      System.out.println("************* REGISTO DE DOCENTE **************");
      System.out.println("NOME: ");
      nome=Leitura.LeString();
      System.out.println("DISCIPLINA: ");
      disciplina=Leitura.LeString();
      System.out.println("DATA DE NASCIMENTO: ");
      data_nasc=Leitura.LeString();
      System.out.println("BI: ");
      BI=Leitura.LeInt();
      System.out.println("NIF: ");
      NIF=Leitura.LeInt();
      System.out.println("USERNAME: ");
      user= Leitura.LeString();
      System.out.println("PASSWORD: ");
      pass= Leitura.LeString();

      Docente doc = new Docente(nome,disciplina,data_nasc,BI,NIF,user,pass);
      String chave = doc.getUser();

      if(listaUsers.get(chave) == null){
      listaUsers.put(chave, doc);
      Ficheiro f = new Ficheiro();
      f.GravaUtilizadoresFicheiro(listaUsers);
      System.out.println("Docente registado");
      m.menuInicio(listaUsers);
      }else{
      System.out.println("O utilizador com o username "+user+" já existe");
      m.menuInicio(listaUsers);
      }
      }

      public void registo_aluno(Hashtable<String,Aluno> listaUsers) throws IOException
      {  
      String pass, nome, data_nasc;
      int BI, NIF, numero;

      System.out.println("************* REGISTO DE ALUNO **************");
      System.out.println("NOME: ");
      nome= Leitura.LeString();
      System.out.println("NUMERO: ");
      numero=Leitura.LeInt();
      System.out.println("DATA DE NASCIMENTO: ");
      data_nasc=Leitura.LeString();
      System.out.println("BI: ");
      BI=Leitura.LeInt();
      System.out.println("NIF: ");
      NIF=Leitura.LeInt();
      System.out.println("USERNAME: ");
      user=Leitura.LeString();
      System.out.println("PASSWORD: ");
      pass=Leitura.LeString();

      Aluno al = new Aluno(nome,numero,data_nasc,BI,NIF,user,pass);
      String chave = al.getUser();

      if(listaUsers.get(chave) == null){
      listaUsers.put(chave, al);
      Ficheiro f = new Ficheiro();
      f.GravaUtilizadoresFicheiro(listaUsers);
      System.out.println("Aluno registado");
      m.menuInicio(listaUsers);
      }else{
      System.out.println("O utilizador com o username "+user+" já existe");
      m.menuInicio(listaUsers);
      }
      }

      public void registo_func(Hashtable<String,Funcionario> listaUsers) throws IOException
      {  
      String pass, nome, data_nasc;
      int BI, NIF;

      System.out.println("************* REGISTO DE FUNCIONARIO **************");
      System.out.println("NOME: ");
      nome=Leitura.LeString();
      System.out.println("DATA DE NASCIMENTO: ");
      data_nasc=Leitura.LeString();
      System.out.println("BI: ");
      BI=Leitura.LeInt();
      System.out.println("NIF: ");
      NIF=Leitura.LeInt();
      System.out.println("USERNAME: ");
      user=Leitura.LeString();
      System.out.println("PASSWORD: ");
      pass=Leitura.LeString();

      Funcionario func = new Funcionario(nome, data_nasc, BI, NIF, user, pass);
      String chave = func.getUser();

      if(listaUsers.get(chave) == null){
      listaUsers.put(chave, func);
      Ficheiro f = new Ficheiro();
      f.GravaUtilizadoresFicheiro(listaUsers);
      System.out.println("Funcionario registado");
      m.menuInicio(listaUsers);
      }else{
      System.out.println("O utilizador com o username "+user+" já existe");

      }
      }
      }

      import java.io.*;
      import java.util.*;
      import java.text.ParseException;

      public class Menu
      {
      private int x;


      public void menuDocente()
      {
      System.out.println("***************** MENU DOCENTE ******************");
      System.out.println("******** Escolha uma das seguintes opções *********");
      System.out.println("******** 1 - SUMARIOS *********");
      System.out.println("******** 2 - HORARIO *********");
      System.out.println("******** 3 - ALUNOS INSCRITOS TURMAS *********");
      System.out.println("******** 4 - NOTAS *********");
      System.out.println("******** 5 - PAUTAS *********");
      System.out.println("******** 6 - GESTAO ESTATISTICA *********");
      System.out.println("******** 7 - PERSONALIZAR DADOS *********");
      System.out.println("******** 8 - SAIR *********");
      System.out.println("* *");
      System.out.println("***************************************************");
      }

      public void menuAluno()
      {
      System.out.println("***************** MENU ALUNO ******************");
      System.out.println("******** Escolha uma das seguintes opções *********");
      System.out.println("******** 1 - MATRICULA *********");
      System.out.println("******** 2 - DISCIPLINAS *********");
      System.out.println("******** 3 - TURMAS *********");
      System.out.println("******** 4 - EXAMES *********");
      System.out.println("******** 5 - CONSULTAR NOTAS *********");
      System.out.println("******** 6 - DOCUMENTOS *********");
      System.out.println("******** 7 - INFORMACAO *********");
      System.out.println("******** 8 - HORARIO *********");
      System.out.println("******** 9 - PERSONALIZAR DADOS *********");
      System.out.println("******** 10 - SAIR *********");
      System.out.println("* *");
      System.out.println("***************************************************");
      }

      public void menuFuncionario()
      {
      System.out.println("************** MENU FUNCIONARIO ***************");
      System.out.println("******** Escolha uma das seguintes opções *********");
      System.out.println("******** 1 - HORARIOS *********");
      System.out.println("******** 2 - MAPAS DE EXAMES *********");
      System.out.println("******** 3 - PLANOS CURRICULARES *********");
      System.out.println("******** 4 - VALIDAR INSCRICOES EXAMES *********");
      System.out.println("******** 5 - VALIDAR MATRICULAS *********");
      System.out.println("******** 6 - PAUTAS *********");
      System.out.println("******** 7 - SALAS *********");
      System.out.println("******** 8 - MATERIAL *********");
      System.out.println("******** 9 - DOCUMENTOS *********");
      System.out.println("******** 10 - GESTAO ESTATISTICA *********");
      System.out.println("******** 11 - SAIR *********");
      System.out.println("* *");
      System.out.println("***************************************************");
      }

      public void menuInicio(Hashtable listaUsers) throws IOException
      {
      GereEscola gere = new GereEscola();

      System.out.println("*************SISTEMA DE GESTAO ESCOLAR************");
      System.out.println("*********Escolha uma das seguintes opções*********");
      System.out.println("********* 1 - LOGIN *********");
      System.out.println("********* 2 - REGISTO *********");
      System.out.println("********* 3 - SAIR *********");
      System.out.println("* *");
      System.out.println("**************************************************");
      x=Leitura.LeInt();
      switch (x) {
      case 1:
      gere.login(listaUsers);
      break;
      case 2:
      menuRegisto(listaUsers);
      break;
      case 3:
      System.exit(0);
      break;
      default:
      System.out.println("Esta opcao nao valida!!!");
      }
      }

      public void menuRegisto(Hashtable listaUsers) throws IOException
      {
      GereEscola gere = new GereEscola();

      System.out.println("*************REGISTO DE UTILIZADORES**************");
      System.out.println("*********Escolha uma das seguintes opções*********");
      System.out.println("********* 1 - Registo de Docente *********");
      System.out.println("********* 2 - Registo de Aluno *********");
      System.out.println("********* 3 - Registo de Funcionario *********");
      System.out.println("********* 4 - Voltar *********");
      System.out.println("* *");
      System.out.println("**************************************************");
      x=Leitura.LeInt();
      switch (x) {
      case 1:
      gere.registo_docente(listaUsers);
      break;
      case 2:
      gere.registo_aluno(listaUsers);
      break;
      case 3:
      gere.registo_func(listaUsers);
      break;
      case 4:
      menuInicio(listaUsers);
      break;
      default:
      System.out.println("Esta opcao nao valida!!!");
      }
      }
      }

      import java.io.*;
      import java.util.*;


      public class Ficheiro
      {
      // utilizadores
      public void GravaUtilizadoresFicheiro(Hashtable listaUsers) throws IOException{

      try {

      File file = new File("users.dat");

      if (!file.exists()) {
      //cria um ficheiro (vazio)
      file.createNewFile();
      }

      FileOutputStream os = new FileOutputStream(new File("users.dat"));
      ObjectOutputStream oos = new ObjectOutputStream(os);

      oos.writeObject(listaUsers);
      oos.flush();
      oos.close();

      } catch (IOException e) {
      System.out.println(e.getMessage());
      }

      }

      public Hashtable LeUtilizadores(Hashtable listaUsers) throws FileNotFoundException, IOException, ClassNotFoundException{

      File f = new File("users.dat");

      if(f.exists()){
      FileInputStream is = new FileInputStream(f);
      ObjectInputStream ois = new ObjectInputStream(is);

      listaUsers = (Hashtable) ois.readObject();

      ois.close();
      is.close();
      }
      else
      System.out.println("ficheiro nao existe");
      return listaUsers;

      }
      //SUMARIOS

      public void GravaSumario(Hashtable sumarios) throws IOException{

      File file = new File("sumarios.txt");

      try {

      if (!file.exists()) {
      //cria um ficheiro (vazio)
      file.createNewFile();
      }

      //escreve no arquivo
      FileWriter fw = new FileWriter(file, true);

      BufferedWriter bw = new BufferedWriter(fw);

      bw.write("Texto a ser escrito no txt");

      bw.newLine();

      bw.close();
      fw.close();

      } catch (IOException ex) {
      ex.printStackTrace();
      }

      }

      public Hashtable LeSumarios(Hashtable sumarios) throws FileNotFoundException, IOException, ClassNotFoundException{

      File f = new File("sumarios.txt");

      try {

      if (!f.exists()) {
      //cria um ficheiro (vazio)
      f.createNewFile();
      }

      //faz a leitura no ficheiro
      FileReader fr = new FileReader(f);

      BufferedReader br = new BufferedReader(fr);

      //equanto houver mais linhas
      while (br.ready()) {
      //lê a proxima linha
      String linha = br.readLine();

      //faz algo com a linha
      System.out.println(linha);
      }

      br.close();
      fr.close();

      } catch (IOException ex) {
      ex.printStackTrace();
      }
      return sumarios;
      }

      public void RequestGravaSumarios(Hashtable sumarios) throws IOException{
      String compara = "";
      System.out.println("Deseja gravar a informação?");
      System.out.println("'sim' ou 'nao'");
      compara = Leitura.LeString();
      if(compara.equals("sim")){
      FileOutputStream os = new FileOutputStream(new File("sumarios.txt"));
      ObjectOutputStream oos = new ObjectOutputStream(os);



      oos.writeObject(sumarios);
      oos.flush();

      oos.close();
      }else if(compara.equals("nao")){
      System.out.println("informação não gravada");
      }else{
      System.out.println("A opção "+compara+" é inválida, por favor escreva 'sim' ou 'nao'.");
      RequestGravaSumarios(sumarios);
      }
      }
      }

      import java.io.FileNotFoundException;
      import java.io.IOException;
      import java.util.Hashtable;

      public class Escola
      {
      public static void main(String[] args) throws IOException, FileNotFoundException, ClassNotFoundException {

      //criação de objecto

      Ficheiro f = new Ficheiro();
      Menu m = new Menu();

      //criação de Hashtables

      Hashtable listaUsers = new Hashtable();
      Hashtable sumarios = new Hashtable();

      //leitura dos ficheiros para as hashtables

      listaUsers = f.LeUtilizadores(listaUsers);
      sumarios = f.LeSumarios(sumarios);

      //entrada no menu
      m.menuInicio(listaUsers);
      }
      }