Barassa Posted January 2, 2008 at 04:03 PM Report Share #157415 Posted January 2, 2008 at 04:03 PM 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 More sharing options...
Barassa Posted January 3, 2008 at 03:53 PM Author Report Share #157626 Posted January 3, 2008 at 03:53 PM [me=Barassa]waits[/me] Link to comment Share on other sites More sharing options...
magician Posted January 3, 2008 at 04:44 PM Report Share #157633 Posted January 3, 2008 at 04:44 PM Tira o ! do if (!encontrou) { Penso que é esse o problema, I haven’t lost my mind; it’s backed up on DVD somewhere! Link to comment Share on other sites More sharing options...
Barassa Posted January 3, 2008 at 05:06 PM Author Report Share #157637 Posted January 3, 2008 at 05:06 PM sim mas eu se eu meter if(encontrou = false) diz k a variavel n é lida . assim n é a mesma coisa? Link to comment Share on other sites More sharing options...
magician Posted January 3, 2008 at 05:17 PM Report Share #157640 Posted January 3, 2008 at 05:17 PM não é só 1 = mas sim 2 == I haven’t lost my mind; it’s backed up on DVD somewhere! Link to comment Share on other sites More sharing options...
Barassa Posted January 3, 2008 at 05:20 PM Author Report Share #157643 Posted January 3, 2008 at 05:20 PM sim mas continua a n dar xD Link to comment Share on other sites More sharing options...
magician Posted January 3, 2008 at 05:31 PM Report Share #157644 Posted January 3, 2008 at 05:31 PM }// 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. I haven’t lost my mind; it’s backed up on DVD somewhere! Link to comment Share on other sites More sharing options...
Barassa Posted January 3, 2008 at 07:05 PM Author Report Share #157657 Posted January 3, 2008 at 07:05 PM 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. Link to comment Share on other sites More sharing options...
magician Posted January 3, 2008 at 09:02 PM Report Share #157684 Posted January 3, 2008 at 09:02 PM 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 More sharing options...
Barassa Posted January 3, 2008 at 09:16 PM Author Report Share #157692 Posted January 3, 2008 at 09:16 PM 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 More sharing options...
magician Posted January 3, 2008 at 09:26 PM Report Share #157695 Posted January 3, 2008 at 09:26 PM 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 More sharing options...
NSTuga Posted January 4, 2008 at 11:28 PM Report Share #157938 Posted January 4, 2008 at 11:28 PM 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 More sharing options...
MX+ Posted January 5, 2008 at 05:36 PM Report Share #158089 Posted January 5, 2008 at 05:36 PM 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now