totaleasy
Goto Top

Java Inventarliste erstellen

Java Inventarliste erstellen

Hi Leute,

bin Azubi als FiSi, in der Schule müssen wir leider Java können (auch wenn mich das nicht interessiert bzw auch nich für mein Beruf brauche)
deshalb hab ich alles andere als Ahnung von Java face-smile
Bisher kam ich damit auch ganz gut umme Runde =)

Jedoch ist nun n Projekt wo wir ein EDV Inventar programmieren sollen
wo man Artikel reinschreiben kann bzw auslesen kann etc... alles was halt in so nem Inventar drin vorkommt =)

da krieg ich NICHTS von hin weil ich dasvon keine Ahnung hab.
hat jemand evtl sowas ähnliches wo man kleinere Änderungen machen muss damit es für mich passt ?!? Im Internet hab ich nichts gefunden was mich irgendwie weiterbringt.

vielleicht finde ich hier ja jemanden der passenden Rat hat oder ähnliches =)

danke schonmal

Content-ID: 27523

Url: https://administrator.de/contentid/27523

Ausgedruckt am: 22.11.2024 um 21:11 Uhr

gabrielgn
gabrielgn 06.03.2006 um 16:33:20 Uhr
Goto Top
Ganz schnell könnte ich dir raten, einen Adressen-Programm zu ändern, da es ungefähr dasselbe Konzept ist (solange du nur Name, Beschreibung und weiteres hinzufügen möchtest) ist.
Ansonsten, wenn du Zeit dafür hast, können wir zusammen Schrittweise es aufbauen..nach deinen Wünschen... face-smile
TotalEasy
TotalEasy 06.03.2006 um 16:54:16 Uhr
Goto Top
sehr verlockendes Angebot :P
WObei wir dann auch schun beim ersten Problem wärn - wenn ich Zeit hätte :lach:

Is echt nett von dir*lob*
Ich guck mal ob ich irgendwo ein Adressen programm finde was ich ändern kann.

Übrigens: das muss alles nur auf der Kommandozeile sein das Inventar also nichts grafisch oder ähnliches face-smile
gabrielgn
gabrielgn 06.03.2006 um 16:55:47 Uhr
Goto Top
Ist das so eine Art "Abnahme-Projekt", was nur mal kurz gezeigt wird und dann nicht mehr benutzt, oder wird das später aktiv benutzt?
TotalEasy
TotalEasy 06.03.2006 um 17:01:40 Uhr
Goto Top
Das ist für die Schule,
wird also später nicht weiter genutzt... es wird halt mal eben probiert ob alle funktionen funktionieren falls man es einsetzen würde.. :D

Aber es wird definitiv nur für den Lehrer gemacht und der muss es als "gut" (in meinem fall *g*) absegnen =)
gabrielgn
gabrielgn 07.03.2006 um 07:57:16 Uhr
Goto Top
Ok.. dann sag einfach bescheid sobald du was (oder auch nicht) gefunden hast...
pi314
pi314 07.03.2006 um 12:09:43 Uhr
Goto Top
hi,

soll also alles auf kommandozeilen-basis funzen, wenn ich das richtig verstanden habe und braucht nicht unbedingt OO sein face-wink??
pi314
pi314 07.03.2006 um 13:52:19 Uhr
Goto Top
Mahlzeit nochmal,

also, würde folgenden Aufbau vorschlagen:

Klasse Inventar
private static File inventarFile = new File( "c:/inventar.ivf" );
protected static String trennZeichen = ";";

