Roger.Holland Skrevet 10. april 2013 Del Skrevet 10. april 2013 For og si det mildt har jeg ikke peiling på hvordan jeg skal løse denne oppgava. Rett og slett fordi jeg ikke kan nok java, trenger ingen moralpreken for at jeg ikke har fulgt med akkurat. Men jeg gir det et forsøk, er det noen som kan prøve og gi meg en forklaring på hvordan jeg skal starte? "Skriv klassen Bok der objektene (minst) skal inneholde tittel, forfatter og utgivelses-år. Du kan selv velge om du vil ha med flere objektvariabler. Objektene skal ha en metode for å kunne vise fram innholdet i alle sine objektvariabler (toString-metode) og en for å kunne sammenligne objekt (erLik-metode). Skriv inn minst to konstruktører (overload) i klassen, en som håndterer verdier til alle objektvariablene og en som tillater at det mangler en opplysning (velg selv hvilken) for en bok. Skriv også et testprogram som oppretter minst 5 bøker (bare opprett bøkene direkte i programkoden, og ikke etter innlesing fra brukeren). Skriv ut alle bøkene slik de er registrert og deretter alle (alfabetisk) sortert etter tittel. Les inn en ny bok fra brukeren, og legg den i lista dersom denne boken ikke finnes der fra før. Skriv til slutt ut ei liste med alle de bøkene som er utgitt på et årstall innlest fra brukeren." Lenke til kommentar
MrL Skrevet 10. april 2013 Del Skrevet 10. april 2013 Bruk Google for alt det er verdt og finn eksempler og svar, lite annet som er mer hjelpsomt i programmering, avhengig hvor mye man kan. Her fant jeg f.eks en enkel 7 step guide som tilsvarer oppgaven din og forklarer hva du skal gjøre, perfekt sted å starte Lenke til kommentar
Roger.Holland Skrevet 10. april 2013 Forfatter Del Skrevet 10. april 2013 (endret) Takk for det, hjalp meg veldig mye! Har nå fulgt guiden ferdig og tilpasset det litt til oppgava. Har nå 2 java filer, "Bok.java" og "BokOppslag.java" og får ingen feil når jeg kompilerer. Men sliter med siste delen av oppgaven hvor brukeren skal kunne legge inn en ny bok. "Skriv ut alle bøkene slik de er registrert og deretter alle (alfabetisk) sortert etter tittel. Les inn en ny bok fra brukeren, og legg den i lista dersom denne boken ikke finnes der fra før. Skriv til slutt ut ei liste med alle de bøkene som er utgitt på et årstall innlest fra brukeren. Har prøvd et par forskjellige metoder, men får det ikke til og fungere. Noen som har et tips? Bok.java kode public class Bok { //Felter private String tittel; private String forfatter; private String utgitt; //Konstruksjon public Bok(String bokTittel, String forfatterNavn, String utgittDato) { //Fyll ut feltene tittel = bokTittel; forfatter = forfatterNavn; utgitt = utgittDato; } public void displayBookData() { System.out.println("Tittel: " + tittel); System.out.println("Forfatter: " + forfatter); System.out.println("Utgittdato: " + utgitt); } } BokOppslag.java kode public class BokOppslag { public static void main(String[] args) { Bok boknr1 = new Bok("Flink pike","Gillian Flynn","2013"); Bok boknr2 = new Bok("Sandmannen","Lars Kepler","2011"); Bok boknr3 = new Bok("Marco-effekten","Jussi Adler-Olsen","2012"); Bok boknr4 = new Bok("Bitter seier","Alf R. Jacobsen","2010"); Bok boknr5 = new Bok("Kronvitnet","Morten Frich","1999"); boknr1.displayBookData(); boknr2.displayBookData(); boknr3.displayBookData(); boknr4.displayBookData(); boknr5.displayBookData(); } } Endret 10. april 2013 av Roger.Holland Lenke til kommentar
jonny Skrevet 10. april 2013 Del Skrevet 10. april 2013 Se dokumentasjonen av java.util.Scanner, det bør hjelpe deg på vei. Lenke til kommentar
Mads-b Skrevet 10. april 2013 Del Skrevet 10. april 2013 Takk for det, hjalp meg veldig mye! Har nå fulgt guiden ferdig og tilpasset det litt til oppgava. Har nå 2 java filer, "Bok.java" og "BokOppslag.java" og får ingen feil når jeg kompilerer. Men sliter med siste delen av oppgaven hvor brukeren skal kunne legge inn en ny bok. "Skriv ut alle bøkene slik de er registrert og deretter alle (alfabetisk) sortert etter tittel. Les inn en ny bok fra brukeren, og legg den i lista dersom denne boken ikke finnes der fra før. Skriv til slutt ut ei liste med alle de bøkene som er utgitt på et årstall innlest fra brukeren. Har prøvd et par forskjellige metoder, men får det ikke til og fungere. Noen som har et tips? *masse kode her* For å registrere bøker: Lag et ArrayList<Bok> objekt. Dette er en liste som kan holde på bøkene dine. For å putte dem inn, kan du bare skrive liste.add(bok). Sjekk dokumentasjonen på dette. For å sortere bøkene, kan du bruke den innebygde Collections.sort(liste). For at Java skal vite hvordan en bok skal sorteres, må klassen Bok for eksempel implementere "Comparable". Les dokumentasjonen for dette interfacet også. For å skrive dem ut, bruk en vanlig for-løkke. Lykke til. Lenke til kommentar
cronbach alpha Skrevet 10. april 2013 Del Skrevet 10. april 2013 (endret) Har laget et enkelt oppsett som viser deg framgangsmåten, du får legge til og endre etter behov. Har laget klassen Bok: public class Bok { private String tittel; private String forfatter; private String utgitt; public Bok(String tittel, String forfatter, String utgitt){ this.tittel = tittel; this.forfatter = forfatter; this.utgitt = utgitt; } public String getTittel(){ return tittel; } public void setTittel(String nyTittel){ tittel = nyTittel; } public String getForfatter(){ return forfatter; } public void setForfatter(String nyForfatter){ forfatter = nyForfatter; } public String getUtgitt(){ return utgitt; } public void setUtgitt(String nyUtgitt){ utgitt = nyUtgitt; } public String toString(){ return getTittel() + getForfatter() + getUtgitt(); } } Deretter klassen Metoder: public class Metoder { private ArrayList<Bok> boker = new ArrayList<Bok>(); public void registrerBok(String tittel, String forfatter, String utgitt){ if(!(tittel == null && forfatter == null && utgitt == null)){ boker.add(new Bok(tittel, forfatter, utgitt)); } else { System.out.println("Verdiene var null"); } } public void visRegistrerteBoker(){ if(boker.size() > 0){ for(int i = 0; i < boker.size(); i++){ System.out.println("Boken med tittel: " + "'" + boker.get(i).getTittel() + "'" + ", er skrevet av forfatter: " + boker.get(i).getForfatter() + " og er utgitt år:" + boker.get(i).getUtgitt()); } } else { System.out.println("Det er ingen boker registrert"); } } } Og en enkel test klasse som gjør at du kan registrere 4 bøker: public class Test2 { public static void main(String[] args) { Metoder metoder = new Metoder(); for(int i = 0; i < 4; i++){ //Her kan du registrere 4 bøker String innTittel = JOptionPane.showInputDialog("Tittel:"); String innForfatter = JOptionPane.showInputDialog("Forfatter:"); String innUtgitt = JOptionPane.showInputDialog("utgitt:"); String tittel = innTittel; String forfatter = innForfatter; String utgitt = innUtgitt; metoder.registrerBok(tittel, forfatter, utgitt); } metoder.visRegistrerteBoker(); } } La inn noen av bøkene som du hadde fra før og fikk utskriften: Boken med tittel: 'Flink pike', er skrevet av forfatter: Gillian Flynn og er utgitt år:2013 Boken med tittel: 'Sandmannen', er skrevet av forfatter: Lars Kepler og er utgitt år:2011 Boken med tittel: 'Marco-effekten', er skrevet av forfatter: Jussi Adler-Olsen og er utgitt år:2012 Boken med tittel: 'Bitter seier', er skrevet av forfatter: Alf R. Jacobsen og er utgitt år:2010 Endret 10. april 2013 av cronbach alpha Lenke til kommentar
Roger.Holland Skrevet 10. april 2013 Forfatter Del Skrevet 10. april 2013 (endret) Takk! Har prøvd og legge inn koden i 3 forskjellige java filer, men får ikke kompilert "Metoder" eller "Test2". Har vært borti dette før og da har det bare vært skrivefeil med class navnet, men finner ikke grunnen nå er sikkert bare noe småtteri men skal fortsette og jobbe med det imorra. error fra Metoder.java C:\Users\Roger\Desktop\Skole\Java\Nyeste_oblig\Metoder.java:2: error: cannot find symbol private ArrayList<Bok> boker = new ArrayList<Bok>(); ^ symbol: class ArrayList location: class Metoder C:\Users\RogerDesktop\Skole\Java\Nyeste_oblig\Metoder.java:2: error: cannot find symbol private ArrayList<Bok> boker = new ArrayList<Bok>(); ^ symbol: class ArrayList location: class Metoder 2 errors Tool completed with exit code 1 error fra Test2.java .\Metoder.java:2: error: cannot find symbol private ArrayList<Bok> boker = new ArrayList<Bok>(); ^ symbol: class ArrayList location: class Metoder C:\Users\Roger\Desktop\Skole\Java\Nyeste_oblig\Test2.java:6: error: cannot find symbol String innTittel = JOptionPane.showInputDialog("Tittel:"); ^ symbol: variable JOptionPane location: class Test2 C:\Users\Roger\Desktop\Skole\Java\Nyeste_oblig\Test2.java:7: error: cannot find symbol String innForfatter = JOptionPane.showInputDialog("Forfatter:"); ^ symbol: variable JOptionPane location: class Test2 C:\Users\Roger\Desktop\Skole\Java\Nyeste_oblig\Test2.java:8: error: cannot find symbol String innUtgitt = JOptionPane.showInputDialog("utgitt:"); ^ symbol: variable JOptionPane location: class Test2 .\Metoder.java:2: error: cannot find symbol private ArrayList<Bok> boker = new ArrayList<Bok>(); ^ symbol: class ArrayList location: class Metoder 5 errors Tool completed with exit code 1 Endret 10. april 2013 av Roger.Holland Lenke til kommentar
cronbach alpha Skrevet 10. april 2013 Del Skrevet 10. april 2013 (endret) Oki, bruker du nettbeans? Kan være mangel av import package. Og ser at jeg ikke hadde med import javax.swing.JOptionPane; I klassen Test2, denne trengr du for å benytte deg av JOptionPane. og import java.util.ArrayList; I klassen Metoder for å benytte deg av ArrayList. Disse legger du utenfor public class Test2{}, og public class Metoder{} Endret 10. april 2013 av cronbach alpha Lenke til kommentar
Roger.Holland Skrevet 11. april 2013 Forfatter Del Skrevet 11. april 2013 Ah, det var ikke verre fikk det til nå. Bruker ikke netbeans nei har bare brukt textpad, er netbeans et bedre alternativ? Lenke til kommentar
MrL Skrevet 11. april 2013 Del Skrevet 11. april 2013 Ah, det var ikke verre fikk det til nå. Bruker ikke netbeans nei har bare brukt textpad, er netbeans et bedre alternativ? Netbeans og Eclipse(som jeg selv foretrekker) er langt bedre og byr på langt større hjelp. Men det er med god grunn at du som nybegynner sikkert har blitt anbefalt textpad, og det er fordi den ikke inneholder alle disse hjelpemidlene slik at du må finne ut ting selv og lære mer. Spesielt hvis du har eksamen skriftlig i Java, er det nok greit å forsette å bruke textpad en god stund til, til det som er basic sitter. 1 Lenke til kommentar
cronbach alpha Skrevet 11. april 2013 Del Skrevet 11. april 2013 Av en eller annen grunn starter veldig mange skole med å bruke textpad som start program for så å gå over til NetBeans eller Eclipse. Jeg vil anbefale deg å droppe textpad og starte med NetBeans eller Eclipse, jeg bruker selv begge, men havner som regel på NetBean. NetBeans og Eclipse er av samme kaliber, mer en smakssak over hvilken du velger. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå