• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Barassa

"Java Messenger"

13 mensagens neste tópico


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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim mas eu se eu meter

if(encontrou = false) 

diz k a variavel n é lida .

assim n é a mesma coisa?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

}// verificar se ha igual

return existe;

O return é dentro o if e não fora assim ele faz um ciclo e termina.

Pelo menos parece ser isso a tua metodologia é um pouco confusa podias simplificar isso um bom bocado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja vi onde esta o problema . a criação de um objecto contactosmain (na classe main) está dentro do while e assim vai tar semprea criar um objecto novo e é claro k o contacto n vai existir.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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.

;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora