Ir para o conteúdo
xinoj

login a chamar o menu de cada utilizador

Mensagens Recomendadas

xinoj

Bom dia

Eu estou a desenvolver um projeto para o curso de gestão de uma escola e penso que consigo gravar cada utilizador para ficheiro porque se registo duas vezes um utilizador com o mesmo user ele da erro mas no metodo login não consigo autenticar e chamar o menu correspondente a cada utilizador e dá-me sempre um warning mto estranho na classe menu. Por favor ajudem-me.. envio as classes e metodos a baixo:

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);    
}
}

Que estarei eu a fazer mal? ajudem-me pf, não percebo mto de programação.

Editado por thoga31
Formatação do tópico (código) corrigida

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
xinoj

Boas

já está :D

o warning é este:

"warnings from last compilation

C\diretorio em que esta o projecto\nome do projecto\menu.java uses unchecked or unsafe operations. Recompile with -Xlint:unchecked for details."

obrigado pela atenção

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.