Topic
IC4NOTICE: developerWorks Community will be offline May 29-30, 2015 while we upgrade to the latest version of IBM Connections. For more information, read our upgrade FAQ.
No replies
SystemAdmin
SystemAdmin
16 Posts
ACCEPTED ANSWER

Pinned topic erro de implementação - login a chamar o menu de cada utilizador

‏2013-01-24T11:33:00Z |
Bom dia

Eu estou a desenvolver um projeto para o curso de gestão de uma escola e penso que consigo gravar 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...

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;

}
}
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.