Felet kommer sig av raden:
Kurs temp = new Kurs();
Den skapar ett nytt Kurs-objekt som inte innehåller en initialiserad sträng. Detta tolkas senare som null. Du menade nog detta:
Kurs temp = objA.v[i];
4 svar · 341 visningar · startad av trexter
Skoluppgift (nix, inget fusk); program som håller koll på kurser. Ska ha en metod som kan visa kurserna i bokstavsordning (a-ö).
Men om jag matar in t ex "svenska" och sedan "finska" (mha av en annan metod som 100% säkert fungerar) och sedan ordnar, så visas (i dialogrutan där ajg skriver ut de intressanta strängarna)
finska
null
Så här sär de intressanta klasserna och metoden (metoden i "grundklassen" eller vad man kallar det.)
public static String list(MinSamling objA) {
String min;
int minIndex;
for (int i = 0; i < objA.nrOfObjects; i++) {
min = objA.v[i].kursnamn;
minIndex = i;
for (int j = i + 1; j < objA.nrOfObjects; j++)
if(objA.v[j].kursnamn.compareTo(objA.v[minIndex].kursnamn) <= 0) //alfabetisk ordning
minIndex = j;
Kurs temp = new Kurs();
objA.v[i] = objA.v[minIndex];
objA.v[minIndex] = temp;
}
String a = "";
for (int i = 0; i < objA.nrOfObjects; i++) {
a += objA.v[i].kursnamn + "\n";
}
return a;
}
class Kurs {
String kurskod;
String kursnamn;
int poäng;
String betyg;
}
class MinSamling {
//
public static Kurs v[] = new Kurs[50];
public static int nrOfObjects = 0;
}
Hur ska det skrivas för att det ska fungera?
:)
Felet kommer sig av raden:
Kurs temp = new Kurs();
Den skapar ett nytt Kurs-objekt som inte innehåller en initialiserad sträng. Detta tolkas senare som null. Du menade nog detta:
Kurs temp = objA.v[i];
Jo, det verkar fungera. Tack!
Du glömmer att ge kurs temp ngt värde.
Ojdå, där var jag lite sen... ;)