|
HPs vevstove Forum for datasnakk. |
|
Trådverktøy | Visningsmåter |
|
28-09-07, 13:51 | #1 |
Frøken
Medlem siden: Oct 2006
Hvor: Østlandet
Innlegg: 2.269
|
Noen som kan Java her?Jeg er desperat, skal levere oppgave i dag og får jeg den ikke til så får jeg ikke gå opp til eksamen til jul. Og nå står jeg fast og foreleseren har tydeligvis tatt seg høstferie, for han er ikke å få tak i. Kode:
public class BibliotekTest { public static void main(String[] args) { Bibliotek etBibliotek = new Bibliotek(); etBibliotek.leggTilBok("Italienske sko", "Henning Mankell", 1999, 306, "Gyldendal"); etBibliotek.visAntallBoker(); Bok enBok = etBibliotek.finnBok("Henning Mankell","Italienske sko"); if (enBok != null) { System.out.print(enBok.visTittel()); System.out.print(enBok.visForfatter()); } } } bibliotek: Kode:
import java.util.*; //import java.text.*; import java.util.ArrayList; import java.util.Collections; //for å sortere arraylistene.. public class Bibliotek { private ArrayList<Bok> bokListe; public Bibliotek(){ bokListe = new ArrayList<Bok>(); } private int finnBokPosisjon(String forfatter, String tittel){ int BokPosIndex = -1; for(int i = 0; i < bokListe.size(); i++){ System.out.println("test om forfatter:"+forfatter+" og "+bokListe.get(i).visForfatter()+" er like"); System.out.println("test om tittel:"+tittel+" og "+bokListe.get(i).visTittel()+" er like"); if(bokListe.get(i).visForfatter().equalsIgnoreCase(forfatter)&& bokListe.get(i).visTittel().equalsIgnoreCase(tittel)){ BokPosIndex = i; break; //antar at søket skal stoppe ved første treff } } return BokPosIndex; } public int visAntallBoker(){ return bokListe.size(); } public boolean leggTilBok(String forfatter,String tittel,int år, int antSider, String forlag){ boolean BokBleLagtTil = false; if(finnBokPosisjon(forfatter, tittel) == -1){ Bok enBok = new Bok(forfatter, tittel, år, antSider, forlag); bokListe.add(enBok); BokBleLagtTil = true; } return BokBleLagtTil; } public Bok finnBok(String forfatter, String tittel){ //System.out.print(bokListe.get(0).visForfatter()); //System.out.print(bokListe.get(0).visTittel()); Bok funnetBok = null; int BokIndex = finnBokPosisjon(forfatter, tittel); if(BokIndex != -1){ funnetBok = bokListe.get(BokIndex); } return funnetBok; } public Bok slettBok(String tittel, String forfatter){ Bok funnetBok = null; int BokIndex = finnBokPosisjon(forfatter, tittel); if(BokIndex != -1){ funnetBok = bokListe.get(BokIndex); bokListe.remove(BokIndex); } return funnetBok; } public ArrayList<Bok> finnAlleBoker(String forfatter){ ArrayList<Bok> bokListePaaForfatter = new ArrayList<Bok>(); for(int i = 0; i < bokListe.size(); i++){ if(bokListe.get(i).visForfatter().equalsIgnoreCase(forfatter)){ bokListePaaForfatter.add(bokListe.get(i)); } } //Collections.sort(bokListePaaForfatter); return bokListePaaForfatter; } } Bok: Kode:
public class Bok { private String tittel; private String forfatter; private int utgivelsesår; private String forlag; private int antallSider; public Bok(String tittel, String forfatter, int år, int antSider, String forlag){ this.tittel = tittel; this.forfatter = forfatter; endreUtgivelsesår(år); endreAntSider(antSider); this.forlag = forlag; } //--------------- metoder som returnerer verdier -------------- public String visTittel (){ return tittel; } public String visForfatter (){ return forfatter; } public int visUtgivelsesÅr (){ return utgivelsesår; } //------------------- metoder som endrer på attributter ------------------------ public void endreUtgivelsesår(int år) { utgivelsesår = år; } public void endreAntSider(int antSider){ if(antSider > 0){ antallSider = antSider; } } public void endreForfatter(String nyForfatter){ forfatter = nyForfatter; } public String toString(){ return String.format("%s (%s, %d) ", tittel, forfatter, utgivelsesår); } } Og hvordan kan jeg lage metoder som sammenligner antallsider, utgiver, utgitt årstall osv på to bøker?
__________________
I valg mellom falske venner og åpne fiender har jeg alltid foretrukket det siste - Bjørnstjerne Bjørnson Mamma til poden 05 og prinsessen 11. Sist redigert av *HH* : 28-09-07 kl 15:09. |
28-09-07, 13:54 | #2 |
<*(((<
|
Sv: Noen som kan Java her?Jeg er klar for dagens gode gjerning, men har bare 10-15 minutter til rådighet. |
28-09-07, 13:59 | #4 |
Frøken
Medlem siden: Oct 2006
Hvor: Østlandet
Innlegg: 2.269
|
Sv: Noen som kan Java her?BibliotekTest: Kode:
public class BibliotekTest { public static void main(String[] args) { Bibliotek etBibliotek = new Bibliotek(); etBibliotek.leggTilBok("Italienske sko", "Henning Mankell", 1999, 306, "Gyldendal"); etBibliotek.visAntallBoker(); Bok enBok = etBibliotek.finnBok("Henning Mankell","Italienske sko"); if (enBok != null) { System.out.print(enBok.visTittel()); System.out.print(enBok.visForfatter()); } } } bibliotek: Kode:
import java.util.*; //import java.text.*; import java.util.ArrayList; import java.util.Collections; //for å sortere arraylistene.. public class Bibliotek { private ArrayList<Bok> bokListe; public Bibliotek(){ bokListe = new ArrayList<Bok>(); } private int finnBokPosisjon(String forfatter, String tittel){ int BokPosIndex = -1; for(int i = 0; i < bokListe.size(); i++){ System.out.println("test om forfatter:"+forfatter+" og "+bokListe.get(i).visForfatter()+" er like"); System.out.println("test om tittel:"+tittel+" og "+bokListe.get(i).visTittel()+" er like"); if(bokListe.get(i).visForfatter().equalsIgnoreCase(forfatter)&& bokListe.get(i).visTittel().equalsIgnoreCase(tittel)){ BokPosIndex = i; break; //antar at søket skal stoppe ved første treff } } return BokPosIndex; } public int visAntallBoker(){ return bokListe.size(); } public boolean leggTilBok(String forfatter,String tittel,int år, int antSider, String forlag){ boolean BokBleLagtTil = false; if(finnBokPosisjon(forfatter, tittel) == -1){ Bok enBok = new Bok(forfatter, tittel, år, antSider, forlag); bokListe.add(enBok); BokBleLagtTil = true; } return BokBleLagtTil; } public Bok finnBok(String forfatter, String tittel){ //System.out.print(bokListe.get(0).visForfatter()); //System.out.print(bokListe.get(0).visTittel()); Bok funnetBok = null; int BokIndex = finnBokPosisjon(forfatter, tittel); if(BokIndex != -1){ funnetBok = bokListe.get(BokIndex); } return funnetBok; } public Bok slettBok(String tittel, String forfatter){ Bok funnetBok = null; int BokIndex = finnBokPosisjon(forfatter, tittel); if(BokIndex != -1){ funnetBok = bokListe.get(BokIndex); bokListe.remove(BokIndex); } return funnetBok; } public ArrayList<Bok> finnAlleBoker(String forfatter){ ArrayList<Bok> bokListePaaForfatter = new ArrayList<Bok>(); for(int i = 0; i < bokListe.size(); i++){ if(bokListe.get(i).visForfatter().equalsIgnoreCase(forfatter)){ bokListePaaForfatter.add(bokListe.get(i)); } } //Collections.sort(bokListePaaForfatter); return bokListePaaForfatter; } } Bok: Kode:
public class Bok { private String tittel; private String forfatter; private int utgivelsesår; private String forlag; private int antallSider; public Bok(String tittel, String forfatter, int år, int antSider, String forlag){ this.tittel = tittel; this.forfatter = forfatter; endreUtgivelsesår(år); endreAntSider(antSider); this.forlag = forlag; } //--------------- metoder som returnerer verdier -------------- public String visTittel (){ return tittel; } public String visForfatter (){ return forfatter; } public int visUtgivelsesÅr (){ return utgivelsesår; } //------------------- metoder som endrer på attributter ------------------------ public void endreUtgivelsesår(int år) { utgivelsesår = år; } public void endreAntSider(int antSider){ if(antSider > 0){ antallSider = antSider; } } public void endreForfatter(String nyForfatter){ forfatter = nyForfatter; } public String toString(){ return String.format("%s (%s, %d) ", tittel, forfatter, utgivelsesår); } }
__________________
I valg mellom falske venner og åpne fiender har jeg alltid foretrukket det siste - Bjørnstjerne Bjørnson Mamma til poden 05 og prinsessen 11. Sist redigert av *HH* : 28-09-07 kl 14:46. |
28-09-07, 13:59 | #5 |
Frøken
Medlem siden: Oct 2006
Hvor: Østlandet
Innlegg: 2.269
|
Sv: Noen som kan Java her?Det skulle være et et takk der også, men jeg ble litt stresset når jeg så du hadde dårlig tid
__________________
I valg mellom falske venner og åpne fiender har jeg alltid foretrukket det siste - Bjørnstjerne Bjørnson Mamma til poden 05 og prinsessen 11. |
28-09-07, 14:01 | #6 |
Frøken
Medlem siden: Oct 2006
Hvor: Østlandet
Innlegg: 2.269
|
Sv: Noen som kan Java her?Jeg får ikke til å legge inn en til bok slik som enBok, skal ha to bøker slik at disse kan sammenlignes(sidetall, forfattere, utgiver osv.)
__________________
I valg mellom falske venner og åpne fiender har jeg alltid foretrukket det siste - Bjørnstjerne Bjørnson Mamma til poden 05 og prinsessen 11. |
28-09-07, 14:29 | #7 |
<*(((<
|
Sv: Noen som kan Java her?Først: koden slik du har limt den inn kompilerer ikke, pga en ufullstendig metode Test i klassen Bok:
og pga "titte l" helt i slutten av denne linjen:
En bok til legger du vel til med nok et kall til "leggTilBok"-metoden? Som f.eks:
Jeg rekker bare å gi noen generelle tilbakemeldinger:
* Du blir bedt om å lage metoder for å sammeligne forskjellig attributter for to bøker. Et eksempel på metode som sammenligner antall sider blir da:
Vurder å bruke en eller flere Hashtable - da er det lett å slå opp på attributter. Tydelig at oppgaven gjerne vil at du skal gjøre noe slikt. |
28-09-07, 14:36 | #8 |
Frøken
Medlem siden: Oct 2006
Hvor: Østlandet
Innlegg: 2.269
|
Sv: Noen som kan Java her?Tusen takk, torsk! Den første
trodde jeg at jeg hadde slettet. Det var bare jeg som satt å prøvde meg litt frem.
__________________
I valg mellom falske venner og åpne fiender har jeg alltid foretrukket det siste - Bjørnstjerne Bjørnson Mamma til poden 05 og prinsessen 11. |
28-09-07, 14:02 | #9 |
Frøken
Medlem siden: Oct 2006
Hvor: Østlandet
Innlegg: 2.269
|
Sv: Noen som kan Java her?Dette er oppgaven:
Jeg er så redd for å stryke, det er vanskelig nok å få til med famililivet, hvis man i tillegg må gå opp igjen
__________________
I valg mellom falske venner og åpne fiender har jeg alltid foretrukket det siste - Bjørnstjerne Bjørnson Mamma til poden 05 og prinsessen 11. |
28-09-07, 16:31 | #10 |
Frøken
Medlem siden: Oct 2006
Hvor: Østlandet
Innlegg: 2.269
|
Sv: Noen som kan Java her?Denne koden Kode:
public int sammenlign(Bok enBok, Bok toBok){ if (enBok.getNumPages()<toBok.getNumPages()){ return -1; } else if (enBok.getNumPages()>toBok.getNumPages()){ return 1; } // must be equal, return 0 return 0; } får jeg fire feilmeldinger på, alle feilmeldingene peker på punktumet. En av feilmeldingene:
__________________
I valg mellom falske venner og åpne fiender har jeg alltid foretrukket det siste - Bjørnstjerne Bjørnson Mamma til poden 05 og prinsessen 11. |
28-09-07, 21:10 | #11 |
Frøken
Medlem siden: Oct 2006
Hvor: Østlandet
Innlegg: 2.269
|
Sv: Noen som kan Java her?Nå ser koden slik ut(kjenner jeg begynner å bli nervøs): Kode:
public class Bok { private String tittel; private String forfatter; private int utgivelsesar; private String forlag; private int antallSider; public int numPages; public Bok(String tittel, String forfatter, int år, int antSider, String forlag){ this.tittel = tittel; this.forfatter = forfatter; endreUtgivelsesar(år); endreAntSider(antSider); this.forlag = forlag; } //--------------- metoder som returnerer verdier -------------- public String visTittel (){ return tittel; } public String visForfatter (){ return forfatter; } public int visUtgivelsesar (){ return utgivelsesar; } //dette er en mutasjonsmetode public void setNumPages(int numOfPages){ numPages = numOfPages; } //dette er enn tilgangsmetode public int getNumPages(){ return numPages; } //------------------- metoder som endrer på attributter ------------------------ public void endreUtgivelsesar(int ar) { utgivelsesar = ar; } public void endreAntSider(int antSider){ if(antSider > 0){ antallSider = antSider; } } public void endreForfatter(String nyForfatter){ forfatter = nyForfatter; } public String toString(){ return String.format("%s (%s, %d) ", tittel, forfatter, utgivelsesar); } } public int antallSider og public int numPages, de er vel like, så jeg kan sløyfe en. Har prøvd å bytte ut antallSider med numPages, men da blir det bare mer feil for meg. Kode:
public void setGetName(String getName){ getName = getName; } public String getName(){ return Name; { BibliotekTest: Kode:
public class BibliotekTest { public static void main(String[] args) { Bibliotek etBibliotek = new Bibliotek(); etBibliotek.leggTilBok("Italienske sko", "Henning Mankell", 1999, 306, "Gyldendal"); System.out.println(etBibliotek.visAntallBoker()); Bok enBok = etBibliotek.finnBok("Henning Mankell", "Italienske sko"); etBibliotek.leggTilBok("Berliner Poplene", "Anne B. Ragde", 2001, 411, "Per"); Bok toBok = etBibliotek.finnBok("Anne B. Ragde", "Berliner Poplene"); etBibliotek.leggTilBok("Erasmus Montanus", "Hans Nilsen", 1908, 200, "Gyldendal"); Bok treBok = etBibliotek.finnBok("Hans Nilsen", "Erasmus Montanus"); //if (enBok != null) { //System.out.print(enBok.visTittel()); //System.out.println(etBibliotek.finnBok("Test2", "Test1")); //} } } Bibliotek: Kode:
import java.util.*; //import java.text.*; import java.util.ArrayList; import java.util.Collections; //for å sortere arraylistene.. public class Bibliotek { private ArrayList<Bok> bokListe; public Bibliotek(){ bokListe = new ArrayList<Bok>(); } private int finnBokPosisjon(String forfatter, String tittel){ int BokPosIndex = -1; for(int i = 0; i < bokListe.size(); i++){ //System.out.println("Test om forfatter:"+forfatter+" og "+bokListe.get(i) .visForfatter()+" er like"); //System.out.println("Test om tittel:"+tittel+" og "+bokListe.get(i) .visTittel()+" er like"); if(bokListe.get(i).visForfatter().equalsIgnoreCase(forfatter)&& bokListe.get(i).visTittel().equalsIgnoreCase(tittel)){ BokPosIndex = i; break; //antar at søket skal stoppe ved første treff } } return BokPosIndex; } public int visAntallBoker(){ return bokListe.size(); } public boolean leggTilBok(String forfatter,String tittel,int ar, int antSider, String forlag){ boolean BokBleLagtTil = false; if(finnBokPosisjon(forfatter, tittel) == -1){ Bok enBok = new Bok(forfatter, tittel, ar, antSider, forlag); Bok toBok = new Bok(forfatter, tittel, ar, antSider, forlag); Bok treBok = new Bok(forfatter, tittel, ar, antSider, forlag); bokListe.add(enBok); bokListe.add(toBok); bokListe.add(treBok); BokBleLagtTil = true; } return BokBleLagtTil; } public Bok finnBok(String forfatter, String tittel){ //System.out.print("Det gikk"); System.out.print(bokListe.get(0).visForfatter()); //System.out.print(bokListe.get(0).visTittel()); Bok funnetBok = null; int BokIndex = finnBokPosisjon(forfatter, tittel); if(BokIndex != -1){ funnetBok = bokListe.get(BokIndex); } return funnetBok; } public Bok slettBok(String tittel, String forfatter){ Bok funnetBok = null; int BokIndex = finnBokPosisjon(forfatter, tittel); if(BokIndex != -1){ funnetBok = bokListe.get(BokIndex); bokListe.remove(BokIndex); } return funnetBok; } public ArrayList<Bok> finnAlleBoker(String forfatter){ ArrayList<Bok> bokListePaaForfatter = new ArrayList<Bok>(); for(int i = 0; i < bokListe.size(); i++){ if(bokListe.get(i).visForfatter().equalsIgnoreCase(forfatter)){ bokListePaaForfatter.add(bokListe.get(i)); } } //Collections.sort(bokListePaaForfatter); return bokListePaaForfatter; } //public boolean Test (String enBok, String toBok){ //if(forfatter).equals (forfatter)) { //System.out.println("Funker"); //} //System.out public int sammenlign(Bok enBok, Bok toBok){ int int1= enBok.getNumPages(); int int2= toBok.getNumPages(); if(int1<int2){ System.out.println("Bok " + enBok.getName() + "er " +(int2-int1)+ "sider mindre en bok " + toBok.getName()); } else if(int1>int2){ System.out.println("Bok " + enBok.getName() + " er " +(int1-int2)+ " sider større bok " + toBok.getName()); } else if(int1==int2){ System.out.println("De har like mange sider: "+int1); } return enBok; } } siste del av koden i bibliotek skal ikke "return enBok" jeg vil jo at den skal returnere forskjellen mellom antall sider på bøkene. Eller?
__________________
I valg mellom falske venner og åpne fiender har jeg alltid foretrukket det siste - Bjørnstjerne Bjørnson Mamma til poden 05 og prinsessen 11. Sist redigert av *HH* : 28-09-07 kl 21:22. |
29-09-07, 10:39 | #12 |
Frøken
Medlem siden: Oct 2006
Hvor: Østlandet
Innlegg: 2.269
|
Sv: Noen som kan Java her?En av grunnene til at jeg sliter sånn er at vi ikke har lært så mye som står i oppgaven, vi er ikke så langt i boka engang(vi jobber etter bok i forelesningen). Så jeg er avhengig av å leste og prøve å lære meg fra boka og se etter eksempler på nettet. Resultatet blir deretter.
__________________
I valg mellom falske venner og åpne fiender har jeg alltid foretrukket det siste - Bjørnstjerne Bjørnson Mamma til poden 05 og prinsessen 11. |
28-09-07, 14:18 | #13 |
Frøken
Medlem siden: Oct 2006
Hvor: Østlandet
Innlegg: 2.269
|
Sv: Noen som kan Java her?Se bort i fra at innholdet bare er tull, men nå klarte jeg å legge inn bøker
__________________
I valg mellom falske venner og åpne fiender har jeg alltid foretrukket det siste - Bjørnstjerne Bjørnson Mamma til poden 05 og prinsessen 11. |
28-09-07, 14:23 | #15 |
Frøken
Medlem siden: Oct 2006
Hvor: Østlandet
Innlegg: 2.269
|
Sv: Noen som kan Java her?
Det går her i hvert fall virker det som, men kan jo bytte det ut. Det er jo best uten. Har ikke tenkt over at jeg har brukt å engang, men ser det når du nevner det.
__________________
I valg mellom falske venner og åpne fiender har jeg alltid foretrukket det siste - Bjørnstjerne Bjørnson Mamma til poden 05 og prinsessen 11. |
28-09-07, 14:39 | #17 |
Frøken
Medlem siden: Oct 2006
Hvor: Østlandet
Innlegg: 2.269
|
Sv: Noen som kan Java her?
Tusen takk for tips, HP. Skal huske på det.
__________________
I valg mellom falske venner og åpne fiender har jeg alltid foretrukket det siste - Bjørnstjerne Bjørnson Mamma til poden 05 og prinsessen 11. |
28-09-07, 14:58 | #18 |
<*(((<
|
Sv: Noen som kan Java her?Uff, jeg har ingen editor/kompilator her jeg sitter, og det er selvsagt noen tastefeil og slikt. Dette er litt bedre, men har ikke sjekket med kompilasjon her heller: Kode:
// compares the number of pages of two Bok objects. Returns -1 if numPages of a<b, 0 if equal, 1 if a>b. public int compareNumPages(Bok a, Bok b){ if (a.getNumPages()<b.getNumPages()){ return -1; } else if (a.getNumPages()>b.getNumPages()){ return 1; } // must be equal, return 0 return 0; } Uff, håper jeg har vært til hjelp og ikke til byrde. Rekker ikke hjelpe til mer, nå er det hyttetur. Sokk fruster over min manglende hjelp til pakking... *svosj* |
28-09-07, 15:00 | #19 |
Frøken
Medlem siden: Oct 2006
Hvor: Østlandet
Innlegg: 2.269
|
Sv: Noen som kan Java her?Tusen takk , jeg skal klare å kompiliere det.
__________________
I valg mellom falske venner og åpne fiender har jeg alltid foretrukket det siste - Bjørnstjerne Bjørnson Mamma til poden 05 og prinsessen 11. |
|
|