29. oktober 2005 - 15:36Der er
27 kommentarer og 1 løsning
SØGES: JAVA/BLUEJ Ekspert
Vi skal lave noget javakode som holder styr på lærere i et register og deres fag. Men vi har et problem... Er der en der har lyst til at hjælpe, som vil kigge lidt på koden?
Hvis du lægger koden ind her, skal jeg/andre nok kigge på den. Du kommer også lige til at forklare hvad problemet er, så vi kan hjælpe med at løse det.
Problemet er at når vi søger på flere fag, så går den ikke længere end den første IF sætning... Her er koden: Se venligst bort fra at koden er udkommenteret...
/** * A very simple database of people in a university. This class simply stores * persons and, at request, lists them on standard output. * * Written as a first demo program for BlueJ. * * @author Michael Kolling * @version 1.1, March 2002 */
public class Register {
private ArrayList laerere;
/** * Create a new, empty laerere(persons) database. */ public Register() { laerere = new ArrayList(); }
/** * Add a laerer to the database. */ public void addLaerer(Laerer l) { laerere.add(l); }
/** * List all the laerere currently in the database on standard out. */ public void listAll () { for (Iterator i = laerere.iterator(); i.hasNext();) { System.out.println(i.next()); } }
public ArrayList soegNavn(String navn) { ArrayList soegteNavne = new ArrayList();
Den kommer ikke med nogen fejl, men den kommer bare ikke længere end den første If. Den søger vist kun på det første fag, selvom du taster flere fag...
Se bort fra den sidste fejl, det var ikke med din kode... Men det virker bare ligesom før... Altså hvis den første lærer kun har dansk & null i resten, lærer2 har Engelsk og Dansk og null i resten. Så søger jeg både på dansk og engelsk, men så skal lærer 2 komme ud 2 gange, men han kommer kun 1 gang.
Det er jo netop det, men koden virker jo ikke. Jo, du kan compile, men den gør jo ikke det som den skal. Hvis du læser hvad jeg har skrevet, så søger den kun på det første fag og ikke på flere fag.
Yep det har jeg forstået.. må jeg spørge om noget? sikker på de parametre du sender med over er rigtige? der bliver jo sammenlignet med dem.. hvis ikke de matcher fundneFag[j] så vil de ikke blive indsat.
jeg kan høre på dig at fag1 er korrekt for det virker jo
Det er som om at den kun gennemløber den første if-sætning og så tilføjer den navnet til soegteFag, men hvis den samme person har de to fag man søger på registrerer den kun det første fag man har skrevet.
Jeg er sikker på at det er de samme parametre, for jeg skriver dem selv ind i register-klassen. Hvis jeg fjerner alle de linier hvor at fagx skal være forskellig fra null og søger på alle fagne så får jeg alt information, men så må den ikke være null.
/** * A very simple database of people in a university. This class simply stores * persons and, at request, lists them on standard output. * * Written as a first demo program for BlueJ. * * @author Michael Kolling * @version 1.1, March 2002 */
public class Register2 {
private ArrayList laerere;
/** * Create a new, empty laerere(persons) database. */ public Register2() { laerere = new ArrayList(); }
/** * Add a laerer to the database. */ public void addLaerer(Laerer l) { laerere.add(l); }
/** * List all the laerere currently in the database on standard out. */ public void listAll () { for (Iterator i = laerere.iterator(); i.hasNext();) { System.out.println(i.next()); } }
public ArrayList soegNavn(String navn) { ArrayList soegteNavne = new ArrayList();
else if(fag2 != null) { if (fag2.equalsIgnoreCase(fundneFag[j])) { soegteFag.add(fundneLaerere.getNavn()); }
}
else if(fag3 != null) { if (fag3.equalsIgnoreCase(fundneFag[j])) { soegteFag.add(fundneLaerere.getNavn()); }
}
else if(fag4 != null) { if (fag4.equalsIgnoreCase(fundneFag[j])) { soegteFag.add(fundneLaerere.getNavn()); }
}
} } return soegteFag; } }
import java.util.ArrayList;
/** * A very simple database of people in a university. This class simply stores * persons and, at request, lists them on standard output. * * Written as a first demo program for BlueJ. * * @author Michael Kolling * @version 1.1, March 2002 */
public class Laerer { private String navn; private String adresse; private int mobil; private int fastnet; private String email; private String fag[];
/** * Create a laerer with given name and age. */ public Laerer(String navn, String adresse, int mobil, int fastnet, String email, String fag1, String fag2, String fag3, String fag4) { this.navn = navn; this.adresse = adresse; this.mobil = mobil; this.fastnet = fastnet; this.email = email;
/** * Returnerer navn på den pågældende Laerer. */ public String getNavn() { return navn; } /** * Returnerer adresse på den pågældende Laerer. */ public String getAdresse() { return adresse; } /** * Returnerer mobil på den pågældende Laerer. */ public int getMobil() { return mobil; } /** * Returnerer fastnet på den pågældende Laerer. */ public int getFastnet() { return fastnet; } /** * Returnerer email på den pågældende Laerer. */ public String getEmail() { return email; } /** * Returnerer fag på den pågældende Laerer. */ public String[] getFag() { return fag; }
/** * Giver et nyt navn til den pågældende Laerer. */ public void setNavn(String newNavn) { navn = newNavn; } /** * Giver en ny adresse til den pågældende Laerer. */ public void setAdresse(String newAdresse) { adresse = newAdresse; } /** * Giver et nyt mobilnummer til den pågældende Laerer. */ public void setMobil(int newMobil) { mobil = newMobil; } /** * Giver et nyt fastnetnummer til den pågældende Laerer. */ public void setFastnet(int newFastnet) { fastnet = newFastnet; } /** * Giver en ny email til den pågældende Laerer. */ public void setEmail(String newEmail) { email = newEmail; } /** * Giver et nyt fag1 til den pågældende Laerer. */ public void setFag1(String fag1) { fag[0] = fag1; } /** * Giver et nyt fag2 til den pågældende Laerer. */ public void setFag2(String fag2) { fag[1] = fag2; } /** * Giver et nyt fag3 til den pågældende Laerer. */ public void setFag3(String fag3) { fag[2] = fag3; } /** * Giver et nyt fag4 til den pågældende Laerer. */ public void setFag4(String fag4) { fag[3] = fag4; }
// Skal slettes /** * Return a string representation of this object. */ public String toString() // redefined from "Object" { return "Navn: " + navn + "\n" + "Adresse: " + adresse + "\n" + "Mobil: " + mobil + "\n" + "Fastnet: " + fastnet+ "\n" + "E-mail: " + email + "\n" + "Fag: " + fag[0] + "/" + fag[1] + "/" + fag[2] + "/" + fag[3] + "\n"; } }
/** * A very simple database of people in a university. This class simply stores * persons and, at request, lists them on standard output. * * Written as a first demo program for BlueJ. * * @author Michael Kolling * @version 1.1, March 2002 */
public class Registrer {
private ArrayList laerere;
/** * Create a new, empty laerere(persons) database. */ public Registrer() { laerere = new ArrayList(); }
/** * Add a laerer to the database. */ public void addLaerer(Laerer l) { laerere.add(l); }
/** * List all the laerere currently in the database on standard out. */ public void listAll () { for (Iterator i = laerere.iterator(); i.hasNext();) { System.out.println(i.next()); } }
public ArrayList soegNavn(String navn) { ArrayList soegteNavne = new ArrayList();
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.