public static void main(String args) throws Exception {
try {
if( args.equals( "-a" ) ) {
Hier Code zum Hinzufügen } else if( args.equals( "-r" ) ) {
Hier Code zum Löschen aus der Datei
} else if( args.equals( "-l" ) ) {
List.list( inventarFile );
} else {
System.out.println( "ungültige Option" );
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println( "keine Optionen ausgewählt" );
}
}

Hinweis: Beim -a und -r musst natürlich noch weitere Argumente ergänzen, weil du ja angeben willst, was du einfügen willst.

Klasse List
public class List {
public static void list( File file ) throws IOException {
String line;
BufferedReader bufRead = new BufferedReader( new FileReader( file ) );

while ((line = bufRead.readLine()) != null) {
StringTokenizer tok = new StringTokenizer( line, Inventar.trennZeichen );
System.out.println( tok.nextToken() + "\t" + tok.nextToken() + "\t" + tok.nextToken() + "\t" + tok.nextToken() );
}
}
}

ein bisschen musst natürlich noch an der Ausgabe feilen, damit das optisch besser rüberkommt face-smile

Dazu würd ich noch die Klassen Remove und Add mit jeweiliger Methode machen.
Bei der add() halt Datei lesen, schauen obs den Eintrag mit der lfd. Nr oder was ähnliches scho gibt und rein in die Datei.
Beim Löschen halt ähnlich...

Kannst natürlich auch alle Methoden in deine Hauptklasse schreiben, dann brauchst auch kein Package und keine anderen Klassen.


Hoffe, dir hilft's weiter...

pi
TotalEasy
TotalEasy 08.03.2006 um 12:42:49 Uhr
Goto Top
Mahlzeit,

also das Programm muss nur auf Kommandozeilen basis funktionieren.
Die Tips hab mich nun echt zum grübeln angeregt aber irgendwie krieg ich das einfach nicht hin.
Im internet finde ich auch so schnell nichts was ich mir eben einfach nehmen kann und paar kleinigkeiten änder so wie z.b. Adressverwaltung oda so.

Einzigste was bisher läuft ist das Hauptmenü
das sieht so aus:
import java.io.*;

public class EDVInventar {
private static BufferedReader meineEingabe = null;
/
        • startet das Programm
        */
        public static void main(String args) {
        meineEingabe = new BufferedReader(new InputStreamReader(System.in));
        hauptmenu();
        }

        /

              • Hauptmenue
              */
              private static void hauptmenu() {
              char input = 'z';

              try {
              do {
              System.out.println("\n\n------------------------------------------------");
              System.out.println("- EDV Inventar -");
              System.out.println("------------------------------------------------\n\n");

              System.out.println("Taste\tFunktion");
              System.out.println("(o)\tInventarliste oeffnen");
              System.out.println("(s)\tInventarliste speichern");
              System.out.println("(l)\tInventar anzeigen");
              System.out.println("(f)\tGeraet suchen");
              System.out.println("(c)\tGeraet aendern");
              System.out.println("(a)\tGeraet eintragen");
              System.out.println("(a)\tGeraet löschen");
              System.out.println("(e)\tCSV Export");
              System.out.println("(i)\tCSV Import");
              System.out.println("(e)\tBeenden");
              input = meineEingabe.readLine().toLowerCase().charAt(0);


              }while(input != 'e');
              } catch (IOException e) {
              System.out.println("Fehler: " + e);
              System.out.println("\nProgramm wird beendet");
              System.exit(1);
              }
              }


              das läuft auch, aber nun kommen die Punkte wo ich echt "null" Ahnung von hab. Java ist einfach nicht mein Gebiet womit ich mich gerne befassen würde. Jedoch muss ich leider irgendwie das ganze zum laufen kriegen und auch möglichst flott...

              Hat zufällig jemand sowas schon parat weil er das schunmal brauchte oder ähnliches ?!? Wäre echt super..

              Danke und tut nich mehr soviel =)
gabrielgn
gabrielgn 08.03.2006 um 13:14:05 Uhr
Goto Top
Wo sollen die Daten, die du eintippst, gespeichert werden? In einem Textfile oder so?
TotalEasy
TotalEasy 08.03.2006 um 13:18:53 Uhr
Goto Top
Also vorgegeben ist nichts, aber Textfile oder *.dat hört sich schon plausibel an find ich.
gabrielgn
gabrielgn 09.03.2006 um 10:03:58 Uhr
Goto Top
Nach der Einnahme des input-Werts, muss input ausgewertet werden und es muss entschieden werden welche Funktion aufgerufen werden muss. Das machen wir am besten mit einer switch-Bedingung:

switch(input.toLowerCase()){
case 'o': inventarOeffnen(); break; //Aufrufen der zuständigen Methode und Switch-Abbruch
case 's': inventarSpeichern(); break;
default: System.out.println("Die Funktion ist nicht vorhanden. Bitte wählen Sie eine der aufgelisteten Funktionen aus!");


Danach fang schonmal an die Methodenköpfe für alle Funktionen zu schreiben, in der Form:

public void inventarlisteSpeichern(){
...
}

etc...

P.S.: Falls du Fragen hast, bitte stelle Sie! Es ist sicherlich einfacher und sinnvoller wenn DU den Code verstehst ;)