PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Duvida em programa java RMI #522408

10/06/2015

0

Fiz um trabalho de faculdade em java com rmi, um projeto de notas virtuais, onde o programa pede nome, matricula, avaliações e faz a média, informando se o aluno esta aprovado ou reprovado, e contabilizando o numero dos mesmos, usei o eclipse e estou com alguns problemas.

Gostaria que os clientes se comunicassem entre si e que o contador de alunos aprovados e reprovados fossem contabilizados no total de todos os cliente.
Exemplo: Caso abra dois cliente e 1 seja aprovado e outro reprovado que conte no servidor 1 aprovado e 1 reprovado, no meu caso aparece um resultado para cada cliente.

Cliente
import java.rmi.Naming;

import javax.swing.JOptionPane;

public class Cliente {

public static String msgp;
public static String msgcont;
@SuppressWarnings("unused")
public static void main ( String[] args) {
String nome, matricula, ava1, ava2, ava3,situacao = null;
int repetir, contr=0, conta=0;
float a1=0,a2=0,a3=0,media=0;

try {
Mensagem_IF mensagem1 = (Mensagem_IF) Naming.lookup("rmi://192.168.0.189/servidor");
Mensagem_IF mensagem2 = (Mensagem_IF) Naming.lookup("rmi://192.168.0.189/servidor");
Mensagem_IF mensagem3 = (Mensagem_IF) Naming.lookup("rmi://192.168.0.189/servidor");
Mensagem_IF mensagem4 = (Mensagem_IF) Naming.lookup("rmi://192.168.0.189/servidor");
Mensagem_IF mensagem5 = (Mensagem_IF) Naming.lookup("rmi://192.168.0.189/servidor");
Mensagem_IF mensagem6 = (Mensagem_IF) Naming.lookup("rmi://192.168.0.189/servidor");
Mensagem_IF mensagem7 = (Mensagem_IF) Naming.lookup("rmi://192.168.0.189/servidor");
Mensagem_IF mensagem8 = (Mensagem_IF) Naming.lookup("rmi://192.168.0.189/servidor");

do{
String m1 = JOptionPane.showInputDialog("Entre com o nome do aluno: ");
mensagem1.setMensagem(m1);
nome=mensagem1.getMensagem1();

String m2 = JOptionPane.showInputDialog("Entre com a matrícula: ");
mensagem2.setMensagem(m2);
matricula=mensagem2.getMensagem2();

String m3 = JOptionPane.showInputDialog("Entre com a primeira avaliação: ");
mensagem3.setMensagem(m3);
ava1= mensagem3.getMensagem3();
a1 = Float.parseFloat(ava1.trim());

String m4 = JOptionPane.showInputDialog("Entre com a segunda avaliação: ");
mensagem4.setMensagem(m4);
ava2=mensagem4.getMensagem4();
a2 = Float.parseFloat(ava2.trim());

media=(a1+a2)/2;

if (a1 > 10.0 || a2 > 10.0 || a1 < 0.0 || a2 < 0.0) {

JOptionPane.showMessageDialog(null, "Você digitou valores inválidos!");
situacao = ("com notas inválidas");
}

else
if(media>=6){

situacao = ("aprovado");
JOptionPane.showMessageDialog(null, "A média é " + media +", aluno aprovado !");
conta++;
}


else
if(media<6){

situacao = ("reprovado");
JOptionPane.showMessageDialog(null, "A média é " + media +", aluno reprovado !");
contr++;
}
msgp= "O aluno " +nome+ " com a matrícula de nº "+ matricula +" está "+ situacao +".";
String m6 = msgp;
mensagem6.setMensagem(m6);
String msgp=mensagem6.getMensagem6();
JOptionPane.showMessageDialog( null, msgp);

String m7 = ""+conta;
mensagem7.setMensagem(m7);
String msgconta=mensagem7.getMensagem7();

String m8 = ""+contr;
mensagem8.setMensagem(m8);
String msgcontr=mensagem8.getMensagem8();

msgcont = (conta+ " aluno(s) aprovado(s) \n" +contr+ " aluno(s) reprovado(s)");
mensagem5.setMensagem(msgcont);
JOptionPane.showMessageDialog( null, msgcont);


String novo = JOptionPane.showInputDialog("Notas de outro aluno? (1=Sim / 2=Não)");
repetir= Integer.parseInt(novo);

} while(repetir==1);

}
catch (Exception e )
{
e.printStackTrace();

}
}

}

Servidor
import java.rmi.Naming;
import java.rmi.registry.LocateRegistry;


public class Servidor {
public static void main( String[] args ){

try {
LocateRegistry.createRegistry(1099);
Mensagem_IF servidor = new ServicoDeMensagens();
Naming.rebind("servidor", servidor);
System.out.println("Servidor no ar.");
System.out.println("Sistema de Notas Virtual !!");
} catch (Exception e ) {
e.printStackTrace();
}
}
}

Interface
import java.rmi.Remote;
import java.rmi.RemoteException;

interface Mensagem_IF extends Remote {

public String getMensagem1() throws RemoteException;
public String getMensagem2() throws RemoteException;
public String getMensagem3() throws RemoteException;
public String getMensagem4() throws RemoteException;
public String getMensagem5() throws RemoteException;
public String getMensagem6() throws RemoteException;
public String getMensagem7() throws RemoteException;
public String getMensagem8() throws RemoteException;
public void setMensagem(String mensagem) throws RemoteException;

}

Serviço de msg

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;


@SuppressWarnings("serial")
public class ServicoDeMensagens extends UnicastRemoteObject implements Mensagem_IF {

private String mensagem = "";
public ServicoDeMensagens() throws RemoteException{};


public void setMensagem(String mensagem) throws RemoteException{
this.mensagem = mensagem;
}

@Override
public String getMensagem1() throws RemoteException {

System.out.println("Nome: "+ this.mensagem);
return this.mensagem;

}

@Override
public String getMensagem2() throws RemoteException {
System.out.println("Matrícula: "+ this.mensagem);
return this.mensagem;

}
@Override
public String getMensagem3() throws RemoteException {
System.out.println("Primeira avaliação: "+ this.mensagem);
return this.mensagem;

}
@Override
public String getMensagem4() throws RemoteException {
System.out.println("Segunda avaliação: "+ this.mensagem);
return this.mensagem;

}
@Override
public String getMensagem5() throws RemoteException {
System.out.println(this.mensagem);
return this.mensagem;

}
@Override
public String getMensagem6() throws RemoteException {
System.out.println( this.mensagem);
return this.mensagem;

}
@Override
public String getMensagem7() throws RemoteException {
System.out.println(this.mensagem+ " aluno(s) aprovado(s)");
return this.mensagem;

}
@Override
public String getMensagem8() throws RemoteException {
System.out.println(this.mensagem+ " aluno(s) reprovado(s)");
return this.mensagem;

}

}
Romulo

Romulo

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar