Jump to content
xinoj

login a chamar o menu de cada utilizador

Recommended Posts

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.

Edited by thoga31
Formatação do tópico (código) corrigida

Share this post


Link to post
Share on other sites
AJBM

Boas!

Primeiro edita o teu código e no primeiro code de cada pedaço de codigo poe =java.

Qual é o warning que te da?

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.