Nach Namen sortieren und diese in 3 Gruppen aufteilen

Status
Nicht offen für weitere Antworten.

Silam

Mitglied
Hi erstmal,

studiere seit kurzem Medizinische Informatik, der Mathe und Medizinteil ist super aber bei Informatik hab ich noch einige Probleme, ich hoffe ihr könnt mir da weiterhelfen.

Aufgabe:
- (Vor - und Nach) Name , Matrikelnummer, Semester einse Studenten erfragen und diese in 3 Gruppen aufteilen
- pro Gruppe dürfen max. 20 teilnehmer
-ich soll diese in einer Klasse TeilnehmendePersonen, in einer Klasse Uebungsgruppen in diese dann in einer Benutzerkommunikation wiedergeben

angefangen hab ich auf jeden Fall:

was ich bisher hab:

balksz2mn9.jpg


bei den Gruppen weiß ich gar nicht wie ich das machen soll, hab ich noch nie gemacht

das hab ich bis jetzt

balksz3qi0.jpg



tja bei der Benutzerkommunikation werd ich schon hinkriegen hoff ich

Ich danke im voraus wenn ihr mir helfen könntet dankeeeeeeeeeeeeeeeee :)))))))
 

Tobias

Top Contributor
1. Ist eine Übungsgruppe eine teilnehmende Person?
2. Was hat diese switch-Abfrage zu bedeuten?

mpG
Tobias
 

Silam

Mitglied
ehmm die teilnhemer werden in diese Übungsgruppen unterteilt undzwar nach dem Alphabet soll das ganze sein, und 3 gruppen soll es geben, daher die if else anweisung, sprich wenn der name von a - i ist soll die Person in die Gruppe 1 also sollte da unten noch return gruppe1 und so weiter halt

das hab ich mir mit google geholt weiß aber net obs stimmt, die sache mit char at, wie gesagt hab ich noch nie gemacht, aber... naja
wie sortiert man denn dann namen?
 

Tobias

Top Contributor
Vergiß Frage 2, ich hab da was durcheinandergeworfen. Beantworte Frage 1: Ist eine Übrungsgruppe eine teilnehmende Person?

mpG
Tobias
 

Silam

Mitglied
nein sind sie nicht, das sind 2 verschiedene Klassen ..... :))))
die Teilnehmenden Personen werden in die Übungsgruppen eingeteilt

achja und danke :)))
 

Silam

Mitglied
hmmmm ok hast recht jetzt hab ich verstanden was du meinst, ok das kommt mal raus :))
hab ich vergessen ,
ok mein einziges Problem ist eigentlich wie sorteir ich diese namen nach dem alphabet und gib die namen dann in der jeweiligen gruppe wieder *großes Fragzeichen im Kopf hab* :)
 

Tobias

Top Contributor
Weiß ich doch. Nun, um deine TeilnehmendenPersonen nach Namen sortieren zu können, solltest du zunächst einmal Comparable implementieren. Für eine Beschreibung von Comparable guckst du in die Javadocs.

mpG
Tobias

P.S.: Wenn du den Profi raushängen lassen willst, benutzt du die Klasse Collator in deiner compareTo(). Lass mal Code sehen, wenn du soweit bist ;)...
 

Silam

Mitglied
ich hab mir jetzt mal den ganzen Text durchgelesen aber ich weiß net also gibt es da net noch ne andere möglichkeit denn im unterricht kam sowas wirklich noch nie vor, bisher war das nämlich immer der stoff vom unterricht oder aus dem buch BlueJ, welches ich natürlich auch hab ????????????

edit:

nebenbei noch ne bemerkung den Stoff des Themas arrays sollten wir uns anschauen also Tipp vom Prof :)

edit: was mir noch aufgefallen ist: mit dem comperable der sortiert mir das automatisch kann das sein, ich will aber die Namen in den Gruppen haben also wäre doch die if else anweisung besser oder nicht, zumindest kenne ich nur diese Möglichkeit bisjetzt oder sollte sie gut kenen :D in Anführungszeichen ehe ehe
 

Quickbeam2k1

