g_threepwood Skrevet 6. juni 2013 Forfatter Skrevet 6. juni 2013 Jeg kommer frem til dette public int gjennomsnitt() { int karakterer = 0; if(karakterBok.isEmpty()) { return 6; } else { for(Integer karBok : karakterBok.values()) { karakterer += karBok.values(); } return karakterer/karBok.size(); } } Jeg får feilmelding på karakterer += karBok.values(); } cannot find symbol - method values()
GeirGrusom Skrevet 6. juni 2013 Skrevet 6. juni 2013 Karakterbok inneholder ikke noen funksjon som heter values. Kanskje du mente for(int karBok : karakterBok)
g_threepwood Skrevet 6. juni 2013 Forfatter Skrevet 6. juni 2013 (endret) Jeg står litt fast her. Hvordan ville du ha løst oppgaven? Endret 6. juni 2013 av g_threepwood
g_threepwood Skrevet 6. juni 2013 Forfatter Skrevet 6. juni 2013 Kan også legge til en ny oppgave, blir mye det samme: Lag en klasse Bachelorstudenter som representerer en samling bachelorstudenter. Bachelorstudenter skal ha en metode som beregner gjennomsnittskarakter for alle studentene. Dersom det ikke finnes noen studenter skal verdien 6 returneres.
GeirGrusom Skrevet 6. juni 2013 Skrevet 6. juni 2013 Jeg burde lest igjennom bedre. Det skal være values() ja :/
g_threepwood Skrevet 6. juni 2013 Forfatter Skrevet 6. juni 2013 (endret) Oppgaven er som sagt tidligere som følger: Utvid Bachelorstudent med en metode som beregner gjennomsnittet av alle karakterene til studenten. Dersom det ikke finnes noen karakterer skal verdien 6 returneres. Blir dette korrekt? public int gjennomsnitt() { int karakterer = 0; if(karakterBok.isEmpty()) { return 6; } else { for(Integer karBok : karakterBok.values()) { karakterer += karBok; } return karakterer/karakterBok.size(); } } Skal det muligens være int i stedet for Integer i for each-løkken? Endret 6. juni 2013 av g_threepwood
GeirGrusom Skrevet 6. juni 2013 Skrevet 6. juni 2013 (endret) Oppgaven er som sagt tidligere som følger: Utvid Bachelorstudent med en metode som beregner gjennomsnittet av alle karakterene til studenten. Dersom det ikke finnes noen karakterer skal verdien 6 returneres. Blir dette korrekt? public int gjennomsnitt() { int karakterer = 0; if(karakterBok.isEmpty()) { return 6; } else { for(Integer karBok : karakterBok.values()) { karakterer += karBok; } return karakterer/karakterBok.size(); } } Skal det muligens være int i stedet for Integer i for each-løkken? Heltall rundes alltid ned, så burde gjøre en avrunding her public int gjennomsnitt() { int karakterer = 0; if(karakterBok.isEmpty()) return 0; // Gjennomsnittet av et tomt sett er 0, ikke 6. else { for(int karBok : karakterBok.values()) karakterer += karBok; return (int)Math.round(karakterer / (double)karakterBok.size()); } } Endret 6. juni 2013 av GeirGrusom
g_threepwood Skrevet 6. juni 2013 Forfatter Skrevet 6. juni 2013 OK, takk skal du ha. Basert på hva som er gjort så langt, hvordan ville du ha løst denne oppgaven: Lag en klasse Bachelorstudenter som representerer en samling bachelorstudenter. Bachelorstudenter skal ha en metode som beregner gjennomsnittskarakter for alle studentene. Dersom det ikke finnes noen studenter skal verdien 6 returneres.
g_threepwood Skrevet 7. juni 2013 Forfatter Skrevet 7. juni 2013 (endret) Jeg har gått bort fra å bruke HashMap, og har i stedet benyttet ArrayList og har nå disse klassene. import java.util.ArrayList; public class Bachelorstudent { private String navn; private int studentNummer; private ArrayList<Karakterer> karakterbok; public Bachelorstudent (String studNavn, int studNum) { setNavn(studNavn); setStudentNummer(studNum); karakterbok = new ArrayList<Karakterer>(); } public String getNavn() { return navn; } public void setNavn(String studNavn) { navn = studNavn; } public int getStudentNummer() { return studentNummer; } public void setStudentNummer(int studNum) { studentNummer = studNum; } } public double getKarakterGjennomsnitt() { double karakterGjennomsnitt = 0.00; if(karakterbok.isEmpty()) { karakterGjennomsnitt = 6; } else { int size = Karakterbok.size(); int sum = 0; for(int i = 0; i < size; i++) { karakterbok kb = karakterbok.get(i); sum += kb.getKarakter(); } karakterGjennomsnitt = sum/size; } return karakterGjennomsnitt; } public class Bachelorstudenter { private ArrayList<Bachelorstudent> bachelors; public double getKarakterGjennomsnittForBachelors() { double karakterGjennomsnitt = 0.00; if(bachelors.isEmpty()) { karakterGjennomsnitt = 6; } else { int size = bachelors.size(); double sum = 0.00; for(int i = 0; i < size; i++) { bachelorstudent bs = bachelors.get(i); sum += bs.getKarakterGjennomsnitt(); } karakterGjennomsnitt = sum/size; } return karakterGjennomsnitt; } Det jeg lurer på nå er følgende: Lag en klasse FerdigMasterstudent som representerer en uteksaminert masterstudent. Informasjon vi har bruk for om slike masterstudenter er den samme som for bachelorstudenter, i tillegg til en egen karakter for masteroppgaven (heltall mellom 1 og 6). FerdigMasterstudent skal videre ha en metode som beregner gjennomsnittskarakter på følgende måte: gjennomsnittet av fagkarakterene skal telle 50%, og karakteren for masteroppgaven skal telle 50%. Endret 7. juni 2013 av g_threepwood
dabear Skrevet 7. juni 2013 Skrevet 7. juni 2013 Et lite sidespor her; disse oppgavene forutsetter at studenten snakker norsk. Hva kan grunnen være til at oppgavestillerne går så hardt inn for norsk språk i oppgaveteksten(som jeg mener er direkte feil)? Fører jo til språkblanding, som feks karakterBok.isEmpty()
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å