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…
[code]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");
}
}
}[/code]
[code]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!!!");
}
}
}[/code]
[code]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);
}
}
} [/code]
[code]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);
}
}[/code]
que estarei a fazer mal?
por favor agradeco mto a ajuda que possam facultar.