Aktives Mitglied
Also du brauchst einfach einen Sortieralgorithmus für z.B den nachnamen, ich meine, dass kann man noch alles mit kleiner und größer machen oder? Am besten Quicksort oder sowas.
www.sortieralgorithmen.de Musst dann halt auf die objekte im Array und von denen auf den Nachnamen zugreifen. Notfalls muss man sich dort noch um die Ordnung kümmern, wenns mit kleiner nicht gehen sollte. Dann wäre Comparable wirklich am besten :)

Diese Leute stehen dann sortiert in einem Array, und dann gibst du einfach die positionen 0-19, 20-39, und 40-... zurück musst halt nur sehen wieviele Leute es insgesamt gibt.
 

Tobias

Top Contributor
Mh, ok, wollte ich zu "professionell" an die Sache ran... Gut, dann machen wir es auf nicht-Java Art und Weise:

Du hast eine Klasse TeilnehmendePerson, eine Klasse Uebungsgruppe und eine Main-Klasse, die die Verteilung der Teilnehmer auf die Übungsgruppen vornimmt (und ausserdem den ganzen Eingabekrams abhandelt). TeilnehmendePerson hast du bereits oben angegeben.

Uebungsgruppe sieht etwa so aus:
Code:
class Uebungsgruppe {

    private TeilnehmendePerson[] teilnehmer;

    private String name;

    public Uebungsgruppe(String name) {
        this.name = name;
        teilnehmer = new TeilnehmendePerson[20]();
    }

    public void addTeilnehmer(TeilnehmendePerson p) throws IndexOutOfBoundsException {
        teilnehmer[teilnehmer.length] = p;
    }

    public int getTeilnehmerAnzahl() {
        return teilnehmer.length;
    }

    public String getName() {
         return name;
    }

}

Code:
class Main {

    public static void main(String[] args) {
         Uebungsgruppe uebungAK = new Uebungsgruppe("A-K");
         Uebungsgruppe uebungLR = new Uebungsgruppe("L-R");
         Uebungsgruppe uebungSZ = new Uebungsgruppe("S-Z");

         // Read Ahead Operationen für ersten Loop

         while(/*irgendeine Form von Abbruchbedingung, z.B. x eingegeben oder so*/) {
             TeilnehmendePerson p = new TeilnehmendePerson(eingegebenerName, eingegebenerNachname);
             char anfangsbuchstabe = p.getNachname().getCharAt(0);
             if(anfangsbuchstabe >= 'A' && anfangsbuchstabe <= 'K') {
                  if(uebungAK.getTeilnehmerAnzahl() < 20) {
                       uebungAK.addTeilnehmer(p);
                  }
                  else {
                      System.out.println("Zuviele Teilnehmer in Gruppe " + uebungAK.getName());
                  }
             }
             if(anfangsbuchstabe >= 'L' && anfangsbuchstabe <= 'R') {
                  if(uebungAK.getTeilnehmerAnzahl() < 20) {
                       uebungAK.addTeilnehmer(p);
                  }
                  else {
                      System.out.println("Zuviele Teilnehmer in Gruppe " + uebungLR.getName());
                  }
             }
             if(anfangsbuchstabe >= 'S' && anfangsbuchstabe <= 'Z') {
                  if(uebungAK.getTeilnehmerAnzahl() < 20) {
                       uebungAK.addTeilnehmer(p);
                  }
                  else {
                      System.out.println("Zuviele Teilnehmer in Gruppe " + uebungSZ.getName());
                  }
             }

             // Einlesen nächster Teilnehmer
         }
    }
}

Aller Code ungetestet und nur als Beispiel gedacht.

mpG
Tobias
 

Silam

Mitglied
vav hammer du bischd der beste
dankeeee

ich werde deins mit meinem kombinieren wenn du nix dagegen hast :)))
 

Tobias

Top Contributor
Da jede Uebungsgruppe nur 20 Teilnehmer aufnehmen kann, wird beim hinzufügen des 21. eine IndexOutOfBoundsException ausgelöst. Die könnte man dann mit try-catch abfangen und darauf reagieren.

Da es sich um eine Subklasse von RuntimeException handelt ist die Deklaration nicht nötig, du kannst das "throws IndexOutOfBoundsException" also auch einfach weglassen. Ich hab es hingeschrieben, um deutlich zu machen, das die addTeilnehmer() nicht die Menge an bereits hinzugefügten Teilnehmern prüft.

