g_threepwood Skrevet 6. juni 2013 Forfatter Del 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() Lenke til kommentar
GeirGrusom Skrevet 6. juni 2013 Del Skrevet 6. juni 2013 Karakterbok inneholder ikke noen funksjon som heter values. Kanskje du mente for(int karBok : karakterBok) Lenke til kommentar
g_threepwood Skrevet 6. juni 2013 Forfatter Del 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 Lenke til kommentar
g_threepwood Skrevet 6. juni 2013 Forfatter Del 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. Lenke til kommentar
GeirGrusom Skrevet 6. juni 2013 Del Skrevet 6. juni 2013 Jeg burde lest igjennom bedre. Det skal være values() ja :/ Lenke til kommentar
g_threepwood Skrevet 6. juni 2013 Forfatter Del 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 Lenke til kommentar
GeirGrusom Skrevet 6. juni 2013 Del 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 Lenke til kommentar
g_threepwood Skrevet 6. juni 2013 Forfatter Del 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. Lenke til kommentar
g_threepwood Skrevet 7. juni 2013 Forfatter Del 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 Lenke til kommentar
dabear Skrevet 7. juni 2013 Del 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() 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å