|
|
Java Quellcode |
1 |
Student[] team |
|
|
Java Quellcode |
1 |
public void sortieren() { int out, in, min; for(out=0; out< a[min] ) // if min greater, min = in; // we have a new min swap(out, min); // swap them } // end for(out) } // end selectionSort() |
|
|
Java Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
public void sortieren(Student[] team) { int index = 0; char separator = ' '; int count = 1; while((index = text.indexOf(' ',index)) != -1) { index++; count++; } Student[] team = new Student[]; index = 0; int endIndex = 0; for(int i = 0; i < count; i++) { endIndex = text.indexOf(separator,index); if(endIndex == -1) student[i] = text.substring(index); else student[i] = text.substring(index,endIndex); index = endIndex + 1; } { int i,j; String a; for(j = 1; j < count; j++) { a = student[j]; i = j - 1; while((i >= 0) && (student[i].compareTo(a) > 0)) { student[i+1] = student[i]; i--; } student[i+1] = a; } } for(int i = 0; i < student.length; i++) System.out.println(student[i]); } } |
|
|
Java Quellcode |
1 |
private void swap(int one, int two) { long temp = a[one]; a[one] = a[two]; a[two] = temp; } |
|
|
Java Quellcode |
1 2 |
List<String> liste = Arrays.asList(strArray); // strArray = Dein String Array mit den Werten Collections.sort(liste, Collator.getInstance()); |
|
|
Java Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
public interface Comparable{ public class Team { // instance variables: private Student[] team; private int zteam; //Zeiger auf Array team = Anzahl der Teammitglieder /** * Constructor for objects of class Team */ public Team(int maxTeam) { // initialise instance variables team = new Student[maxTeam]; zteam=0; }//Team // nicht gefordert: Standard-Team mit Größe 10 public Team(){ this(10); } public void add(Student neu) { if(zteam<team.length) { team[zteam] = neu; zteam++; }//if }//sampleMethod public int size(){ return zteam;} public Student get(int index){ if(index>=0 &&index<zteam) return team[index]; // es könnte auch ein Student objekt ohne Inhalte geliefert werden: // return new Student("","",0); else return null; //kein Objekt - leere Adresse }//get public void remove(int index){ if(index>=0 &&index<zteam) { for(int i=index;index<zteam-1;index++)team[index] = team[index+1]; zteam--; //Ein Mitglied weniger }//if }//remove public void ausgabe(){ IntIO io = new IntIO(); io.writeln("Unser Team:"); for(int i=0;i<zteam;i++) io.writeln((i+1)+". "+team[i]); }//ausgabe public void sort(Student[] a) { for(int i = a.length - 1; i > 0; i--) { for(int j = 0; j < i; j++) { if((a[j].compareTo(a[j + 1])) > 0) { Student z = a[j]; a[j] = a[j + 1]; a[j + 1] = z; } } } } } }//Team |
|
|
Java Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
public class Student implements Comparable { // Merkmale eines Studenten private String mname; private String mvorname; private int mmatrikel; private int mects; /** * Erster Konstrukor mit allen Parametern: * @param name- Name des Studenten * @param vorname - Vorname * @param matNr - Matrikelnummer * @param pkte- Anzahl bisheriger ECTS-Punkte */ public Student(String name, String vorname, int matNr, int pkte){ mname = name; mvorname = vorname; mmatrikel= matNr; mects = pkte; }//Student /** * Zweiter Konstrukor für neuen Studenten ohne bisherige Punkte: * @param name- Name des Studenten * @param vorname - Vorname * @param matNr - Matrikelnummer */ public Student(String name, String vorname, int matNr){ mname = name; mvorname = vorname; mmatrikel= matNr; mects = 0; }//Student //-- Zugriffsmethoden ------------------------------------------- //-- lesende/sondirende Methoden: public String getName () { return mname; } public String getVorname () { return mvorname; } public int getMatrikel() { return mmatrikel;} public int getECTS () { return mects; } //-- verändernde/schreibende Methoden: public void setECTS(int pkte){ mects=pkte; } //-- Verarbeitung public void pruefungBestanden(int pkte) { mects = mects + pkte; }//pruefungBestanden //-- Hier die Ausgabe-Methode: // Da nicht über Ausgabe gesprochen wurde, war dieses nicht entscheidend: public void ausgabe(){ System.out.println( mname+", "+mvorname+", "+mmatrikel+" : "+mects+" ECTS"); }//ausgabe //-- toString für die bequeme Ausgabe: public String toString(){ return mname+", "+mvorname+", "+mmatrikel+" : "+mects+" ECTS"; }//toString public int compareTo(Student student) { return mname.compareTo(student.getName()); } }//Student |
Da ich vor der selben Aufgabe stehe würden mich da auch einige Lösungshinweise interessieren. Bin grad ziemlich planlos!
|
|
Java Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
interface Comparable{ public class Team { // instance variables: private Student[] team; private int zteam; //Zeiger auf Array team = Anzahl der Teammitglieder /** * Constructor for objects of class Team */ public Team(int maxTeam) { // initialise instance variables team = new Student[maxTeam]; zteam=0; }//Team // nicht gefordert: Standard-Team mit Größe 10 public Team(){ this(10); } public void add(Student neu) { if(zteam<team.length) { team[zteam] = neu; zteam++; }//if }//sampleMethod public int size(){ return zteam;} public Student get(int index){ if(index>=0 &&index<zteam) return team[index]; // es könnte auch ein Student objekt ohne Inhalte geliefert werden: // return new Student("","",0); else return null; //kein Objekt - leere Adresse }//get public void remove(int index){ if(index>=0 &&index<zteam) { for(int i=index;index<zteam-1;index++)team[index] = team[index+1]; zteam--; //Ein Mitglied weniger }//if }//remove public void ausgabe(){ //IntIO io = new IntIO(); System.out.println("Unser Team:"); for(int i=0;i<zteam;i++) System.out.println((i+1)+". "+team[i]); }//ausgabe public void sort() { for(int i=0 ; i < team.length - 1 ; i++) { int minPos = minimumPosition(i); swap(minPos, i); } } // findet die kleinste zahl ausgehend vom ende private int minimumPosition(int from) { int minPos = from; for(int i = from + 1 ; i < team.length ; i++) { //vergleiche die vornamen if(team[i].getVorname().compareTo(team[minPos].getVorname()) < 0) minPos = i; //wenn die vornamen gleich sind, vergleiche die nachnamen else if(team[i].getVorname().compareTo(team[minPos].getVorname()) == 0) { if(team[i].getName().compareTo(team[minPos].getName()) < 0) minPos = i; } } return minPos; } // swap zwei einträge im array private void swap(int i, int j) { Student temp = team[i]; team[i] = team[j]; team[j] = temp; } } }//Team |
|
|
Java Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
public class Student implements Comparable { // Merkmale eines Studenten private String mname; private String mvorname; private int mmatrikel; private int mects; /** * Erster Konstrukor mit allen Parametern: * @param name - Name des Studenten * @param vorname - Vorname * @param matNr - Matrikelnummer * @param pkte - Anzahl bisheriger ECTS-Punkte */ public Student(String name, String vorname, int matNr, int pkte){ mname = name; mvorname = vorname; mmatrikel= matNr; mects = pkte; }//Student /** * Zweiter Konstrukor für neuen Studenten ohne bisherige Punkte: * @param name - Name des Studenten * @param vorname - Vorname * @param matNr - Matrikelnummer */ public Student(String name, String vorname, int matNr){ mname = name; mvorname = vorname; mmatrikel= matNr; mects = 0; }//Student //-- Zugriffsmethoden ------------------------------------------- //-- lesende/sondirende Methoden: public String getName () { return mname; } public String getVorname () { return mvorname; } public int getMatrikel() { return mmatrikel;} public int getECTS () { return mects; } //-- verändernde/schreibende Methoden: public void setECTS(int pkte){ mects=pkte; } //-- Verarbeitung public void pruefungBestanden(int pkte) { mects = mects + pkte; }//pruefungBestanden //-- Hier die Ausgabe-Methode: // Da nicht über Ausgabe gesprochen wurde, war dieses nicht entscheidend: public void ausgabe(){ System.out.println(mname+", "+mvorname+", "+mmatrikel+" : "+mects+" ECTS"); }//ausgabe //-- toString für die bequeme Ausgabe: public String toString(){ return mname+", "+mvorname+", "+mmatrikel+" : "+mects+" ECTS"; }//toString public int compareTo(Student student) { return mname.compareTo(student.getName()); } }//Student |
|
|
Java Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
class tess implements Comparable { //main methode public static void main(String [] args) { //3 studenten Student st1, st2, st3; //konstruktion nachname, vorname, matnummer für jeden Studenten st1 = new Student("aaa","bbb",112); st2 = new Student("aac","bbb",112); st3 = new Student("aab","bcb",112); //team erzeugen Team te = new Team(3); //studenten ins team reintun te.add(st1); te.add(st2); te.add(st3); //ausgabe ohne sortieren te.ausgabe(); //sortieren te.sort(); //ausgabe nach dem sortieren te.ausgabe(); } } |
This post has been edited 1 times, last edit by "/etc/shadow" (Dec 18th 2007, 4:19pm)
Nun haben wir zwar ein Programm was funktioniert, aber können keine statische mainmethode oder ein team erzeugen!
|
|
Java Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
interface Comparable{ public class Team { // instance variables: private Student[] team; private int zteam; //Zeiger auf Array team = Anzahl der Teammitglieder /** * Constructor for objects of class TestTeam */ public Team(int maxTeam) { // initialise instance variables team = new Student[maxTeam]; zteam=0; }//TestTeam // nicht gefordert: Standard-TestTeam mit Größe 10 public Team(){ this(10); } public void add(Student neu) { if(zteam<team.length) { team[zteam] = neu; zteam++; }//if }//sampleMethod public int size(){ return zteam;} public Student get(int index){ if(index>=0 &&index<zteam) return team[index]; // es könnte auch ein Student objekt ohne Inhalte geliefert werden: // return new Student("","",0); else return null; //kein Objekt - leere Adresse }//get public void remove(int index){ if(index>=0 &&index<zteam) { for(int i=index;index<zteam-1;index++)team[index] = team[index+1]; zteam--; //Ein Mitglied weniger }//if }//remove public void ausgabe(){ //IntIO io = new IntIO(); System.out.println("Unser TestTeam:"); for(int i=0;i<zteam;i++) System.out.println((i+1)+". "+team[i]); }//ausgabe public void sort() { for(int i=0 ; i < team.length - 1 ; i++) { int minPos = minimumPosition(i); swap(minPos, i); } } // findet die kleinste zahl ausgehend vom ende private int minimumPosition(int from) { int minPos = from; for(int i = from + 1 ; i < team.length ; i++) { //vergleiche die vornamen if(team[i].getName().compareTo(team[minPos].getName()) < 0) minPos = i; //wenn die vornamen gleich sind, vergleiche die nachnamen else if(team[i].getName().compareTo(team[minPos].getName()) == 0) { if(team[i].getVorname().compareTo(team[minPos].getVorname()) < 0) minPos = i; } } return minPos; } // swap zwei einträge im array private void swap(int i, int j) { Student temp = team[i]; team[i] = team[j]; team[j] = temp; } } }//TestTeam class TestTeam implements Comparable{ public static void main(String [] args) { Student st1, st2, st3, st4; st1 = new Student("claus","bbb",112); st2 = new Student("arno","bbb",112); st3 = new Student("berd","bcb",112); st4 = new Student("claus","aaa",112); Team te = new Team(4); te.add(st1); te.add(st2); te.add(st3); te.add(st4); te.ausgabe(); te.sort(); te.ausgabe(); } } |