![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Neuer Benutzer
Registriert seit: 17.02.2005
Beiträge: 3
|
hallo,
ich bin dabei ein programm zu schreiben, wo ich 4 verschiedene daten eintragen kann und die ich dann später auslesen will, nach einzelnen daten suchen, sortieren, daten löschen und öffnen und abspeichern in einer datei bis jetzt bin ich bei der eingabe. meine frage ist ob das so funktioniert wie das bis jetzt ist und wie ich die daten am besten sortiert ausgebe. Code:
public void eingabe(){
int anzahl;
int enummer;
int datum;
int [][] daten;
float km;
float schnitt;
char zeit;
System.out.println();
System.out.println();
System.out.println();
System.out.println(" Datensätze eingeben ");
System.out.println("--------------------------");
System.out.println();
anzahl = IO.readInt("Bitte die Anzahl der einzugebenden Datensätze einegeben: ");
daten = new int[anzahl][4];
System.out.println();
System.out.println();
for (int i=0;i<anzahl;i++){
System.out.println("Datensatz "+i+" eingeben");
daten[i][0]=IO.readInt("Bitte das Datum eingeben: ");
daten[i][1]=IO.readInt("Bitte die Kilometer eingeben: ");
daten[i][2]=IO.readInt("Bitte die gefahrene Durchschnittgeschwindigkeit eingeben: ");
daten[i][3]=IO.readChar("Bitte die gefahrene Zeit eingeben: ");
System.out.println();
}
System.out.println();
enummer= IO.readInt("Um ins Hauptmenü zu gelangen 1 eingeben, zum beenden bitte 2 eingeben: ");
System.out.println();
System.out.println();
switch (enummer){
case 1: menue(); break;
case 2: ende();break;
default: {System.out.println("Falsche Eingabe"); menue();} break;
}
}
|
|
|
|
|
|
Nach oben #3 |
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.616
|
Hallo erstmal
Nunja ... sortiert nach was denn? Verstehst Du, was "IO" macht? Wenn Du Dir nicht sicher bist, dann nutze lieber den expliziten Weg. Nach default braucht man kein "break;" Grüße Ben. |
|
|
|
|
|
Nach oben #4 |
|
Neuer Benutzer
Registriert seit: 17.02.2005
Beiträge: 3
|
also ich denke der ansatz den ich gewählt habe ist falsch. mit arrays ist nicht die richtige lösung.
also ich will ein programm machen, das folgende funktionen hat: 1) Daten eintragen in eine LISTE 2) liste sortieren und ausgeben 3) einzelne daten aus der liste suchen 4) liste in datei speichern 5) liste aus datei auslesen und und dann weitere datensätze hinzufügen kann mir einer vielleicht infos geben wie ich ne liste erstelle und dann dort die daten richtig eintrage? |
|
|
|
|
|
Nach oben #6 | ||
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.616
|
Zitat:
Hobbit hat Dir ja einen Link gepostet .. eventuell fängst Du mal mit der "ArrayList" an Zitat:
--> Listen, "Java-Insel" Viel Erfolg. Grüße Ben .. |
||
|
|
|
|
|
Nach oben #7 |
|
Neuer Benutzer
Registriert seit: 17.02.2005
Beiträge: 3
|
hmm versteh das momentan nicht.
kann mir vielleicht einer den kompletten code dafür geben? dann versteh ich das vielleicht besser also momentan will ich nur lösen; werte eintragen (datum, kilometer) und sortieren nach datum bräuchte da dringend hilfe. hab momentan irgendwie nen totales blackout.. |
|
|
|
|
|
Nach oben #8 |
|
Gast
Beiträge: n/a
|
Wie im andern Forum bereits gepostet würde ich dir empfehlen eine extra Klasse zur Aufnahme der Daten zu schreiben, dann kannst du Objekte dieser Klasse zur ArrayList hinzufügen (per add(..)) und später wiederholen (per get(..)).
Schau dir die API einfach mal an. |
|
|
|
Nach oben #9 | |
|
Gast
Beiträge: n/a
|
Zitat:
|
|
|
|
|
Nach oben #10 | |||
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.616
|
Zitat:
Du hast ja auch nur zwei Minuten nach meinem Posting diesen Beitrag geschrieben. Lese Dir doch mal den Text über Listen durch. Zitat:
Zitat:
Was verstehst Du an dem Handling mit Listen denn nicht? Wenn Du 'nen Blackout hast .. dann hör erst mal ne Stunde mit Programmieren auf und mach was anderes. Später kommt die Konzentration dann wieder zurück. Grüße Ben. |
|||
|
|
|
|
|
Nach oben #11 |
|
Benutzer
Registriert seit: 30.11.2004
Beiträge: 97
|
Hast du schon mal Objektorientiert programmiert ??
Wenn nicht, dann versuch dich ein wenig schlau zu machen, was hinter der OO wirklich steckt (soll kein Vorwurf sein, sondern eine Anregung). Kleiner Tipp: Wenn du nicht weisst, wie du das Klassen-Design machen sollst, dann schreibe mal im Klartext (ganze und richtig formulierte Sätze !) auf, was dein Programm können soll. Dann wirst du vielleicht schon merken, wie man das aufteilen könnte - in der OO wird großteils die Realität durch Klassen abgebildet. Also schau in deinen Text ... suche alle Substantive (du weisst doch was das ist ... z.B. eine Bücherei-Verwaltung ... und hier der Text In der Büchereiverwaltung werden Bücher verwaltet. Jedes Buch steht in einem bestimmten Regal und hat eine eindeutige Bezeichnung. Folgende Menschen haben zutritt zur Bibliothek: Mitarbeiter, Kunden, Verlagsvertreter und Gäste. jeder Kunde hat einen Kundenausweis. Die Ausleihe der Bücher ist nur mit einem gültigen Kundenausweis möglich. ... das soll erst mal reichen ... wir schauen uns den Text an und bilden folgende Klasse daraus: class Buechereiverwaltung class Bibliothek class Buch class Regal class Mensch class Mitarbeiter extends Mensch class Kunde extends Mensch class Verlagsvertreter extends Mensch class Gast extends Mensch class Kundenausweis class Ausleihe Und dann hast du schon mal die Grundstruktur ... natürlich fehlt da noch einiges ... aber es ist ein Anfang. Auch wenn erfahrene Programmierer nicht mehr solche Texte schreiben (na ja bei Pflichtenheften bei Kundenprojekten ist so was auch üblich) ... im Kopf spielt sich trotzdem das gleiche ab ... die Erfahrung ersetzt dann später den geschriebenen Text. Versuchs einfach ... auch wenn du dir albern vor kommst (es sieht dich doch keiner !!!) ... Michael |
|
|
|
|
|
Nach oben #12 | |
|
Gast
Beiträge: n/a
|
Zitat:
Ich würde empfehlen eine extra Klasse zu schreiben, in der du die Daten speichern kannst, diese Klasse könnte dann Comparable implementieren, später musst du nur noch ein Collections.sort(...) auf die Liste anwenden. Aber wie gesagt, poste bitte etwas konkreter wodran es liegt. Schau auch mal in die API. |
|
|
|
|
Nach oben #13 |
|
Gast
Beiträge: n/a
|
Hi zerberos,
das erste, was du brauchst, ist ein Object für einen Datensatz, wie z.B. dieses: Code:
class Datensatz {
private int datum;
private int kilometer;
private int durchschnitt;
private int zeit;
public int getDatum() { return this.datum; }
public void setDatum(int datum) { this.datum = datum; }
public int getDurchschnitt() { return this.durchschnitt; }
public void setDurchschnitt(int durchschnitt) { this.durchschnitt = durchschnitt; }
public int getKilometer() { return this.kilometer; }
public void setKilometer(int kilometer) { this.kilometer = kilometer; }
public int getZeit() { return this.zeit; }
public void setZeit(int zeit) { this.zeit = zeit; }
}
Deine Funktion sieht dann etwas anders aus: Code:
public void eingabe(){
int anzahl;
int enummer;
int datum;
Datensatz[] daten;
float km;
float schnitt;
char zeit;
System.out.println();
System.out.println();
System.out.println();
System.out.println(" Datensätze eingeben ");
System.out.println("--------------------------");
System.out.println();
anzahl = IO.readInt("Bitte die Anzahl der einzugebenden Datensätze einegeben: ");
daten = new Datensatz[anzahl];
System.out.println();
System.out.println();
for (int i=0;i<anzahl;i++){
daten[i] = new Datensatz();
System.out.println("Datensatz "+i+" eingeben");
daten[i].setDatum(IO.readInt("Bitte das Datum eingeben: "));
daten[i].setKilometer(IO.readInt("Bitte die Kilometer eingeben: "));
daten[i].setDurchschnitt(IO.readInt("Bitte die gefahrene Durchschnittgeschwindigkeit eingeben: "));
daten[i].setZeit(IO.readChar("Bitte die gefahrene Zeit eingeben: "));
System.out.println();
}
System.out.println();
enummer= IO.readInt("Um ins Hauptmenü zu gelangen 1 eingeben, zum beenden bitte 2 eingeben: ");
System.out.println();
System.out.println();
switch (enummer){
case 1: menue(); break;
case 2: ende();break;
default: {System.out.println("Falsche Eingabe"); menue();} break;
}
}
Wenn Du mir ein konkretes Beispiel gibst, zeige ich Dir, wie das geht. |
|
|
|
Nach oben #14 | ||
|
Gast
Beiträge: n/a
|
Zitat:
Zitat:
zerberos: Nun kannst du in Datensatz Comparable implementieren, entsprechend anpassen und gut is |
||
|
|
|
Nach oben #16 |
|
Gast
Beiträge: n/a
|
@Fuzzy:
@zer...: Mit dem was hier bereits gepostet wurde kannst du dein Problem bereits lösen. Du hast: 1) Eine eigene Klasse zur Aufnahme der Daten 2) Diese muss Comparable implementieren -> schreib dir deine eigene compareTo Methode, in der du nach dem sortierst was du haben willst 3) Nachher musst du nur noch Collections.sort(DeineListe) machen |
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Hardware-RAID-Lösung | robo47 | Plauderecke | 29 | 26.12.2007 04:49 |
| Daten aus dem selben Feld im Array speichern | julien | Datenbanken | 10 | 08.06.2006 21:39 |
| Array in Bezug auf ein anderes sortieren... | code5 | PHP-Programmierung | 2 | 15.05.2006 15:56 |
| Datenbank auslesen und Daten in JTable überführen | Lautsprecher | Datenbanken | 5 | 20.10.2005 15:34 |
| Wie lese ich die Daten in einer txt datei in einem Array ein | Eddi | Allgemeine Java-Programmierung | 1 | 29.10.2004 16:57 |