mpG
Tobias
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Strings im Array nach Namen sortieren Java Basics - Anfänger-Themen 11
Kenan89 Nach Namen einer Klasse fragen Java Basics - Anfänger-Themen 6
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
C Probleme mit Byte konvertieren nach int Java Basics - Anfänger-Themen 10
T sortierung der eingabe nach größe Java Basics - Anfänger-Themen 5
G Bei dynamischer Arrayliste nach jeder Auswahl Zahl entfernen Java Basics - Anfänger-Themen 3
ptcho Werte/Position nach dem Funktionsaufruf tauschen? Java Basics - Anfänger-Themen 1
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
W LocalDate toString und nach Split falsch "erkannt"? Java Basics - Anfänger-Themen 8
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
S Größte Zahl nach Eingabe der Zahl 0 ausgeben Java Basics - Anfänger-Themen 6
I Java Mail Timeout erst nach rund 5 Minuten? Java Basics - Anfänger-Themen 9
FireHorses Einen Command erst nach einer Chateingabe aktivieren Java Basics - Anfänger-Themen 1
izoards Sortier Algorithmus für Bounding Box Elememte Links nach Rechts und von Oben nach Unten Java Basics - Anfänger-Themen 33
Jambolo Karten sortieren nach Rang und Farbe Java Basics - Anfänger-Themen 5
Lion.King Subtraktion nach Eingabe im Terminal Java Basics - Anfänger-Themen 7
D Programmieren nach UML Java Basics - Anfänger-Themen 2
rosima26 Java nach letzter Ziffer sortieren Java Basics - Anfänger-Themen 19
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
volcanos List & ArrayList nach Familiennamen abfragen Java Basics - Anfänger-Themen 57
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
S Java Client-je nach Heap Size Größe startet Applikation oder nicht Java Basics - Anfänger-Themen 4
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
F Suche nach betreuender Person für eine Jahresarbeit der 12. Klasse. Java Basics - Anfänger-Themen 6
F nach Methode Programm nicht beenden Java Basics - Anfänger-Themen 9
E Umlaute und Sonderzeichen werden nach der Build Project nicht richtig angezeigt Java Basics - Anfänger-Themen 2
M Bei nach oben scrollen soll Seite aktualisiert werden (Userscript mit Javascript) Java Basics - Anfänger-Themen 10
K log4j nach log4j2 überführen Java Basics - Anfänger-Themen 0
javapingu Jeglichen Inhalt einer Textdatei nach Zeile n löschen Java Basics - Anfänger-Themen 8
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
B Array nach Wert prüfen rekursiv Java Basics - Anfänger-Themen 5
CptK For-Schleife in Thread nach jedem Durchlauf pausieren Java Basics - Anfänger-Themen 35
D Primzahlen Rechner nach Eratostenes von Kyrene Algorithmus Java Basics - Anfänger-Themen 2
rafi072001 Sortieren einer HashMap nach Values Java Basics - Anfänger-Themen 2
L Zahlungen nach Monat filtern Java Basics - Anfänger-Themen 2
J Jtable Eingabe nach Klick ausserhalb der Tabelle übernehmen Java Basics - Anfänger-Themen 6
I String nach Wort suchen Java Basics - Anfänger-Themen 6
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
javaluke Erste Schritte Array nach Datentyp sortieren Java Basics - Anfänger-Themen 16
D Methoden nach einer bestimmten Reihenfolge ausführen. Java Basics - Anfänger-Themen 20
idontknow707 Matrix nach z.B. Variable durchsuchen Java Basics - Anfänger-Themen 4
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
I Liste gruppieren nach Monat? Java Basics - Anfänger-Themen 5
P Ein Objekt nach einem String durchsuchen? Java Basics - Anfänger-Themen 7
M Nach einer erstmaligen Eingabe, eine zweite Eingabe nur noch gegen bestätigung möglich Java Basics - Anfänger-Themen 2
D Input/Output fehlerhafter Algorithmus zum Ersetzen von Array-Werten nach logischem Schema Java Basics - Anfänger-Themen 1
C Meldung einer Klasse nach "oben" Java Basics - Anfänger-Themen 6
B Nach eingefügtem Code erkennt Compiler keine Instanzvar und meldet SyntaxError Java Basics - Anfänger-Themen 2
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
M Anzahl Schleifendurchgänge nach x Sekunden anzeigen Java Basics - Anfänger-Themen 2
C Lotto 3, 4, 5, 6 Richtige nach x Ziehungen ermittelt.. Java Basics - Anfänger-Themen 7
G Primzahlen von Rekursiv nach Iterativ Java Basics - Anfänger-Themen 6
F JMenuItem Kann nicht nach einem String benannt werden... Java Basics - Anfänger-Themen 11
R JDK installieren Durcheinander nach installation von SE 14.02 Java Basics - Anfänger-Themen 6
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
B DateTimeFormatter nach LocalDateTime, wenn dd.MM.yyyy oder dd.MM.yyyy mm:hh Java Basics - Anfänger-Themen 5
1 main-Methode erweitern, Nachfrage nach wiedeholung Java Basics - Anfänger-Themen 2
G unklares Verhalten nach Instanzierung neuer Klasse Java Basics - Anfänger-Themen 3
S Wohin kommt das „abstract“? Vor oder nach „public“/ „private“ /... Java Basics - Anfänger-Themen 3
S Datenbank Befehl nach Login Java Basics - Anfänger-Themen 5
N Operatoren Schreibtischtest der Reihen-Suche nach Aufschluss in die Basics Java Basics - Anfänger-Themen 1
B Umstieg von C# nach Java Java Basics - Anfänger-Themen 18
Ellachen55 Wie nach häufigste Werte im Array suchen? Java Basics - Anfänger-Themen 2
M Untersuchen ob ein Graph nach entfernen einer Kante immer noch zusammenhängend ist Java Basics - Anfänger-Themen 70
N Wörter und Zahlen nach speziellen Wörtern ausgeben Java Basics - Anfänger-Themen 11
M Werte ändern sich nicht mehr nach Reset Java Basics - Anfänger-Themen 14
B Nach dem kompilieren werden Bilder nicht mehr gefunden Java Basics - Anfänger-Themen 10
X Nach einem Bruch testen ob es eine ganze Zahl ist Java Basics - Anfänger-Themen 6
B String nach erstem Leerzeichen trennen Java Basics - Anfänger-Themen 7
N Speichern von Werten in Variablen nach Schließen des Programms Java Basics - Anfänger-Themen 3
G String wird nach Einlesen aus Datei nicht erkannt Java Basics - Anfänger-Themen 3
CptK Best Practice Algorithmus nach jedem Schritt zum Visualisieren pausieren Java Basics - Anfänger-Themen 3
O zwei Arrays nach Werten durchsuchen und zusammenfügen Java Basics - Anfänger-Themen 3
M Double Wert nach n abschneiden ohne zu runden Java Basics - Anfänger-Themen 1
C Erste Schritte Bilder nach Export anzeigen Java Basics - Anfänger-Themen 0
F Input/Output Files von A nach B kopieren Java Basics - Anfänger-Themen 11
B InputStream (PDF) nach Image (PNG / JPG) konvertieren? Java Basics - Anfänger-Themen 2
O ADT Graph nach größe Abfragen Java Basics - Anfänger-Themen 42
O compareTo nach mehreren Kriterien Java Basics - Anfänger-Themen 13
R Benutzereingaben als Array abspeichern nach Programmstart Java Basics - Anfänger-Themen 5
S Pane nach speziellen Child Objekten durchsuchen Java Basics - Anfänger-Themen 3
V Neue Ausgabe von toString nach Methodenaufruf Java Basics - Anfänger-Themen 9
L Arrayliste von hinten nach vorne ausgeben Java Basics - Anfänger-Themen 10
F Array nach Objektattribut durchsuchen Java Basics - Anfänger-Themen 6
M Rationale Zahl erkennen - Kurze Frage zum Restwert nach Division Java Basics - Anfänger-Themen 3
O String von vorne nach hinten an einem Zeichen Java Basics - Anfänger-Themen 10
Hanschyo Quicksort sortiert von groß nach klein Java Basics - Anfänger-Themen 3
S suche nach varible POSITION ... fuer das pixel-maennchen Java Basics - Anfänger-Themen 4
A Einträge aus Tupeln nach Regeln in Liste speichern Java Basics - Anfänger-Themen 8
B String nach HTML formatieren Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben