Jump to content

"Java Messenger"


Barassa

Recommended Posts


public class contactosmain {

public static final int maxcontacts=200;

public contactos [] Listacontacts; // diz respeito á classe objecto


	private int contc;	   //contador do numero de contactos

public contactosmain()
{
Listacontacts = new contactos [maxcontacts];
contc=0;
}

public String insertContact(String nick, String sexo, int idade, String mail, String nome)
{
	String existe="";
	boolean encontrou=false;


	for (int i=0; i < contc; i++)
	{
		if (Listacontacts[i].getnicker().equals(nick))
		{ 
			encontrou= true;
			existe = "Contacto já Existe";
		}// verificar se ha igual
		return existe;
	}
	// cabe?
	// se nao ha igual -adiciona- else ja existe
		if (!encontrou) {
			if (contc == maxcontacts)
				existe="AgendaCheia";
			else
			{
			Listacontacts[contc] = new contactos(nick, sexo, idade, mail, nome); 
			existe="Contacto Adicionado";
			contc++;
			}


		}
return existe;
}


public String removeContact(String nick)
{
String resposta="";

for (int i=0; i < contc; i++)
{

	if (Listacontacts[i].getnicker() == (nick))
	{Listacontacts[i] = Listacontacts[i+1];
	 resposta = "Contacto Removido";
	}

	else
	{
		resposta = "Contacto Inexistente";

	}
}
	contc++;
	return resposta;
}


{

}

e uma classe main

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
	String nick; String sex; int idd; String mail; String name; String comando;
	Scanner in = new Scanner(System.in);

	while(true)
	{
			contactosmain c = new contactosmain();
			comando = in.next();

	if(comando.compareTo("AC")==0)
		{
			nick = in.next();
			sex = in.next();
			idd = Integer.parseInt(in.next());
			mail = in.next();
			name = in.next();	    
			{System.out.print(c.insertContact(nick, sex, idd, mail, name));}
		}	

	if(comando.compareTo("RC")==0)
		{
			nick = in.next();
			System.out.println("Contacto Removido");	
		}

	if(comando.compareTo("Quit")==0)
		{
			break;
		}
	}


}
}

Alguem me sabe dizer pke k na main se eu insiro dois contactos iguais ele imprime "contacto adicionado" na mesma?

Link to comment
Share on other sites

Isso também LLOOLL estava á procura do problema no método e não reparei no main.

Aconselho-te a simplificar isso um bocado pelo menos o método de inserir não precisas de todas aquelas variáveis.

Eu fazia algo assim....


public String insertContact(String nick, String sexo, int idade, String mail, String nome){

                //logo a primeira coisa assim se tiver xeio já não anda á procura se tem ou não.
                if (contc == maxcontacts){
		return "AgendaCheia";
                }

                for (int i=0; i < contc; i++){
		if (Listacontacts[i].getnicker().equals(nick)){ 
			return "Contacto já Existe";
		}
	}

                Listacontacts[contc] = new contactos(nick, sexo, idade, mail, nome); 
	contc++;
        return "Contacto Adicionado";
}

A meu ver assim fica muito mais simples e funcional.

I haven’t lost my mind; it’s backed up on DVD somewhere!

Link to comment
Share on other sites

Concordo plenamente .  Obrigado. ?

Agora para facilitar a organização do utilizador, a aplicação permite classificar os contactos em grupos. Os grupos possíveis são cinco:

Família

Amigos

Núcleo Duro

Desconhecidos

Indesejáveis

e tambem em cada momento, cada contacto pode estar num dos seguintes três estados:

Online

Activo

Offline

como me aconcelham a fazer isto?

Link to comment
Share on other sites

Simples dentro de cada user metes uma variável grupo e outra estado.

Depois podes meter uma String nessas variáveis ou um numero que corresponde a uma string ou um enum pessoalmente iria pela ultima seria algo tipo

public enum Grupo {
    FAMÍLIA, AMIGOS, NÚCLEO DURO, DESCONHECIDOS, INDESEJÁVEIS
}

    Grupo grupo = Grupo.AMIGOS;

e o mesmo para o estado.

I haven’t lost my mind; it’s backed up on DVD somewhere!

Link to comment
Share on other sites

Boas,

Tenho o mesmo trabalho para fazer LOL, e em relação aos grupos a minha prof disse para fazer um vector com os 5 grupos, isto porque tens as classes: Agenda, Grupo, Contacto, Mensagem e a Main.

Sempre k um contacto é criado é inserido no grupo Indesejáveis. Em relação ao Estado, é uma variável como o Nick ou o NomeCompleto, e é iniciado como offline.

O programa fica mais simples assim e torna-se mais simples para a realização de alguns metodos.

😉

Link to comment
Share on other sites

Boas,

Tenho o mesmo trabalho para fazer LOL, e em relação aos grupos a minha prof disse para fazer um vector com os 5 grupos, isto porque tens as classes: Agenda, Grupo, Contacto, Mensagem e a Main.

Sempre k um contacto é criado é inserido no grupo Indesejáveis. Em relação ao Estado, é uma variável como o Nick ou o NomeCompleto, e é iniciado como offline.

O programa fica mais simples assim e torna-se mais simples para a realização de alguns metodos.

😉

Isso é uma forma de organizar. Basicamente é uma relaçao:  Grupos 1 - n Utilizador.

Tens duas opçoes:

  - Guardar grupo no lado do utilizador.

    Vantagem: É instantaneo saber um grupo dum utlizador

    Desvantagem: Para obter elementos dum grupo tens de percorrer todos os utilizadores.

  ou

  - Vector para cada grupo, e guardar associaçoes aos utilizadores

    Vantagem: É instantaneo obter os elementos do grupo

    Desvantagem: Para saber o grupo dum utilizador tens de percorrer todos os elementos de todos os grupos.

Solução ideal: as duas juntas. 😉

Mas para isso tens de ter os vectores e utilizadores sincronizados: procura por Padrão Observer.

Cumprimentos

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • 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.