Gå til innhold

Anbefalte innlegg

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
Videoannonse
Annonse

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

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 av g_threepwood
Lenke til kommentar

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 av GeirGrusom
Lenke til kommentar

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

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 av g_threepwood
Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...